diff options
187 files changed, 10302 insertions, 40276 deletions
@@ -1 +1,2 @@ -/target +**/target +**/inputs
\ No newline at end of file diff --git a/2017/Cargo.lock b/2017/Cargo.lock new file mode 100644 index 0000000..1318b60 --- /dev/null +++ b/2017/Cargo.lock @@ -0,0 +1,233 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "advent_of_code_2017" +version = "0.1.0" +dependencies = [ + "lazy_static", + "regex", + "structopt", + "structopt-derive", +] + +[[package]] +name = "aho-corasick" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5" +dependencies = [ + "memchr", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "quote" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a" + +[[package]] +name = "regex" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", + "thread_local", + "utf8-ranges", +] + +[[package]] +name = "regex-syntax" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7" +dependencies = [ + "ucd-util", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "783cb22d520b177a3772e520d04a3c7970d51c3b647ba80739f99be01131b54f" +dependencies = [ + "clap", +] + +[[package]] +name = "structopt-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4da119c9a7a1eccb7c6de0c1eb3f7ed1c11138624d092b3687222aeed8f1375c" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "syn" +version = "0.11.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad" +dependencies = [ + "quote", + "synom", + "unicode-xid", +] + +[[package]] +name = "synom" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thread_local" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "ucd-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bfcbf611b122f2c10eb1bb6172fbc4c2e25df9970330e4d75ce2b5201c9bfc" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc" + +[[package]] +name = "utf8-ranges" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcfc827f90e53a02eaef5e535ee14266c1d569214c6aa70133a624d8a3164ba" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[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-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/2017/inputs/.gitkeep b/2017/inputs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/2017/inputs/.gitkeep diff --git a/2017/inputs/day_1.txt b/2017/inputs/day_1.txt deleted file mode 100644 index 7a4debd..0000000 --- a/2017/inputs/day_1.txt +++ /dev/null @@ -1 +0,0 @@ -21752342814933766938172121674976879111362417653261522357855816893656462449168377359285244818489723869987861247912289729579296691684761143544956991583942215236568961875851755854977946147178746464675227699149925227227137557479769948569788884399379821111382536722699575759474473273939756348992714667963596189765734743169489599125771443348193383566159843593541134749392569865481578359825844394454173219857919349341442148282229689541561169341622222354651397342928678496478671339383923769856425795211323673389723181967933933832711545885653952861879231537976292517866354812943192728263269524735698423336673735158993853556148833861327959262254756647827739145283577793481526768156921138428318939361859721778556264519643435871835744859243167227889562738712953651128317624673985213525897522378259178625416722152155728615936587369515254936828668564857283226439881266871945998796488472249182538883354186573925183152663862683995449671663285775397453876262722567452435914777363522817594741946638986571793655889466419895996924122915777224499481496837343194149123735355268151941712871245863553836953349887831949788869852929147849489265325843934669999391846286319268686789372513976522282587526866148166337215961493536262851512218794139272361292811529888161198799297966893366553115353639298256788819385272471187213579185523521341651117947676785341146235441411441813242514813227821843819424619974979886871646621918865274574538951761567855845681272364646138584716333599843835167373525248547542442942583122624534494442516259616973235858469131159773167334953658673271599748942956981954699444528689628848694446818825465485122869742839711471129862632128635779658365756362863627135983617613332849756371986376967117549251566281992964573929655589313871976556784849231916513831538254812347116253949818633527185174221565279775766742262687713114114344843534958833372634182176866315441583887177759222598853735114191874277711434653854816841589229914164681364497429324463193669337827467661773833517841763711156376147664749175267212562321567728575765844893232718971471289841171642868948852136818661741238178676857381583155547755219837116125995361896562498721571413742 diff --git a/2017/inputs/day_10.txt b/2017/inputs/day_10.txt deleted file mode 100644 index 6544f8c..0000000 --- a/2017/inputs/day_10.txt +++ /dev/null @@ -1 +0,0 @@ -187,254,0,81,169,219,1,190,19,102,255,56,46,32,2,216 diff --git a/2017/inputs/day_11.txt b/2017/inputs/day_11.txt deleted file mode 100644 index c31c097..0000000 --- a/2017/inputs/day_11.txt +++ /dev/null @@ -1 +0,0 @@ -s,s,sw,se,s,nw,nw,ne,n,ne,n,n,n,n,n,n,n,ne,n,ne,ne,se,ne,n,ne,n,n,ne,se,sw,se,s,se,se,se,se,s,se,se,s,se,se,nw,se,se,se,s,s,nw,s,s,se,nw,s,n,s,nw,s,s,s,s,s,s,s,s,s,s,s,sw,s,s,s,s,s,sw,sw,s,sw,s,nw,sw,sw,s,sw,ne,sw,sw,s,se,sw,sw,sw,sw,sw,sw,sw,nw,sw,sw,sw,se,sw,nw,nw,sw,sw,sw,s,sw,nw,se,nw,se,nw,sw,nw,nw,se,n,sw,s,s,s,nw,sw,sw,nw,se,nw,sw,sw,sw,nw,sw,sw,nw,nw,nw,nw,ne,n,nw,nw,ne,nw,nw,nw,nw,nw,se,nw,nw,n,nw,nw,nw,sw,n,nw,nw,nw,nw,n,s,nw,ne,nw,s,nw,nw,nw,n,nw,nw,nw,nw,nw,nw,s,sw,n,n,nw,nw,n,n,nw,nw,n,nw,n,n,nw,n,s,n,nw,ne,n,nw,n,nw,n,n,n,n,se,s,n,s,n,s,n,n,n,nw,n,s,n,n,n,n,n,ne,n,n,n,n,s,n,n,n,n,sw,n,n,n,nw,n,n,n,n,nw,se,n,ne,n,n,ne,n,ne,ne,n,n,n,n,ne,n,n,nw,n,n,n,n,ne,se,se,ne,ne,ne,n,ne,n,ne,ne,nw,ne,ne,n,n,n,ne,ne,ne,n,ne,nw,n,s,ne,ne,ne,ne,ne,n,s,ne,ne,ne,n,ne,ne,ne,sw,ne,ne,ne,s,n,ne,ne,n,ne,ne,ne,ne,ne,se,ne,ne,se,ne,ne,ne,ne,se,ne,se,ne,nw,nw,sw,s,n,ne,ne,ne,ne,ne,sw,ne,ne,ne,sw,ne,ne,ne,ne,sw,se,ne,ne,ne,ne,se,s,se,s,nw,ne,ne,n,se,ne,ne,ne,sw,ne,s,s,nw,se,nw,ne,s,ne,se,ne,n,ne,n,s,n,ne,ne,s,ne,se,se,ne,sw,nw,s,n,nw,n,se,ne,se,se,sw,ne,ne,sw,se,se,se,se,sw,ne,se,s,ne,ne,n,se,ne,sw,ne,ne,se,se,nw,se,ne,ne,nw,sw,se,s,s,se,se,se,s,se,nw,se,ne,se,se,se,se,se,se,se,sw,nw,se,se,se,se,se,se,sw,se,sw,ne,se,se,se,se,se,se,se,se,s,se,se,se,se,se,se,ne,se,se,s,sw,s,se,se,se,se,se,se,se,s,se,sw,se,se,n,s,se,s,ne,se,se,se,s,se,s,se,se,ne,se,se,sw,s,se,se,se,se,nw,se,n,ne,s,s,nw,se,se,s,se,n,se,se,s,se,se,s,se,se,ne,se,se,se,s,s,sw,s,s,se,s,se,s,se,s,se,se,se,s,se,s,nw,s,s,se,se,se,se,sw,sw,s,se,s,se,se,s,n,se,se,se,se,s,se,se,s,se,se,se,sw,s,s,s,se,se,s,s,se,s,s,se,s,s,n,s,nw,s,n,s,sw,s,nw,s,s,se,se,sw,s,s,s,sw,se,s,n,s,se,n,s,se,se,se,s,s,s,se,ne,s,se,n,se,s,se,se,s,ne,sw,se,s,s,se,s,s,s,s,s,s,s,s,se,s,nw,s,s,s,s,s,s,s,s,s,s,s,ne,ne,s,s,s,s,s,s,s,s,s,ne,ne,s,s,s,s,s,s,s,s,nw,s,s,se,sw,s,sw,s,s,nw,s,s,s,s,s,s,s,s,s,n,ne,se,s,s,s,s,n,se,s,sw,s,sw,sw,sw,s,s,sw,s,s,s,nw,sw,s,s,s,s,s,ne,sw,s,s,sw,s,s,s,s,s,s,sw,s,s,se,s,s,sw,n,sw,s,s,sw,s,s,s,s,s,sw,s,ne,s,s,s,s,sw,ne,s,ne,n,sw,s,s,s,sw,s,sw,nw,s,s,ne,sw,sw,nw,s,s,sw,sw,s,ne,s,s,sw,se,s,s,sw,s,s,sw,s,sw,sw,s,s,s,s,sw,sw,sw,s,n,ne,s,ne,s,sw,s,se,s,sw,sw,s,sw,sw,sw,sw,s,s,s,s,se,s,sw,sw,sw,sw,n,s,sw,s,s,sw,sw,s,s,n,sw,s,sw,sw,ne,sw,sw,s,sw,sw,sw,sw,sw,s,s,sw,se,sw,sw,sw,sw,s,s,sw,s,sw,sw,nw,sw,sw,se,sw,s,s,nw,nw,s,s,sw,sw,s,n,s,sw,sw,se,s,sw,sw,ne,sw,sw,sw,sw,sw,ne,sw,s,sw,sw,n,sw,sw,sw,sw,s,sw,sw,sw,sw,sw,n,nw,s,sw,s,s,n,ne,sw,sw,sw,sw,n,sw,se,sw,sw,s,se,sw,sw,sw,sw,sw,sw,s,ne,ne,ne,sw,sw,sw,ne,s,sw,sw,sw,sw,nw,s,sw,sw,s,s,sw,sw,n,nw,nw,sw,sw,sw,se,nw,nw,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,n,sw,sw,sw,nw,nw,se,sw,sw,sw,sw,sw,ne,sw,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,s,sw,sw,se,sw,s,sw,sw,nw,nw,nw,sw,sw,nw,sw,se,ne,sw,sw,sw,sw,ne,sw,sw,nw,sw,se,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,sw,n,nw,sw,sw,sw,s,sw,sw,nw,n,s,sw,n,nw,nw,sw,sw,nw,sw,sw,se,sw,sw,nw,sw,sw,s,sw,nw,sw,nw,sw,nw,nw,nw,sw,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,s,sw,nw,nw,ne,n,nw,sw,sw,nw,sw,sw,nw,nw,nw,sw,sw,sw,ne,s,sw,nw,nw,sw,nw,sw,s,nw,n,nw,sw,sw,nw,nw,sw,nw,nw,n,sw,nw,sw,nw,sw,n,sw,nw,sw,sw,sw,sw,n,sw,n,nw,nw,s,sw,se,sw,sw,nw,n,sw,sw,sw,n,sw,nw,sw,ne,nw,sw,sw,s,n,nw,sw,nw,nw,nw,sw,sw,sw,nw,nw,ne,sw,s,sw,nw,n,sw,sw,sw,nw,ne,ne,sw,nw,nw,sw,s,s,sw,sw,nw,ne,sw,nw,sw,nw,nw,sw,sw,sw,sw,nw,nw,s,se,nw,sw,nw,ne,s,nw,nw,ne,sw,nw,nw,n,nw,nw,sw,sw,sw,nw,nw,nw,sw,nw,nw,n,sw,sw,nw,s,n,sw,nw,nw,sw,nw,n,nw,nw,nw,nw,nw,nw,sw,sw,n,n,sw,sw,nw,nw,nw,nw,ne,nw,nw,nw,sw,nw,nw,nw,nw,ne,nw,nw,nw,nw,n,nw,nw,nw,s,nw,nw,sw,nw,s,nw,ne,ne,nw,nw,sw,nw,nw,nw,nw,sw,nw,se,sw,nw,sw,nw,nw,ne,nw,n,nw,nw,sw,nw,nw,nw,sw,nw,ne,s,nw,nw,sw,s,nw,sw,sw,nw,nw,nw,sw,s,nw,nw,nw,nw,se,nw,s,nw,nw,nw,se,ne,ne,nw,nw,nw,nw,nw,sw,nw,ne,ne,nw,nw,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,ne,nw,nw,s,nw,nw,ne,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,nw,nw,nw,ne,nw,n,nw,nw,ne,n,nw,sw,nw,n,nw,n,sw,nw,ne,s,se,n,ne,se,nw,ne,nw,ne,nw,ne,nw,nw,nw,n,nw,nw,nw,nw,nw,nw,nw,ne,nw,s,se,nw,n,n,nw,ne,nw,nw,nw,nw,ne,nw,nw,s,nw,nw,nw,nw,nw,n,nw,nw,nw,nw,nw,n,nw,nw,s,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,nw,n,nw,nw,nw,nw,nw,sw,n,nw,nw,nw,nw,nw,nw,nw,s,nw,se,n,n,n,nw,se,nw,nw,s,s,nw,nw,n,nw,nw,s,nw,nw,nw,se,nw,nw,nw,se,nw,nw,nw,nw,se,nw,nw,nw,nw,nw,n,nw,n,ne,nw,nw,nw,se,ne,nw,nw,nw,n,nw,nw,ne,n,n,nw,nw,sw,nw,nw,nw,nw,se,nw,n,s,nw,nw,n,n,nw,se,n,nw,nw,nw,n,nw,nw,nw,n,nw,se,n,se,sw,s,n,s,nw,nw,nw,nw,n,n,s,nw,nw,se,nw,nw,se,nw,n,n,nw,n,se,nw,n,n,nw,n,nw,n,nw,nw,n,nw,n,s,nw,nw,nw,nw,ne,ne,se,sw,nw,n,n,nw,s,n,nw,nw,n,n,nw,n,nw,nw,nw,nw,nw,n,nw,n,n,sw,n,se,nw,n,n,nw,n,nw,nw,n,s,sw,nw,ne,nw,n,sw,nw,nw,n,nw,sw,s,nw,n,n,nw,se,n,nw,n,ne,n,nw,nw,n,nw,nw,n,nw,n,nw,nw,nw,n,se,sw,nw,nw,nw,sw,nw,nw,nw,nw,se,n,n,ne,n,nw,nw,n,nw,nw,n,sw,n,se,nw,nw,n,n,n,nw,n,nw,n,nw,n,ne,n,n,nw,n,n,n,nw,se,sw,n,sw,n,nw,nw,n,n,n,se,nw,sw,ne,n,se,nw,nw,n,n,n,n,n,n,nw,n,n,nw,sw,nw,n,sw,n,n,se,sw,n,n,n,nw,sw,nw,n,n,n,n,nw,n,n,nw,n,s,n,n,sw,n,nw,ne,s,nw,ne,n,n,n,ne,s,n,n,n,n,n,n,se,nw,nw,n,n,nw,n,n,s,se,n,nw,n,n,n,n,n,n,nw,n,n,n,nw,nw,nw,n,n,n,nw,nw,sw,n,se,n,s,n,n,n,n,n,n,ne,n,se,n,n,n,se,n,nw,n,nw,n,n,n,n,n,n,n,nw,n,n,n,n,n,n,ne,n,n,nw,n,n,sw,n,nw,n,n,sw,n,n,n,nw,se,n,n,n,nw,n,s,n,n,n,n,n,n,n,s,n,n,n,n,nw,n,n,sw,sw,nw,n,nw,nw,sw,n,n,n,n,n,n,n,n,n,n,n,s,n,n,n,n,nw,n,n,n,n,n,n,n,s,n,nw,n,sw,nw,ne,n,nw,n,sw,n,n,n,n,n,ne,n,nw,n,n,n,n,n,n,n,ne,n,n,n,n,ne,n,n,n,n,ne,n,n,n,n,ne,n,n,s,n,n,se,n,n,n,n,n,n,n,nw,n,ne,nw,sw,ne,nw,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,ne,n,n,se,n,ne,n,ne,n,n,n,n,ne,n,ne,se,s,ne,nw,se,n,n,n,n,se,n,n,ne,s,n,nw,n,nw,nw,n,n,n,n,n,n,n,n,n,s,n,n,n,s,n,nw,n,n,n,n,n,n,n,n,n,n,n,n,ne,ne,n,sw,n,se,n,n,n,n,n,n,n,se,n,ne,n,ne,n,n,n,n,n,sw,n,n,s,nw,n,n,n,ne,ne,n,n,n,ne,n,n,se,n,n,n,n,ne,n,n,n,s,n,se,ne,n,n,n,n,n,n,n,n,s,ne,s,nw,n,ne,s,ne,n,n,n,n,ne,n,n,n,n,n,n,n,n,n,ne,n,se,ne,n,ne,ne,ne,ne,se,n,n,ne,n,n,n,n,nw,ne,sw,ne,n,n,ne,se,n,n,n,n,se,n,n,n,ne,n,se,ne,ne,n,s,nw,n,ne,n,n,nw,n,n,ne,n,ne,n,sw,n,se,n,ne,nw,ne,ne,n,n,n,ne,n,ne,nw,n,s,n,n,n,n,ne,n,n,ne,n,nw,n,n,n,ne,n,s,n,n,n,n,n,ne,ne,n,sw,n,ne,n,n,sw,ne,n,ne,ne,n,n,ne,ne,ne,n,ne,ne,ne,n,ne,sw,n,n,ne,ne,ne,se,n,ne,ne,ne,n,nw,n,ne,n,n,n,ne,n,n,n,n,n,ne,ne,n,ne,s,nw,ne,n,ne,ne,ne,n,n,n,n,nw,n,n,ne,ne,ne,n,ne,n,ne,ne,n,ne,ne,nw,ne,nw,n,n,ne,se,ne,se,ne,n,nw,n,n,s,n,se,ne,ne,n,ne,n,ne,s,n,n,sw,ne,ne,se,n,ne,n,n,n,n,sw,ne,ne,nw,n,n,ne,ne,ne,n,ne,n,sw,ne,ne,ne,ne,n,ne,se,ne,sw,n,n,n,ne,ne,sw,ne,ne,ne,n,ne,ne,n,ne,se,ne,s,nw,n,sw,n,ne,n,n,n,n,ne,n,sw,ne,ne,nw,n,ne,se,ne,ne,ne,ne,n,ne,ne,n,ne,n,ne,ne,ne,n,s,s,ne,ne,ne,s,ne,ne,ne,sw,n,n,ne,n,s,ne,n,n,nw,n,se,sw,ne,ne,ne,s,n,n,ne,ne,n,ne,ne,nw,ne,ne,ne,s,se,ne,ne,ne,n,ne,nw,n,ne,ne,sw,n,n,ne,ne,ne,n,ne,ne,se,ne,ne,n,ne,ne,ne,sw,s,n,n,n,se,n,s,ne,ne,ne,sw,ne,ne,se,ne,ne,ne,ne,ne,n,s,se,ne,ne,ne,n,ne,sw,se,s,ne,n,ne,ne,n,n,n,ne,n,ne,ne,se,ne,ne,n,ne,ne,ne,ne,ne,s,ne,ne,ne,nw,ne,ne,ne,ne,ne,n,ne,s,ne,ne,ne,n,ne,sw,n,n,n,ne,ne,n,ne,s,n,n,n,ne,ne,n,ne,ne,ne,sw,se,sw,ne,ne,s,ne,nw,ne,nw,se,nw,n,ne,se,n,ne,ne,ne,ne,ne,s,ne,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,se,ne,ne,ne,sw,ne,ne,ne,ne,n,ne,s,ne,s,ne,ne,n,ne,se,ne,ne,nw,n,ne,ne,ne,s,ne,sw,ne,n,ne,ne,n,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,se,n,ne,ne,ne,ne,sw,ne,n,ne,se,ne,ne,ne,se,se,ne,sw,n,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,sw,ne,ne,ne,sw,n,n,ne,ne,n,ne,ne,ne,sw,ne,n,ne,ne,ne,se,ne,ne,nw,nw,sw,ne,ne,ne,ne,sw,ne,se,ne,n,ne,ne,ne,nw,ne,ne,ne,ne,ne,ne,sw,ne,ne,nw,ne,ne,ne,ne,ne,ne,ne,ne,sw,ne,ne,s,sw,ne,ne,s,sw,sw,ne,ne,ne,nw,ne,n,se,ne,ne,ne,ne,n,ne,nw,ne,ne,n,se,ne,ne,ne,ne,sw,ne,ne,s,ne,s,ne,ne,ne,ne,ne,ne,ne,nw,ne,ne,ne,se,ne,ne,ne,ne,se,ne,ne,sw,ne,s,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,sw,n,ne,ne,nw,se,ne,ne,ne,ne,se,ne,sw,ne,ne,n,se,ne,ne,se,ne,sw,nw,ne,ne,ne,ne,ne,ne,s,ne,se,sw,ne,s,ne,se,se,se,ne,ne,s,ne,ne,s,ne,se,ne,nw,s,ne,se,ne,ne,ne,sw,ne,se,ne,ne,ne,sw,ne,ne,ne,ne,nw,ne,ne,nw,ne,ne,s,ne,ne,se,ne,ne,nw,ne,ne,se,se,se,ne,se,ne,se,se,ne,ne,s,ne,ne,ne,ne,ne,ne,ne,ne,ne,n,ne,ne,ne,ne,ne,ne,ne,s,se,ne,sw,ne,ne,se,ne,ne,ne,ne,s,ne,se,ne,ne,se,n,n,ne,se,s,ne,s,ne,se,nw,ne,se,ne,ne,se,ne,se,se,ne,ne,se,ne,ne,ne,n,se,ne,ne,ne,ne,s,se,se,n,ne,se,se,ne,ne,se,ne,se,se,ne,ne,sw,ne,ne,ne,ne,ne,ne,nw,se,ne,se,ne,se,ne,s,ne,ne,sw,ne,ne,ne,ne,ne,s,se,ne,ne,s,se,ne,ne,ne,nw,ne,ne,ne,se,ne,ne,ne,ne,se,ne,ne,ne,se,ne,ne,se,n,s,ne,ne,ne,se,s,n,se,se,ne,sw,ne,ne,n,ne,se,n,se,n,s,n,s,ne,se,ne,ne,ne,ne,n,ne,se,sw,se,ne,se,nw,ne,ne,ne,se,se,ne,ne,ne,ne,ne,ne,ne,ne,nw,ne,n,s,ne,ne,ne,ne,ne,se,se,se,se,sw,s,n,ne,s,ne,ne,sw,se,se,ne,ne,ne,ne,ne,ne,se,se,s,ne,se,ne,nw,n,ne,se,se,ne,se,ne,ne,se,se,se,ne,ne,sw,se,nw,se,nw,se,se,se,se,ne,n,n,ne,se,se,ne,ne,se,ne,ne,se,ne,sw,ne,se,ne,n,se,nw,sw,ne,ne,se,ne,se,ne,ne,se,ne,se,ne,ne,ne,se,ne,se,se,n,nw,ne,ne,ne,ne,sw,n,ne,ne,ne,nw,ne,se,se,ne,ne,s,nw,n,ne,ne,ne,ne,ne,ne,ne,se,ne,sw,se,ne,s,n,ne,ne,se,ne,se,se,ne,se,ne,se,se,ne,se,se,se,ne,ne,ne,ne,se,ne,ne,nw,ne,ne,se,ne,s,se,ne,se,ne,ne,ne,ne,n,se,ne,se,se,ne,ne,ne,nw,ne,se,se,nw,ne,se,se,ne,sw,ne,ne,ne,n,ne,ne,ne,n,se,ne,se,ne,n,n,se,ne,se,se,se,ne,se,se,sw,se,ne,se,ne,sw,sw,ne,ne,ne,s,n,ne,ne,nw,ne,n,se,se,se,se,ne,nw,ne,ne,ne,se,ne,se,n,n,se,n,se,se,se,se,se,ne,sw,ne,se,ne,se,se,se,ne,sw,se,s,se,se,ne,se,se,se,n,ne,se,se,ne,ne,ne,ne,se,se,ne,se,se,ne,se,ne,ne,se,se,nw,se,se,ne,se,sw,se,ne,n,ne,se,se,se,nw,se,se,se,ne,se,ne,se,se,ne,se,se,ne,ne,se,se,sw,ne,se,se,sw,se,se,s,ne,ne,se,ne,s,ne,se,se,ne,se,nw,n,se,se,s,se,ne,se,ne,ne,sw,ne,ne,n,se,s,n,ne,se,se,ne,nw,ne,ne,se,se,ne,sw,ne,ne,ne,se,sw,ne,se,se,ne,n,ne,se,nw,se,se,se,ne,se,ne,ne,ne,s,ne,nw,ne,ne,ne,se,se,se,nw,se,ne,se,se,se,ne,se,ne,se,se,se,ne,se,se,se,n,se,ne,ne,se,se,se,se,sw,ne,se,se,se,ne,se,nw,n,ne,ne,ne,sw,n,se,n,se,se,n,ne,se,se,ne,se,ne,se,nw,se,se,se,s,sw,ne,se,sw,se,se,se,ne,ne,se,ne,se,se,se,se,ne,se,se,ne,se,se,ne,se,ne,se,se,se,ne,se,ne,ne,se,s,ne,ne,nw,se,ne,n,ne,se,se,ne,se,n,ne,ne,se,ne,se,se,se,ne,se,se,ne,ne,nw,ne,s,se,se,se,se,se,sw,nw,n,se,se,s,se,se,se,nw,se,n,nw,se,ne,ne,se,nw,se,se,se,se,se,se,ne,se,se,se,se,ne,se,se,ne,se,se,se,se,ne,se,se,se,se,ne,ne,nw,se,se,se,se,se,se,s,se,se,se,n,se,ne,ne,ne,se,se,se,se,ne,se,se,ne,se,se,se,se,se,se,se,sw,se,ne,ne,s,se,se,ne,se,se,se,ne,ne,se,se,se,se,se,se,se,s,sw,se,ne,se,se,se,se,se,se,se,n,se,sw,se,se,se,ne,se,se,se,se,se,s,ne,nw,se,se,se,se,se,sw,se,ne,sw,se,ne,se,se,ne,se,ne,n,ne,se,se,ne,se,ne,nw,nw,se,se,se,se,se,se,se,se,se,se,sw,se,se,se,se,se,nw,se,n,se,se,ne,se,se,nw,se,se,se,se,se,ne,nw,nw,se,se,se,se,ne,se,se,se,ne,ne,se,se,se,se,se,se,se,se,se,se,se,sw,s,se,se,ne,nw,se,se,se,se,se,se,sw,sw,se,ne,sw,nw,se,se,se,se,se,n,se,se,ne,se,se,se,nw,se,ne,se,se,se,s,se,se,n,se,se,ne,se,s,se,ne,se,se,se,nw,se,se,n,se,s,n,se,se,se,nw,se,s,sw,se,ne,se,se,se,nw,se,sw,se,se,sw,s,se,n,ne,sw,se,n,nw,se,ne,se,se,se,se,se,ne,se,se,se,se,se,se,se,se,n,se,se,se,ne,se,se,se,sw,se,nw,se,se,ne,se,se,se,se,n,ne,se,se,se,n,se,se,se,se,se,se,se,s,s,se,se,se,s,ne,se,se,se,se,se,se,se,se,se,se,se,se,se,n,n,se,se,se,se,se,se,se,se,se,s,sw,se,se,se,n,nw,se,se,se,se,ne,ne,se,n,se,se,sw,ne,sw,se,se,ne,se,se,se,se,se,se,se,se,se,n,se,nw,se,se,se,sw,s,se,se,se,se,se,se,se,se,ne,s,se,se,se,nw,s,se,n,se,se,se,s,sw,se,se,se,se,nw,ne,se,se,se,ne,s,se,sw,se,se,se,se,se,se,s,se,s,se,sw,se,ne,s,se,se,nw,se,se,nw,n,se,se,se,nw,nw,se,se,se,se,se,nw,s,se,se,ne,se,se,se,se,se,se,se,sw,se,se,se,se,se,se,nw,se,se,s,se,se,se,se,s,s,se,se,se,s,se,se,se,s,s,n,se,se,se,se,n,n,se,sw,nw,se,s,se,nw,se,s,nw,nw,se,s,se,se,se,se,se,se,sw,nw,se,se,s,se,se,se,se,se,se,n,n,ne,se,s,s,se,se,se,se,se,se,s,se,se,s,se,se,n,se,se,s,se,s,se,s,se,sw,se,se,sw,se,ne,se,sw,se,se,se,s,nw,se,ne,n,se,se,nw,se,ne,se,se,se,s,se,se,nw,se,s,se,se,se,nw,se,se,sw,s,se,s,se,se,nw,s,se,se,s,se,se,s,se,se,se,se,se,sw,s,se,se,s,sw,nw,ne,nw,se,nw,se,s,se,se,se,se,se,s,se,se,se,se,sw,s,sw,se,se,se,s,sw,sw,s,n,se,s,se,nw,se,se,se,ne,se,se,se,se,s,se,se,s,nw,s,se,s,nw,se,se,se,se,se,n,s,se,ne,n,se,se,nw,se,s,se,n,se,nw,s,s,s,se,nw,s,s,se,s,se,se,nw,s,se,s,se,se,se,se,n,se,se,s,se,se,se,se,s,s,se,s,se,se,s,se,s,n,se,n,se,se,s,se,s,se,se,s,s,se,se,s,se,se,se,se,s,s,s,se,s,nw,s,se,se,se,ne,nw,se,se,se,se,se,se,n,se,se,se,se,se,se,nw,se,se,se,s,s,nw,se,ne,se,s,se,ne,se,se,nw,se,se,se,sw,n,se,sw,se,se,nw,ne,s,se,sw,se,s,s,s,se,s,se,n,sw,sw,se,se,se,ne,se,s,se,sw,n,se,se,se,s,s,se,s,se,n,s,ne,se,se,s,se,se,s,sw,s,se,se,ne,s,n,se,se,se,s,s,s,se,se,s,s,ne,se,s,se,nw,se,s,se,se,s,s,s,se,n,se,se,ne,se,se,s,sw,se,s,ne,se,se,se,s,s,se,se,se,se,se,se,se,s,ne,se,s,se,s,s,nw,nw,s,s,nw,s,se,se,ne,se,se,se,n,s,s,s,s,se,se,s,s,s,nw,sw,se,s,s,n,se,s,s,s,s,n,s,se,s,s,se,sw,nw,nw,se,se,se,s,sw,se,se,se,s,se,se,s,s,s,se,ne,s,se,s,s,se,s,ne,se,se,se,se,se,se,ne,se,ne,s,se,se,se,se,se,s,s,s,n,se,nw,nw,s,se,sw,se,se,s,se,se,nw,s,s,s,ne,nw,se,se,se,n,ne,se,s,se,ne,se,ne,sw,ne,se,s,sw,se,se,se,s,s,ne,s,se,se,sw,s,s,s,s,se,se,s,s,se,s,se,s,s,nw,s,s,s,s,nw,nw,se,s,s,sw,s,se,nw,s,se,s,se,s,se,n,sw,n,ne,s,s,s,se,se,nw,s,n,se,s,s,s,se,s,s,s,sw,se,se,se,se,se,se,sw,s,nw,se,n,s,se,sw,nw,se,se,se,se,s,ne,se,ne,s,s,se,se,se,s,s,s,s,n,se,sw,n,s,nw,s,se,s,se,se,se,s,se,n,s,se,nw,se,s,s,se,se,se,s,s,n,s,se,s,s,s,se,se,se,s,s,s,s,se,se,s,se,s,s,s,s,s,s,s,s,nw,nw,se,n,sw,s,s,ne,s,nw,s,se,s,s,sw,s,se,nw,se,s,s,s,s,s,s,s,se,se,s,se,ne,s,se,se,se,s,s,s,se,ne,s,ne,s,s,se,s,s,ne,s,s,se,s,s,s,s,s,se,n,sw,n,s,se,se,s,s,nw,s,sw,se,n,s,se,s,s,sw,s,s,s,s,s,nw,s,nw,se,se,s,s,nw,se,s,s,sw,sw,s,se,se,s,s,s,se,s,se,s,s,s,se,s,ne,s,s,se,s,s,se,se,s,s,s,n,s,s,s,s,se,s,s,se,s,s,se,s,s,s,nw,se,s,s,se,se,se,nw,s,se,ne,s,se,s,n,nw,se,sw,se,se,s,se,s,se,s,sw,s,se,se,se,nw,s,s,s,s,sw,s,s,s,n,s,sw,s,s,se,se,se,s,se,s,s,s,se,s,se,se,nw,s,s,se,ne,s,se,s,se,se,se,s,s,s,s,se,s,s,s,s,se,s,s,s,s,se,se,se,sw,s,se,s,s,nw,s,s,se,s,se,s,se,s,sw,s,ne,s,s,ne,s,sw,s,s,ne,n,s,se,se,s,s,s,s,se,se,s,s,se,se,s,nw,s,s,n,s,ne,se,n,s,s,s,s,s,sw,s,n,n,s,s,sw,s,sw,n,se,s,s,s,s,nw,se,s,s,s,s,s,s,se,s,s,sw,s,s,s,se,se,ne,s,s,s,ne,se,se,s,s,se,n,n,se,n,sw,s,sw,se,nw,n,s,n,s,nw,sw,s,se,se,s,s,s,s,s,s,se,s,s,se,s,s,s,s,s,sw,se,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,nw,se,s,se,s,s,s,s,s,s,s,s,se,nw,se,s,s,s,se,nw,s,s,ne,s,s,se,se,sw,s,ne,n,s,s,se,n,ne,se,s,s,s,s,nw,s,ne,s,s,n,s,s,s,s,s,se,s,s,s,s,se,s,s,s,s,n,s,se,s,n,s,s,sw,s,s,s,s,s,se,s,ne,s,sw,n,s,n,se,nw,nw,s,sw,ne,n,sw,n,sw,s,n,s,se,s,se,s,s,s,s,nw,se,s,s,s,se,sw,s,se,s,s,s,s,s,s,s,s,s,s,se,ne,nw,s,s,s,s,s,se,s,ne,sw,se,se,sw,sw,s,se,ne,s,nw,ne,n,s,s,s,s,s,ne,s,s,s,s,se,s,se,s,s,s,sw,s,s,se,s,s,s,s,n,se,s,ne,s,s,s,s,se,sw,se,s,s,s,s,s,se,s,n,n,s,s,sw,s,s,s,s,ne,s,sw,s,s,s,s,s,sw,s,s,n,s,n,s,s,s,n,se,s,s,s,s,s,s,s,s,s,s,s,s,ne,sw,s,s,ne,nw,se,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,sw,s,s,s,nw,s,s,se,se,s,n,s,se,s,s,s,se,s,nw,s,s,s,s,se,s,s,s,ne,s,s,s,se,s,s,s,s,s,s,s,n,s,s,s,s,s,ne,s,s,s,s,sw,s,s,s,s,s,s,s,s,s,s,ne,se,sw,s,sw,s,s,s,se,s,s,s,s,se,s,s,ne,s,s,s,s,se,ne,se,n,n,n,n,n,n,nw,nw,sw,sw,nw,ne,sw,ne,sw,nw,sw,ne,s,sw,sw,sw,sw,s,sw,sw,sw,sw,nw,s,s,s,nw,s,s,s,se,s,se,s,se,n,se,s,se,s,nw,sw,se,se,s,se,se,se,se,se,se,se,se,nw,se,se,se,se,se,ne,se,ne,s,se,se,se,se,se,ne,ne,ne,ne,ne,ne,se,ne,ne,ne,ne,ne,ne,s,ne,nw,ne,sw,ne,ne,ne,ne,ne,ne,ne,se,n,ne,ne,se,ne,ne,n,se,ne,ne,sw,ne,ne,n,ne,n,ne,n,n,n,sw,n,ne,n,ne,ne,se,ne,n,n,ne,n,n,s,n,n,ne,n,s,n,n,n,s,n,ne,n,n,n,n,n,se,nw,nw,n,n,nw,n,se,n,sw,s,n,nw,nw,se,nw,nw,nw,nw,n,n,se,n,n,n,nw,nw,n,nw,ne,n,nw,n,nw,sw,nw,n,n,n,ne,se,nw,n,nw,n,n,nw,n,nw,n,nw,n,nw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,se,sw,sw,nw,se,nw,s,nw,nw,nw,nw,nw,nw,nw,s,n,nw,nw,nw,sw,nw,se,nw,nw,nw,nw,sw,sw,nw,s,sw,nw,s,nw,nw,sw,nw,sw,sw,nw,sw,se,nw,nw,nw,nw,nw,sw,sw,nw,se,sw,sw,nw,sw,nw,se,sw,nw,nw,nw,n,nw,sw,nw,ne,nw,nw,s,nw,nw,nw,sw,nw,sw,nw,sw,sw,sw,sw,n,sw,nw,s,sw,nw,ne,sw,n,s,sw,sw,sw,sw,ne,sw,sw,sw,nw,sw,s,sw,sw,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,se,n,sw,s,sw,sw,n,sw,sw,s,s,sw,sw,sw,sw,sw,sw,sw,s,s,sw,sw,sw,ne,sw,sw,s,sw,s,nw,sw,sw,se,se,sw,sw,sw,s,s,s,sw,nw,sw,nw,s,sw,sw,sw,sw,sw,sw,s,sw,s,sw,sw,sw,s,sw,s,sw,s,sw,s,sw,s,sw,s,sw,sw,s,s,s,sw,n,sw,s,n,s,s,s,sw,s,n,s,sw,sw,sw,sw,s,s,s,s,s,s,s,s,sw,sw,s,sw,se,s,s,s,sw,s,s,sw,s,ne,s,s,s,s,s,s,s,s,s,n,se,s,s,nw,s,s,s,se,s,s,s,s,s,s,s,s,s,s,nw,se,s,s,s,sw,s,s,s,s,s,s,s,ne,n,s,se,s,s,s,s,s,s,se,se,nw,nw,s,s,s,s,s,se,sw,s,s,se,s,s,s,s,s,s,s,s,s,n,s,s,s,se,s,s,s,s,s,s,se,s,s,n,s,s,se,s,s,s,se,s,s,nw,s,s,s,n,s,s,se,s,se,s,n,ne,s,s,s,s,se,ne,n,s,se,s,se,s,s,se,s,s,s,s,s,se,s,sw,s,se,se,s,se,s,s,ne,s,ne,ne,se,s,ne,se,s,ne,s,se,ne,se,se,se,sw,s,se,se,se,se,se,n,s,s,se,s,se,s,s,se,se,s,s,se,se,nw,se,ne,s,s,se,se,se,se,se,s,se,ne,se,se,s,ne,se,sw,se,se,se,se,se,nw,se,se,se,se,se,se,se,s,ne,n,sw,ne,se,se,se,se,se,ne,se,se,se,se,se,se,se,se,se,n,se,s,s,se,se,sw,nw,s,se,se,ne,se,se,ne,s,se,se,se,se,se,se,se,se,n,se,se,se,se,se,se,ne,se,ne,nw,se,se,ne,nw,nw,se,se,se,se,sw,se,se,sw,n,se,se,sw,se,se,se,se,nw,se,se,se,se,se,nw,sw,ne,ne,ne,se,ne,ne,nw,se,se,nw,se,se,se,se,se,ne,se,s,se,se,s,ne,se,ne,se,se,se,ne,s,se,ne,ne,ne,ne,se,n,se,se,se,se,ne,se,n,ne,se,se,se,ne,sw,nw,nw,ne,se,ne,se,se,se,n,se,ne,se,se,se,se,ne,se,ne,n,se,se,ne,nw,ne,ne,se,se,n,se,se,s,se,sw,ne,ne,ne,se,se,se,ne,ne,se,n,ne,ne,se,ne,ne,ne,se,ne,sw,n,ne,s,se,se,se,sw,ne,se,se,se,sw,ne,se,ne,ne,ne,sw,ne,ne,s,ne,s,ne,se,ne,ne,se,se,se,nw,ne,ne,ne,se,ne,se,se,ne,ne,ne,se,sw,ne,ne,ne,ne,se,ne,sw,ne,sw,ne,n,nw,sw,ne,ne,ne,sw,ne,se,sw,n,ne,ne,se,n,se,ne,n,ne,se,ne,nw,ne,ne,s,n,se,ne,nw,ne,se,ne,ne,ne,se,ne,se,se,ne,ne,ne,se,se,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,se,se,nw,ne,ne,ne,ne,ne,ne,ne,se,se,ne,ne,ne,se,ne,ne,ne,ne,ne,ne,ne,ne,nw,n,n,ne,nw,ne,ne,sw,se,ne,s,ne,nw,ne,nw,ne,ne,ne,ne,ne,ne,ne,n,n,ne,n,ne,ne,s,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,ne,se,n,n,ne,s,ne,ne,ne,nw,se,ne,nw,nw,ne,n,n,ne,ne,nw,ne,n,ne,sw,n,ne,ne,ne,ne,ne,ne,ne,ne,ne,n,n,ne,ne,ne,ne,ne,n,n,ne,ne,se,sw,ne,n,ne,n,ne,ne,sw,ne,ne,n,ne,ne,se,sw,ne,ne,ne,s,n,n,s,ne,n,se,ne,ne,sw,s,ne,nw,n,n,ne,nw,ne,n,n,s,s,n,ne,ne,n,n,nw,ne,n,ne,ne,ne,ne,n,s,n,se,sw,se,ne,ne,ne,n,ne,ne,ne,n,nw,ne,n,n,ne,nw,ne,ne,sw,n,n,se,ne,n,ne,nw,se,ne,ne,ne,n,ne,ne,n,ne,ne,ne,ne,n,ne,ne,s,n,s,nw,n,n,nw,ne,ne,ne,s,n,s,ne,ne,ne,n,se,ne,ne,nw,n,n,n,ne,s,sw,n,ne,n,n,sw,n,ne,n,ne,n,sw,ne,ne,ne,sw,n,ne,ne,sw,ne,ne,n,n,se,ne,ne,s,ne,ne,n,nw,s,n,n,ne,nw,sw,ne,n,ne,ne,n,ne,n,se,n,ne,sw,sw,n,n,n,ne,ne,n,ne,n,s,ne,se,ne,nw,n,n,n,n,se,nw,ne,n,n,n,n,nw,nw,ne,n,se,ne,n,n,n,ne,n,ne,ne,ne,sw,n,s,n,n,n,ne,se,n,n,ne,ne,ne,sw,ne,ne,n,n,n,n,n,n,ne,ne,n,s,n,n,n,n,ne,ne,ne,n,n,se,nw,n,n,n,n,s,n,ne,n,n,n,n,n,n,n,n,sw,n,n,ne,n,n,n,s,ne,nw,n,nw,sw,n,n,n,n,s,n,n,ne,n,n,n,n,n,n,n,s,s,n,n,n,ne,n,s,ne,n,se,n,n,n,sw,n,n,n,ne,n,n,n,n,sw,se,n,sw,n,n,n,sw,ne,s,n,n,sw,s,se,n,n,n,n,ne,n,n,n,n,se,n,n,n,n,n,n,se,n,sw,n,n,n,nw,s,sw,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,sw,n,n,se,n,nw,se,n,sw,n,n,n,n,n,n,nw,n,n,n,n,n,n,n,n,n,sw,n,nw,ne,n,n,n,n,n,n,n,nw,n,n,sw,n,n,n,n,n,n,n,n,ne,n,s,n,n,n,n,ne,n,s,ne,n,n,n,nw,n,n,n,n,n,se,nw,n,nw,sw,n,n,ne,n,n,n,n,nw,n,n,n,nw,n,n,nw,n,n,n,sw,ne,n,n,s,n,n,n,nw,n,ne,n,nw,n,n,nw,nw,n,nw,nw,n,n,n,nw,sw,n,n,nw,sw,sw,n,nw,n,s,nw,n,s,nw,nw,nw,nw,n,se,n,n,nw,sw,nw,n,nw,n,ne,n,n,nw,nw,n,n,nw,nw,ne,nw,se,nw,nw,sw,n,n,n,sw,sw,n,n,n,n,nw,n,nw,nw,n,nw,n,nw,s,n,n,nw,nw,n,n,nw,n,sw,nw,nw,n,n,nw,nw,s,n,n,n,n,s,nw,n,n,n,n,n,nw,n,n,nw,n,nw,n,n,n,nw,n,n,nw,ne,nw,nw,n,nw,nw,n,n,nw,n,nw,ne,n,nw,n,n,nw,nw,nw,ne,nw,nw,n,n,n,se,ne,n,nw,n,n,n,n,nw,nw,n,nw,n,n,s,n,n,n,n,nw,n,nw,nw,se,n,nw,n,n,nw,nw,nw,nw,n,n,n,s,nw,nw,nw,ne,s,nw,nw,nw,n,nw,nw,sw,nw,n,nw,nw,n,nw,nw,n,nw,sw,n,n,n,n,nw,nw,nw,n,n,n,n,nw,n,n,ne,n,nw,nw,nw,ne,ne,n,n,nw,nw,ne,n,nw,nw,nw,nw,n,n,n,nw,nw,n,n,n,ne,nw,nw,nw,se,n,n,nw,n,nw,n,nw,nw,n,s,nw,n,nw,nw,nw,nw,nw,ne,nw,nw,n,nw,n,n,n,nw,n,n,ne,nw,n,n,nw,sw,nw,nw,nw,nw,nw,nw,nw,nw,s,nw,se,n,nw,nw,nw,nw,nw,nw,s,nw,n,nw,n,nw,nw,nw,nw,nw,se,s,nw,se,nw,n,ne,nw,nw,nw,n,nw,nw,nw,nw,nw,nw,n,ne,nw,se,n,nw,nw,nw,nw,sw,n,nw,nw,n,nw,n,nw,nw,ne,n,nw,n,ne,se,n,sw,nw,ne,nw,sw,nw,ne,n,nw,ne,se,nw,nw,nw,nw,nw,ne,nw,n,nw,s,nw,nw,nw,ne,nw,nw,nw,nw,s,nw,n,sw,s,nw,se,nw,ne,nw,n,nw,sw,nw,n,nw,nw,sw,nw,nw,nw,nw,n,nw,nw,nw,nw,nw,nw,nw,nw,se,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,n,s,s,nw,nw,nw,se,nw,nw,nw,nw,sw,nw,nw,n,nw,n,sw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,s,nw,nw,nw,nw,nw,nw,nw,nw,n,nw,sw,nw,nw,nw,nw,nw,s,nw,sw,nw,nw,nw,se,nw,nw,sw,nw,nw,nw,nw,nw,nw,n,nw,nw,nw,n,nw,sw,n,nw,nw,se,nw,sw,se,sw,nw,sw,n,nw,nw,nw,ne,nw,nw,nw,se,nw,ne,ne,nw,nw,nw,nw,nw,s,nw,ne,n,nw,ne,nw,sw,nw,nw,sw,nw,se,nw,nw,ne,nw,ne,nw,sw,sw,nw,nw,nw,nw,nw,sw,nw,nw,nw,se,sw,sw,nw,s,sw,nw,nw,nw,nw,ne,nw,ne,nw,nw,sw,nw,nw,nw,sw,nw,nw,nw,ne,sw,s,nw,ne,nw,nw,se,se,n,nw,nw,sw,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,n,nw,sw,nw,s,nw,sw,nw,nw,nw,sw,nw,nw,se,nw,n,nw,nw,ne,sw,nw,ne,nw,se,s,nw,nw,n,n,nw,nw,nw,nw,ne,se,sw,nw,nw,nw,nw,se,nw,nw,nw,sw,nw,nw,s,nw,nw,nw,nw,nw,sw,nw,nw,nw,nw,sw,nw,sw,nw,nw,nw,ne,nw,sw,nw,sw,nw,sw,nw,nw,nw,sw,ne,sw,nw,sw,nw,se,nw,se,nw,nw,n,sw,nw,nw,nw,nw,sw,sw,nw,sw,nw,nw,nw,nw,nw,sw,sw,nw,nw,nw,sw,nw,nw,nw,nw,ne,nw,n,nw,sw,sw,nw,nw,nw,nw,nw,sw,nw,sw,nw,sw,sw,nw,nw,sw,sw,nw,nw,nw,ne,sw,ne,sw,sw,nw,nw,nw,nw,nw,nw,nw,sw,se,nw,nw,sw,sw,nw,nw,s,nw,nw,sw,nw,nw,nw,n,sw,nw,sw,sw,n,nw,nw,nw,sw,sw,nw,s,nw,nw,nw,sw,nw,n,nw,nw,nw,nw,n,nw,nw,nw,sw,nw,nw,nw,se,nw,sw,nw,sw,sw,sw,nw,ne,s,sw,ne,nw,nw,s,nw,sw,nw,s,nw,sw,sw,sw,s,nw,se,nw,nw,nw,sw,sw,sw,n,nw,sw,nw,nw,nw,nw,nw,nw,sw,n,nw,nw,nw,s,nw,nw,nw,nw,sw,sw,sw,nw,nw,sw,sw,nw,nw,sw,nw,sw,nw,sw,sw,sw,sw,sw,nw,sw,s,nw,nw,sw,sw,sw,sw,nw,sw,sw,nw,sw,ne,nw,sw,nw,nw,sw,nw,se,nw,n,sw,nw,s,nw,ne,nw,se,sw,sw,sw,n,ne,sw,nw,sw,nw,sw,se,s,sw,sw,nw,sw,sw,nw,nw,sw,nw,sw,nw,sw,nw,sw,sw,sw,ne,sw,nw,sw,nw,nw,sw,nw,n,nw,sw,n,nw,nw,sw,sw,se,nw,nw,sw,nw,sw,sw,sw,sw,nw,se,sw,sw,nw,nw,sw,sw,sw,nw,sw,nw,nw,nw,sw,n,nw,sw,n,nw,s,nw,nw,sw,s,sw,sw,nw,sw,sw,sw,nw,ne,sw,ne,sw,s,sw,sw,nw,sw,nw,sw,sw,nw,nw,nw,sw,sw,ne,sw,n,sw,sw,sw,n,sw,sw,nw,sw,n,n,sw,sw,sw,nw,s,sw,sw,sw,sw,nw,nw,sw,nw,sw,sw,s,sw,nw,sw,sw,sw,s,sw,sw,n,nw,sw,n,sw,sw,s,nw,se,sw,sw,sw,sw,sw,nw,sw,sw,sw,sw,sw,nw,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,nw,sw,sw,sw,s,ne,se,nw,sw,sw,sw,nw,s,nw,nw,sw,sw,s,sw,sw,se,sw,sw,sw,sw,sw,sw,sw,sw,sw,nw,sw,nw,nw,nw,nw,nw,nw,s,nw,sw,sw,sw,sw,sw,n,sw,se,sw,sw,s,sw,sw,sw,sw,sw,s,s,sw,s,ne,sw,sw,s,sw,sw,nw,sw,sw,sw,sw,ne,se,sw,sw,sw,sw,n,sw,sw,sw,sw,s,nw,se,nw,nw,sw,sw,nw,se,nw,se,sw,sw,sw,nw,s,sw,sw,sw,sw,sw,sw,sw,sw,sw,ne,se,nw,nw,sw,sw,sw,n,s,sw,nw,nw,se,sw,ne,sw,n,s,sw,sw,nw,sw,sw,sw,sw,sw,ne,sw,sw,se,sw,sw,sw,sw,nw,sw,sw,ne,sw,nw,sw,s,sw,sw,sw,sw,sw,sw,sw,sw,se,sw,se,sw,sw,sw,sw,sw,nw,sw,sw,sw,sw,sw,se,sw,sw,se,sw,sw,ne diff --git a/2017/inputs/day_12.txt b/2017/inputs/day_12.txt deleted file mode 100644 index 80e4ce6..0000000 --- a/2017/inputs/day_12.txt +++ /dev/null @@ -1,2000 +0,0 @@ -0 <-> 199, 1774 -1 <-> 350, 1328, 1920 -2 <-> 477, 984, 1419 -3 <-> 1465, 1568 -4 <-> 359, 1047, 1215, 1580, 1969 -5 <-> 613 -6 <-> 49, 617, 1213 -7 <-> 1263 -8 <-> 410 -9 <-> 1224 -10 <-> 1157 -11 <-> 304, 1168, 1875 -12 <-> 868, 891, 1369, 1712 -13 <-> 958, 1371 -14 <-> 1814 -15 <-> 261, 556 -16 <-> 830, 1646, 1901, 1933 -17 <-> 962, 1778 -18 <-> 109, 1229 -19 <-> 239, 1070, 1886, 1930 -20 <-> 327, 1307, 1801, 1905 -21 <-> 943, 1950 -22 <-> 1310 -23 <-> 659, 917 -24 <-> 373 -25 <-> 369 -26 <-> 947, 1023 -27 <-> 338, 1901 -28 <-> 1691 -29 <-> 132, 1219, 1699, 1962 -30 <-> 424, 822, 1419 -31 <-> 1444, 1464 -32 <-> 702, 1517 -33 <-> 1639 -34 <-> 909 -35 <-> 690, 1655 -36 <-> 988, 1149, 1166 -37 <-> 649, 1300, 1441, 1699 -38 <-> 1848 -39 <-> 382 -40 <-> 827, 1203, 1510 -41 <-> 714, 1056, 1184 -42 <-> 1018, 1873 -43 <-> 214 -44 <-> 670, 957 -45 <-> 45 -46 <-> 1195 -47 <-> 559, 1504 -48 <-> 1958 -49 <-> 6 -50 <-> 50, 1248 -51 <-> 1151 -52 <-> 52, 521, 1791 -53 <-> 304 -54 <-> 601 -55 <-> 1328 -56 <-> 939 -57 <-> 1583, 1995 -58 <-> 1422, 1694 -59 <-> 395, 1233 -60 <-> 862, 1811 -61 <-> 345, 1694 -62 <-> 62, 276 -63 <-> 280 -64 <-> 199 -65 <-> 117, 930 -66 <-> 364, 697 -67 <-> 1043 -68 <-> 287, 504, 1554 -69 <-> 498, 706 -70 <-> 77, 333, 713, 972, 1299 -71 <-> 1643 -72 <-> 694 -73 <-> 1381 -74 <-> 955, 1790 -75 <-> 1691, 1743 -76 <-> 76, 638, 1429 -77 <-> 70 -78 <-> 1513 -79 <-> 1397, 1716 -80 <-> 897 -81 <-> 968, 1841 -82 <-> 649 -83 <-> 522 -84 <-> 84, 125, 399, 498 -85 <-> 880, 1554, 1888 -86 <-> 86 -87 <-> 579, 1947 -88 <-> 470, 1451, 1750 -89 <-> 805, 1434 -90 <-> 453 -91 <-> 1208 -92 <-> 688, 1358, 1746 -93 <-> 357, 647 -94 <-> 234, 1270, 1520 -95 <-> 620, 1454 -96 <-> 390, 869, 919 -97 <-> 693, 1783 -98 <-> 259, 529, 782, 1018 -99 <-> 678 -100 <-> 1215 -101 <-> 459, 887 -102 <-> 888, 1135 -103 <-> 1006 -104 <-> 1375, 1422 -105 <-> 1657, 1730 -106 <-> 216, 1434 -107 <-> 333 -108 <-> 468, 1654 -109 <-> 18, 1791 -110 <-> 372 -111 <-> 111, 861, 1383 -112 <-> 1359, 1937 -113 <-> 414, 736, 1446 -114 <-> 426, 1457 -115 <-> 1605, 1672 -116 <-> 116, 713, 1584, 1602 -117 <-> 65 -118 <-> 1611, 1897 -119 <-> 541, 1569 -120 <-> 412, 787 -121 <-> 1344 -122 <-> 698, 752, 1693 -123 <-> 1173, 1576, 1634, 1802 -124 <-> 735 -125 <-> 84, 1032 -126 <-> 126, 225, 332 -127 <-> 1350 -128 <-> 128, 319, 327, 1582 -129 <-> 129, 654, 1260 -130 <-> 1080, 1296, 1350 -131 <-> 131 -132 <-> 29, 856, 1064 -133 <-> 659, 1367, 1776 -134 <-> 648, 1147, 1450, 1910 -135 <-> 411 -136 <-> 353, 935, 1590 -137 <-> 228 -138 <-> 194, 452, 1746, 1794 -139 <-> 139, 494, 1635 -140 <-> 681 -141 <-> 1507 -142 <-> 1288 -143 <-> 845 -144 <-> 1516 -145 <-> 502, 1146, 1155, 1809 -146 <-> 146, 750 -147 <-> 1600 -148 <-> 1206 -149 <-> 829, 1457 -150 <-> 675, 915 -151 <-> 651, 1678 -152 <-> 888, 1503 -153 <-> 498, 960, 1515 -154 <-> 1468 -155 <-> 751 -156 <-> 528, 803, 1655 -157 <-> 1486, 1937 -158 <-> 590, 1876 -159 <-> 159, 185, 1287, 1550, 1588 -160 <-> 160, 548 -161 <-> 1303, 1364 -162 <-> 1855 -163 <-> 1181 -164 <-> 442 -165 <-> 490 -166 <-> 1105 -167 <-> 1121 -168 <-> 760, 1129 -169 <-> 747 -170 <-> 1890 -171 <-> 1644 -172 <-> 593, 665 -173 <-> 1092, 1869 -174 <-> 705 -175 <-> 1345, 1999 -176 <-> 234, 606 -177 <-> 557, 688 -178 <-> 373 -179 <-> 1376 -180 <-> 638 -181 <-> 1996 -182 <-> 1094, 1206, 1748 -183 <-> 931 -184 <-> 880 -185 <-> 159, 1058, 1704 -186 <-> 765, 1178, 1877 -187 <-> 732 -188 <-> 188 -189 <-> 189, 1871 -190 <-> 395, 1639 -191 <-> 441 -192 <-> 192, 1034 -193 <-> 494 -194 <-> 138, 995, 1308 -195 <-> 1024 -196 <-> 226, 1632, 1919 -197 <-> 786 -198 <-> 286, 758, 1852 -199 <-> 0, 64, 1646 -200 <-> 314 -201 <-> 459, 658 -202 <-> 321, 492, 599, 1081, 1460 -203 <-> 225 -204 <-> 331, 462, 600 -205 <-> 898 -206 <-> 734, 1321 -207 <-> 558, 991 -208 <-> 397 -209 <-> 1145, 1886 -210 <-> 1343, 1925 -211 <-> 840, 1409 -212 <-> 1308 -213 <-> 1813 -214 <-> 43, 282 -215 <-> 1270 -216 <-> 106, 836, 1275, 1507 -217 <-> 312 -218 <-> 290, 386, 639, 1920 -219 <-> 784, 1001 -220 <-> 220, 322 -221 <-> 1681 -222 <-> 1616, 1653 -223 <-> 436, 1272, 1625 -224 <-> 1398, 1696 -225 <-> 126, 203, 1182 -226 <-> 196, 1655 -227 <-> 623 -228 <-> 137, 923 -229 <-> 253, 1387 -230 <-> 1374 -231 <-> 389, 1499 -232 <-> 442 -233 <-> 473, 1406 -234 <-> 94, 176 -235 <-> 235 -236 <-> 607, 838, 1487, 1856 -237 <-> 818 -238 <-> 387, 628 -239 <-> 19 -240 <-> 818 -241 <-> 1027, 1524 -242 <-> 1085, 1971 -243 <-> 1942 -244 <-> 299, 390, 916 -245 <-> 906 -246 <-> 246, 534, 763, 1427 -247 <-> 531, 1675 -248 <-> 336, 1832 -249 <-> 1497 -250 <-> 1836 -251 <-> 1309 -252 <-> 581, 1104 -253 <-> 229, 877, 1743 -254 <-> 254, 621 -255 <-> 831, 866, 874 -256 <-> 1942 -257 <-> 906 -258 <-> 1224 -259 <-> 98, 316, 419, 718, 1519 -260 <-> 1223, 1516, 1547, 1845, 1944 -261 <-> 15, 278, 1607, 1808 -262 <-> 1112, 1172 -263 <-> 424 -264 <-> 680 -265 <-> 1968 -266 <-> 804, 1252 -267 <-> 1739 -268 <-> 538, 546 -269 <-> 1265 -270 <-> 270 -271 <-> 1150 -272 <-> 272 -273 <-> 1208, 1537 -274 <-> 1427 -275 <-> 1349, 1829 -276 <-> 62, 906 -277 <-> 461, 634, 1887 -278 <-> 261, 1224, 1904 -279 <-> 303, 537 -280 <-> 63, 280, 926, 931 -281 <-> 862, 1041, 1119, 1863 -282 <-> 214, 488, 644 -283 <-> 646, 1124 -284 <-> 860, 1759 -285 <-> 746 -286 <-> 198 -287 <-> 68, 1045 -288 <-> 332, 1133, 1277, 1628, 1744, 1770, 1934 -289 <-> 1578, 1766 -290 <-> 218, 439, 1661 -291 <-> 596, 1377, 1620 -292 <-> 700, 848, 1099 -293 <-> 293, 1592, 1938 -294 <-> 653, 1948 -295 <-> 1505, 1936 -296 <-> 625, 925 -297 <-> 1105, 1185 -298 <-> 298, 544, 1444 -299 <-> 244, 933, 1012 -300 <-> 300, 1461, 1883 -301 <-> 880, 1698 -302 <-> 1221 -303 <-> 279, 375 -304 <-> 11, 53, 967, 1362 -305 <-> 777 -306 <-> 344 -307 <-> 582, 770 -308 <-> 792, 1895 -309 <-> 539 -310 <-> 390, 1482 -311 <-> 441, 1294 -312 <-> 217, 743 -313 <-> 1522 -314 <-> 200, 502, 835, 1084, 1134 -315 <-> 1970 -316 <-> 259 -317 <-> 1302, 1437 -318 <-> 365 -319 <-> 128, 976 -320 <-> 1056, 1466, 1778 -321 <-> 202 -322 <-> 220, 1431 -323 <-> 838, 1465, 1895 -324 <-> 443 -325 <-> 1056 -326 <-> 463, 1741, 1761 -327 <-> 20, 128, 681, 1797 -328 <-> 328, 348 -329 <-> 378, 1738 -330 <-> 459 -331 <-> 204, 331 -332 <-> 126, 288 -333 <-> 70, 107, 1747 -334 <-> 517, 614 -335 <-> 1259 -336 <-> 248, 550, 1485 -337 <-> 337 -338 <-> 27, 1212, 1264 -339 <-> 430, 963 -340 <-> 769 -341 <-> 341 -342 <-> 593, 718, 895 -343 <-> 569 -344 <-> 306, 1440, 1650, 1742 -345 <-> 61, 1006, 1664 -346 <-> 448, 1928 -347 <-> 1022, 1052 -348 <-> 328, 1232 -349 <-> 1232 -350 <-> 1, 526, 1086, 1821 -351 <-> 584 -352 <-> 518, 686, 1324, 1437 -353 <-> 136, 936 -354 <-> 1470 -355 <-> 1173, 1814 -356 <-> 698 -357 <-> 93 -358 <-> 737, 986, 1169 -359 <-> 4 -360 <-> 363 -361 <-> 417, 841 -362 <-> 928 -363 <-> 360, 1751 -364 <-> 66, 364, 1596 -365 <-> 318, 1766 -366 <-> 366 -367 <-> 367 -368 <-> 1897 -369 <-> 25, 369, 1460 -370 <-> 370 -371 <-> 1568 -372 <-> 110, 582 -373 <-> 24, 178, 1924 -374 <-> 374 -375 <-> 303 -376 <-> 1331, 1990 -377 <-> 388, 601, 837 -378 <-> 329 -379 <-> 623 -380 <-> 671 -381 <-> 938 -382 <-> 39, 1458 -383 <-> 383, 1490, 1763, 1844 -384 <-> 832 -385 <-> 745, 1673 -386 <-> 218, 779 -387 <-> 238 -388 <-> 377, 1817 -389 <-> 231, 656, 1038, 1960 -390 <-> 96, 244, 310, 721, 1094, 1501 -391 <-> 438, 819, 1870 -392 <-> 697 -393 <-> 443, 1275, 1463 -394 <-> 480 -395 <-> 59, 190, 1117, 1997 -396 <-> 595 -397 <-> 208, 397, 1727 -398 <-> 1153 -399 <-> 84 -400 <-> 825, 1693 -401 <-> 812 -402 <-> 1191 -403 <-> 1446, 1820 -404 <-> 442, 871, 1637 -405 <-> 426, 1067 -406 <-> 460, 1290 -407 <-> 1951 -408 <-> 1335, 1391, 1897 -409 <-> 984, 1217 -410 <-> 8, 1607 -411 <-> 135, 411, 454, 1393 -412 <-> 120 -413 <-> 1208 -414 <-> 113 -415 <-> 415, 1803 -416 <-> 428 -417 <-> 361 -418 <-> 1129 -419 <-> 259 -420 <-> 628 -421 <-> 1485 -422 <-> 1110, 1785 -423 <-> 1418 -424 <-> 30, 263 -425 <-> 1497 -426 <-> 114, 405, 780 -427 <-> 427 -428 <-> 416, 782 -429 <-> 429 -430 <-> 339, 1513 -431 <-> 886, 1408 -432 <-> 586, 1725 -433 <-> 889, 1753, 1881 -434 <-> 1078, 1120 -435 <-> 660, 1194, 1662 -436 <-> 223, 1332 -437 <-> 1487 -438 <-> 391 -439 <-> 290 -440 <-> 1828 -441 <-> 191, 311, 1003, 1561, 1702 -442 <-> 164, 232, 404 -443 <-> 324, 393 -444 <-> 1215, 1251 -445 <-> 792 -446 <-> 1015, 1392 -447 <-> 777 -448 <-> 346, 1097 -449 <-> 1117 -450 <-> 1395 -451 <-> 1414, 1845 -452 <-> 138 -453 <-> 90, 453 -454 <-> 411 -455 <-> 1801 -456 <-> 456, 791, 902, 1111 -457 <-> 457, 1075, 1384 -458 <-> 770, 1600 -459 <-> 101, 201, 330, 1108 -460 <-> 406, 1529 -461 <-> 277, 839, 1552 -462 <-> 204 -463 <-> 326, 1899 -464 <-> 1098 -465 <-> 764, 1630, 1779 -466 <-> 627 -467 <-> 904 -468 <-> 108, 1849 -469 <-> 469, 603, 780 -470 <-> 88, 1276, 1533 -471 <-> 1492 -472 <-> 472, 1048, 1409, 1518, 1758 -473 <-> 233, 1413, 1826 -474 <-> 780 -475 <-> 1005, 1968 -476 <-> 809 -477 <-> 2 -478 <-> 753 -479 <-> 479, 1296, 1615 -480 <-> 394, 775, 1623 -481 <-> 774, 1604 -482 <-> 763 -483 <-> 522, 591, 1344 -484 <-> 894, 1219 -485 <-> 507, 1114, 1250, 1351 -486 <-> 1099, 1879 -487 <-> 487 -488 <-> 282, 1164, 1189 -489 <-> 900, 1889 -490 <-> 165, 918, 1007 -491 <-> 1800 -492 <-> 202 -493 <-> 615, 899, 1200, 1326 -494 <-> 139, 193 -495 <-> 704, 1988 -496 <-> 496 -497 <-> 1149, 1216 -498 <-> 69, 84, 153 -499 <-> 1125, 1149 -500 <-> 642 -501 <-> 524, 1176 -502 <-> 145, 314 -503 <-> 1330, 1626 -504 <-> 68, 699 -505 <-> 672 -506 <-> 1083 -507 <-> 485, 1743 -508 <-> 520, 1236, 1296 -509 <-> 1676 -510 <-> 875, 1066 -511 <-> 511 -512 <-> 512, 1240 -513 <-> 705, 812 -514 <-> 1758 -515 <-> 1165, 1168 -516 <-> 811 -517 <-> 334, 1132, 1339 -518 <-> 352, 1674 -519 <-> 824, 1396, 1659 -520 <-> 508 -521 <-> 52, 915 -522 <-> 83, 483, 1637 -523 <-> 1317 -524 <-> 501 -525 <-> 525 -526 <-> 350, 850, 930 -527 <-> 527, 1338, 1449 -528 <-> 156 -529 <-> 98 -530 <-> 691, 1175, 1505 -531 <-> 247, 785, 1389, 1623 -532 <-> 1159 -533 <-> 1152, 1297 -534 <-> 246 -535 <-> 1144, 1491, 1622, 1935 -536 <-> 708 -537 <-> 279, 1656 -538 <-> 268, 538, 1756 -539 <-> 309, 802 -540 <-> 1239 -541 <-> 119, 1679, 1741 -542 <-> 1204 -543 <-> 642, 1926 -544 <-> 298 -545 <-> 1971 -546 <-> 268 -547 <-> 1465, 1613, 1614 -548 <-> 160 -549 <-> 820 -550 <-> 336 -551 <-> 1733 -552 <-> 552, 1563 -553 <-> 1654 -554 <-> 554, 1641, 1665 -555 <-> 555 -556 <-> 15 -557 <-> 177, 1204 -558 <-> 207, 1004 -559 <-> 47, 1297 -560 <-> 1189, 1709 -561 <-> 1013, 1709 -562 <-> 762, 912 -563 <-> 563 -564 <-> 585 -565 <-> 1333, 1494 -566 <-> 566, 938 -567 <-> 894 -568 <-> 586, 1397 -569 <-> 343, 1572 -570 <-> 704, 1220, 1459 -571 <-> 1451 -572 <-> 651, 846, 909 -573 <-> 1881 -574 <-> 1866 -575 <-> 1379 -576 <-> 1060, 1210 -577 <-> 1837 -578 <-> 1346 -579 <-> 87 -580 <-> 1509 -581 <-> 252, 1548 -582 <-> 307, 372 -583 <-> 624, 1599, 1753, 1908 -584 <-> 351, 774 -585 <-> 564, 977 -586 <-> 432, 568, 773, 1789 -587 <-> 826 -588 <-> 1854 -589 <-> 719, 845, 1214 -590 <-> 158, 1259 -591 <-> 483 -592 <-> 743, 898 -593 <-> 172, 342, 852, 943, 1053 -594 <-> 594 -595 <-> 396, 928 -596 <-> 291, 596 -597 <-> 597 -598 <-> 1980 -599 <-> 202, 1764 -600 <-> 204 -601 <-> 54, 377, 1340 -602 <-> 1718, 1866 -603 <-> 469, 789 -604 <-> 1006, 1033, 1626 -605 <-> 1535 -606 <-> 176 -607 <-> 236, 911, 1218 -608 <-> 1193, 1825 -609 <-> 1657 -610 <-> 733, 841 -611 <-> 747, 1892 -612 <-> 1098, 1196, 1267 -613 <-> 5, 1372 -614 <-> 334, 1492 -615 <-> 493, 798 -616 <-> 1025, 1940 -617 <-> 6, 666, 1155 -618 <-> 762, 1621, 1895 -619 <-> 1187 -620 <-> 95, 1761 -621 <-> 254 -622 <-> 784, 1476 -623 <-> 227, 379, 1081 -624 <-> 583 -625 <-> 296, 1222, 1882 -626 <-> 905 -627 <-> 466, 1692 -628 <-> 238, 420, 1004, 1412 -629 <-> 1532 -630 <-> 630 -631 <-> 977, 1092, 1458, 1713 -632 <-> 777, 1049, 1404 -633 <-> 994 -634 <-> 277 -635 <-> 635 -636 <-> 703, 1756 -637 <-> 840, 1585 -638 <-> 76, 180, 1373 -639 <-> 218, 639, 1835 -640 <-> 1559 -641 <-> 1800 -642 <-> 500, 543 -643 <-> 1808 -644 <-> 282 -645 <-> 1253, 1475 -646 <-> 283, 646, 864 -647 <-> 93, 1508 -648 <-> 134, 956, 1762 -649 <-> 37, 82 -650 <-> 1480, 1916 -651 <-> 151, 572, 1357 -652 <-> 1261 -653 <-> 294, 653 -654 <-> 129, 1139, 1176 -655 <-> 1251, 1656 -656 <-> 389 -657 <-> 1604 -658 <-> 201, 1208 -659 <-> 23, 133, 1868 -660 <-> 435 -661 <-> 1634 -662 <-> 1667, 1701 -663 <-> 974 -664 <-> 664, 1167 -665 <-> 172, 1370 -666 <-> 617 -667 <-> 1824 -668 <-> 952, 1605 -669 <-> 1822 -670 <-> 44, 670 -671 <-> 380, 1145, 1693, 1906 -672 <-> 505, 693 -673 <-> 1610 -674 <-> 1249, 1302 -675 <-> 150, 777 -676 <-> 1675 -677 <-> 910, 1282 -678 <-> 99, 1004 -679 <-> 679 -680 <-> 264, 917, 1137, 1687 -681 <-> 140, 327, 746 -682 <-> 682 -683 <-> 794, 1315 -684 <-> 1000, 1342 -685 <-> 1111, 1348, 1523, 1932 -686 <-> 352 -687 <-> 979, 1667 -688 <-> 92, 177 -689 <-> 937, 1939 -690 <-> 35, 1608 -691 <-> 530, 691 -692 <-> 1871 -693 <-> 97, 672 -694 <-> 72, 694 -695 <-> 1076 -696 <-> 1954 -697 <-> 66, 392, 1892 -698 <-> 122, 356, 698 -699 <-> 504, 1470 -700 <-> 292, 1407 -701 <-> 1231, 1327 -702 <-> 32 -703 <-> 636, 1083, 1210 -704 <-> 495, 570 -705 <-> 174, 513, 1332 -706 <-> 69, 1088 -707 <-> 1036, 1867 -708 <-> 536, 805, 1958 -709 <-> 709 -710 <-> 915, 1578 -711 <-> 711, 1478 -712 <-> 813, 927 -713 <-> 70, 116, 1469, 1539 -714 <-> 41 -715 <-> 840, 1473, 1562, 1705 -716 <-> 716 -717 <-> 949, 1864 -718 <-> 259, 342, 1557, 1853 -719 <-> 589, 781, 802 -720 <-> 1125 -721 <-> 390, 878 -722 <-> 1026 -723 <-> 1039, 1467 -724 <-> 1535 -725 <-> 883 -726 <-> 1832, 1917 -727 <-> 1245 -728 <-> 1291 -729 <-> 1203 -730 <-> 824 -731 <-> 1984 -732 <-> 187, 1214 -733 <-> 610, 1079, 1198 -734 <-> 206, 872, 1479, 1855 -735 <-> 124, 1371 -736 <-> 113, 736 -737 <-> 358, 1426 -738 <-> 974, 1024, 1717, 1842 -739 <-> 1489 -740 <-> 1634 -741 <-> 873, 1695 -742 <-> 1700 -743 <-> 312, 592, 1493 -744 <-> 948, 1306, 1400 -745 <-> 385, 1029, 1315, 1474 -746 <-> 285, 681, 793 -747 <-> 169, 611, 814, 1548 -748 <-> 748 -749 <-> 1134, 1498 -750 <-> 146 -751 <-> 155, 783, 1856 -752 <-> 122, 1417 -753 <-> 478, 1505 -754 <-> 810, 1742, 1955 -755 <-> 1735, 1847 -756 <-> 978, 1095 -757 <-> 1153, 1730 -758 <-> 198, 1476 -759 <-> 759 -760 <-> 168 -761 <-> 1496 -762 <-> 562, 618 -763 <-> 246, 482, 1258 -764 <-> 465 -765 <-> 186 -766 <-> 1448 -767 <-> 893, 896, 1019 -768 <-> 1730 -769 <-> 340, 1043, 1065 -770 <-> 307, 458, 1453 -771 <-> 1168 -772 <-> 911 -773 <-> 586 -774 <-> 481, 584, 774, 1148 -775 <-> 480, 1485, 1894 -776 <-> 926 -777 <-> 305, 447, 632, 675 -778 <-> 1690 -779 <-> 386 -780 <-> 426, 469, 474 -781 <-> 719, 1543 -782 <-> 98, 428, 903 -783 <-> 751, 1558 -784 <-> 219, 622 -785 <-> 531 -786 <-> 197, 911, 1312 -787 <-> 120, 880 -788 <-> 1089, 1487 -789 <-> 603, 844, 1681, 1731 -790 <-> 790, 1126 -791 <-> 456, 1363 -792 <-> 308, 445 -793 <-> 746 -794 <-> 683, 951 -795 <-> 1732, 1986 -796 <-> 1210, 1878 -797 <-> 804 -798 <-> 615 -799 <-> 1651 -800 <-> 851, 860, 1907 -801 <-> 1110, 1537, 1773 -802 <-> 539, 719 -803 <-> 156, 1528 -804 <-> 266, 797, 1549 -805 <-> 89, 708, 962 -806 <-> 1429 -807 <-> 1800 -808 <-> 873, 1421 -809 <-> 476, 809 -810 <-> 754 -811 <-> 516, 965 -812 <-> 401, 513 -813 <-> 712, 1023 -814 <-> 747 -815 <-> 1145 -816 <-> 1413 -817 <-> 1235 -818 <-> 237, 240, 1506 -819 <-> 391, 857 -820 <-> 549, 1162 -821 <-> 1410, 1607 -822 <-> 30, 1485 -823 <-> 1445, 1454 -824 <-> 519, 730, 1824 -825 <-> 400, 1381, 1472 -826 <-> 587, 1040, 1198, 1618 -827 <-> 40 -828 <-> 1870 -829 <-> 149 -830 <-> 16 -831 <-> 255 -832 <-> 384, 1890, 1913 -833 <-> 1529 -834 <-> 834 -835 <-> 314 -836 <-> 216, 1166 -837 <-> 377, 988 -838 <-> 236, 323 -839 <-> 461, 1825 -840 <-> 211, 637, 715, 1710 -841 <-> 361, 610, 841, 1815 -842 <-> 1669 -843 <-> 874, 1468 -844 <-> 789 -845 <-> 143, 589, 1053 -846 <-> 572 -847 <-> 1285 -848 <-> 292 -849 <-> 849 -850 <-> 526 -851 <-> 800, 1368, 1497 -852 <-> 593, 1798 -853 <-> 1339, 1593, 1749 -854 <-> 1445, 1787 -855 <-> 1026, 1356 -856 <-> 132 -857 <-> 819 -858 <-> 1511 -859 <-> 1191 -860 <-> 284, 800, 1619 -861 <-> 111, 1266 -862 <-> 60, 281 -863 <-> 1605 -864 <-> 646 -865 <-> 873 -866 <-> 255, 924 -867 <-> 871, 1707 -868 <-> 12 -869 <-> 96, 1278 -870 <-> 1307 -871 <-> 404, 867, 1482 -872 <-> 734, 1200 -873 <-> 741, 808, 865, 873 -874 <-> 255, 843, 1201 -875 <-> 510, 1325, 1797 -876 <-> 1504, 1825 -877 <-> 253 -878 <-> 721 -879 <-> 948, 1291, 1847 -880 <-> 85, 184, 301, 787, 1503, 1617 -881 <-> 1688 -882 <-> 882 -883 <-> 725, 1582, 1874 -884 <-> 1352 -885 <-> 885, 1974 -886 <-> 431, 1650 -887 <-> 101 -888 <-> 102, 152 -889 <-> 433, 1016 -890 <-> 890 -891 <-> 12 -892 <-> 1402, 1923 -893 <-> 767 -894 <-> 484, 567 -895 <-> 342, 1123, 1158, 1648 -896 <-> 767 -897 <-> 80, 986, 1418 -898 <-> 205, 592, 1019 -899 <-> 493, 1053 -900 <-> 489 -901 <-> 901 -902 <-> 456 -903 <-> 782 -904 <-> 467, 904, 1924 -905 <-> 626, 1881 -906 <-> 245, 257, 276 -907 <-> 907, 1101, 1826 -908 <-> 908, 1230 -909 <-> 34, 572, 1186 -910 <-> 677, 961 -911 <-> 607, 772, 786, 1196, 1405 -912 <-> 562 -913 <-> 1636 -914 <-> 1892, 1963 -915 <-> 150, 521, 710 -916 <-> 244 -917 <-> 23, 680, 1336 -918 <-> 490, 1483 -919 <-> 96 -920 <-> 1880 -921 <-> 921 -922 <-> 975, 1255 -923 <-> 228, 1202, 1452 -924 <-> 866 -925 <-> 296, 1270 -926 <-> 280, 776, 1170, 1788, 1970 -927 <-> 712 -928 <-> 362, 595, 1103 -929 <-> 929 -930 <-> 65, 526, 1256, 1500, 1722 -931 <-> 183, 280, 1484 -932 <-> 1737 -933 <-> 299 -934 <-> 1387, 1851 -935 <-> 136, 935, 1537, 1775 -936 <-> 353 -937 <-> 689, 1347 -938 <-> 381, 566 -939 <-> 56, 1762 -940 <-> 1559, 1860 -941 <-> 1504, 1671, 1723, 1724 -942 <-> 1293 -943 <-> 21, 593 -944 <-> 1335 -945 <-> 1650 -946 <-> 1556 -947 <-> 26 -948 <-> 744, 879 -949 <-> 717, 1604 -950 <-> 1201, 1322 -951 <-> 794 -952 <-> 668, 1371 -953 <-> 1272 -954 <-> 954 -955 <-> 74 -956 <-> 648, 1870 -957 <-> 44, 1769 -958 <-> 13, 1388, 1660 -959 <-> 959 -960 <-> 153 -961 <-> 910 -962 <-> 17, 805 -963 <-> 339, 1783 -964 <-> 1100 -965 <-> 811, 1677 -966 <-> 966 -967 <-> 304, 1029, 1269, 1910 -968 <-> 81, 1091 -969 <-> 1379, 1693 -970 <-> 1289 -971 <-> 971 -972 <-> 70 -973 <-> 973 -974 <-> 663, 738, 1005 -975 <-> 922 -976 <-> 319 -977 <-> 585, 631 -978 <-> 756, 1628 -979 <-> 687, 979 -980 <-> 1151, 1317 -981 <-> 1199, 1902 -982 <-> 1223 -983 <-> 1931 -984 <-> 2, 409 -985 <-> 985 -986 <-> 358, 897, 1564 -987 <-> 987, 1644 -988 <-> 36, 837 -989 <-> 1275 -990 <-> 990, 1295 -991 <-> 207, 1415 -992 <-> 1242, 1397, 1467, 1579 -993 <-> 1042, 1767 -994 <-> 633, 1595, 1813 -995 <-> 194 -996 <-> 1096, 1369 -997 <-> 1231, 1973 -998 <-> 1367 -999 <-> 999 -1000 <-> 684, 1078 -1001 <-> 219 -1002 <-> 1442 -1003 <-> 441 -1004 <-> 558, 628, 678 -1005 <-> 475, 974 -1006 <-> 103, 345, 604 -1007 <-> 490, 1274 -1008 <-> 1708, 1819 -1009 <-> 1009, 1118 -1010 <-> 1223, 1803 -1011 <-> 1867 -1012 <-> 299, 1923 -1013 <-> 561, 1187, 1477, 1926 -1014 <-> 1861 -1015 <-> 446, 1015, 1858 -1016 <-> 889 -1017 <-> 1435 -1018 <-> 42, 98 -1019 <-> 767, 898, 1764 -1020 <-> 1020 -1021 <-> 1666 -1022 <-> 347, 1022, 1310 -1023 <-> 26, 813, 1109, 1538, 1988 -1024 <-> 195, 738 -1025 <-> 616 -1026 <-> 722, 855, 1337, 1415 -1027 <-> 241, 1309 -1028 <-> 1028 -1029 <-> 745, 967 -1030 <-> 1577, 1689 -1031 <-> 1031 -1032 <-> 125 -1033 <-> 604, 1127, 1194 -1034 <-> 192 -1035 <-> 1992 -1036 <-> 707, 1509 -1037 <-> 1347 -1038 <-> 389 -1039 <-> 723, 1535 -1040 <-> 826, 1245, 1918 -1041 <-> 281 -1042 <-> 993 -1043 <-> 67, 769, 1142 -1044 <-> 1690 -1045 <-> 287 -1046 <-> 1561 -1047 <-> 4 -1048 <-> 472, 1703 -1049 <-> 632, 1816 -1050 <-> 1157, 1899 -1051 <-> 1818 -1052 <-> 347, 1904 -1053 <-> 593, 845, 899 -1054 <-> 1983 -1055 <-> 1599 -1056 <-> 41, 320, 325, 1567 -1057 <-> 1372, 1569 -1058 <-> 185 -1059 <-> 1112, 1939 -1060 <-> 576, 1314, 1557, 1751, 1752 -1061 <-> 1285 -1062 <-> 1162, 1338, 1739 -1063 <-> 1291 -1064 <-> 132 -1065 <-> 769, 1317 -1066 <-> 510 -1067 <-> 405, 1452, 1953 -1068 <-> 1200 -1069 <-> 1069 -1070 <-> 19 -1071 <-> 1361, 1382 -1072 <-> 1307, 1534 -1073 <-> 1282 -1074 <-> 1323, 1653 -1075 <-> 457 -1076 <-> 695, 1703 -1077 <-> 1180 -1078 <-> 434, 1000 -1079 <-> 733 -1080 <-> 130, 1757 -1081 <-> 202, 623 -1082 <-> 1082 -1083 <-> 506, 703, 1279 -1084 <-> 314, 1812 -1085 <-> 242 -1086 <-> 350 -1087 <-> 1524 -1088 <-> 706, 1900 -1089 <-> 788 -1090 <-> 1260 -1091 <-> 968, 1522 -1092 <-> 173, 631, 1850 -1093 <-> 1093, 1390 -1094 <-> 182, 390 -1095 <-> 756 -1096 <-> 996 -1097 <-> 448 -1098 <-> 464, 612 -1099 <-> 292, 486 -1100 <-> 964, 1326 -1101 <-> 907, 1799 -1102 <-> 1927 -1103 <-> 928, 1103 -1104 <-> 252 -1105 <-> 166, 297 -1106 <-> 1106, 1896 -1107 <-> 1107 -1108 <-> 459 -1109 <-> 1023 -1110 <-> 422, 801 -1111 <-> 456, 685 -1112 <-> 262, 1059 -1113 <-> 1267 -1114 <-> 485 -1115 <-> 1115, 1827 -1116 <-> 1596 -1117 <-> 395, 449, 1382 -1118 <-> 1009 -1119 <-> 281, 1670 -1120 <-> 434, 1165 -1121 <-> 167, 1121 -1122 <-> 1809 -1123 <-> 895 -1124 <-> 283 -1125 <-> 499, 720, 1308 -1126 <-> 790, 1526 -1127 <-> 1033 -1128 <-> 1500 -1129 <-> 168, 418, 1642, 1947 -1130 <-> 1454 -1131 <-> 1683 -1132 <-> 517, 1784 -1133 <-> 288 -1134 <-> 314, 749, 1586 -1135 <-> 102 -1136 <-> 1136 -1137 <-> 680 -1138 <-> 1755 -1139 <-> 654 -1140 <-> 1140 -1141 <-> 1141 -1142 <-> 1043, 1862 -1143 <-> 1550 -1144 <-> 535, 1144, 1849 -1145 <-> 209, 671, 815, 1268 -1146 <-> 145 -1147 <-> 134 -1148 <-> 774 -1149 <-> 36, 497, 499, 1652 -1150 <-> 271, 1150 -1151 <-> 51, 980, 1651 -1152 <-> 533 -1153 <-> 398, 757 -1154 <-> 1313 -1155 <-> 145, 617, 1336, 1721 -1156 <-> 1838 -1157 <-> 10, 1050 -1158 <-> 895 -1159 <-> 532, 1708 -1160 <-> 1357 -1161 <-> 1200, 1999 -1162 <-> 820, 1062 -1163 <-> 1821 -1164 <-> 488, 1572 -1165 <-> 515, 1120 -1166 <-> 36, 836 -1167 <-> 664 -1168 <-> 11, 515, 771, 1967 -1169 <-> 358 -1170 <-> 926 -1171 <-> 1666, 1827 -1172 <-> 262, 1439 -1173 <-> 123, 355, 1341 -1174 <-> 1204, 1525 -1175 <-> 530 -1176 <-> 501, 654 -1177 <-> 1311, 1796 -1178 <-> 186, 1536, 1551, 1853 -1179 <-> 1822, 1947 -1180 <-> 1077, 1264 -1181 <-> 163, 1181 -1182 <-> 225 -1183 <-> 1237, 1715, 1798 -1184 <-> 41 -1185 <-> 297, 1185 -1186 <-> 909 -1187 <-> 619, 1013 -1188 <-> 1698 -1189 <-> 488, 560 -1190 <-> 1834, 1933 -1191 <-> 402, 859, 1191 -1192 <-> 1839 -1193 <-> 608, 1438 -1194 <-> 435, 1033, 1754 -1195 <-> 46, 1828 -1196 <-> 612, 911, 1975 -1197 <-> 1503, 1854 -1198 <-> 733, 826 -1199 <-> 981 -1200 <-> 493, 872, 1068, 1161 -1201 <-> 874, 950 -1202 <-> 923 -1203 <-> 40, 729, 1719 -1204 <-> 542, 557, 1174 -1205 <-> 1332 -1206 <-> 148, 182 -1207 <-> 1207 -1208 <-> 91, 273, 413, 658, 1234 -1209 <-> 1995 -1210 <-> 576, 703, 796 -1211 <-> 1227, 1891 -1212 <-> 338, 1362 -1213 <-> 6 -1214 <-> 589, 732 -1215 <-> 4, 100, 444, 1842 -1216 <-> 497, 1745 -1217 <-> 409, 1354 -1218 <-> 607 -1219 <-> 29, 484, 1712 -1220 <-> 570 -1221 <-> 302, 1429 -1222 <-> 625, 1412 -1223 <-> 260, 982, 1010, 1591 -1224 <-> 9, 258, 278, 1506, 1893 -1225 <-> 1906 -1226 <-> 1226 -1227 <-> 1211 -1228 <-> 1773 -1229 <-> 18 -1230 <-> 908 -1231 <-> 701, 997 -1232 <-> 348, 349 -1233 <-> 59 -1234 <-> 1208 -1235 <-> 817, 1994 -1236 <-> 508 -1237 <-> 1183 -1238 <-> 1529 -1239 <-> 540, 1524, 1552 -1240 <-> 512 -1241 <-> 1241 -1242 <-> 992, 1685 -1243 <-> 1934 -1244 <-> 1574, 1839 -1245 <-> 727, 1040 -1246 <-> 1380 -1247 <-> 1506, 1923 -1248 <-> 50, 1610 -1249 <-> 674 -1250 <-> 485 -1251 <-> 444, 655, 1718 -1252 <-> 266, 1862 -1253 <-> 645, 1709 -1254 <-> 1254 -1255 <-> 922, 1255, 1341 -1256 <-> 930, 1346 -1257 <-> 1465, 1844 -1258 <-> 763 -1259 <-> 335, 590, 1259 -1260 <-> 129, 1090 -1261 <-> 652, 1261, 1838 -1262 <-> 1262, 1912 -1263 <-> 7, 1438, 1554 -1264 <-> 338, 1180 -1265 <-> 269, 1265 -1266 <-> 861, 1281, 1423 -1267 <-> 612, 1113, 1289 -1268 <-> 1145 -1269 <-> 967 -1270 <-> 94, 215, 925, 1860 -1271 <-> 1376 -1272 <-> 223, 953 -1273 <-> 1301 -1274 <-> 1007, 1860 -1275 <-> 216, 393, 989, 1275 -1276 <-> 470 -1277 <-> 288 -1278 <-> 869 -1279 <-> 1083, 1755 -1280 <-> 1588 -1281 <-> 1266 -1282 <-> 677, 1073, 1575, 1625 -1283 <-> 1571 -1284 <-> 1828 -1285 <-> 847, 1061, 1641 -1286 <-> 1494, 1649, 1889 -1287 <-> 159 -1288 <-> 142, 1288 -1289 <-> 970, 1267, 1668 -1290 <-> 406 -1291 <-> 728, 879, 1063, 1885 -1292 <-> 1407 -1293 <-> 942, 1318, 1459 -1294 <-> 311, 1754 -1295 <-> 990, 1512 -1296 <-> 130, 479, 508 -1297 <-> 533, 559 -1298 <-> 1839 -1299 <-> 70 -1300 <-> 37, 1886, 1998 -1301 <-> 1273, 1340 -1302 <-> 317, 674, 1485 -1303 <-> 161, 1624 -1304 <-> 1304 -1305 <-> 1410 -1306 <-> 744 -1307 <-> 20, 870, 1072 -1308 <-> 194, 212, 1125 -1309 <-> 251, 1027 -1310 <-> 22, 1022, 1777 -1311 <-> 1177 -1312 <-> 786 -1313 <-> 1154, 1706 -1314 <-> 1060 -1315 <-> 683, 745 -1316 <-> 1793, 1898 -1317 <-> 523, 980, 1065, 1787 -1318 <-> 1293 -1319 <-> 1319 -1320 <-> 1320 -1321 <-> 206 -1322 <-> 950, 1957 -1323 <-> 1074, 1823 -1324 <-> 352 -1325 <-> 875, 1740 -1326 <-> 493, 1100 -1327 <-> 701, 1633 -1328 <-> 1, 55 -1329 <-> 1633 -1330 <-> 503, 1687, 1782 -1331 <-> 376, 1531, 1766 -1332 <-> 436, 705, 1205 -1333 <-> 565 -1334 <-> 1805 -1335 <-> 408, 944 -1336 <-> 917, 1155 -1337 <-> 1026 -1338 <-> 527, 1062 -1339 <-> 517, 853 -1340 <-> 601, 1301, 1708 -1341 <-> 1173, 1255 -1342 <-> 684 -1343 <-> 210 -1344 <-> 121, 483 -1345 <-> 175 -1346 <-> 578, 1256 -1347 <-> 937, 1037, 1735 -1348 <-> 685 -1349 <-> 275, 1594 -1350 <-> 127, 130 -1351 <-> 485 -1352 <-> 884, 1352 -1353 <-> 1604, 1800 -1354 <-> 1217 -1355 <-> 1355, 1985 -1356 <-> 855, 1840 -1357 <-> 651, 1160, 1388 -1358 <-> 92 -1359 <-> 112 -1360 <-> 1455 -1361 <-> 1071, 1909 -1362 <-> 304, 1212 -1363 <-> 791 -1364 <-> 161, 1426 -1365 <-> 1365 -1366 <-> 1366, 1433 -1367 <-> 133, 998 -1368 <-> 851 -1369 <-> 12, 996, 1425 -1370 <-> 665 -1371 <-> 13, 735, 952, 1371, 1857 -1372 <-> 613, 1057 -1373 <-> 638, 1511 -1374 <-> 230, 1593 -1375 <-> 104 -1376 <-> 179, 1271, 1639 -1377 <-> 291 -1378 <-> 1919 -1379 <-> 575, 969 -1380 <-> 1246, 1501, 1903 -1381 <-> 73, 825, 1922 -1382 <-> 1071, 1117, 1541, 1810 -1383 <-> 111 -1384 <-> 457 -1385 <-> 1878, 1966 -1386 <-> 1396 -1387 <-> 229, 934, 1853 -1388 <-> 958, 1357, 1424 -1389 <-> 531 -1390 <-> 1093, 1603 -1391 <-> 408 -1392 <-> 446 -1393 <-> 411 -1394 <-> 1866 -1395 <-> 450, 1851 -1396 <-> 519, 1386 -1397 <-> 79, 568, 992 -1398 <-> 224 -1399 <-> 1443, 1799, 1915 -1400 <-> 744 -1401 <-> 1685 -1402 <-> 892 -1403 <-> 1714 -1404 <-> 632 -1405 <-> 911, 1532 -1406 <-> 233, 1606 -1407 <-> 700, 1292 -1408 <-> 431, 1408, 1416 -1409 <-> 211, 472 -1410 <-> 821, 1305 -1411 <-> 1653, 1993 -1412 <-> 628, 1222 -1413 <-> 473, 816 -1414 <-> 451 -1415 <-> 991, 1026 -1416 <-> 1408 -1417 <-> 752 -1418 <-> 423, 897 -1419 <-> 2, 30 -1420 <-> 1420 -1421 <-> 808 -1422 <-> 58, 104 -1423 <-> 1266 -1424 <-> 1388 -1425 <-> 1369 -1426 <-> 737, 1364, 1847, 1913 -1427 <-> 246, 274 -1428 <-> 1964 -1429 <-> 76, 806, 1221 -1430 <-> 1430 -1431 <-> 322 -1432 <-> 1719 -1433 <-> 1366, 1988 -1434 <-> 89, 106 -1435 <-> 1017, 1730 -1436 <-> 1997 -1437 <-> 317, 352 -1438 <-> 1193, 1263 -1439 <-> 1172 -1440 <-> 344 -1441 <-> 37 -1442 <-> 1002, 1860 -1443 <-> 1399 -1444 <-> 31, 298 -1445 <-> 823, 854 -1446 <-> 113, 403 -1447 <-> 1508, 1720 -1448 <-> 766, 1791 -1449 <-> 527 -1450 <-> 134 -1451 <-> 88, 571 -1452 <-> 923, 1067 -1453 <-> 770 -1454 <-> 95, 823, 1130, 1454 -1455 <-> 1360, 1533 -1456 <-> 1456, 1489, 1529 -1457 <-> 114, 149, 1956 -1458 <-> 382, 631, 1458 -1459 <-> 570, 1293 -1460 <-> 202, 369 -1461 <-> 300 -1462 <-> 1636 -1463 <-> 393, 1659, 1939 -1464 <-> 31 -1465 <-> 3, 323, 547, 1257, 1732 -1466 <-> 320 -1467 <-> 723, 992, 1706 -1468 <-> 154, 843 -1469 <-> 713 -1470 <-> 354, 699 -1471 <-> 1471 -1472 <-> 825 -1473 <-> 715 -1474 <-> 745 -1475 <-> 645 -1476 <-> 622, 758 -1477 <-> 1013, 1645, 1669 -1478 <-> 711 -1479 <-> 734 -1480 <-> 650 -1481 <-> 1481 -1482 <-> 310, 871 -1483 <-> 918, 1504 -1484 <-> 931 -1485 <-> 336, 421, 775, 822, 1302 -1486 <-> 157, 1631 -1487 <-> 236, 437, 788, 1980 -1488 <-> 1560 -1489 <-> 739, 1456 -1490 <-> 383 -1491 <-> 535 -1492 <-> 471, 614 -1493 <-> 743 -1494 <-> 565, 1286 -1495 <-> 1627 -1496 <-> 761, 1496 -1497 <-> 249, 425, 851 -1498 <-> 749 -1499 <-> 231 -1500 <-> 930, 1128 -1501 <-> 390, 1380 -1502 <-> 1713 -1503 <-> 152, 880, 1197 -1504 <-> 47, 876, 941, 1483, 1945 -1505 <-> 295, 530, 753 -1506 <-> 818, 1224, 1247 -1507 <-> 141, 216, 1565, 1726 -1508 <-> 647, 1447, 1521, 1590 -1509 <-> 580, 1036, 1605, 1609 -1510 <-> 40, 1885 -1511 <-> 858, 1373 -1512 <-> 1295 -1513 <-> 78, 430 -1514 <-> 1772 -1515 <-> 153 -1516 <-> 144, 260, 1818 -1517 <-> 32, 1616, 1806 -1518 <-> 472 -1519 <-> 259 -1520 <-> 94, 1542 -1521 <-> 1508 -1522 <-> 313, 1091, 1631 -1523 <-> 685 -1524 <-> 241, 1087, 1239 -1525 <-> 1174 -1526 <-> 1126 -1527 <-> 1835 -1528 <-> 803 -1529 <-> 460, 833, 1238, 1456 -1530 <-> 1784 -1531 <-> 1331 -1532 <-> 629, 1405 -1533 <-> 470, 1455, 1533, 1796 -1534 <-> 1072 -1535 <-> 605, 724, 1039 -1536 <-> 1178 -1537 <-> 273, 801, 935 -1538 <-> 1023, 1734 -1539 <-> 713 -1540 <-> 1748 -1541 <-> 1382, 1683 -1542 <-> 1520 -1543 <-> 781 -1544 <-> 1631 -1545 <-> 1910 -1546 <-> 1942 -1547 <-> 260 -1548 <-> 581, 747 -1549 <-> 804 -1550 <-> 159, 1143 -1551 <-> 1178 -1552 <-> 461, 1239, 1846 -1553 <-> 1553, 1982 -1554 <-> 68, 85, 1263, 1597 -1555 <-> 1713, 1931 -1556 <-> 946, 1556 -1557 <-> 718, 1060 -1558 <-> 783 -1559 <-> 640, 940 -1560 <-> 1488, 1806, 1898, 1949 -1561 <-> 441, 1046 -1562 <-> 715, 1889 -1563 <-> 552 -1564 <-> 986 -1565 <-> 1507, 1689 -1566 <-> 1570 -1567 <-> 1056 -1568 <-> 3, 371 -1569 <-> 119, 1057, 1852 -1570 <-> 1566, 1570 -1571 <-> 1283, 1736 -1572 <-> 569, 1164, 1995 -1573 <-> 1573, 1784, 1987 -1574 <-> 1244, 1574 -1575 <-> 1282, 1575, 1866 -1576 <-> 123 -1577 <-> 1030 -1578 <-> 289, 710 -1579 <-> 992, 1684 -1580 <-> 4 -1581 <-> 1581 -1582 <-> 128, 883 -1583 <-> 57 -1584 <-> 116 -1585 <-> 637 -1586 <-> 1134 -1587 <-> 1587 -1588 <-> 159, 1280 -1589 <-> 1915 -1590 <-> 136, 1508 -1591 <-> 1223 -1592 <-> 293, 1891 -1593 <-> 853, 1374 -1594 <-> 1349, 1886 -1595 <-> 994, 1595 -1596 <-> 364, 1116 -1597 <-> 1554 -1598 <-> 1729 -1599 <-> 583, 1055 -1600 <-> 147, 458, 1600 -1601 <-> 1894 -1602 <-> 116 -1603 <-> 1390 -1604 <-> 481, 657, 949, 1353, 1983 -1605 <-> 115, 668, 863, 1509 -1606 <-> 1406 -1607 <-> 261, 410, 821 -1608 <-> 690 -1609 <-> 1509 -1610 <-> 673, 1248 -1611 <-> 118, 1788 -1612 <-> 1854 -1613 <-> 547 -1614 <-> 547, 1807 -1615 <-> 479 -1616 <-> 222, 1517 -1617 <-> 880, 1989 -1618 <-> 826 -1619 <-> 860, 1807 -1620 <-> 291 -1621 <-> 618, 1957 -1622 <-> 535 -1623 <-> 480, 531 -1624 <-> 1303 -1625 <-> 223, 1282 -1626 <-> 503, 604 -1627 <-> 1495, 1933 -1628 <-> 288, 978 -1629 <-> 1629 -1630 <-> 465, 1872 -1631 <-> 1486, 1522, 1544 -1632 <-> 196 -1633 <-> 1327, 1329 -1634 <-> 123, 661, 740 -1635 <-> 139 -1636 <-> 913, 1462, 1752 -1637 <-> 404, 522 -1638 <-> 1779, 1813 -1639 <-> 33, 190, 1376, 1639 -1640 <-> 1816 -1641 <-> 554, 1285 -1642 <-> 1129 -1643 <-> 71, 1844 -1644 <-> 171, 987 -1645 <-> 1477 -1646 <-> 16, 199 -1647 <-> 1702 -1648 <-> 895 -1649 <-> 1286 -1650 <-> 344, 886, 945 -1651 <-> 799, 1151 -1652 <-> 1149, 1961, 1984 -1653 <-> 222, 1074, 1411 -1654 <-> 108, 553 -1655 <-> 35, 156, 226, 1992 -1656 <-> 537, 655 -1657 <-> 105, 609 -1658 <-> 1658 -1659 <-> 519, 1463 -1660 <-> 958 -1661 <-> 290, 1929 -1662 <-> 435 -1663 <-> 1855 -1664 <-> 345 -1665 <-> 554 -1666 <-> 1021, 1171 -1667 <-> 662, 687 -1668 <-> 1289 -1669 <-> 842, 1477, 1795, 1975 -1670 <-> 1119, 1921 -1671 <-> 941 -1672 <-> 115 -1673 <-> 385 -1674 <-> 518 -1675 <-> 247, 676 -1676 <-> 509, 1987 -1677 <-> 965, 1677 -1678 <-> 151, 1692 -1679 <-> 541 -1680 <-> 1680 -1681 <-> 221, 789 -1682 <-> 1736, 1767, 1947 -1683 <-> 1131, 1541 -1684 <-> 1579 -1685 <-> 1242, 1401 -1686 <-> 1736 -1687 <-> 680, 1330 -1688 <-> 881, 1829 -1689 <-> 1030, 1565 -1690 <-> 778, 1044, 1900 -1691 <-> 28, 75 -1692 <-> 627, 1678 -1693 <-> 122, 400, 671, 969 -1694 <-> 58, 61 -1695 <-> 741 -1696 <-> 224, 1958 -1697 <-> 1935 -1698 <-> 301, 1188 -1699 <-> 29, 37 -1700 <-> 742, 1883 -1701 <-> 662 -1702 <-> 441, 1647 -1703 <-> 1048, 1076 -1704 <-> 185 -1705 <-> 715 -1706 <-> 1313, 1467 -1707 <-> 867 -1708 <-> 1008, 1159, 1340 -1709 <-> 560, 561, 1253, 1976 -1710 <-> 840 -1711 <-> 1711 -1712 <-> 12, 1219 -1713 <-> 631, 1502, 1555 -1714 <-> 1403, 1714, 1902 -1715 <-> 1183 -1716 <-> 79 -1717 <-> 738 -1718 <-> 602, 1251 -1719 <-> 1203, 1432 -1720 <-> 1447 -1721 <-> 1155 -1722 <-> 930 -1723 <-> 941 -1724 <-> 941 -1725 <-> 432 -1726 <-> 1507 -1727 <-> 397 -1728 <-> 1728, 1937 -1729 <-> 1598, 1913 -1730 <-> 105, 757, 768, 1435, 1730 -1731 <-> 789 -1732 <-> 795, 1465 -1733 <-> 551, 1765, 1835 -1734 <-> 1538 -1735 <-> 755, 1347 -1736 <-> 1571, 1682, 1686 -1737 <-> 932, 1795 -1738 <-> 329, 1738 -1739 <-> 267, 1062, 1848 -1740 <-> 1325 -1741 <-> 326, 541, 1952 -1742 <-> 344, 754 -1743 <-> 75, 253, 507 -1744 <-> 288 -1745 <-> 1216 -1746 <-> 92, 138 -1747 <-> 333 -1748 <-> 182, 1540 -1749 <-> 853 -1750 <-> 88 -1751 <-> 363, 1060 -1752 <-> 1060, 1636 -1753 <-> 433, 583, 1873 -1754 <-> 1194, 1294 -1755 <-> 1138, 1279 -1756 <-> 538, 636 -1757 <-> 1080 -1758 <-> 472, 514 -1759 <-> 284 -1760 <-> 1760 -1761 <-> 326, 620 -1762 <-> 648, 939, 1989 -1763 <-> 383 -1764 <-> 599, 1019, 1941 -1765 <-> 1733 -1766 <-> 289, 365, 1331 -1767 <-> 993, 1682, 1767 -1768 <-> 1768, 1859 -1769 <-> 957 -1770 <-> 288 -1771 <-> 1875 -1772 <-> 1514, 1772 -1773 <-> 801, 1228 -1774 <-> 0 -1775 <-> 935 -1776 <-> 133 -1777 <-> 1310 -1778 <-> 17, 320 -1779 <-> 465, 1638 -1780 <-> 1906 -1781 <-> 1969 -1782 <-> 1330 -1783 <-> 97, 963, 1960, 1983 -1784 <-> 1132, 1530, 1573 -1785 <-> 422 -1786 <-> 1786 -1787 <-> 854, 1317 -1788 <-> 926, 1611 -1789 <-> 586, 1829 -1790 <-> 74, 1790 -1791 <-> 52, 109, 1448 -1792 <-> 1860 -1793 <-> 1316, 1981 -1794 <-> 138 -1795 <-> 1669, 1737, 1861 -1796 <-> 1177, 1533 -1797 <-> 327, 875 -1798 <-> 852, 1183 -1799 <-> 1101, 1399, 1964 -1800 <-> 491, 641, 807, 1353 -1801 <-> 20, 455 -1802 <-> 123 -1803 <-> 415, 1010 -1804 <-> 1804 -1805 <-> 1334, 1926 -1806 <-> 1517, 1560 -1807 <-> 1614, 1619 -1808 <-> 261, 643 -1809 <-> 145, 1122 -1810 <-> 1382 -1811 <-> 60 -1812 <-> 1084 -1813 <-> 213, 994, 1638 -1814 <-> 14, 355 -1815 <-> 841, 1996 -1816 <-> 1049, 1640 -1817 <-> 388 -1818 <-> 1051, 1516 -1819 <-> 1008 -1820 <-> 403 -1821 <-> 350, 1163 -1822 <-> 669, 1179, 1927 -1823 <-> 1323 -1824 <-> 667, 824, 1879 -1825 <-> 608, 839, 876, 1965 -1826 <-> 473, 907 -1827 <-> 1115, 1171 -1828 <-> 440, 1195, 1284, 1913 -1829 <-> 275, 1688, 1789 -1830 <-> 1830 -1831 <-> 1831 -1832 <-> 248, 726 -1833 <-> 1833 -1834 <-> 1190 -1835 <-> 639, 1527, 1733 -1836 <-> 250, 1836 -1837 <-> 577, 1970 -1838 <-> 1156, 1261 -1839 <-> 1192, 1244, 1298 -1840 <-> 1356 -1841 <-> 81 -1842 <-> 738, 1215 -1843 <-> 1843 -1844 <-> 383, 1257, 1643 -1845 <-> 260, 451 -1846 <-> 1552 -1847 <-> 755, 879, 1426 -1848 <-> 38, 1739 -1849 <-> 468, 1144 -1850 <-> 1092 -1851 <-> 934, 1395 -1852 <-> 198, 1569 -1853 <-> 718, 1178, 1387 -1854 <-> 588, 1197, 1612 -1855 <-> 162, 734, 1663 -1856 <-> 236, 751 -1857 <-> 1371 -1858 <-> 1015 -1859 <-> 1768 -1860 <-> 940, 1270, 1274, 1442, 1792 -1861 <-> 1014, 1795 -1862 <-> 1142, 1252 -1863 <-> 281 -1864 <-> 717 -1865 <-> 1865 -1866 <-> 574, 602, 1394, 1575 -1867 <-> 707, 1011 -1868 <-> 659, 1868 -1869 <-> 173, 1991 -1870 <-> 391, 828, 956, 1880 -1871 <-> 189, 692 -1872 <-> 1630 -1873 <-> 42, 1753 -1874 <-> 883 -1875 <-> 11, 1771 -1876 <-> 158 -1877 <-> 186 -1878 <-> 796, 1385 -1879 <-> 486, 1824 -1880 <-> 920, 1870 -1881 <-> 433, 573, 905 -1882 <-> 625, 1954 -1883 <-> 300, 1700 -1884 <-> 1884 -1885 <-> 1291, 1510 -1886 <-> 19, 209, 1300, 1594 -1887 <-> 277 -1888 <-> 85 -1889 <-> 489, 1286, 1562 -1890 <-> 170, 832 -1891 <-> 1211, 1592, 1973 -1892 <-> 611, 697, 914 -1893 <-> 1224 -1894 <-> 775, 1601 -1895 <-> 308, 323, 618 -1896 <-> 1106 -1897 <-> 118, 368, 408 -1898 <-> 1316, 1560, 1944 -1899 <-> 463, 1050 -1900 <-> 1088, 1690, 1951 -1901 <-> 16, 27 -1902 <-> 981, 1714 -1903 <-> 1380 -1904 <-> 278, 1052 -1905 <-> 20 -1906 <-> 671, 1225, 1780 -1907 <-> 800 -1908 <-> 583 -1909 <-> 1361, 1940 -1910 <-> 134, 967, 1545 -1911 <-> 1973 -1912 <-> 1262 -1913 <-> 832, 1426, 1729, 1828 -1914 <-> 1914 -1915 <-> 1399, 1589 -1916 <-> 650, 1916 -1917 <-> 726, 1917 -1918 <-> 1040 -1919 <-> 196, 1378, 1919 -1920 <-> 1, 218 -1921 <-> 1670, 1952 -1922 <-> 1381 -1923 <-> 892, 1012, 1247 -1924 <-> 373, 904 -1925 <-> 210, 1935 -1926 <-> 543, 1013, 1805 -1927 <-> 1102, 1822 -1928 <-> 346, 1928 -1929 <-> 1661 -1930 <-> 19 -1931 <-> 983, 1555 -1932 <-> 685 -1933 <-> 16, 1190, 1627, 1933 -1934 <-> 288, 1243 -1935 <-> 535, 1697, 1925 -1936 <-> 295 -1937 <-> 112, 157, 1728 -1938 <-> 293 -1939 <-> 689, 1059, 1463 -1940 <-> 616, 1909 -1941 <-> 1764 -1942 <-> 243, 256, 1546 -1943 <-> 1950 -1944 <-> 260, 1898 -1945 <-> 1504 -1946 <-> 1946 -1947 <-> 87, 1129, 1179, 1682 -1948 <-> 294 -1949 <-> 1560 -1950 <-> 21, 1943 -1951 <-> 407, 1900 -1952 <-> 1741, 1921 -1953 <-> 1067 -1954 <-> 696, 1882 -1955 <-> 754 -1956 <-> 1457 -1957 <-> 1322, 1621 -1958 <-> 48, 708, 1696 -1959 <-> 1959 -1960 <-> 389, 1783 -1961 <-> 1652 -1962 <-> 29 -1963 <-> 914 -1964 <-> 1428, 1799 -1965 <-> 1825 -1966 <-> 1385 -1967 <-> 1168 -1968 <-> 265, 475 -1969 <-> 4, 1781 -1970 <-> 315, 926, 1837 -1971 <-> 242, 545, 1971 -1972 <-> 1972 -1973 <-> 997, 1891, 1911 -1974 <-> 885 -1975 <-> 1196, 1669 -1976 <-> 1709 -1977 <-> 1977 -1978 <-> 1978 -1979 <-> 1979 -1980 <-> 598, 1487 -1981 <-> 1793 -1982 <-> 1553 -1983 <-> 1054, 1604, 1783 -1984 <-> 731, 1652 -1985 <-> 1355 -1986 <-> 795 -1987 <-> 1573, 1676 -1988 <-> 495, 1023, 1433 -1989 <-> 1617, 1762 -1990 <-> 376 -1991 <-> 1869 -1992 <-> 1035, 1655 -1993 <-> 1411 -1994 <-> 1235, 1994 -1995 <-> 57, 1209, 1572 -1996 <-> 181, 1815 -1997 <-> 395, 1436 -1998 <-> 1300 -1999 <-> 175, 1161 diff --git a/2017/inputs/day_13.txt b/2017/inputs/day_13.txt deleted file mode 100644 index 87bfdb7..0000000 --- a/2017/inputs/day_13.txt +++ /dev/null @@ -1,43 +0,0 @@ -0: 3 -1: 2 -2: 4 -4: 4 -6: 5 -8: 6 -10: 6 -12: 6 -14: 6 -16: 8 -18: 8 -20: 8 -22: 8 -24: 10 -26: 8 -28: 8 -30: 12 -32: 14 -34: 12 -36: 10 -38: 12 -40: 12 -42: 9 -44: 12 -46: 12 -48: 12 -50: 12 -52: 14 -54: 14 -56: 14 -58: 12 -60: 14 -62: 14 -64: 12 -66: 14 -70: 14 -72: 14 -74: 14 -76: 14 -80: 18 -88: 20 -90: 14 -98: 17 diff --git a/2017/inputs/day_13_example.txt b/2017/inputs/day_13_example.txt deleted file mode 100644 index 0de4bec..0000000 --- a/2017/inputs/day_13_example.txt +++ /dev/null @@ -1,5 +0,0 @@ -0: 3 -1: 2 -4: 4 -6: 4 - diff --git a/2017/inputs/day_14.txt b/2017/inputs/day_14.txt deleted file mode 100644 index 1155654..0000000 --- a/2017/inputs/day_14.txt +++ /dev/null @@ -1,2 +0,0 @@ -uugsqrei - diff --git a/2017/inputs/day_14_example.txt b/2017/inputs/day_14_example.txt deleted file mode 100644 index e0ffae2..0000000 --- a/2017/inputs/day_14_example.txt +++ /dev/null @@ -1 +0,0 @@ -flqrgnkx diff --git a/2017/inputs/day_15.txt b/2017/inputs/day_15.txt deleted file mode 100644 index ffb6d14..0000000 --- a/2017/inputs/day_15.txt +++ /dev/null @@ -1,2 +0,0 @@ -Generator A starts with 591 -Generator B starts with 393 diff --git a/2017/inputs/day_16.txt b/2017/inputs/day_16.txt deleted file mode 100644 index 8e74751..0000000 --- a/2017/inputs/day_16.txt +++ /dev/null @@ -1 +0,0 @@ -x3/4,pm/e,x15/7,pp/l,x5/8,s15,x2/6,s9,x0/4,s7,x8/12,pc/b,x2/14,pe/d,x10/11,pg/o,x9/14,ph/n,x15/8,s13,pe/i,x3/7,s2,pd/b,x4/15,s11,x0/14,s10,x7/3,s8,x2/1,pj/i,s8,x10/14,s5,x4/1,pa/h,s11,x12/6,s1,x1/14,s11,x5/12,s4,pn/b,x7/9,pj/l,x1/8,pd/e,s6,pp/g,x10/2,pi/o,x15/5,pp/l,x6/13,s3,x5/12,pk/f,x1/8,s4,x11/10,s10,x4/15,pe/n,x1/5,s14,x7/2,pc/i,x4/10,pj/p,x6/15,s12,x5/0,pa/n,x8/12,s14,x3/5,pb/d,x4/12,s3,x9/6,pg/h,x3/1,s5,x4/10,pm/f,x12/2,s11,x15/13,pa/g,x0/2,s13,pj/i,s13,x6/10,pn/a,x2/1,pm/f,x10/12,s4,pi/c,x14/13,s4,x15/0,s7,x14/8,s5,x5/2,pe/d,x3/9,s14,x7/0,s10,x6/14,s8,x3/15,pn/j,x2/1,pf/a,x13/10,pe/m,x8/0,s2,x4/7,pc/l,s4,x2/0,s4,x3/4,s12,x11/2,s3,x5/8,s2,x4/6,pn/f,x15/5,s15,x4/12,s11,x1/13,pm/b,s13,pj/h,s15,x9/3,pd/l,x14/15,po/i,x10/7,pd/g,x11/13,s5,x9/14,s6,x1/0,s7,x5/8,s7,x0/11,s10,x7/12,s2,x8/9,s7,pb/j,x3/2,s10,x6/0,pe/l,x4/8,pf/p,x6/0,po/i,x7/2,s10,x10/3,pb/n,x2/13,s3,x15/3,ph/c,s14,x1/8,s10,x13/10,s5,x14/7,s7,x1/5,pk/f,x7/0,s11,x13/2,pc/d,x8/10,pi/h,x5/1,pe/f,s8,pa/j,x13/10,pc/f,s12,x9/12,pa/h,x7/0,s15,x8/13,s8,x15/11,pl/d,x2/8,s8,x3/14,s1,pa/e,x4/8,pp/n,x0/14,s3,x10/12,pg/c,x14/9,s2,x0/10,s11,x9/3,pn/a,x5/4,s15,x12/1,s6,x14/6,pf/c,s7,x15/5,s1,x12/13,s13,x9/4,s13,pb/p,x10/5,pe/c,x6/15,s7,x2/14,s15,x7/6,s13,x5/10,pb/l,x9/7,s14,x1/3,s12,x9/10,pn/h,x7/12,pc/k,x9/4,s2,x5/15,s10,x9/0,s2,x11/4,pg/e,x8/1,pm/h,x3/4,s14,x12/2,pi/d,x1/4,s15,x11/15,s14,x13/10,pb/o,x9/12,s5,x6/2,s13,x7/4,ph/m,s4,x8/12,pi/n,s15,x2/5,pj/p,x10/0,s4,x15/9,pn/m,x14/13,pd/b,x10/9,s5,x1/5,s2,x15/3,pe/j,s7,x0/6,s2,x8/9,s3,x2/3,s9,x5/12,pp/b,x6/3,pf/l,x9/0,s15,x3/2,s12,pb/m,x14/6,s12,x3/15,ph/f,x5/1,s13,x0/15,s8,x1/9,pa/p,s9,x15/13,s7,pf/b,x2/8,ph/g,x10/3,pi/o,x13/5,s1,x4/3,s7,x7/8,s13,x0/13,pn/h,x12/15,s14,x2/6,pc/d,x8/12,s5,x5/3,s10,x10/9,pb/p,x4/11,pm/k,x14/3,s12,po/h,x6/1,s14,x15/3,s13,x7/5,pe/i,x12/6,s8,x8/13,s2,x12/15,s15,x2/4,s13,x10/7,s11,x15/1,s4,x5/11,s8,x1/15,s15,x8/13,s8,x1/15,s5,pb/c,x11/10,s13,pm/p,x0/8,s12,x2/5,pj/i,x14/3,pl/o,x2/11,pe/j,x13/1,pa/l,x3/10,s11,x7/4,pj/m,x5/10,ph/g,x13/9,s5,x3/4,s1,x15/8,s4,x0/1,s5,pd/j,x9/12,s6,pk/g,x4/6,s4,x1/3,ph/n,s9,x4/10,pf/i,s10,pk/j,x3/1,s11,pe/h,x12/4,s6,x10/5,s12,x12/13,s15,x7/5,pn/l,x12/15,s9,x14/11,s8,x5/10,s2,x12/8,pc/b,x3/10,po/n,s14,x6/14,pl/j,x3/10,s4,x1/13,pe/c,x15/0,pa/b,x8/4,s4,pk/c,x5/12,s2,pi/g,x11/7,pe/l,x14/12,s5,x8/4,pg/f,x1/7,s8,x4/13,s12,x10/14,pc/h,x13/2,s1,x15/11,s3,x3/14,s5,pb/g,x2/7,s13,x9/3,s9,x13/1,s9,x3/14,s6,x5/0,s6,x8/14,s3,x11/13,s9,x1/5,s12,x4/2,pf/m,x6/5,pi/o,x15/2,s5,x12/5,pc/b,s2,x9/8,s9,x14/0,s6,x6/1,pe/n,x8/9,po/k,x15/4,pl/f,x11/14,s3,x7/15,s14,x14/12,pe/o,x15/7,s15,x6/1,s13,x13/12,pg/h,x5/0,pe/b,x1/9,s1,x8/2,s2,x3/1,pl/k,x9/0,s5,x8/2,pi/c,s1,x6/14,ph/p,x11/15,s4,x4/14,pn/i,x0/3,ph/p,x4/5,s6,x3/7,s3,pj/g,x0/4,po/k,x3/13,s14,x12/2,s8,x15/5,s11,x1/10,pj/e,x6/9,s14,x0/3,s12,x8/5,s10,x4/15,s13,x11/2,pi/m,x13/1,s13,x8/10,s9,x0/13,s14,x5/10,pd/a,x12/8,pg/h,s12,x9/0,s2,x5/2,pi/m,x6/0,s8,x15/13,s10,x6/2,pc/b,x10/4,s12,x15/1,s2,x12/5,pe/d,x10/8,pc/f,s10,x14/1,s9,x6/10,s2,x5/1,s2,x10/0,pp/l,x3/7,s8,x8/2,s13,x13/12,s11,x7/14,pc/k,x0/5,s15,x11/12,pa/g,x13/8,s11,x4/2,s14,x11/5,s8,x0/7,s15,x4/2,pj/n,x11/8,s10,pg/a,x6/10,s9,x2/11,po/h,x8/3,s12,pf/l,x0/1,s12,x10/9,pg/m,x5/2,pl/e,x12/6,s9,x1/14,s12,x10/5,pa/k,x6/12,pe/g,x10/7,pj/d,x13/0,s8,pm/k,x5/12,ph/a,x15/3,po/l,x9/6,pk/g,x7/3,s14,x4/14,s7,x10/11,pp/m,x8/14,s11,x15/0,s1,pe/d,x13/12,pa/k,x8/14,s5,x9/7,pm/g,x8/12,pd/j,x1/13,s9,x10/6,s2,x14/5,pf/e,s1,x4/2,s8,x3/13,pi/k,x11/10,pn/j,x3/7,s3,x1/12,s10,x14/2,s13,x0/10,s4,x12/8,pp/e,x6/7,s13,x5/13,s13,x3/10,s4,x9/12,s12,po/b,x5/4,s6,x0/10,s4,x12/5,pf/c,s10,x10/15,pe/l,x4/9,s14,x6/5,s1,x2/9,pb/m,s1,x4/8,s7,x1/12,s13,x0/14,pa/o,x12/7,pk/m,x1/10,s11,x15/13,s10,x9/0,s8,x1/7,s11,x9/12,s1,x10/13,s3,x11/14,s3,x12/2,s3,x13/7,s11,x11/0,pf/l,x8/10,s10,x12/7,s8,x8/5,s5,x15/1,pj/n,s9,pp/i,x6/12,s15,x0/1,pg/a,x10/15,s1,x1/0,s7,x12/14,pm/d,s15,x6/11,s1,x7/12,pa/h,x3/9,s12,x8/5,pm/b,x9/1,pp/j,x8/7,pb/k,x1/5,s12,x10/9,pa/i,x1/4,s15,x2/0,s3,x15/10,s14,x11/9,s14,x6/14,s11,x13/2,pl/g,x7/11,s10,x4/15,s15,x12/0,s8,x3/6,pa/f,x11/2,s6,x13/6,s10,pk/d,x10/9,po/m,x13/12,pc/b,x8/4,s13,x1/11,pn/o,x8/13,s14,x15/0,s8,x13/9,s15,pa/i,x6/2,s8,x15/1,pc/m,x10/9,s6,x6/5,s3,pg/l,x8/3,s13,pa/m,x2/13,s15,x0/12,s12,x5/11,s3,po/k,x1/15,pa/f,x14/6,s15,x1/15,s3,x14/4,s4,x15/9,s15,pm/n,x1/5,s15,x3/2,pp/h,x13/5,s13,pm/e,x7/10,s5,x15/9,s10,pn/g,x10/6,pb/l,x0/8,s9,x13/1,s14,x5/8,s7,x15/11,s2,x13/4,s14,x12/3,s15,pe/n,x4/0,pk/i,x13/9,s14,x5/15,s11,x3/11,pa/e,x4/5,s13,x3/10,pf/d,x14/0,s14,x10/12,pk/e,s1,x0/1,pm/o,x3/8,s13,x15/9,s7,x11/10,pg/n,s6,ph/p,s12,x12/15,pi/a,x9/0,pe/m,x4/13,pi/p,x11/5,pj/k,x7/6,s7,x3/12,s7,x0/9,pa/d,x15/10,s9,x2/11,s4,x6/1,s4,x13/9,pb/c,x0/11,po/n,x13/6,s7,x5/1,pj/e,x4/10,pp/h,x13/11,pc/d,x3/8,s12,x4/9,s5,pg/m,x13/14,pa/f,x15/3,pi/k,x9/5,pb/e,x3/12,s8,x5/10,s8,po/j,x7/2,s10,x10/11,pg/m,x8/4,s14,x9/11,s5,x2/3,s6,x1/14,pf/h,x2/3,s11,pc/b,s1,x5/6,s11,x13/10,ph/j,s8,x14/9,s5,x4/1,pf/n,x6/13,pc/h,s1,x12/2,pa/j,x1/4,s8,x12/5,ph/o,x6/11,s4,x7/2,pl/b,x9/6,s14,x8/10,pk/h,x0/4,s1,x2/10,pd/o,x4/13,s5,x0/14,s11,x4/10,pl/b,s6,x14/7,pf/o,x6/15,s12,x4/1,s4,x12/13,s6,x8/10,pd/h,s9,x11/0,pb/a,x12/5,pg/h,x15/11,s4,x8/12,s11,x7/14,s15,x8/3,s2,x12/4,po/e,x6/15,s10,x8/10,pi/d,x6/4,pk/g,x5/12,pa/i,x2/9,s13,x15/12,pc/g,x11/9,s11,x2/12,s5,x1/5,pj/p,x15/8,s9,x12/1,s1,x0/2,pf/l,s3,x11/6,s8,x0/10,s9,x5/1,pn/i,x9/2,pd/k,x4/1,pp/l,x10/5,s10,x8/3,s2,x6/9,pg/e,x8/4,s13,x9/2,s8,x14/0,pb/m,x15/3,pi/g,x13/11,s2,x4/14,pj/o,x7/12,s10,x5/2,pm/d,x6/14,pj/b,x10/4,s15,x9/14,s1,x13/3,s7,x8/9,s5,x11/10,pc/a,s12,x9/6,s5,x13/8,s9,x15/12,s5,x0/6,s13,x15/1,s2,x6/3,pd/g,s3,x1/14,s13,x15/7,s6,x12/11,ph/n,x13/2,s12,pm/d,x12/15,pc/p,s12,x14/3,s6,x7/12,pl/h,x6/2,s1,x7/0,pn/c,x13/15,pe/b,x6/11,s1,x2/8,s6,x6/9,s7,x14/1,ph/i,s15,x13/3,s14,x5/6,pm/p,x10/3,s7,pn/d,x12/14,s10,x4/7,s5,x9/2,s9,x10/5,s13,x12/13,ph/k,x15/6,pg/c,x11/4,s1,x9/7,s1,x4/15,pf/m,s10,x6/10,pi/o,x12/2,s8,x4/8,pn/h,x9/6,pd/g,x0/3,s9,x1/7,pj/h,x6/12,pk/f,x7/10,pi/n,x12/0,pb/k,x14/3,pc/g,x7/1,po/n,x4/10,s11,x3/8,s9,x12/6,s13,x7/10,pb/k,x13/5,pc/a,x7/15,s2,x9/12,s14,x11/2,s10,pb/j,x14/5,s14,x4/10,s12,x6/14,s3,x3/13,po/n,x14/7,pb/m,x9/2,pa/k,x14/8,pc/l,x6/10,pj/m,s9,x13/12,pn/a,x15/1,s14,x5/8,pm/c,s1,x11/0,pn/d,x5/14,pc/b,x9/1,s14,x2/8,pi/l,x13/15,s14,x11/2,po/b,s11,x12/10,s12,x7/4,s7,x14/13,pd/n,x6/12,ph/m,x3/10,pp/f,x0/2,pl/g,x5/6,s3,x2/12,s11,x6/5,s11,x13/2,s8,x10/1,s7,pp/d,x11/14,s3,x9/13,pk/o,x2/12,s11,x4/7,s7,x15/2,pl/j,x1/12,s1,x5/9,s12,x12/15,s15,x3/7,s2,x5/8,s14,x2/10,po/m,s9,x5/7,s13,x11/9,pk/g,x3/14,pb/m,x5/2,pk/p,x4/11,s7,x3/6,s4,pe/h,x5/10,pn/j,x0/13,pg/k,x3/11,s11,x4/8,s13,x2/7,po/p,x5/9,pi/f,x8/4,s3,pn/j,x3/13,s2,x12/14,s5,x1/5,s8,x11/15,pf/c,x14/10,s10,x12/0,pa/d,x15/8,s8,x3/0,s15,x1/10,s11,x2/14,pb/n,x5/10,ph/j,x2/12,s12,x8/0,pa/d,s1,x9/15,pm/g,x14/4,s5,x11/9,s14,x14/0,pj/f,x15/6,s14,x9/13,s14,x7/4,s3,x12/10,s4,x9/13,pd/l,x10/6,pe/f,x0/13,pm/h,x6/1,s1,x12/9,pf/p,x2/14,s11,x8/7,ph/l,x15/3,s15,x11/5,pf/p,x15/2,pm/g,x0/10,pe/n,s11,x5/8,pl/o,x0/7,pa/e,x14/10,s11,x15/5,s13,x9/6,pl/o,x14/7,s5,x8/13,pp/m,x0/3,s12,x1/10,pd/l,x15/11,pj/f,x14/10,s5,x1/3,pl/p,x4/7,s8,x12/9,pe/m,x8/14,pa/n,x3/12,ph/o,s10,pi/e,x5/0,pm/g,x3/14,s8,x12/8,s13,x3/13,pc/j,x1/14,s2,x10/6,pe/f,x7/4,s13,x15/12,s7,x2/7,s1,x11/0,s6,x10/7,pd/n,s5,x4/0,s2,x12/10,s13,x9/2,s8,x14/13,s2,x12/0,pk/m,s14,x1/10,pj/c,x9/15,pm/p,x5/14,s5,x0/13,s11,x12/15,s7,x0/13,pl/i,x4/5,pn/o,x8/6,s5,x5/1,pp/b,x14/15,pc/m,x4/3,s3,x5/7,pb/f,x6/8,pi/l,x11/0,pb/a,x6/14,s4,x8/13,s9,x9/7,s9,pc/o,x2/14,s9,x15/10,pl/i,x2/1,s15,pp/b,x8/13,pk/n,x3/11,s11,x6/4,s1,x15/13,pd/i,x5/7,s8,x15/14,s4,x12/3,s4,x13/2,s4,x10/3,s10,x1/14,s14,x9/0,s1,x8/14,pp/o,x0/11,pd/c,x12/9,s3,x14/6,s13,x4/11,s2,x9/12,pn/e,x0/6,pk/l,x11/4,s9,pd/c,x7/9,po/a,s14,x14/4,s10,pd/j,x6/15,s4,x4/11,pl/h,x1/8,pj/k,x2/10,s14,x14/1,pl/o,x11/0,s4,x13/10,ph/e,x1/6,s8,pm/j,x0/8,pc/o,x15/10,pf/m,x7/3,s10,x15/0,s1,x6/1,pe/l,x13/7,s10,x8/1,s12,x4/6,s11,x5/15,s15,x14/7,pb/g,x0/12,pf/o,x1/9,s8,x0/7,s10,x1/11,s7,x4/15,pl/j,x3/9,s9,x14/15,s12,x9/1,s7,x5/8,pm/n,x6/13,pk/b,x0/7,s8,x11/10,s3,x13/12,pn/h,x10/4,pa/p,x13/15,s12,x4/14,s13,x2/1,s5,x15/10,s10,x9/3,po/m,x15/11,s11,x8/6,s1,x11/9,s7,pb/l,s8,x8/0,s15,x15/5,s14,x8/10,s5,x15/14,pf/h,x10/13,s14,x5/9,pm/c,x14/8,s9,x9/7,pg/a,x1/11,s14,x8/3,pm/n,x9/4,s4,x2/6,s3,x3/5,pf/a,x9/0,pp/k,x13/14,s1,ph/e,x1/5,s13,x3/15,s5,x12/9,s3,x7/11,s1,x6/12,pm/b,x10/11,s7,x4/1,pn/l,x6/5,s6,x12/7,ph/o,x0/8,pg/f,x12/6,s5,x0/2,s1,x10/9,pa/c,x6/1,s12,pl/j,x4/15,pi/o,x3/11,s6,x6/9,s7,x2/8,ph/j,x9/12,s14,x6/4,s6,pm/k,x13/15,s10,x9/11,pp/c,x7/6,s2,x11/10,s15,x14/8,pl/i,x4/5,ph/c,x13/12,pl/g,x8/11,pd/p,x4/9,ph/e,x12/6,s5,x13/10,pn/c,x3/5,s5,x1/8,pk/d,x14/6,s10,x4/3,s10,x12/11,s2,x5/2,pi/j,s14,x11/15,s9,x1/9,pm/k,x10/15,pp/f,x5/4,s4,x2/7,s5,x10/13,pn/o,x1/11,s10,x0/12,pe/b,x5/4,s15,x12/14,pc/i,s2,x13/4,s14,x14/1,s1,x2/4,ph/m,x14/1,s15,x3/13,pc/b,x14/9,s4,x6/8,s9,x12/14,s5,x10/9,pa/k,x14/13,s3,x5/7,s4,pj/i,x6/4,s1,pe/a,x8/5,s14,x12/9,s9,x13/14,s11,x3/15,s3,x13/11,s6,x12/7,pc/m,x8/11,s11,x10/1,s10,x15/12,pp/g,x3/4,pm/c,x15/13,s12,x10/8,s8,x5/12,pj/h,x13/4,s7,x11/9,s15,x10/12,s7,x2/11,pf/m,s13,x15/4,s4,x5/3,s4,ph/p,x4/8,s6,x9/14,pa/b,x5/4,s11,x11/8,pf/m,x15/7,s7,x4/2,s4,x15/9,pp/g,x5/7,s1,x13/11,pd/m,x5/0,s6,x3/8,pb/e,x12/2,s3,x3/6,s15,x13/2,pg/o,x5/1,s9,x10/13,s1,x2/14,s5,x10/6,s9,x5/1,pj/h,x10/3,pc/b,x2/8,pd/j,x12/1,s9,x13/8,s12,x15/12,s5,x8/9,s15,x13/0,s9,x2/11,pm/i,x8/10,s3,x14/0,s10,x10/8,s12,x2/5,s8,x1/14,pa/d,x2/0,s3,x14/9,s15,x1/0,s8,x13/7,pi/g,x0/1,s10,x10/13,pl/d,s7,x2/8,s10,x0/15,s12,x4/3,pi/k,x11/5,s3,x7/2,s15,pg/f,x4/0,pp/c,x10/15,s10,pj/a,x4/2,pg/o,s13,x9/8,pi/f,x5/7,s12,x12/9,pe/m,x2/6,s5,x11/0,s8,x6/12,pd/a,x0/2,s7,x9/7,ph/e,x14/11,pl/c,x4/3,s11,x7/0,pd/b,x8/2,s7,x15/13,pf/p,x9/11,s9,x0/10,pd/g,x2/4,pa/j,x3/8,s5,x12/1,s12,x15/5,pb/e,x9/10,pj/p,x6/5,pm/k,x11/7,pd/h,x4/0,pf/b,x10/5,pn/a,x14/11,s14,pj/l,x7/1,s9,x5/13,pg/h,x1/11,po/c,s11,x7/12,s12,x2/14,s2,x15/10,pb/d,x8/13,po/h,x12/6,pl/e,x9/11,s6,x14/15,s13,x12/13,ph/d,x9/7,s5,x11/10,pj/b,x5/13,s12,x2/11,s3,x5/6,s11,x10/4,s2,x13/11,s15,x0/2,pa/n,x12/13,pb/h,x14/3,pf/e,x9/6,s8,pj/l,x12/13,pd/k,x15/0,s5,pg/m,x14/10,pe/k,x4/3,s14,x1/9,s1,x15/0,s5,x3/8,s10,x2/1,pn/i,x0/4,s10,pj/p,x7/5,s15,x3/14,s15,x7/5,s4,x15/6,s10,x7/3,s2,x8/12,s13,x10/14,s15,x3/12,pg/i,x1/9,s6,x4/3,ph/b,x0/5,s5,pa/c,s7,x15/8,s8,x0/10,s9,x9/12,s6,x11/7,s2,x15/1,pm/p,x8/2,s15,x3/4,s3,x6/5,pa/f,x14/8,pm/b,x15/11,s2,x0/3,s6,x12/9,pi/e,x15/7,pp/n,x4/2,s15,x15/0,pf/g,x13/14,pj/m,x1/0,pe/i,x10/11,pp/d,x15/6,s2,x10/13,pj/o,x12/9,ph/e,x14/10,pm/a,x3/0,s4,x15/4,s11,x14/8,pp/n,x6/0,s3,x10/3,s3,x13/0,s7,x5/2,s2,x1/13,pk/j,x9/10,pn/a,s14,x13/8,pc/k,x6/10,pi/j,x3/12,s2,x9/8,s7,x3/1,pl/e,x12/15,po/m,x5/1,s1,x2/7,pk/l,x3/15,s10,pi/c,x11/10,s15,x12/0,pj/g,x8/7,pi/k,x11/15,s6,x1/13,s11,x14/8,s11,x13/5,s2,x15/4,s9,x1/9,pm/p,x3/11,pb/g,s13,x9/0,pl/k,x6/2,pb/f,x11/4,s14,x8/3,s6,x4/6,s10,x13/15,s9,x9/6,s6,x14/4,pd/i,x10/12,pl/h,x11/13,po/n,x6/9,pg/p,x14/7,s1,x0/11,s13,x9/3,pi/j,x14/1,s8,x8/13,s12,x4/11,s8,x13/3,pd/e,x6/7,s10,x2/5,s11,x9/14,pl/g,x15/1,pn/a,x14/12,s8,x1/15,s11,x6/9,s8,x3/7,pd/g,x11/0,pj/b,s10,x8/1,pa/m,x4/10,pe/d,x2/6,pg/b,x13/0,s14,x3/12,s11,x9/15,s6,x14/10,pk/p,x6/3,s7,x13/15,s10,x10/3,pa/e,x4/0,s13,x3/7,pl/n,s5,x5/15,pj/b,x0/1,s10,x12/13,s2,x0/6,pl/g,x3/12,pm/c,x5/1,pn/p,x4/6,pk/d,x8/2,s6,x14/12,pi/l,x3/9,s12,x6/5,s1,x2/10,s12,x12/3,pe/n,x15/4,pf/l,x12/14,pb/d,s13,x7/9,s4,x11/3,pe/f,x6/13,po/j,s8,pe/h,s12,x11/12,s15,x1/3,pl/g,s12,x10/13,s9,x5/8,s6,x0/6,s4,x5/3,pj/m,x10/2,s13,x15/7,pe/g,x5/3,s12,x1/9,s12,x2/14,s4,x11/0,s11,x2/7,pi/k,x11/9,po/b,x14/13,s11,x2/12,s10,x6/5,s11,x8/11,s14,x3/4,s3,x12/8,s2,x11/6,s8,x7/5,s9,x3/9,s13,x10/14,s2,x2/0,s8,x5/7,s5,x14/2,s1,x4/13,s5,x14/8,s2,pp/m,s15,x13/1,s5,x6/7,s4,x11/12,s5,x14/3,s2,x8/10,s7,pb/f,s1,x7/6,s7,x15/9,s13,x13/12,pg/h,x3/4,s13,x13/9,s5,x12/6,pk/c,s10,x8/1,s11,x14/0,pm/p,s12,x2/1,pb/h,x0/4,pm/l,x13/6,s3,x5/14,s14,x10/3,po/j,x0/9,s12,x1/5,s9,x8/4,s1,x12/6,ph/g,x10/11,s5,x12/9,pd/n,x1/14,s6,x11/4,pi/e,x2/1,pn/f,x11/13,s1,x5/0,s2,x6/9,pa/e,x0/10,pg/f,x13/15,s9,x5/11,po/c,x15/13,s15,x1/7,pp/l,x6/15,pg/k,x12/14,s7,x10/1,s12,pf/i,x2/7,s9,x13/4,pl/d,x14/10,s10,pm/k,x15/1,pd/e,s1,x11/12,s2,pg/o,x6/9,s14,x14/2,s4,x8/10,s4,x4/14,s15,pa/k,x3/11,s14,x14/15,pl/c,x8/3,s13,x5/1,s14,x14/8,s13,x3/7,pf/p,x13/8,pg/l,x7/6,s2,x11/9,ph/o,x0/2,pd/e,x4/6,s5,x7/2,s2,pj/i,s5,x5/12,s13,x0/10,s5,x7/8,s1,x4/1,s6,x7/9,s10,x3/15,pd/p,x2/11,s9,x0/10,pa/f,x15/4,s1,x6/10,pb/p,x4/14,s7,x2/13,pg/c,x12/10,s1,x13/4,s1,x1/7,s4,x4/5,pn/k,x11/10,pj/i,x1/0,s7,x14/6,s9,x11/5,s10,x4/13,s7,x1/12,s9,x3/14,s13,x0/1,pc/d,x11/10,s7,x8/2,s2,x5/11,s8,x15/6,pf/j,x10/0,s5,pm/d,s5,x7/5,s6,pg/a,x1/9,s4,x3/14,s14,pj/k,x12/10,s4,x15/3,pn/p,x6/11,pa/d,x10/8,s15,x9/11,s2,x2/3,po/g,x12/15,s15,x0/13,pj/p,x4/9,s6,x15/11,pk/g,x5/12,s3,x9/4,pj/a,s6,x0/14,s12,x12/7,pm/k,x2/0,s7,x6/1,pa/l,x14/5,s12,x1/4,s10,pn/g,x14/10,s8,x6/8,po/p,s8,x1/10,pc/a,x9/2,pg/h,s15,x10/11,pc/m,x14/4,s8,x11/7,s13,x9/12,s1,x6/2,pj/b,x1/12,s1,x10/6,ph/i,x3/13,s10,x2/7,s9,x14/4,s8,x3/5,s7,x7/8,pk/m,x12/15,s14,x0/9,s6,x5/4,s13,x0/11,s15,x15/14,pa/h,x4/9,s10,x5/0,s1,x13/14,s8,x12/15,s6,x2/4,pp/l,x5/6,pk/o,x13/3,s3,x8/10,s5,x11/12,ph/a,x5/0,s2,x6/13,pp/m,x5/2,pe/d,x6/13,po/n,x7/9,s13,x14/8,pm/f,x1/11,s6,pj/i,x2/9,s10,x15/5,pf/l,x14/9,s6,x15/1,s2,x4/8,pm/o,x15/13,s10,x8/1,pc/b,s6,x3/7,s1,x13/2,s4,x4/1,s4,x2/11,pe/m,x14/4,s10,x7/9,pd/k,x2/13,po/c,x3/9,s10,x13/8,s14,x4/7,s5,x2/0,pb/f,x12/6,pe/p,x11/9,s9,x12/7,pm/i,x4/3,s6,x2/13,pg/j,x12/0,s3,pl/b,x11/13,s10,x15/8,s2,x9/5,s4,x6/10,s2,x5/13,s13,x7/11,s15,x4/2,s8,x0/11,ph/p,x5/2,pm/n,x4/0,pe/l,x13/8,s13,x10/6,pp/b,x7/9,s14,x1/0,po/i,x3/13,s5,x8/12,pm/e,s10,x9/0,pp/k,x4/13,s8,x5/10,s5,pc/d,x14/4,s5,x12/10,pj/l,x13/11,s2,x8/1,s11,x3/12,s6,x10/2,s6,x0/12,s15,x9/7,pb/p,s7,x2/3,s11,x8/1,pk/m,x5/15,pf/d,x11/6,s10,x1/8,s11,x10/9,pm/p,x7/11,pn/b,s5,x13/6,s2,x8/9,s5,x7/13,s13,x4/1,s12,x3/9,pd/f,x13/14,s8,x2/0,s10,x10/14,pb/h,x11/1,s2,x15/3,s5,x10/6,s11,x8/1,pm/g,x11/12,pa/b,x5/4,s12,x7/12,pg/o,x1/15,pn/d,x13/9,s7,x2/4,s4,x12/14,pm/i,s5,x8/11,pb/g,x9/0,s6,x1/14,s3,x4/9,pd/i,x2/6,s14,x3/7,s4,x8/13,pf/k,x6/9,s7,x10/14,s3,x8/9,s8,x0/15,s1,x8/9,pl/n,x11/12,s12,x3/9,pc/a,x11/4,s2,x1/12,s12,x4/10,pb/l,x3/8,s3,x0/1,s1,x10/8,s6,x7/6,pn/e,s6,x9/8,s12,x7/5,pm/k,x14/0,pb/i,x12/5,s1,x15/3,s14,x6/10,s15,x15/11,pa/f,s7,x3/4,pj/h,s9,x8/2,pb/g,x4/3,s15,x2/11,s9,x1/4,s2,x0/12,pf/c,x13/10,s11,x5/14,s8,x9/0,s9,x11/8,pj/n,x2/15,s8,pf/k,s10,pb/j,x10/6,s13,x13/2,pg/n,x11/10,pi/j,x6/0,s12,x10/9,s10,x12/2,s11,x7/13,pa/d,x3/15,s2,x11/12,s11,x10/5,s6,x8/12,s8,x5/15,s15,x13/6,s3,po/i,x11/12,s9,x15/1,pb/f,s2,x12/6,s9,x13/4,s5,pp/d,x5/2,s6,x0/6,s9,x9/11,s14,pa/o,x15/3,s8,x9/1,s8,x11/12,pe/i,x6/3,s8,x0/4,po/f,x7/11,pm/n,x15/8,pg/o,x12/3,s8,x14/8,pk/b,x12/1,s8,x9/4,s7,x10/12,s12,x4/6,pe/d,x10/2,pb/c,s15,x4/12,s10,x9/1,po/n,s8,x3/2,pm/g,x4/1,pi/p,s11,x13/15,pk/a,x9/0,pe/m,x15/14,s4,x6/7,pl/k,x10/13,s14,x7/3,pg/e,x11/1,ph/k,s9,x15/7,s11,x14/9,pc/i,x6/15,pn/f,s6,x9/3,pk/c,x1/8,s2,x9/4,s8,x7/13,s3,pa/o,s11,x14/15,pm/e,x11/8,s1,x6/0,pb/k,x11/15,s14,x12/6,s4,x1/8,pa/h,s9,x5/0,s4,x10/9,s3,x0/4,s1,x12/7,s8,x5/15,s3,x11/0,s1,x5/12,s7,x0/6,s14,pd/c,x3/7,pa/n,s5,x12/4,s2,x3/13,pg/e,x2/15,s10,x4/1,s12,x8/15,pn/l,x3/14,s4,x1/15,pe/j,x5/4,s6,x14/7,s2,x12/13,pc/g,x2/3,pn/b,x0/6,s9,x10/2,pc/a,x15/8,pf/g,x10/11,s1,x8/13,pe/h,x4/6,pj/g,s15,x9/12,pm/l,x15/10,s8,x7/12,s8,x6/9,pn/i,x4/0,pd/a,x3/1,s7,x2/4,s1,x10/0,s4,x9/11,pe/k,x12/15,s13,pf/i,x14/11,s2,x0/15,s11,x12/13,po/k,x1/7,pi/j,x5/2,pk/m,x0/10,s2,x5/4,pp/d,s6,x8/12,pe/c,x0/14,s6,x11/6,s9,x9/7,s7,x6/0,s10,x5/2,s5,x14/11,s12,x0/4,pp/a,x9/12,pm/d,x14/6,s2,x15/4,pl/c,x11/12,s4,x7/5,po/j,x14/1,s12,pn/e,x10/4,pm/a,x2/13,s10,x12/6,s2,x9/2,s4,x3/6,s6,x2/0,s15,x11/14,pn/c,x15/13,s4,x14/0,s4,x11/9,s13,x2/6,pm/b,s8,x15/1,po/n,x9/10,s10,x5/0,pg/j,x2/8,s13,x0/15,s7,x9/1,s3,x8/6,s9,x4/0,po/l,x14/5,pd/h,x8/4,pa/l,x13/11,s7,x15/14,pb/n,x10/8,pj/f,x15/13,s13,x6/5,s15,x1/11,pd/o,x3/9,s4,x14/11,pb/m,x5/15,pa/h,s6,x1/11,pj/b,x5/14,s15,x15/3,s11,x5/12,pa/m,x9/11,s1,x10/1,s5,x12/11,pc/i,x4/1,s6,x11/13,pl/f,x1/6,s11,x15/11,pi/h,x7/10,s14,x2/9,pd/m,x8/1,s13,x0/3,s3,x7/12,pj/e,x2/14,s7,x9/12,s4,x1/10,pp/g,x9/13,s14,x12/0,s13,x1/3,pi/o,x5/9,s5,x4/12,pf/m,s15,x11/3,s11,x13/4,po/k,x5/0,s11,x7/13,pl/d,x15/11,s14,x13/6,s14,pe/o,s11,x12/14,s14,pc/j,x5/7,pa/g,x6/15,s1,x14/3,pd/j,s15,x1/8,s14,x2/6,s3,x1/0,pb/n,x14/6,pg/e,x4/13,s4,x7/0,pf/n,s10,x6/12,pj/o,x9/14,s10,x11/1,pi/m,x7/8,pf/d,x11/14,s10,pm/b,x4/5,s9,x9/7,po/j,x4/15,pi/b,s4,x8/2,s1,x3/13,s12,x15/1,s11,pm/d,x11/8,s1,x12/6,pf/g,x1/7,pm/p,x15/5,s11,x8/14,pl/h,x0/1,pe/a,x4/10,pm/p,x6/12,po/f,x7/2,pp/m,x14/3,s4,x10/15,pa/f,x0/14,pc/b,x7/11,s1,x15/9,pa/o,x3/5,pd/e,x11/6,po/m,x15/12,s5,x10/6,pb/h,x2/12,s5,x10/4,pg/i,x14/12,s4,x8/1,s13,x3/13,pj/b,x5/0,s3,x6/14,pg/m,x7/3,s4,x10/1,pb/l,s12,x8/15,s6,pm/f,x6/9,s14,x14/3,pg/k,x5/12,pd/n,x6/14,pj/f,x10/12,s1,x14/1,pc/g,x10/7,s11,x4/14,s9,x3/15,s12,x12/11,s8,x5/1,s6,x2/13,s5,x6/8,pm/k,x14/5,pf/p,x0/11,s12,x7/13,s3,x3/14,pj/h,x6/2,pe/k,x4/7,po/h,x3/8,s5,x14/10,s12,x12/4,s7,x13/14,pm/i,x4/0,po/d,x12/7,pp/b,x15/10,s7,x8/5,pl/a,x6/10,s7,x13/15,s6,x3/8,s11,x13/12,s13,x14/6,pb/m,x13/9,pe/j,x15/11,pb/f,x5/13,s3,x4/1,s3,x12/7,s5,pk/c,x15/10,s11,x1/13,s15,x9/5,s1,x14/3,pn/p,s10,x7/15,s2,pl/d,x0/2,pa/m,s7,x1/13,s10,ph/e,x6/12,pn/a,x3/15,pg/i,x10/8,pd/o,x7/13,pc/a,x10/0,pi/b,x3/12,pc/h,x15/1,s1,x0/11,pe/f,x3/15,pm/k,x8/4,pf/b,x7/10,s3,x2/13,po/k,x6/1,pl/h,x7/3,s6,pf/o,x8/1,s10,x14/13,pl/p,x4/8,s5,x14/5,pb/o,x13/2,pf/c,x9/1,pk/o,x6/11,s4,x7/0,s6,x3/11,s3,pc/b,x2/5,s15,x4/15,pm/o,s11,x7/5,pb/n,x12/10,s11,x13/15,pp/c,x8/14,s12,x3/1,s1,pe/g,x4/14,s6,x3/13,pc/p,x10/8,pn/e,s11,x4/11,s1,x7/10,s4,x5/14,pd/g,x2/12,s5,x3/13,s14,pp/b,x14/4,pk/n,x3/1,pd/g,x11/10,pe/p,s6,x9/8,s10,x11/3,s1,x5/10,s13,x8/15,s2,x12/9,s1,x0/10,pa/i,x1/9,pd/o,x5/12,s13,x2/0,s10,x13/9,s14,pb/p,x0/10,pa/h,x9/5,s3,pm/k,x4/8,s10,x6/10,s4,x11/3,s12,x4/7,s13,x9/6,s5,pd/i,x7/10,po/l,x4/14,s1,x0/2,s6,x1/5,s9,pm/c,x14/4,pp/n,x2/5,pl/k,x15/4,s2,x1/14,s9,x0/13,s14,pm/i,s1,x8/2,s10,x12/13,s1,x8/2,s3,x6/1,pb/e,x4/3,s2,x2/12,s6,x0/5,po/j,x8/4,pi/a,x10/2,pp/f,s5,x4/8,pl/g,x1/0,s8,x12/3,s3,x5/15,s4,x3/0,pm/n,x11/6,s5,x14/13,s14,x6/3,s7,x2/1,s15,x7/6,s14,x5/9,s9,x1/15,s9,x6/0,s12,x7/9,s13,x13/12,s14,x14/9,s15,x8/13,s5,x5/14,s8,x11/13,pj/b,x2/3,pn/o,x15/5,s4,x6/13,s6,pd/l,x9/8,s1,x0/14,s10,x6/5,s2,pp/i,x12/9,s7,x14/2,ph/f,s4,pi/l,x15/11,s12,x13/2,pn/h,s6,x4/10,s15,x13/6,s15,x15/8,s5,x4/14,pf/i,x3/7,po/g,x2/4,s5,x14/8,s10,x9/3,s4,x2/13,pf/a,x15/11,pd/c,x12/13,s1,x10/11,s12,x1/7,s10,x14/15,s10,x6/3,s12,x9/15,s14,x3/10,s11,pa/b,x14/2,s12,x5/13,s5,x9/2,pn/k,x7/1,s7,x4/5,s13,x13/6,s5,x15/3,s4,x13/1,pa/h,s8,x3/4,pm/e,x5/10,pb/g,x3/15,pe/i,s7,x4/5,s2,x2/15,s1,pm/a,x6/0,s5,x13/11,pp/b,x5/9,s6,x2/10,pk/o,x1/13,s3,x10/14,s1,x6/5,s11,x2/7,pg/i,s12,x13/9,s8,x2/10,s11,pm/a,x5/14,pg/o,x11/4,s11,x6/13,pd/p,x4/5,s1,x10/13,s15,x0/2,s1,x3/10,s4,x5/9,s11,x3/13,s13,x5/9,s1,x11/8,s14,x14/4,s9,x12/6,pm/f,s15,x7/2,pc/k,x5/6,s14,x13/1,pa/i,s10,x4/9,ph/c,x6/5,s1,x11/14,s1,x9/13,s14,pa/j,x7/14,pi/b,x12/10,pd/a,x0/11,s15,x12/7,pb/i,s12,x9/15,pe/f,x5/3,s7,x10/4,pg/i,s2,x1/6,s15,x8/14,po/j,s10,x9/11,pe/d,x2/3,s11,x14/10,s5,x13/3,pm/l,x7/15,pn/e,x12/6,s12,x8/5,s1,x1/14,s5,x6/7,s2,x3/12,s3,x5/15,s4,x13/3,s2,x11/2,pd/b,x7/0,s10,x13/8,s6,x6/5,s13,x7/8,pg/l,s10,x11/9,pn/a,x8/1,pm/f,s14,x15/14,s14,x2/9,s12,x13/11,s8,x5/2,pk/o,x7/11,pf/j,x15/13,pi/m,x1/7,s15,x13/14,s3,x12/0,s4,x6/1,s9,ph/l,x8/2,s4,x12/10,pm/n,x11/1,pl/j,x2/6,s7,x8/5,s7,x15/13,s6,x8/7,s2,x2/3,pk/p,x0/9,s9,x6/10,po/e,x3/14,pa/p,x8/15,s6,x3/7,s12,x14/9,s13,x2/8,pi/c,x13/15,s6,x1/3,pp/j,x5/10,s8,x15/1,po/f,x13/6,s13,x10/12,pp/j,x2/7,s14,x5/4,pe/a,x3/11,s9,x13/9,s10,x5/11,pg/n,x9/7,pa/l,x1/14,s6,x9/10,s14,x13/3,pn/o,x15/9,s3,x11/10,s7,x13/3,s7,x12/10,s1,x7/14,s4,x9/15,s8,x8/7,s3,x5/14,s7,x11/13,pc/g,x4/9,pi/n,x2/3,s11,x11/10,s13,x5/12,pf/e,x3/2,s4,x10/1,s12,po/m,x9/0,s6,x2/14,pl/f,x12/3,s6,x9/2,s10,x15/6,pi/c,x2/7,s7,x14/0,pl/m,x13/1,pe/p,x9/2,pb/j,x8/1,s11,x3/11,s4,x15/12,s7,x14/9,pg/l,x3/0,pa/p,x13/4,s5,x1/8,s10,x10/3,s6,x6/12,s8,x10/7,s1,x9/13,pk/h,x2/7,s15,pi/b,s5,pe/j,x12/6,pn/k,s14,x4/5,pi/b,x14/15,s15,x7/1,pc/a,x8/10,s6,x0/1,s4,x7/9,s10,x13/1,ph/l,x15/11,pg/a,x7/3,s4,x15/1,s1,x14/7,s13,x6/15,s8,x0/10,pm/o,x4/6,s8,x3/13,s2,x9/6,pg/p,x3/11,pi/k,x6/14,s7,x7/10,pe/l,x8/15,s9,pg/c,x7/11,pf/d,x2/8,s12,x15/11,s6,x5/9,pk/i,s5,x7/10,pa/g,x12/8,s5,x7/15,s6,x13/1,pf/b,x3/7,ph/n,x15/13,s4,x9/4,pc/g,x3/2,s12,x11/12,pm/o,x14/6,s6,pj/i,x3/4,s7,x12/0,pk/b,s11,x15/1,s14,pn/d,x11/0,pg/m,x12/1,s4,x5/7,s8,x9/15,s3,pj/h,x0/1,s10,x2/4,pd/m,x13/14,s11,pb/p,x3/10,s5,x15/8,pm/c,x4/14,s4,x5/8,s2,pa/h,x14/2,pe/i,x15/10,pp/b,x14/5,s15,x13/7,s12,x5/6,pa/c,x11/12,s9,x10/5,s7,x0/13,ph/f,s10,x3/12,s8,x15/2,pp/a,x5/0,s14,x13/11,s2,pn/e,x15/0,s11,x4/13,po/c,x2/5,s13,x11/1,s5,x12/2,s15,x15/13,s14,x9/5,s10,x13/12,pn/e,x10/8,pk/i,x0/9,s8,x2/10,s1,x8/0,po/c,x10/14,pb/h,x0/5,pn/i,x14/10,s2,x3/6,s8,x1/10,s15,x2/0,s13,x15/8,pc/h,x2/3,s15,x5/9,s11,pb/a,x14/4,s10,x13/7,s11,x6/2,s1,x5/4,pj/e,x9/3,ph/l,x15/4,s3,x5/0,s4,x10/3,s4,x4/14,pm/d,x13/9,s3,x15/7,s6,x9/14,s8,x2/10,s7,x0/4,s4,x11/6,pp/a,x13/4,s4,x0/12,s9,x14/8,pc/n,x4/2,s14,x11/9,pj/k,s14,x15/10,pd/g,x6/7,s8,x8/15,s8,pm/j,x11/1,pg/a,x5/8,pk/i,x10/2,s13,x5/14,s15,x1/15,pl/m,x5/14,s3,x10/3,pj/g,x13/9,ph/p,x5/2,pi/o,x15/12,s11,x6/10,pg/l,x8/5,s8,x4/13,pe/k,x3/0,pn/j,x2/5,s3,x10/8,pd/m,s10,x2/12,s14,x0/7,s10,x15/3,s15,x6/13,s14,x4/0,s15,x11/6,s2,x3/13,s8,x4/14,ph/k,s2,x15/6,pe/o,x3/14,s11,x1/7,s7,x2/11,pa/l,x3/0,pf/o,x4/7,s10,x11/6,pg/i,s6,pj/n,s14,x9/4,ph/d,x2/12,s13,x13/0,s13,x3/8,po/p,x14/11,s1,x0/10,pj/m,x12/1,s10,x15/11,pn/a,x2/14,ph/j,s3,x10/11,s12,x6/15,s3,x11/14,pp/c,x5/6,s4,x14/12,s8,x7/15,s2,x10/2,pl/m,x0/12,po/n,x8/5,s3,x4/14,pi/a,s13,x12/5,pd/j,x15/2,s13,x14/7,s5,x5/3,s13,x11/6,pa/c,x4/12,pp/e,x14/0,s13,x8/11,s6,x14/13,s10,x2/11,pk/i,s9,ph/f,x5/9,s5,x7/12,pk/a,x11/8,pb/n,x15/0,s3,x6/4,pl/m,x12/11,s10,x4/15,s15,x13/10,pj/p,x8/14,pg/m,x4/3,s10,x0/2,s15,x6/4,s14,pd/f,x3/12,s3,x14/9,pp/l,x3/15,s10,x4/14,pi/d,x12/1,s1,x4/11,s3,x14/3,s2,x5/8,s12,pj/p,x2/10,s3,x3/12,s14,x11/1,s1,x13/3,s5,x6/0,pl/g,x4/2,s6,x14/10,s11,x0/11,ph/j,x14/2,s13,x3/11,s5,x10/7,s8,x15/12,s8,x4/5,s10,x13/14,s11,x5/8,pg/p,x1/7,s13,x11/8,s8,x1/4,pf/h,s5,x9/12,po/k,x1/4,s10,x3/7,s8,x9/8,s13,x5/1,s11,x13/14,s2,x8/10,pf/e,s1,x12/9,po/k,s10,x11/15,s6,x7/1,s6,x8/9,pe/p,s13,x10/3,s2,x8/9,pb/c,x2/15,s11,x7/11,s3,x9/10,s15,x6/7,s5,x10/13,pa/e,x7/11,s10,x12/10,pm/l,x8/13,s9,pj/n,x15/11,pf/i,s11,x7/2,s14,x0/10,s15,x1/5,s7,x8/3,s8,x5/11,s15,pl/h,x4/2,s10,x6/8,s8,pb/g,x12/2,s11,x6/11,s6,pc/j,x14/12,s5,x6/8,s9,x11/9,s13,x12/5,s5,x3/14,s12,x1/0,pd/b,x4/5,s3,x0/6,s5,x14/15,pa/e,x7/1,s6,x11/15,s13,x14/1,s15,x10/6,pm/i,x13/2,pl/n,x6/15,pj/i,x5/7,s3,x0/8,s4,x2/9,s11,x1/3,pg/c,x11/15,pf/k,x0/9,s11,x10/7,pl/d,s11,x14/1,s1,x0/7,s12,pp/e,x10/6,pf/d,x9/4,pj/c,x7/0,s12,x14/3,s1,x9/12,s2,x15/11,s2,x12/14,s12,x4/5,pp/d,x15/12,po/h,x13/9,s4,x3/6,pa/g,x8/10,po/d,x12/14,s7,x13/9,s4,x7/12,s7,x1/6,pg/m,x2/4,s11,x5/9,s7,pc/i,x13/2,s4,x6/15,pg/o,x8/11,s15,x4/6,s5,x10/12,pe/b,x9/14,pc/a,x4/6,s10,pg/f,s5,x12/9,s9,x13/15,s9,x0/5,s10,x8/10,s1,x6/5,s9,x2/0,ph/e,x4/14,s12,x2/11,pd/k,x13/9,s4,x7/4,ph/n,s11,x8/13,pp/i,x6/11,s2,x5/15,s4,pl/c,x12/3,s10,x1/15,pg/n,s9,x11/4,s3,x9/8,s7,x11/15,s10,po/f,x5/0,s15,pa/g,x14/3,ph/m,x15/12,s8,x8/2,s3,x1/6,s1,pf/b,x7/3,s12,x11/12,po/g,x13/4,s4,pi/n,x6/9,s4,x5/13,pj/f,x6/10,s7,x3/11,s3,pg/p,x1/15,po/k,x6/0,s11,x13/2,pe/m,x0/5,s15,x1/14,s7,x2/6,pf/l,s6,x15/9,s15,x8/12,pg/o,x10/1,s8,x7/9,pa/e,s9,x0/13,pj/d,x15/9,s5,x11/4,s4,x5/7,s15,x12/1,s14,x11/15,s3,x10/0,s13,x9/14,s11,pb/h,x8/12,pn/f,x0/14,pp/l,x8/13,s10,x2/1,s11,po/f,x14/8,pn/j,x2/5,pc/h,x7/10,pn/e,x8/15,s15,x12/11,pd/l,x13/3,s9,x1/11,s3,x12/13,pb/k,x2/9,pd/m,x7/5,pf/g,x13/11,s12,x14/2,s10,x3/13,pj/e,x7/15,s2,x9/10,pc/d,x6/8,s10,x7/9,pm/e,x12/6,s10,x7/8,pp/a,x0/9,s2,pj/i,x8/1,s15,x7/10,s10,x0/3,po/g,x13/14,s4,x15/3,s11,x4/8,s2,pp/d,x7/11,s1,x9/8,s3,x15/5,s15,x3/12,s12,x9/14,pa/j,x8/0,s7,x4/5,pk/o,x7/3,s9,x6/0,s10,x4/7,pe/i,s8,x13/8,s4,x9/0,pd/k,x5/13,s8,x10/15,pf/a,x11/9,s5,x6/7,s3,x5/11,s3,x15/1,pb/d,s11,x2/8,s15,x3/15,pg/c,x2/8,pl/k,x0/9,s9,pg/h,x7/4,pa/f,s3,x13/3,pd/i,x6/12,s2,x13/9,pa/n,x0/5,s5,x3/12,s15,pl/k,x7/6,s1,x2/11,s14,x3/4,s9,x14/12,s15,pj/i,x4/3,pg/p,x15/0,po/a,x7/3,pp/n,x15/4,pd/o,s4,x5/13,ph/c,s3,x1/3,pj/i,x7/11,pd/g,x9/10,po/i,x11/5,pk/h,x8/2,s4,x0/12,pf/l,x9/5,pa/g,s2,x13/3,pk/c,x11/0,s10,x3/8,s10,x10/1,pg/o,x3/11,s11,x9/12,s4,pm/n,x3/14,s5,x15/0,s4,x10/12,ph/b,x15/0,pj/o,x2/1,s6,x9/10,s11,x7/12,pm/l,x1/8,pi/e,x2/12,pb/f,x1/10,pm/j,x14/4,pf/h,x2/3,pc/d,x13/1,s4,x4/7,pk/g,x3/6,s9,x0/14,s6,x6/11,s1,x10/1,s5,x11/12,pp/o,x14/3,s13,x7/5,s8,x11/4,s12,pk/e,x6/5,po/m,x1/15,s3,x8/4,s15,x1/5,s4,x4/15,s9,x13/3,pg/d,s2,x7/5,s9,x13/2,pk/n,s3,x9/4,s1,x0/6,s15,pb/i,x14/10,pl/j,x1/12,pp/i,x14/15,s14,pn/m,s9,pj/b,x6/3,s12,pe/k,x1/10,po/b,x13/6,ph/l,x5/8,pk/e,x6/15,pn/b,x13/7,pe/f,x10/15,s14,x8/5,ph/b,x15/2,pj/k,x9/5,s12,pi/o,x0/2,s13,x4/12,pe/c,x9/5,pg/h,x3/2,pa/m,x0/10,s10,x12/9,pc/g,x1/5,s15,x6/12,pl/m,x1/8,s4,x11/10,pb/k,x12/14,pg/i,x0/7,pj/e,s1,x12/8,s12,x7/11,pm/p,x14/8,pl/e,s14,x9/2,pk/d,x8/10,s9,x6/4,s5,x2/1,pn/j,x5/7,s2,x9/10,s12,x8/12,s7,x3/10,s2,pp/l,x7/11,pf/a,x14/8,s15,x15/4,po/k,x14/2,s7,x11/5,pc/b,x1/9,s1,x8/11,s13,x1/15,pj/p,x9/7,pe/a,x11/0,pg/i,x9/15,s13,x4/8,pa/l,x13/14,pg/d,x15/1,s10,x7/11,s3,x4/3,s9,x7/14,pi/k,x15/9,s3,x8/6,s6,x14/5,pa/m,x8/9,pc/f,s5,x5/6,s11,pi/l,x11/4,s13,x8/7,pm/c,x12/15,pl/g,x0/2,s3,x11/8,ph/m,s3,x3/14,s3,pn/j,x10/4,s5,x6/5,s9,x9/10,pm/i,x0/7,s5,x8/6,pg/e,x11/12,s7,x14/4,s7,x1/8,pn/d,x12/3,pl/f,x5/10,s12,x0/11,s8,x7/3,pg/j,x0/13,s15,x14/9,s2,x8/4,po/p,x13/10,pn/f,x15/9,s8,x5/2,s2,pg/o,x9/11,s7,x12/0,pl/c,x13/11,s11,x7/9,po/j,x5/13,s4,x9/6,s9,x11/5,s1,x1/2,s15,x3/5,s8,x10/15,pb/n,x2/1,s7,x10/4,s1,x3/5,pd/p,x12/1,s1,x11/8,s1,x6/10,s3,x15/1,pf/k,x5/2,pn/h,x3/12,pp/o,x11/5,s11,x3/10,s3,x8/0,s13,pc/d,x15/11,po/a,x13/2,ph/l,s8,pb/i,x1/12,pe/o,x13/5,ph/n,s6,x2/3,s7,x14/1,s13,x8/15,s5,x4/13,pi/b,x8/2,s10,x10/9,ph/k,x6/14,pc/n,x9/12,ph/a,x7/8,s4,x11/1,s10,x12/2,s1,x0/5,po/l,s11,pa/d,x1/14,s13,x10/13,pg/e,s4,x1/7,s5,x4/13,pf/h,x2/6,pi/p,x10/3,s13,x0/5,pg/l,x10/8,s4,x15/2,s15,x13/4,pk/c,x3/14,s5,x4/11,s13,x8/6,s7,x5/2,pi/g,x14/13,s8,x11/5,s9,x10/15,pc/b,x8/2,s15,x5/0,pm/p,x13/4,s11,x5/9,pe/c,x11/0,po/d,x7/9,s6,x11/0,s5,x13/12,ph/k,x3/15,s6,x2/6,s13,x1/10,s14,x9/5,s9,x10/7,s1,x15/6,s7,x4/11,s7,x7/6,pa/j,x0/14,pe/g,x9/6,s7,x10/3,pi/l,x15/12,pk/g,x6/13,s15,x15/1,s3,x11/8,s8,pa/n,x7/15,s10,pi/p,s15,x1/13,s13,pc/a,x8/12,s9,x11/4,pl/m,x14/8,s10,x9/15,pj/p,x7/3,s4,x9/15,pn/b,x6/8,s4,x11/1,pa/g,s9,pk/i,x4/12,s8,x0/13,pn/j,x14/10,s2,x15/7,s5,x9/8,s15,x5/1,s15,x4/11,s6,x8/15,s12,x10/14,s14,x6/1,po/m,x10/3,s6,pe/i,x1/13,pc/l,x4/9,s2,pg/p,x2/13,s9,x3/6,s13,x10/13,s11,x0/8,pe/m,s5,x2/9,pi/c,x13/6,pm/h,s14,x5/4,pa/e,x15/7,s12,x13/2,s6,x1/4,s4,x11/5,s5,x9/14,pn/f,x12/5,s12,x9/0,s3,x15/3,s4,x10/9,po/j,x7/4,s12,x14/5,pb/h,x10/11,po/j,x14/4,s4,x11/5,s12,x12/15,pb/n,x5/13,pl/e,x14/12,pj/m,x3/6,s2,x4/12,s3,x9/5,ph/o,x1/4,s7,x6/5,s2,x0/8,pc/m,x12/4,s13,x7/1,s14,x9/4,s13,ph/k,x10/3,pe/d,x5/7,pb/n,x1/11,s7,x14/12,s4,x5/8,s15,x9/2,s2,x8/10,s15,x4/1,pd/a,x8/3,pk/b,x2/11,pg/o,x15/5,s2,x1/6,pp/n,x0/5,pf/g,s1,x14/12,s11,x2/6,pj/l,x3/7,s1,x4/15,ph/a,x3/6,s14,x2/12,pi/p,x15/13,pd/m,x3/2,pg/l,x5/13,s9,x4/14,pj/c,x5/13,s6,x0/7,s10,x8/10,pm/i,x12/4,s13,x10/0,s2,x5/6,s4,x3/7,pl/j,x12/10,s6,x9/6,s5,x14/8,s2,x1/2,s12,x6/12,pn/m,x11/7,s3,x0/12,s11,pb/p,s15,x10/8,s12,x4/1,s6,x15/5,pi/a,x9/1,s14,x15/5,s11,x8/12,po/g,x4/9,s3,pn/m,s14,pl/f,x3/2,pa/p,x14/4,s9,pe/n,x11/2,pc/b,x13/10,s14,x3/11,s3,pp/d,x14/15,s13,x11/9,s14,x0/12,s7,x6/14,s2,x8/9,s2,x2/10,s13,x14/11,pe/n,x9/6,s5,x5/0,s9,x11/14,ph/d,x1/12,s3,x9/0,pb/c,x6/1,pl/m,x7/0,s5,x2/8,pc/e,x9/11,pk/m,x0/4,pi/p,x7/9,s3,x11/4,s5,x9/15,s10,x7/14,ph/n,s8,x9/5,s14,x8/12,s3,x5/7,s7,x12/3,s7,x13/7,pi/d,x8/2,s15,x3/13,s11,x8/15,s2,x12/7,s13,x3/4,s11,x15/0,pl/o,x4/2,s10,pb/d,x7/8,s12,x10/3,s3,x5/0,pl/k,x9/2,s11,x10/7,s11,pi/h,x13/0,pm/j,x11/14,s8,x7/13,pk/c,s2,x6/14,pn/i,x5/1,s5,x10/8,s11,x9/13,s1,pb/c,x8/2,s13,pd/j,x15/5,s2,x3/2,s8,x11/7,s8,x2/1,s5,x9/10,s6,x4/7,s14,x11/15,s3,x1/14,s7,x7/9,s1,x8/13,pb/e,x6/11,pp/i,x2/5,s13,pa/n,x12/13,s2,x11/7,pi/k,x1/5,s3,x11/9,s2,x2/6,pc/l,x12/9,s6,x2/15,pi/a,x6/10,pn/d,x0/1,s11,x15/6,s13,x4/11,pg/f,s7,x6/9,s14,x1/11,po/m,x14/9,s9,x15/6,s10,x5/0,s12,x3/8,s12,x10/4,s13,pb/d,x11/9,pf/e,x8/6,s10,x9/14,s10,x1/10,s5,pl/n,x12/4,pp/f,x15/8,s5,x0/4,s11,x10/12,s13,x11/1,s6,pm/l,x5/2,s9,pf/a,x10/12,s5,x0/13,pk/p,x10/7,s8,x14/11,pj/f,x0/8,pl/b,x3/9,pe/n,x8/5,pm/d,x15/6,s13,x2/13,pp/n,x6/4,s4,x7/13,s1,x2/11,s3,x14/7,pi/a,x4/3,s3,x15/7,s1,x14/4,s6,x7/5,s13,x0/12,s10,ph/b,x3/10,pn/d,x2/1,pk/f,x3/5,pd/e,s3,x11/7,s8,x14/3,s3,x7/8,s2,x4/1,pm/f,x6/11,s4,x10/7,s9,x11/0,pj/i,s5,x3/1,s6,x5/0,pc/d,x11/13,s14,pf/j,x4/12,s6,x14/0,pm/n,x3/5,po/i,x13/12,pk/b,x0/15,s9,x2/5,s9,pa/j,s6,x3/12,s12,x8/2,pe/m,x13/5,s13,x7/4,s2,x2/15,po/h,x8/0,s15,pj/g,x9/12,s10,x13/6,s13,pl/n,x2/10,s6,x5/12,pe/p,x4/11,s13,x2/14,s14,x10/4,pj/h,x2/11,pi/p,x13/5,s12,x9/0,s14,x2/11,s8,x12/15,s7,x8/10,pe/j,x6/11,s12,pp/m,x5/4,pn/k,x7/6,s13,x12/5,s10,x10/0,s11,x1/6,pm/h,x13/9,pa/d,x10/3,s15,x0/13,s11,x6/1,s2,x0/7,s2,x13/14,pp/h,x0/5,pj/d,x7/9,pb/i,s2,x0/14,s4,x4/5,s11,x11/10,s14,x7/12,s8,x5/6,s12,x8/3,pg/m,x2/13,s12,x9/5,pc/o,x3/6,pe/b,x14/2,s4,x0/1,s14,x13/4,s2,x11/9,pa/k,x12/14,s4,x13/4,pg/p,x5/11,pb/d,x8/7,pa/n,x13/6,pd/g,x10/0,s8,pm/n,x13/4,pk/d,s9,x3/5,s6,x1/4,s15,x9/12,pm/b,x5/11,pl/a,x3/8,s2,x2/1,s11,x7/10,s8,po/c,x12/5,s4,x6/9,pl/p,x1/11,s8,x14/12,pa/i,x10/8,pl/e,x7/13,s14,x10/0,s9,x6/4,s14,x10/11,ph/g,x0/9,s4,x6/2,s10,x3/7,s14,x6/5,pj/k,s2,x3/10,s3,x5/8,pp/d,x9/3,s11,x12/6,s11,x8/10,s6,x5/6,ph/n,x4/1,s13,x2/8,pl/p,s7,x6/5,s5,x3/4,s4,x7/11,s15,x13/14,pb/g,x9/8,po/n,s14,x2/15,s13,x12/3,s15,x9/13,pa/f,x3/6,s13,x1/4,pn/b,x7/0,pl/f,x1/10,pa/c,x2/7,s5,x15/14,pj/g,s13,x3/0,s7,pc/d,x12/6,pa/p,x15/8,s13,x0/9,pm/l,x4/12,pk/a,x0/3,pg/i,x2/12,s13,x4/1,pe/p,x6/0,pm/a,x15/2,pe/l,x0/6,po/f,x11/10,s5,x6/0,s9,x11/15,s5,x1/7,s8,x9/3,pg/i,s4,pb/e,x11/6,pl/k,s3,x2/3,pf/b,x1/13,pk/h,x2/5,s6,x3/6,pn/f,x5/1,pe/h,x14/12,pn/j,x10/2,s3,x1/15,s12,x13/3,s12,x1/6,pm/k,x8/15,s5,x10/14,pg/c,s6,x8/2,s14,x4/12,pj/i,x8/0,s14,x13/15,po/e,s15,x7/1,s11,pj/h,x3/5,pb/n,x11/1,s13,x8/9,s10,x0/14,s8,x9/7,s7,x4/12,s6,pc/m,x13/0,s1,x8/15,s1,x0/2,s6,x10/3,s5,x7/12,s4,x1/2,s12,x13/4,s14,x12/2,pe/n,x0/9,s5,x5/15,s8,x3/0,s4,x5/1,pg/k,x4/6,s9,x13/3,s15,x10/7,s6,x9/15,pp/n,x6/11,pd/j,s10,x1/7,s10,x13/10,s15,x4/1,s6,x2/9,pp/h,x11/14,s6,x4/0,s1,x1/5,pn/c,x8/11,s6,pp/f,x0/13,pe/m,x3/8,s9,x2/6,s12,x8/7,s14,x12/1,s1,x13/3,s1,x4/11,s9,x7/2,pn/j,x15/6,s9,x13/9,s9,x3/0,pk/c,x14/10,pf/e,x13/3,s7,x7/4,pk/p,s8,x14/2,s9,x15/3,s13,x5/6,pd/l,x8/2,s5,pm/c,x11/3,pe/g,x6/5,s4,x15/0,s10,x14/9,pc/l,x7/12,pf/i,x14/2,s2,x11/6,s10,x15/12,pg/l,x3/14,pp/h,x9/8,pl/a,x0/14,pi/m,x7/9,s8,pg/c,x2/0,pe/l,s7,x5/6,s15,x9/0,s12,pf/d,x4/11,s12,x15/1,pi/e,x4/14,pb/k,x3/0,s4,x2/14,s9,x1/6,s7,x11/7,s12,x1/10,pp/n,x15/6,ph/k,x4/11,s11,x7/0,po/g,x15/8,s3,x12/14,pl/j,x11/5,pe/d,x6/13,ph/k,s8,x10/4,s7,x14/11,pn/b,x7/1,s3,x10/3,pj/k,x11/4,s4,x13/5,s14,x1/9,s12,x0/6,s8,x15/11,s1,x5/4,po/c,x14/0,pe/k,x5/8,pb/j,x15/14,s2,x0/10,s9,x11/9,s7,x3/0,s12,x5/14,s11,pc/p,x7/2,s3,x12/1,s5,x6/0,s13,x11/5,pm/b,x14/13,pd/j,x7/1,s10,x11/14,s5,x4/13,s12,x10/8,s14,x5/12,s6,x9/4,pm/c,x10/15,s6,x3/0,pk/o,x6/13,s11,x4/11,ph/e,x1/13,s6,x2/0,s13,x3/13,s7,x14/12,s10,pk/p,x8/9,s11,x10/2,s2,x7/6,pa/l,x14/13,s11,x3/15,s3,x12/11,s10,pb/c,x0/6,pe/n,x10/4,pf/c,x2/5,pj/e,x14/13,s12,x7/3,pd/n,x10/1,pc/b,x4/3,ph/k,x9/13,s2,x14/6,s2,x5/9,s5,x2/14,s7,pa/m,x11/0,s13,x7/3,s2,x4/1,pd/l,x7/13,pp/b,x8/4,s6,x10/5,pe/g,s14,x1/12,s12,x11/6,s6,x5/8,s5,x11/15,ph/c,x6/0,po/m,x4/10,s2,pe/d,s15,x11/15,ph/c,x1/9,s6,x3/8,pf/b,x10/11,pp/n,x5/13,pj/g,s4,x12/9,s14,x4/15,s6,x1/9,s1,pp/f,s4,x15/11,pa/g,x14/2,pn/o,s9,x8/3,s12,x6/13,pa/j,x1/10,pc/h,x3/12,s14,x2/5,pk/l,x12/7,pg/i,x2/15,pk/f,x14/5,pd/g,x4/6,pj/n,x10/13,s1,x15/3,s11,x4/8,s5,x15/12,s14,x9/10,pf/b,x8/3,s2,x0/15,s14,x14/7,po/d,x5/0,s5,x8/14,s2,x3/4,s4,x0/2,s2,x5/4,s9,pb/j,x15/9,pe/p,x0/5,s12,x2/12,s15,x13/0,s15,x10/9,s8,x4/6,po/g,x11/15,pc/f,x10/2,s11,x5/11,s12,x2/1,pd/j,s14,x12/5,s14,x11/6,pi/l,x7/5,s9,x6/2,s3,x7/15,s14,x3/2,s10,x0/10,pp/f,x11/14,s9,x10/13,s3,x9/2,po/e,x12/10,s2,x7/6,s10,x8/3,s11,x11/10,pf/j,x1/5,s9,x15/4,pb/g,x11/0,pk/f,x12/14,s10,x8/2,s5,x6/10,pi/n,s12,x0/8,pm/g,x4/13,s3,x6/3,pn/p,x8/9,s15,x3/4,s1,x5/9,pm/a,x1/4,pe/b,x8/13,s7,x6/7,pk/j,s11,x3/1,s4,x2/9,s14,x6/4,s14,pb/l,s13,x0/3,pf/j,x1/10,s8,x12/11,s12,pe/h,x14/15,s10,x13/3,s11,x6/12,s10,x5/0,s7,x10/14,s11,x4/3,pk/j,x13/0,s8,x14/9,s12,x3/13,pi/m,s11,x9/11,s9,x4/3,s9,x12/7,s3,x0/11,s14,x2/8,pl/h,x5/14,s12,x11/7,s13,x12/2,po/c,x11/8,s3,pm/n,s15,x15/10,pl/c,x8/0,s6,x1/6,pb/p,x4/0,s1,x5/3,pd/i,x2/1,pl/k,x4/13,s8,x3/1,s2,ph/p,x11/4,s5,x9/10,s13,x15/14,pl/f,x2/6,pi/e,x10/0,s3,pn/k,x15/5,s6,x10/9,s8,x8/0,pi/l,x7/1,pg/a,x9/8,pb/p,x7/5,pj/h,x10/0,s9,x11/1,s8,x15/8,s8,x3/9,pd/a,x14/2,pf/c,x10/3,s5,x6/5,s8,x0/10,pd/j,x15/2,s4,pn/o,s13,pj/i,x0/9,pl/b,s12,x11/1,po/g,x13/9,pe/k,x0/15,pl/m,x9/14,po/i,s7,x6/13,s8,x8/1,s3,x12/11,s15,x3/13,s12,x5/0,pk/c,s7,x10/9,pf/m,x3/8,s3,x9/7,s8,x0/4,s7,x14/3,s1,x1/9,pg/a,s3,x5/15,pe/f,x6/13,pb/k,x4/3,po/n,x8/14,pg/i,x11/15,pd/c,s14,x1/0,s13,x15/14,s4,x12/5,s5,x15/7,ph/e,s2,x5/13,s4,pg/k,x2/3,pa/n,x15/5,ph/l,s9,x13/9,s13,x0/8,pb/p,x13/2,s9,x11/4,pk/j,x6/5,s7,x7/1,s5,x5/2,pm/p,x9/14,s11,x2/10,pg/c,x8/9,s5,x4/11,s13,pn/a,x9/0,s13,x5/8,s1,x9/0,s2,pi/p,x4/8,s13,x12/0,pb/m,x4/3,s6,pk/i,x7/12,s11,x11/9,pc/e,x15/14,pn/m,x4/8,pc/e,x9/11,pi/a,x14/6,pl/o,x0/12,pa/g,x9/7,s1,x6/5,s1,x9/3,ph/k,x7/5,s10,x11/1,s4,x5/13,s13,x7/9,pb/c,x5/13,pd/a,s5,x1/6,s5,x13/5,s8,x0/12,pj/g,x13/2,s12,po/e,x5/4,pk/d,x9/13,pp/a,x10/5,pg/n,x0/7,s4,x12/2,pi/k,x5/15,pb/e,s13,po/g,x7/11,pd/a,x12/9,ph/e,x8/2,po/n,x12/7,pg/k,x6/5,s5,x12/4,s2,x10/5,pf/e,s4,x8/2,s5,x5/14,s10,x7/15,s5,x2/9,s8,x3/6,s11,x0/8,s8,pm/a,x3/13,pb/l,x8/4,pa/j,x11/6,s6,pn/k,x7/15,s14,x6/8,pj/a,x14/0,s3,x13/8,ph/i,s13,x3/1,pj/d,x10/14,s10,x7/4,pm/h,x13/10,pp/j,x14/9,pa/h,x2/15,s7,x6/1,s4,x0/4,s6,pj/p,x7/9,s13,x6/4,ph/b,x12/11,pd/f,x4/10,pb/h,x13/7,s8,x11/15,pn/d,x14/3,s11,x12/15,s2,x2/6,s5,x15/3,pk/l,x5/12,s2,x14/8,pc/g,x6/7,pf/p,x8/3,s12,x10/11,pm/o,x7/6,s10,x2/1,pp/j,x15/10,pa/n,x1/0,s9,x8/13,pg/e,x0/4,pd/m,x15/14,pc/j,x1/7,s4,x0/6,pb/o,x9/15,s15,x10/13,s2,pj/d,s9,x12/6,s5,x11/15,s7,x1/0,s6,x4/6,s2,x11/5,ph/n,x6/12,s14,x4/5,s6,x15/6,s8,x12/2,pb/i,x6/9,s15,x8/13,s2,x5/1,s6,x0/10,pe/d,x7/8,s10,x14/1,s13,x8/4,s12,x11/5,pb/m,x7/9,s2,x11/6,s11,x12/9,po/k,x11/4,pc/m,x1/8,pf/o,x3/13,s8,x10/9,s3,x13/12,pb/g,s8,x7/9,s9,x11/4,s4,x10/8,pi/m,x13/3,pa/d,x0/15,s6,x11/10,s14,x8/4,s13,x5/15,ph/n,x10/8,s4,x0/12,s1,x11/14,s5,x6/0,pa/b,s12,x1/11,s7,x3/9,pf/e,x13/15,pm/l,s1,x8/5,ph/f,x6/0,pe/m,x7/14,s1,x5/1,s11,x14/12,po/j,x13/15,pk/f,x4/11,ph/j,x5/8,s11,x15/1,s14,x2/13,s5,x14/1,pl/g,x11/2,s9,x8/7,pb/c,x2/14,s9,x9/12,s3,x4/3,s3,x10/11,s6,x1/15,pl/f,s13,x7/11,pm/n,x3/6,pl/p,x10/4,s10,x7/6,s6,x3/11,s8,x5/2,s1,x15/8,pj/g,x10/0,pa/e,x4/2,pp/c,x12/13,s3,x8/15,s5,x4/2,pf/l,x14/5,s1,x12/10,s4,pi/a,x3/2,po/e,x8/7,pi/c,x5/6,s11,x9/7,s3,x13/12,s15,x10/3,s3,x0/7,s7,x6/8,pj/l,x15/11,s14,x9/7,pp/a,s4,pk/g,x1/2,s7,x14/6,ph/i,x0/9,pp/f,s8,x5/3,s15,pc/b,x10/2,s15,x1/3,s6,x15/12,s6,x9/1,pm/f,x12/11,s3,x10/15,pj/k,x3/5,s5,x4/6,s15,x12/1,s11,x14/2,s14,x1/15,pb/d,x2/10,s4,x14/4,s5,x2/7,s15,pk/l,x10/14,pd/b,x0/1,s11,x14/7,pi/l,s3,x1/11,pb/m,x5/7,s12,x4/1,pk/c,s8,x11/2,s8,x1/13,s11,x3/14,pp/m,s15,x8/10,pk/b,x6/7,pf/j,x14/8,s7,x12/7,s6,x4/11,pe/n,s5,x1/3,s13,x5/14,pm/d,s9,x11/12,s8,x2/1,s2,x0/12,pg/p,x15/13,s14,x3/12,s8,x14/6,pe/j,x0/11,s10,x3/4,pp/b,x6/12,s6,x5/2,pc/h,x8/4,pp/k,x14/5,s14,x7/13,s3,x2/10,s3,x11/1,s4,pl/b,s9,x0/12,ph/i,x15/8,s12,pl/p,x5/0,s1,x2/9,s4,x15/4,s14,po/m,x2/14,s1,x4/7,s14,x8/6,s13,x5/10,s4,x3/11,s5,x9/2,s6,x5/10,pd/a,s11,x8/0,s6,x7/13,s4,pg/i,x11/3,s15,x15/13,pk/d,x7/8,pi/l,x1/2,pk/a,x9/13,s2,x12/14,s8,x13/9,s2,x0/15,pg/f,x11/4,pi/o,x0/7,s7,x6/4,pk/n,x14/5,s10,x13/12,pf/l,x3/14,s13,x8/11,pg/n,x1/9,s12,x5/14,s8,x7/3,s11,pf/j,x10/12,pd/e,x13/11,s13,x1/4,pc/n,x7/8,s9,pa/k,s9,x9/1,s9,x7/11,s10,x9/2,s7,x10/15,ph/d,x7/6,pl/m,x3/2,ph/f,x5/10,pp/g,s13,x12/6,pj/c,x10/8,s3,x6/11,pk/o,x12/15,s12,x10/0,pf/l,x6/1,pc/g,x0/4,s1,x15/7,s10,x9/12,pj/n,s12,x4/5,s7,x9/6,s10,x15/10,s10,x4/9,s10,x0/8,s6,x7/3,pm/g,x15/1,s13,x2/7,s12,x6/15,s2,x5/2,s3,x15/14,s5,x4/3,pc/l,x10/9,pa/e,x3/11,s4,x0/13,s2,x15/10,s8,x0/4,pp/j,x14/13,pl/d,s6,x1/6,pe/o,x14/13,ph/c,x0/6,s3,x1/2,pb/e,x4/5,s11,x1/3,pc/o,x2/9,s14,x12/11,pm/j,x1/7,s11,pi/l,x5/6,s12,x15/8,pj/f,x5/1,s9,x11/12,s3,pb/n,x10/2,s10,x1/4,s11,x12/0,s7,x13/7,s14,x0/3,s9,x8/15,pi/j,x0/11,s5,x13/15,s11,x7/11,ph/f,x8/10,pm/n,x13/12,ph/j,x8/10,s6,x7/5,s7,x4/3,pa/o,x8/15,s4,x3/1,s8,x6/10,s9,ph/c,s6,x12/14,s12,pp/i,s8,x4/9,s1,x8/12,s3,x2/6,s14,x4/11,s2,x8/5,s10,x7/4,s14,x8/12,s4,x5/2,s1,x8/9,s5,x7/12,pb/a,x11/3,s14,x13/12,s4,x9/6,pi/l,x15/2,pk/c,x12/7,pa/d,x9/4,s14,x1/14,pm/e,x6/9,s3,x7/8,s7,x6/14,s12,x3/7,s15,ph/d,s9,x6/12,pc/a,x7/11,s6,x8/12,s1,x3/5,s1,pm/p,x8/15,s14,x0/2,pn/d,x14/8,ph/c,x13/12,pg/i,s5,x8/14,pk/m,x15/2,pp/l,x0/12,s5,x2/7,pk/e,x1/13,pi/h,x6/9,s1,x2/12,s13,x7/10,s12,x12/14,po/k,x11/4,s1,x3/8,s1,x10/2,s9,x5/4,pj/h,x13/10,s8,x8/2,pd/p,x6/3,pi/n,s9,x4/12,pj/e,s5,x8/0,s9,x4/5,s12,x10/7,pm/d,x6/8,pe/i,x0/4,pb/j,s11,x3/13,s8,pg/c,x4/11,s9,x14/5,pl/n,x10/11,s6,x5/0,pk/b,x1/3,s13,x13/4,ph/n,x2/8,s10,x11/3,s6,x7/10,po/c,x3/14,pa/k,s1,x11/8,pb/n,x0/12,s4,x5/9,s6,x2/1,s6,x6/8,s3,x5/13,ph/f,x10/1,pb/l,s9,x12/11,s15,x5/15,s8,x3/1,pd/p,x11/0,s7,x9/15,s5,x0/7,pc/n,x12/10,ph/j,x14/9,s2,x15/0,s1,x7/10,pa/n,x2/15,s1,x11/4,s14,x2/6,pj/i,x13/11,s7,x14/10,pb/f,x8/6,s11,x7/12,pm/i,x13/14,pk/o,x7/12,s12,x3/8,pj/g,x13/7,s15,x1/4,ph/n,x0/15,pl/g,x12/5,s15,pd/h,s11,x9/3,pa/n,s2,x12/6,pk/j,x10/0,s7,x3/8,s13,x0/7,pa/i,x12/11,pj/f,x5/1,s11,x13/12,s9,x15/3,pp/m,x9/5,s8,x8/2,pd/e,s8,pm/n,x10/13,s7,pd/h,x4/9,pj/c,x3/7,s10,pa/l,x12/1,s3,x2/3,pi/o,x10/5,s7,x14/0,pl/m,x2/13,s1,x5/7,s7,x14/1,pi/e,s6,x2/15,s12,x9/3,pf/n,s2,x12/13,s2,x8/1,pa/k,x7/14,pe/p,x11/6,s8,x0/9,s6,x2/15,s13,x7/9,s3,x2/10,pc/o,x3/11,s15,x15/9,pp/k,x4/12,s14,x9/11,pl/i,s13,x6/0,s9,x2/14,pc/g,x9/11,s9,x2/12,s2,x0/3,pd/j,s5,pg/p,x9/6,s8,x10/12,s9,x7/5,s8,x14/13,s13,x8/11,pa/l,x1/0,s8,x11/5,pm/n,x3/10,s2,pc/g,x2/4,pj/d,x15/7,pc/b,s5,x10/12,s8,x15/14,pj/i,x4/11,s8,x1/7,s2,x13/3,pe/p,x15/2,ph/i,x7/10,s12,x13/11,s15,x14/1,s9,x6/11,s12,x1/12,s11,x4/9,s2,x12/8,pd/p,x5/3,po/f,s3,x14/1,s1,x0/3,s9,x8/9,s14,x4/0,s5,x2/6,s2,x0/14,s2,x3/12,s2,x15/9,s6,x6/3,s3,x4/7,pd/g,x2/3,s2,x7/0,s7,x11/6,s10,x9/15,s10,x5/3,s6,x9/2,pf/p,s9,pl/c,s14,x7/11,s3,x5/15,s1,x9/11,s6,x0/13,ph/g,x12/14,s12,x7/4,pm/k,x12/11,s4,x3/7,pl/h,x10/14,s2,pj/g,x0/11,s10,x9/15,s7,x1/7,s14,x3/10,s8,x12/1,s12,x2/5,pp/i,x4/6,s9,x8/2,s14,x0/4,s11,x11/9,s11,x13/6,s8,x0/1,pb/e,x10/5,s3,x2/13,s7,x7/15,s6,x6/8,pn/d,x10/14,s7,x13/5,pf/m,x7/0,pg/l,x8/2,s4,x9/0,pa/m,x2/7,s8,x10/0,pb/f,x15/1,s3,x9/10,pk/d,x14/0,s7,x12/1,pf/h,x9/7,s9,x4/11,pi/n,x0/14,s3,x5/2,s8,x11/0,s11,x15/5,pg/a,x4/6,pk/m,s4,x2/11,s4,x3/8,pi/o,x13/4,s6,x14/9,s14,x3/15,pl/j,x0/9,s12,x2/12,s8,x13/8,ph/n,x10/9,s9,x0/1,s1,x12/5,s3,x3/15,s14,x10/2,pi/p,x1/12,pd/b,s3,x11/2,s13,x10/15,s6,x12/3,s10,x6/15,s3,x10/3,s1,x4/13,s6,x14/5,po/m,x7/0,s6,x5/2,s11,x3/13,pb/d,x7/12,s15,x4/15,pp/c,x5/1,pg/n,x14/15,s13,x12/4,s3,x5/7,s15,x11/4,s3,x13/7,pl/k,x4/0,s3,x1/3,s3,x10/12,s7,pe/i,x11/6,s6,x0/15,s7,x14/12,s9,x10/3,pf/p,x1/11,po/c,s10,x3/15,s10,pi/k,x6/4,pm/g,s11,x1/10,s8,x6/13,s7,x2/14,s11,x15/13,s14,x5/2,pf/b,x13/0,pm/i,s7,x1/2,s13,x11/7,s9,x5/9,s10,x11/15,pb/o,x13/10,s11,x2/6,s4,x8/12,s3,x10/13,pc/n,s14,x7/9,pf/m,x6/8,pi/g,x13/9,s1,x15/3,pl/m,x1/5,s5,x3/4,pd/j,x14/9,s15,pe/f,x6/5,s11,x10/11,s11,x7/15,pp/a,s9,x11/14,po/c,s13,x8/13,s7,x7/11,pi/f,x14/6,s6,x10/15,pj/a,x13/6,s14,x7/1,pl/b,x2/14,s10,x3/15,s2,x9/8,po/d,x12/15,pn/h,x4/1,s5,x2/15,pp/f,s6,x10/7,s8,x3/1,s13,x11/5,s5,x2/1,pb/h,x15/0,s12,x10/4,s13,x9/6,s4,x3/4,s9,x9/8,s15,pj/e,s13,x12/11,s1,x8/14,s7,x12/11,po/g,x4/14,pa/e,s12,x6/2,pp/o,x7/10,s1,x11/5,ph/m,x7/1,pn/o,x5/15,pm/i,s12,x9/0,s3,x5/7,pa/n,x10/11,pk/b,s2,x6/14,pi/f,s2,x9/4,s4,x12/2,s6,x13/14,s13,x10/1,pk/e,s10,x6/3,s5,pd/n,x4/5,s10,pe/i,x1/14,s5,x12/10,pj/f,x0/9,pc/d,x13/14,s11,x3/5,pn/l,x6/2,s10,x1/3,s15,x2/14,s1,x4/10,s13,x7/13,s5,x3/1,s8,x7/2,pi/a,s15,x9/14,s14,x11/0,s5,x1/5,pj/c,x10/6,pp/k,x3/13,s5,x11/12,s13,x15/0,pl/c,x4/11,s2,x10/5,po/b,x8/2,pa/m,x0/11,s14,x6/15,s14,x5/12,pg/j,s5,x9/4,s4,x3/12,po/n,x15/11,ph/m,x4/13,pi/e,s12,x3/6,s13,pd/n,x8/11,s11,x3/0,s12,pc/b,x12/1,pf/d,x3/6,s4,x5/13,s2,x2/4,s2,x15/10,po/g,x14/6,s5,x12/8,s12,x3/7,s7,x14/8,pf/j,s5,x15/11,s8,x3/7,s12,x0/8,po/g,x3/10,pe/m,s13,x15/9,s7,x10/8,s8,x14/15,s13,pl/a,x6/2,s9,x7/9,pe/b,x2/15,s14,x3/13,s7,x14/7,s13,x0/4,s14,x13/9,pk/l,x15/6,s4,x13/4,po/c,x2/1,pa/p,x4/9,s14,x15/10,ph/c,x14/12,pj/g,s8,x2/6,s9,x0/1,s9,x7/11,s10,x5/15,pm/e,x9/14,pb/c,x3/15,s9,x6/7,pk/f,s8,x9/4,pg/b,x0/7,pn/j,x11/15,pf/e,x5/13,pb/m,x12/0,s6,x2/9,s7,x5/6,ph/l,s5,x1/0,pg/f,x8/6,pn/d,x0/14,po/a,x2/15,pb/c,s10,x13/4,po/l,x6/1,pc/h,s10,x2/3,pe/b,x12/7,s15,x9/0,s5,x13/8,s1,x5/6,pk/c,x13/11,s10,x7/14,s2,x10/1,s13,x5/14,pe/l,x8/13,po/b,x11/7,s10,x2/0,s4,x9/13,s13,x3/14,s13,x4/10,s14,x14/2,pj/g,x3/1,s15,x11/6,s3,x13/4,s1,x6/1,s14,x4/14,s6,pk/a,x12/11,s11,x9/15,s6,x12/2,ph/j,x0/1,pe/b,x14/6,s10,x13/7,pi/f,x14/2,s14,x12/0,s7,x1/9,pj/h,x14/13,pg/d,x6/12,s15,x1/7,s5,x9/0,s10,x1/7,pc/e,x15/14,s5,x13/0,s10,x15/7,pj/i,s3,x4/0,s14,x7/3,s15,x14/5,pf/m,x2/1,pb/a,x3/6,pe/n,x9/2,pk/i,x10/15,s2,x4/7,s13,x15/13,s11,x2/6,pp/j,x15/11,s15,x14/5,pn/i,x4/12,s13,x2/6,pg/p,x0/3,pd/a,x15/8,pk/b,x9/14,pf/n,s11,x10/12,pl/a,x2/1,s8,x11/8,pf/h,x12/2,pc/e,x11/5,s6,po/m,x13/9,s5,x0/6,s1,x5/14,s5,x2/8,s11,pj/n,x11/15,s2,x2/3,pe/f,x4/15,s15,x3/6,s14,x0/1,s15,x12/11,pa/c,x5/1,s2,x14/9,pn/p,x0/7,s5,x14/5,s7,pd/c,x11/9,s15,x2/8,pi/b,x15/9,pk/g,x7/3,s15,x2/1,ph/o,x14/6,s7,x12/2,s7,x6/3,s4,x2/8,s3,x4/11,s3,x6/8,s5,x14/15,pe/p,x4/10,s3,x2/6,s2,x15/7,pg/o,x8/11,pc/a,x12/15,s14,x7/13,s4,x14/8,pl/h,s14,pb/p,x12/5,pe/a,x4/7,ph/c,x10/2,pj/m,x6/7,pd/b,s6,x4/9,s12,x10/12,pl/p,x3/8,s13,x10/6,pj/b,x14/15,pn/a,x1/8,s13,x14/6,po/h,x12/9,s7,x5/2,s3,x8/12,s14,x5/14,pe/a,x0/1,s1,x12/3,pl/p,s9,x9/2,s13,x11/1,pg/d,x12/2,ph/f,s10,x11/3,s9,x4/2,pd/e,x14/9,pn/l,x13/6,pi/k,x15/1,s14,x6/12,s6,x15/0,s4,x8/11,pp/j,x9/0,pd/e,x11/4,s15,x8/9,pj/i,x15/10,s3,x5/2,pl/h,x15/8,pe/p,x12/4,s9,x8/2,s5,x10/6,s14,x0/9,s14,x5/3,pm/c,x11/1,pd/o,x9/15,s10,x4/8,s14,x6/7,s12,x14/5,s9,x12/11,s2,x10/13,pi/m,s15,x15/5,s7,x10/2,s6,pk/l,x12/6,pd/h,x11/10,s9,x1/14,s3,x7/12,pf/e,s14,x3/2,s5,x0/12,s8,pc/b,x1/8,s5,x6/9,s3,x10/8,po/m,x14/9,s4,x13/15,pn/f,x3/8,s6,x15/0,ph/d,x13/3,pi/l,s13,pa/p,x12/8,pb/j,x5/13,s2,x3/15,s5,ph/p,x4/1,pj/k,x11/2,s1,pl/o,x7/1,s4,x15/12,s3,x10/4,s10,x0/2,s7,x5/4,s10,x10/1,pb/c,s8,x13/8,s3,pd/p,x6/15,s1,x13/4,s3,x0/7,s8,x8/6,s4,x2/3,s5,x9/4,s4,x3/14,s15,x15/1,s12,x2/5,pg/i,x11/9,pc/d,x3/2,s14,x15/10,pj/p,x7/13,pg/f,x12/15,po/n,x5/1,s14,x6/3,s6,x5/4,s13,x0/7,s1,x1/5,s15,x3/8,s1,x14/11,s11,x5/3,s1,x11/4,s10,x14/9,s4,x13/11,s12,x12/10,s2,x9/2,s6,x12/6,s1,x9/1,pd/f,x10/4,pe/p,x12/3,s9,x2/11,s12,x1/12,s3,x3/4,s1,x9/12,pj/n,x11/10,s3,x6/14,s2,x4/8,s7,x11/14,s3,x9/1,s7,x5/13,po/d,x9/10,pj/e,x1/6,s5,x13/3,pc/d,s8,x4/1,pp/n,x10/11,pd/o,x5/13,s4,x10/8,s13,x12/1,s14,x9/2,s9,x4/0,s6,x11/10,s12,x15/5,s9,x12/6,s7,x15/1,s6,x9/8,s1,x5/15,pm/c,x6/14,s1,x1/10,s2,x11/5,s5,x0/3,s6,x14/1,pl/o,x8/10,s1,x2/14,s6,x15/5,pg/i,x3/8,s1,x0/6,s10,x1/14,s10,x13/2,s7,x6/10,s3,x2/15,s14,x11/0,pk/h,x10/12,s3,x1/6,s8,x10/9,pp/m,x5/7,s14,x8/15,s14,x0/9,pa/l,x13/15,pc/g,s13,x1/14,s5,x15/7,s7,x12/3,s5,x15/4,s8,x13/11,pk/d,x2/15,pp/l,x14/1,s4,x8/5,pm/i,x9/11,po/g,x1/7,s15,x9/13,s12,x3/6,s15,pa/n,x7/1,s14,x15/11,pm/p,x14/6,ph/b,x15/2,s3,x4/9,s4,x5/7,s5,x3/13,s6,x11/14,s8,x2/8,s6,x6/0,s5,x1/10,s6,x14/13,s1,x7/8,pm/e,x1/3,pb/j,x15/4,s10,x6/12,s9,x0/10,s15,pk/p,x5/4,s2,x3/9,pb/l,x10/13,s8,x2/15,pa/f,s14,x12/1,pe/k,x4/14,ph/j,x1/3,pd/l,x0/4,pb/k,x7/11,s12,x4/12,s4,x0/14,s8,x1/15,s9,x13/9,s2,x6/7,s3,x12/13,pg/e,x4/6,pf/c,x0/1,s10,x12/13,s2,x9/10,pe/g,x6/2,pl/f,x7/12,s2,x6/10,pj/g,s11,x3/2,s11,x11/0,po/a,x14/9,pg/l,x4/12,s7,x5/11,pm/b,s11,x12/10,po/a,x5/3,s3,x0/9,s6,x15/4,s3,x6/11,s1,x9/2,s9,x10/6,pe/g,s7,x9/2,s8,x10/13,s11,x6/15,s14,x12/11,pm/a,x7/14,po/c,x9/3,s13,x2/5,pd/f,x13/12,s10,pe/n,x4/9,pk/c,x2/5,s3,x8/10,s1,x1/7,s9,x6/14,s6,x8/4,pf/n,x0/9,s13,x14/2,pl/c,x11/8,pd/a,x2/9,s9,x7/5,pm/b,x1/11,s8,x0/4,pc/f,x12/13,s12,x11/6,s4,x4/3,ph/i,x15/1,pm/g,x4/3,s3,x2/8,s13,x14/0,pj/b,x7/2,pg/i,x11/13,pa/f,x15/7,s11,pn/i,x11/6,pd/g,x9/3,s14,x1/4,s6,x6/11,s10,x15/2,s11,x11/1,s10,x6/4,s6,x14/7,s9,ph/n,x5/11,s8,pj/e,x7/9,s6,x6/11,s2,pc/h,x10/7,s14,x9/1,s7,x15/5,pk/o,s3,x14/7,s7,x0/2,s12,x1/14,pp/a,s8,pk/m,x12/8,s12,x9/13,s6,pj/i,x10/6,s12,x4/15,pp/g,x7/5,s7,x14/15,s6,x5/13,s4,x9/8,pe/a,x0/11,s14,x15/2,pm/o,x11/7,s10,pi/g,x8/5,po/m,x3/12,s5,pg/c,x1/8,pd/o,x11/10,s2,x6/5,ph/p,x14/11,po/b,x9/2,s15,pj/i,s15,x12/14,s10,x11/7,pm/p,s5,x10/3,s10,x7/8,s15,x11/5,po/b,s5,x15/14,s10,x3/6,pd/f,x2/10,pm/e,x4/14,s12,x5/11,s8,x12/8,s11,x10/5,s12,x0/8,s3,x5/2,s10,x11/14,s4,x4/7,pl/n,s10,x14/8,s13,pm/k,x10/15,pi/f,s1,x0/14,s11,x2/13,pc/o,x10/4,pi/g,s1,x13/14,pa/j,x9/5,s1,x4/7,s5,x1/13,s4,x5/9,pi/b,x8/11,pj/a,x2/10,pe/f,x4/12,s10,x0/3,s5,x7/12,s11,x11/6,pi/k,x5/1,s1,x0/2,pl/f,x5/15,pp/c,x14/10,pa/k,s14,x7/11,ph/b,x0/5,pe/a,x14/7,ph/i,x0/13,s9,pb/j,x1/9,pc/k,x3/8,ph/n,x10/6,pi/o,x15/7,s15,x0/14,pj/f,s1,x4/5,s11,x12/11,s4,x3/6,s5,x1/12,pp/l,x2/4,s15,x8/3,s7,x7/12,pj/o,x4/13,pe/d,s2,x6/3,s15,x5/8,s14,x3/9,s1,x7/0,s11,x2/8,pp/i,x12/13,s15,x9/11,s4,x3/4,po/n,s12,x2/11,s14,x7/6,s4,x9/14,pm/a,x2/13,s12,x9/14,s14,x5/3,pp/j,x15/7,pd/k,x0/6,s9,x12/11,pn/i,s8,x5/14,s11,x4/10,s7,x11/6,s7,x5/2,s6,x11/7,s2,x0/9,ph/d,x1/2,s7,x3/8,s11,x6/9,po/e,x0/2,s9,x8/7,s12,x4/0,pb/n,x5/11,s4,x8/1,pm/p,x12/5,s6,x2/7,s9,x6/13,pk/f,x15/3,s15,x0/5,pi/j,x11/14,pl/e,x8/4,s10,x12/9,s3,x6/1,s3,x8/9,pg/k,x6/10,s3,x15/3,s1,x8/0,s1,x6/13,pa/h,x8/7,s4,pb/f,x9/2,s10,pi/a,x1/0,pl/j,x14/3,pf/d,x9/1,pe/i,x8/4,pa/f,x7/12,pc/h,x1/10,s13,x9/15,pb/f,x5/1,ph/j,x14/12,s10,pf/p,x8/1,s4,x6/2,pa/b,x3/7,pp/k,x5/11,ph/f,x10/12,s3,x0/8,pk/d,x10/4,pb/c,x0/13,pg/o,x10/2,s14,pb/k,x5/1,s3,x10/9,ph/j,x4/8,s7,x9/7,s6,x1/5,s9,x14/13,s3,x11/6,s15,x13/9,s4,x5/7,pn/b,x10/12,s8,x1/8,s7,x3/0,s9,pj/f,x7/6,s4,x8/1,s7,x12/5,pe/b,s13,x9/13,pn/d,x14/8,pb/f,x4/7,s9,x9/14,s13,x2/11,s15,x6/4,pn/g,x3/9,s5,x8/14,pp/m,x11/7,s6,pi/e,x15/1,s9,x10/8,s1,x6/1,s6,ph/n,x4/8,pd/k,s10,x9/0,s8,pf/g,x4/8,pk/l,s4,x7/0,s2,x1/10,s9,x8/6,pf/b,x3/11,ph/j,x6/14,pk/l,x2/1,pp/m,x4/10,pa/k,x11/8,pg/j,x6/13,pe/k,x11/9,pg/o,s2,x13/6,s1,x14/4,s2,x3/9,s6,x11/13,s7,x14/15,pe/l,x11/6,pf/d,x9/15,pn/h,x2/4,s7,pg/m,x3/15,s10,x4/11,s1,x7/10,po/d,x12/11,s1,x10/9,s1,x8/7,s6,x1/2,s10,x8/5,s14,x13/9,s10,x2/1,pl/p,x7/4,s12,x0/3,pm/k,x8/1,pp/d,x14/15,s15,x6/11,s4,x9/4,s8,x1/12,pj/a,x8/9,s14,x13/5,pd/f,x8/4,s1,x0/15,pm/p,x4/7,pf/e,x3/5,pp/k,x12/10,s11,x4/14,pn/f,x11/13,s3,x8/2,pi/j,x14/13,s1,x12/15,pd/l,x14/4,po/b,x9/6,s4,x10/2,s2,x1/0,s9,x5/7,pk/g,s7,x14/15,s13,x9/4,s9,pa/m,x1/3,pf/e,x6/2,pd/l,x13/9,s5,pj/n,s11,x4/7,pi/f,x10/3,pb/l,x4/7,pj/g,x15/13,s5,x8/7,s4,pk/l,x9/12,s4,x2/0,s9,po/g,x6/4,pb/k,x5/0,s4,x13/4,pe/l,s11,x14/1,s4,x7/11,s11,x10/6,s10,pj/h,s14,x13/9,s15,x4/1,pe/c,x11/15,s15,x5/2,pd/i,x1/3,pb/a,x2/11,s6,x0/12,s9,pj/i,x1/3,pb/e,s13,x6/15,s7,x7/14,pp/h,s11,x3/15,s6,x7/12,s9,x1/14,pl/m,x6/8,pd/j,x2/11,s7,x15/1,s8,x3/6,s1,x15/9,pi/g,x7/1,pd/b,x6/5,s3,x13/4,s1,x0/2,pp/e,x9/15,pa/n,x8/2,s4,x1/7,s14,x11/6,pg/f,x3/1,pl/o,x6/15,pg/p,x1/12,s12,x0/6,pe/b,x15/10,s6,x3/2,s14,x14/1,s6,x9/12,s2,x14/2,s11,x3/5,ph/a,x10/2,s15,x12/13,pg/n,s2,pe/a,x4/11,s15,x15/7,s7,x14/0,s15,x10/9,pd/l,x12/4,s4,x15/5,pn/i,x10/1,pc/j,x5/12,s13,x2/9,s10,x15/10,s12,x11/9,s13,x13/14,pe/a,x15/8,s7,pj/h,x0/11,s3,x10/6,pe/m,x13/5,pc/k,x11/0,pf/j,x6/4,pe/o,x8/0,pj/c,x15/13,s7,x10/8,s10,x5/6,s1,x2/15,s6,x9/4,pb/h,x8/12,pe/o,x7/9,pp/k,s9,x0/2,s5,x8/14,s2,x0/3,pj/m,x4/12,pg/n,s8,x5/1,s7,x4/14,s15,x5/8,s5,x0/14,s9,x9/2,s4,x14/15,pj/l,x0/13,s4,x14/15,pn/k,x1/8,s15,x2/5,po/c,x6/7,ph/a,s6,x8/1,pm/b,s2,x7/13,s7,x6/5,s14,x0/7,s9,x2/1,s7,x15/14,po/e,x3/13,s8,x14/7,pk/c,x15/4,s14,x5/10,s6,pp/m,x11/6,s10,x5/9,s6,x10/11,s4,x13/14,pa/h,s2,x3/5,s10,x6/11,pm/e,s4,x8/3,s14,pj/l,x1/0,s9,pn/i,x11/3,pg/j,x4/10,pk/n,x0/8,pc/p,x3/15,pd/j,x9/7,pg/i,x12/1,s11,x3/8,pp/a,x0/14,pf/j,x12/13,s14,x8/9,pi/m,x13/3,s3,x7/6,pd/h,s2,x8/0,s5,pa/p,x4/12,s13,x1/2,s1,x8/5,pf/k,x11/1,s12,x10/7,s11,x13/1,s3,x2/6,pc/i,x15/8,s6,x14/7,s7,x11/1,pn/h,x13/5,s10,pj/c,x9/3,po/l,x14/0,pj/p,x8/3,s13,x0/7,s13,x1/14,pl/m,x11/10,s15,x4/2,s11,x13/7,s1,pd/j,x1/4,s4,x6/3,s13,x15/7,s9,x0/3,pi/n,x4/5,pm/e,x14/13,po/n,x5/12,pd/i,x7/3,s2,x8/11,ph/a,x3/14,s4,x5/4,pd/c,x12/3,s15,x10/7,s9,x8/11,pf/n,x5/15,s4,x7/10,pm/c,s14,x15/9,pg/o,x1/7,s6,x9/5,s15,x2/3,pp/d,x13/7,pb/c,x1/8,s5,x2/12,s13,x14/13,s10,x15/9,s10,x8/3,s1,x1/11,s10,x3/9,pi/l,x7/5,s10,x14/1,pn/p,s1,x0/4,s14,x12/11,s6,pg/h,x2/4,pc/a,x14/13,s3,x11/6,pl/k,x3/14,s9,x10/2,pm/o,x3/5,pd/k,x13/4,s7,x3/14,ph/i,x13/4,s6,x5/12,s15,x8/15,s11,x9/3,pc/g,x10/14,s9,x8/5,pe/m,s10,x15/11,pk/h,x4/10,pi/a,x0/11,s4,x3/9,ph/e,x11/8,pn/f,x10/1,pb/h,s12,x2/9,s7,x10/15,pp/d,x11/7,s12,x5/15,pk/h,x8/1,s1,x14/15,s7 diff --git a/2017/inputs/day_17.txt b/2017/inputs/day_17.txt deleted file mode 100644 index 67bf40f..0000000 --- a/2017/inputs/day_17.txt +++ /dev/null @@ -1 +0,0 @@ -371 diff --git a/2017/inputs/day_18.txt b/2017/inputs/day_18.txt deleted file mode 100644 index 8b74206..0000000 --- a/2017/inputs/day_18.txt +++ /dev/null @@ -1,41 +0,0 @@ -set i 31 -set a 1 -mul p 17 -jgz p p -mul a 2 -add i -1 -jgz i -2 -add a -1 -set i 127 -set p 735 -mul p 8505 -mod p a -mul p 129749 -add p 12345 -mod p a -set b p -mod b 10000 -snd b -add i -1 -jgz i -9 -jgz a 3 -rcv b -jgz b -1 -set f 0 -set i 126 -rcv a -rcv b -set p a -mul p -1 -add p b -jgz p 4 -snd a -set a b -jgz 1 3 -snd b -set f 1 -add i -1 -jgz i -11 -snd a -jgz f -16 -jgz a -19 diff --git a/2017/inputs/day_19.txt b/2017/inputs/day_19.txt deleted file mode 100644 index b4826aa..0000000 --- a/2017/inputs/day_19.txt +++ /dev/null @@ -1,201 +0,0 @@ - | - +-----------------------+ +-------------------------------------------------------------------------------------------+ - | | | | | - +-------------------|-----------------------|-----------------------+ +-----------------------------------------------------------------------|-----+ | - | | | | | | | - +-----------+ | +---------------------------------|-------------------------+ | | | - | | | | | | | | | - | +-----+ | | | | +---------------------|---------------------------------------+ | | | - | | | | | | | | | | | | | - | | | | +---|-------+ +---------------------------|---------------------------------------------------------------------|-----|-------------+ - | | | | | | | | | | | | | - +-------|-------------------------------|-+ +-+ | | | +---------------------+ +-+ | +-----------------------+ +-------------+ - | | | | | | | | | | | | | | | | | | | | | - | +---|---------|-----------------------|---|---|---|---------------|-----------------+ | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | - | | | +-|-----+ | | | | | | | | +-------------------------------------|-----------------------------------------|-+ - | | | | | | | | | | | | | | | | | | | | | - | +-------------|-----------------------|---|---|----Y------|-------|-----------------------------------------------------------+ | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | +-----------------------------------------------------------|-----|-------------------|-+ | | - | | | | | | | | | | | | | | | | | | | | | | | - | | +---------------------------|-----------|---------------|-------------------------------------------------------------------------------------|-----------------+ | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | +---------------------------+ | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-+ | | | | | | | | | | | | +-+ +-------------------------------------|-----------------------------------|-----+ | +-----+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | +-|-|-------------------|-------------|-|---------|---+ | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | +---|-+ | | | | | | | +-----|-------------|-----------|---|-------------------------------------------------------------|-|-----|-----------|-------|-|---+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | +-|---|---+ | | | | | | | | +-------|-----|-|---------|-------|-|-----+ | | | | | | | | +-|---+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | +-|---+ | +---------|---|-----|-------------------------------|-----------------------|-----------+ +-|-------|-|---+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | +-|---------------|-------|-----|-------------|-----|---------+ | | +-|---+ | +-------------------+ | +-------------------|---------|-+ | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | +-------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------|---+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | +-|---|-|-------|-----------|-----|---------|-------|-------|-+ | | +-+ | | | | +-----------+ | | | +-+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | +-----------------|---|---|-|---+ | +-----------------------|-------+ +-+ | | +-|-|---|-|-------|-+ | | +-+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | +---|-----|-------------|---|-+ +-------|---------+ | | | | | | | | | | | | | | | | | | | | +-+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | +-|-|-----|---|-|-|-------------------------------------------|-----|-|-------+ | | | | +-----|---|---------+ | | +-----------|---------+ | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-|---|-|-|-+ | +---|---|-------------------------+ | | | | | +---|-------|---|-+ +-|-|---|-|-----------|-----------|-----|-|-----|---|-|-----+ | +---|-----|---+ | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | +-----|-------------------+ | | | | +---|---------+ | | | | | | | | | | +-------|-|-----|-----|-------+ | | | +-+ | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | +---------------------|-+ | | | | | | +-----|---+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | +-|-|-----|---|---|-|-|-|-|-------------------+ | | | | | | | | | +-|-----+ | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | +-|---|---------------------------|-------------+ | +---+ | | | | | | | | | | | | | | +-----|-----------|-----|-------|---|---+ | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | +---------|-|-|-----------------------|-|-----------|---------------|-----|---|---------|---|-|---|-|-|-----|-----------|-------|---+ | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E | | | | | | | | | | | | | | | - | | | | | | | | | | +-----|-----------|---|---------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | +-|---|-+ | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | +-|-------------|-|-|-----|----------U----|-|---|-------|-------------|-|-|---|---+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | +---------------|---------------------------|-----|---------|-----|-------------|-----------------+ | | | | | | | | | +-+ | +-|---|-----------------+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | +-|-----+ | +-|-+ +---------------|-|---+ | | | | | | | | | | | | | | | | | +-------|-----------------------|-|---|---|-|-----|---------|-|---------|---------+ T | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------------+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | +-----------------------+ | | | | | +---+ | | +-|-----|---|-|-|-+ | | | | | +-------|---+ +-+ +-|-|-+ | | +---+ | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | +-----------|-----|-----------|-----|-----|-----------------|-|---|-------------|---|---|---|-----|---------|---------|-------|-----------+ | +---|-|-|-|-|---|---|-----+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | +---+ | | | | | +-|-----|-----|-------|---------|-+ | | | | | +---|-----|---------|---------|-------------+ | | | +-----------|---|-------|-----+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +---------|-----|-|-----|-------|-|-----------|-|-|-----|---|-------|-------|---|-|--D------|-|---|-------------|---------+ | +-------------|-|-----------------|-|---|-|-|-------|-------+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | +---------|---+ +-------|---|-------+ | | | | | | | | | | | | | | | +---|---------|---+ | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------|---|-|-----|-----+ | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------+ +-+ | +-|-----|-----|-----|-|-|-------|-|-------|-|-|-|---+ | | | +-+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | +-|-------|-------|-----------------------------------|-+ | | | | | | | | | | | | | +---------------|---|-|-----|-|-|-------|-|-------+ | | | | +-|-|---|-+ +-+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | +---|-|---------|-|---------|-|---|-|-----|-----|-|-|-----+ +---------+ | | | | | | | | | +---|-|-|-|-+ | | | +-----+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | +-------------|-|-----------------|-----------|-|-----|-----|-----|-|-----+ | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | +-----|-|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------|---+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|-+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | I | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | +-|---------|-----|---------------------------+ | | | | | | | | | | | | | | | +-|-------+ | | | | | | | | | | | | | | | | | | +-+ | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | +-|---|-------|---|-----|-|-----|---------------|-----|-----|-----------|---|-----------|-|-----|-----|---------------|---------|-|-|-+ | | | +-------|-------+ | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | +---|-|-+ +---------+ | | +-------|-----|-----|---------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-|-------|---+ | | | | | | | | +-----------------|-|---------------|---+ | | | | | | | +---|---|-----------|-|---+ | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | +---|---|-|-------------------------|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-|-------|---|-----|-----|-----------|-------------------------|---|-+ | | | | | | | | | | | | | | | | | | +-----|-----------|---|---|---+ | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-------------|-|-|-------|-----|-------|---------|---------|-------------------|-|---------+ +-|---|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-|-------------|---------|---|-|-----|-|-------------------|-|-----|-----|---------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | +-----------|---|---+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | +-----|---|-----------|-|-|---------|-----|-|-------------|---|-------+ | | | | | | | | | | | | | | | | | | | | +---------|-|-----------|---|-+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | +---------|-----|---|-|-----|-----|-----|-|-|-----|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|-|---|---|---|-------|-----------|-|-+ +-|-|-----+ | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | +-----|-|-+ | | | | | | | | +-----------|---|-----|-|-------|-|---|-|N|-|-----|-------|-|-----------|---|-|-----|-+ | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | +-|-|-------|-|---|-------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----+ | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---|-------|---|-+ | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | +---|-----|-----------|-|-|-|-----|-|---|---|-+ | | | | | | | | | | +-|-|-|-+ | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | +---+ +---|-------|---------------|---|---|-------------------|-------------------|-|---|-|-|---|-|-------------------|-----|-----|-|---|---+ | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | +-----|---------------|-----------|---|-------|-----------------|-------|-------|-----------|-------|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | +-|---|---|-------------------|-----|-----|-----|-|-|-|-----------+ | | | | | | | +-|-|---+ | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | +-----|---------------|-------|---|---+ | | | | | | | +-----|-|-----|-|---|---|---|-|-|---------|---------|---------|---------+ | +-----------+ | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|---------------|---|---|---|-|---------|-|---+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | +-------|-|-|-------|-------|---|---------|-------|-----------+ +-|---+ | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | +-------|---------|-----|---------|---------------------|-----|-----------|-|-----------|-+ | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | X | | | | | | | | | | | | - | | | | | | | | | +-----|-----|-|-|---------+ | | +-----------+ | | | | | | | | | | | | | | | +-----------+ +-|---+ | +-|-------|-+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | +-----------------|-|---+ | | | +-------|-|-------------|-------------|-----+ | | | | +-|---|-----|-+ | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +---------|-----------|-----------------|---|---|-----|-+ | | | | | | | | +-----|-|-|---|-------|-----|---------------|-----|-----|-|---|-----------|-----|---------|-----+ | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | +---+ | | | | | +---------------------|-----|-----|-|-------------|-----|-----|-|-----------|-|-|-|-|---|-------------|---------|-----+ | +-----------|---------|---|-----|-----|-|---|-+ | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | +---|---|-----|---|-----|-------|-------|-----------|---------------------------|-|-|---------------------|-|-|---------------------|---+ | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | +-------|-----|-----------------+ | +-+ | | | | | | | | +-|-|---|-+ | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | +-|-----|---+ | | | | | | | | | | +-|-|-------------|-|-----|---------+ | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | +-|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-+ | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-----|-|-|-------|---|---------|-------|---------|---|-----|-|-------------------|-------|-------------|-----|-|---------|-|---------------|---|-----------------|-------|-|---|-----------|---------+ - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +---------+ | | | | | | +-----|---|-----|-----|---|-|-------------------------|-|-|-----------|-|-----|---------|-----|-----------------|-----|-----|-|-------|-----------------|---------+ - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | +---|-|-----------|-|-|-----|---------|-----|-----------|---|-|---+ | | | | | | | +-----------|-+ | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | A | | | | | | | | | | | | | | | | | | | | | | | | | - +-----|-----|-|---|-+ | | | +---+ +-----|---|-------------------------+ | | | | | +---------|---------------|-----------|-----|-+ | | | | | | +-|-------------|-|-|-|---|---+ - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | +-----|-----------|-+ | | | | | | | | | | | +-+ | | | | | +---|---|---+ | | | | | +---+ - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | +-|-----|-|-------|-----------+ | | | | | | | | | | | | | | | | | | | | | | | | | +-+ | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | +-----|-|-----------|-+ | | | | | | | +-------|-|-------------|-----|-----|-----|---------------------|-|-------|---|-|---|---|---|-----|-----|---+ | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | +---|---+ | | | | | | +-|-|---+ | | +-+ | | | | | | | | +---|---|-|---|-------|-+ - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | +-------------|-+ | | +-|-----------------------------------+ | | | +---|-----+ | | | | | | | | | | | | +-|-----------+ | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +---|-|-------|-+ | | +---|-------+ | | | +---------------------------|-----------|---|-------|-----|-----|---------------------------------|-------------------+ | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | +-------|---+ +-------------+ +---+ +-|-|-------|-------------|-|---------------------------|-+ | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - | +-------|---+ | | | | | | | | | | | +-+ +-------------------|-----+ +-+ +-----|-+ | +---+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | +-----|-------------------|---------|---|-------|-|---+ | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | | | | | - +-+ +---|-----------|-----------------------------------------------------------------------|-------|-----------|-----|-----------------------------------+ | +-------------------+ +-|-+ - | | | | | | | | | | | | | | | | | | | | | | | | | P - | +-------|---------+ | | +-------------|-------------------------|---------|---|---------|-------------|-------------------------+ | +-----------------+ | | - | | | | | | | | | | | | | | | | | | | | | | | | | | - | | | | | | | | +-----------------------------|-----+ | +-------|-------------|---+ | +-----|---+ | | | | | - | | | | | | | | | | | | | | | | | | | | | | | | - | +---+ | +-|-------------+ | | | +---------+ +-------+ +-------------+ +---+ | | +---+ | - | | | | | | | | | | | | - +-----+ +-----+ +-+ +-----+ +-----------------------------------------------------------------------------------+ +-----------------+ - diff --git a/2017/inputs/day_2.txt b/2017/inputs/day_2.txt deleted file mode 100644 index f2f1f5e..0000000 --- a/2017/inputs/day_2.txt +++ /dev/null @@ -1,16 +0,0 @@ -493 458 321 120 49 432 433 92 54 452 41 461 388 409 263 58 -961 98 518 188 958 114 1044 881 948 590 972 398 115 116 451 492 -76 783 709 489 617 72 824 452 748 737 691 90 94 77 84 756 -204 217 90 335 220 127 302 205 242 202 259 110 118 111 200 112 -249 679 4015 106 3358 1642 228 4559 307 193 4407 3984 3546 2635 3858 924 -1151 1060 2002 168 3635 3515 3158 141 4009 3725 996 142 3672 153 134 1438 -95 600 1171 1896 174 1852 1616 928 79 1308 2016 88 80 1559 1183 107 -187 567 432 553 69 38 131 166 93 132 498 153 441 451 172 575 -216 599 480 208 224 240 349 593 516 450 385 188 482 461 635 220 -788 1263 1119 1391 1464 179 1200 621 1304 55 700 1275 226 57 43 51 -1571 58 1331 1253 60 1496 1261 1298 1500 1303 201 73 1023 582 69 339 -80 438 467 512 381 74 259 73 88 448 386 509 346 61 447 435 -215 679 117 645 137 426 195 619 268 223 792 200 720 260 303 603 -631 481 185 135 665 641 492 408 164 132 478 188 444 378 633 516 -1165 1119 194 280 223 1181 267 898 1108 124 618 1135 817 997 129 227 -404 1757 358 2293 2626 87 613 95 1658 147 75 930 2394 2349 86 385 diff --git a/2017/inputs/day_20.txt b/2017/inputs/day_20.txt deleted file mode 100644 index f249f9e..0000000 --- a/2017/inputs/day_20.txt +++ /dev/null @@ -1,1000 +0,0 @@ -p=<-317,1413,1507>, v=<19,-102,-108>, a=<1,-3,-3> -p=<1639,477,-2519>, v=<-79,-102,130>, a=<-9,9,12> -p=<613,-993,-305>, v=<-39,27,-48>, a=<-2,8,11> -p=<1343,190,-1565>, v=<-82,31,31>, a=<1,-4,5> -p=<735,-285,2387>, v=<-20,-64,-67>, a=<-2,8,-6> -p=<963,456,-1888>, v=<-42,-73,88>, a=<-1,5,1> -p=<-1659,1444,-463>, v=<-14,-25,-77>, a=<10,-5,10> -p=<-443,-95,-1185>, v=<142,-14,81>, a=<-12,2,-2> -p=<-2590,3249,-710>, v=<35,-30,36>, a=<10,-14,0> -p=<-1602,-171,924>, v=<83,-50,-20>, a=<0,6,-3> -p=<-633,2195,-458>, v=<31,-200,31>, a=<4,0,2> -p=<-347,-49,-1976>, v=<-19,-50,151>, a=<8,9,5> -p=<852,314,125>, v=<-56,-83,-22>, a=<-4,9,2> -p=<-10088,3682,-5210>, v=<52,32,-38>, a=<14,-8,11> -p=<-4019,1982,4446>, v=<-4,47,-7>, a=<7,-6,-7> -p=<3444,-2319,-11041>, v=<-171,-89,81>, a=<4,9,14> -p=<2390,792,2117>, v=<0,47,114>, a=<-4,-4,-10> -p=<5661,-1318,-1666>, v=<-87,-44,-33>, a=<-5,5,5> -p=<2856,-1912,743>, v=<-36,59,-174>, a=<-3,0,9> -p=<4275,5447,-5461>, v=<6,-11,31>, a=<-8,-9,8> -p=<1263,1223,980>, v=<-98,-69,-68>, a=<0,-3,-1> -p=<1094,963,1253>, v=<-85,-105,-75>, a=<0,5,-3> -p=<2641,-922,2124>, v=<-113,61,-142>, a=<-13,2,-3> -p=<600,859,-398>, v=<-26,-97,-4>, a=<-3,5,5> -p=<-128,-1533,330>, v=<-12,73,-88>, a=<3,7,9> -p=<1419,-1507,-528>, v=<-159,29,-15>, a=<7,13,8> -p=<574,-1299,-1100>, v=<-17,104,113>, a=<-4,0,-4> -p=<-440,-1923,-8>, v=<-2,131,36>, a=<5,3,-5> -p=<-1705,-1617,-226>, v=<45,42,123>, a=<0,0,-6> -p=<708,36,4790>, v=<1,57,-48>, a=<-1,-3,-4> -p=<2266,9745,3707>, v=<38,-101,-78>, a=<-5,-8,-1> -p=<7320,-629,-2164>, v=<-134,-62,18>, a=<-3,4,2> -p=<746,6097,-2544>, v=<-78,-44,-11>, a=<3,-6,4> -p=<1563,-7678,5873>, v=<115,-13,-57>, a=<-8,11,-5> -p=<-8146,-3232,-5147>, v=<156,-52,155>, a=<3,7,-1> -p=<-3966,4235,1389>, v=<7,44,22>, a=<5,-8,-3> -p=<2171,-5151,14708>, v=<21,-21,-75>, a=<-4,8,-16> -p=<442,-1232,2730>, v=<9,-20,3>, a=<-2,5,-8> -p=<-273,-1960,5408>, v=<-58,89,-100>, a=<5,-1,-8> -p=<-624,-3559,247>, v=<50,137,31>, a=<-2,0,-3> -p=<2106,-2688,1482>, v=<-82,144,-57>, a=<0,-3,0> -p=<-2886,1147,2678>, v=<83,-44,-157>, a=<2,0,4> -p=<1984,472,-191>, v=<-31,-3,63>, a=<-3,-1,-4> -p=<3604,-6710,-2540>, v=<-21,123,-32>, a=<-8,9,9> -p=<5305,1390,781>, v=<-182,103,-15>, a=<-1,-11,-1> -p=<-527,256,-1055>, v=<-22,-107,39>, a=<3,7,0> -p=<7708,1660,5803>, v=<-131,-19,-103>, a=<-11,-3,-8> -p=<-5981,-2228,-6671>, v=<68,-15,23>, a=<11,7,16> -p=<1356,-1869,-687>, v=<39,68,25>, a=<-6,0,0> -p=<-1052,4725,937>, v=<38,-66,54>, a=<0,-7,-6> -p=<-1668,10101,-631>, v=<2,-229,23>, a=<4,-9,0> -p=<-1906,-4165,4255>, v=<-33,-24,37>, a=<7,12,-13> -p=<-2760,-2373,-2325>, v=<-46,57,40>, a=<10,2,3> -p=<516,-6601,-1625>, v=<69,63,44>, a=<-6,12,1> -p=<1062,-6279,-4929>, v=<6,66,17>, a=<-3,11,11> -p=<1636,-2387,-1205>, v=<-87,72,58>, a=<2,1,-1> -p=<3099,3807,-117>, v=<-71,-169,77>, a=<-9,-3,-7> -p=<1009,-3185,-991>, v=<-1,39,-47>, a=<-5,13,10> -p=<-3228,368,1954>, v=<142,32,-62>, a=<3,-5,-4> -p=<1180,1793,-896>, v=<-20,-173,-2>, a=<-4,8,5> -p=<-1936,7,2790>, v=<24,1,-36>, a=<8,0,-11> -p=<-1214,-2045,3474>, v=<116,9,-132>, a=<-5,10,-5> -p=<4619,2971,-3480>, v=<-171,-75,104>, a=<-7,-8,8> -p=<-2088,1166,3018>, v=<112,-40,-28>, a=<0,-2,-13> -p=<211,653,2410>, v=<21,107,-46>, a=<-3,-14,-8> -p=<2415,1926,-1580>, v=<-75,50,34>, a=<-5,-15,5> -p=<1538,-908,976>, v=<-54,31,26>, a=<0,0,-4> -p=<3539,7415,1788>, v=<-18,-151,-32>, a=<-7,-7,-2> -p=<3249,4196,-1373>, v=<-23,-25,2>, a=<-6,-8,3> -p=<2031,-4301,1701>, v=<-41,148,-29>, a=<-2,0,-2> -p=<2002,11678,-2475>, v=<-25,-148,85>, a=<-3,-17,0> -p=<2350,-560,-1315>, v=<-52,64,15>, a=<-2,-3,2> -p=<11423,-875,9878>, v=<-163,-146,-174>, a=<-13,11,-9> -p=<1751,-5773,2469>, v=<53,156,33>, a=<-7,2,-7> -p=<-2155,4333,-7110>, v=<51,-122,38>, a=<1,-1,12> -p=<-5906,7123,1229>, v=<92,-84,-39>, a=<6,-9,0> -p=<4696,-2115,113>, v=<-106,-74,-35>, a=<-3,9,2> -p=<-1132,-4533,1322>, v=<34,36,6>, a=<0,7,-3> -p=<1658,519,-978>, v=<-72,-26,-46>, a=<-5,-1,14> -p=<83,-426,732>, v=<25,-35,32>, a=<-4,8,-10> -p=<278,-1926,-1653>, v=<-52,49,79>, a=<4,10,4> -p=<-787,-6,-183>, v=<-21,57,61>, a=<9,-7,-6> -p=<-487,1044,612>, v=<-65,-109,32>, a=<12,5,-9> -p=<2603,-1521,-123>, v=<-135,86,105>, a=<-5,2,-12> -p=<-562,1044,-1188>, v=<12,-5,160>, a=<3,-8,-10> -p=<-1715,3425,5361>, v=<-30,-42,-103>, a=<5,-4,-4> -p=<-2803,721,-5279>, v=<-95,92,48>, a=<11,-7,7> -p=<957,-303,-5263>, v=<-97,-107,64>, a=<4,7,6> -p=<829,-943,-7839>, v=<-93,12,62>, a=<4,1,11> -p=<-2883,4417,-4703>, v=<56,-40,96>, a=<2,-6,3> -p=<2557,-6319,3889>, v=<51,147,9>, a=<-8,3,-8> -p=<-7939,-799,-4191>, v=<82,-9,-52>, a=<10,2,11> -p=<-7470,-439,367>, v=<120,92,9>, a=<17,-6,-2> -p=<-2134,-94,-898>, v=<20,-115,40>, a=<6,10,0> -p=<-478,1930,2092>, v=<20,-35,-114>, a=<0,-4,2> -p=<1040,-1727,551>, v=<-82,28,-59>, a=<3,4,3> -p=<-2318,-324,2069>, v=<4,63,-77>, a=<8,-4,-1> -p=<-2249,21,-1220>, v=<73,0,18>, a=<2,0,3> -p=<2627,-3199,-2577>, v=<17,44,113>, a=<-11,8,0> -p=<-2732,-1796,482>, v=<-2,103,-68>, a=<10,-2,4> -p=<441,1243,20>, v=<43,-28,83>, a=<-10,-8,-11> -p=<1029,-1151,-764>, v=<-104,68,94>, a=<4,2,-5> -p=<-672,-2551,97>, v=<25,153,40>, a=<3,4,-6> -p=<1027,1714,-804>, v=<-72,-122,60>, a=<-1,-2,1> -p=<416,1506,-50>, v=<-32,-22,16>, a=<0,-14,-1> -p=<-1131,1623,-1103>, v=<150,-108,20>, a=<-9,-3,10> -p=<1001,-990,-1454>, v=<-63,37,75>, a=<-2,5,6> -p=<-418,465,403>, v=<-35,5,45>, a=<12,-8,-14> -p=<682,-734,73>, v=<-21,120,-75>, a=<-7,-9,11> -p=<-2343,333,-1159>, v=<140,-79,25>, a=<12,8,13> -p=<924,421,-587>, v=<-43,3,-75>, a=<-7,-7,21> -p=<-693,-404,293>, v=<44,24,-5>, a=<3,2,-4> -p=<363,355,183>, v=<-58,-33,-49>, a=<4,0,5> -p=<-5454,-1885,-2432>, v=<116,-43,149>, a=<13,12,-3> -p=<342,-793,-941>, v=<-17,15,23>, a=<0,2,2> -p=<-456,1139,-920>, v=<21,-22,0>, a=<0,-3,4> -p=<-101,-4352,13169>, v=<23,75,-150>, a=<-1,2,-10> -p=<-3122,360,-2677>, v=<83,-49,-84>, a=<0,2,8> -p=<-7093,-2072,800>, v=<51,-24,78>, a=<7,4,-5> -p=<6397,1082,4505>, v=<8,88,-39>, a=<-9,-6,-4> -p=<-63,1937,-1005>, v=<22,46,106>, a=<-1,-5,-4> -p=<-595,1367,-910>, v=<-42,-56,45>, a=<3,1,-1> -p=<2578,-11667,-1670>, v=<-28,-25,-52>, a=<-2,17,5> -p=<-3425,-215,4501>, v=<138,8,41>, a=<-2,0,-11> -p=<-4625,-135,-939>, v=<27,-77,13>, a=<7,5,1> -p=<479,1913,2117>, v=<-17,-42,-66>, a=<0,-1,0> -p=<-3015,2181,-3524>, v=<-9,-40,-70>, a=<7,-2,12> -p=<-2280,-5424,436>, v=<137,74,108>, a=<-4,7,-8> -p=<6240,-669,-2024>, v=<-54,-7,-89>, a=<-10,2,10> -p=<-3885,-84,-8054>, v=<51,-11,50>, a=<5,1,14> -p=<-3345,6336,2956>, v=<2,-8,-69>, a=<7,-13,-2> -p=<-3465,-1449,-779>, v=<6,-43,-22>, a=<7,6,3> -p=<-1170,-8754,-1094>, v=<162,92,-27>, a=<-8,13,4> -p=<6195,2541,886>, v=<-68,10,-31>, a=<-9,-6,0> -p=<5625,3321,-2279>, v=<-142,-78,90>, a=<-3,-2,-1> -p=<146,1150,-504>, v=<-34,-42,20>, a=<4,-8,3> -p=<-64,-2,1992>, v=<16,-63,-110>, a=<-1,10,-9> -p=<-1138,334,-24>, v=<99,0,-7>, a=<0,-4,1> -p=<2156,-146,354>, v=<-104,14,-19>, a=<-11,0,-2> -p=<2224,501,-708>, v=<-92,-21,-46>, a=<0,0,6> -p=<664,405,960>, v=<98,33,22>, a=<-10,-4,-5> -p=<1144,2061,-2388>, v=<-47,-36,149>, a=<0,-4,-4> -p=<-212,-2043,4500>, v=<-78,-65,-113>, a=<7,12,-6> -p=<1084,4569,-4644>, v=<-57,-28,-32>, a=<1,-13,18> -p=<-824,5649,-4296>, v=<60,-48,-34>, a=<-2,-15,17> -p=<88,-591,-3132>, v=<22,-13,30>, a=<-2,3,8> -p=<2836,1917,-696>, v=<-30,-105,116>, a=<-7,2,-7> -p=<-4061,279,753>, v=<73,-63,7>, a=<7,4,-3> -p=<4439,579,-422>, v=<-46,-23,-24>, a=<-10,0,3> -p=<-2060,11364,-3131>, v=<-39,-107,-127>, a=<6,-14,13> -p=<6751,672,-9962>, v=<-119,64,97>, a=<-5,-5,12> -p=<-575,7206,-6068>, v=<-33,-100,13>, a=<3,-7,10> -p=<2197,2553,-4418>, v=<2,-78,-71>, a=<-4,0,12> -p=<4045,243,-5342>, v=<31,9,-26>, a=<-9,-1,11> -p=<358,122,480>, v=<-55,-68,25>, a=<4,8,-8> -p=<-1021,-158,1908>, v=<156,12,-122>, a=<-11,0,-2> -p=<939,283,-283>, v=<1,33,-48>, a=<-9,-7,9> -p=<519,-438,1425>, v=<31,107,-35>, a=<-9,-10,-9> -p=<904,-641,-388>, v=<-139,54,12>, a=<10,-1,2> -p=<6864,2454,-491>, v=<65,22,15>, a=<-17,-6,0> -p=<-272,1750,-3947>, v=<57,11,-9>, a=<-3,-4,8> -p=<1168,-6842,3589>, v=<78,164,36>, a=<-7,3,-9> -p=<-2224,4070,-347>, v=<-80,21,-105>, a=<9,-9,7> -p=<-1872,2102,-875>, v=<41,66,-39>, a=<1,-8,4> -p=<-5120,-3610,1701>, v=<126,63,-4>, a=<2,3,-3> -p=<-7936,774,-2043>, v=<115,-74,47>, a=<8,3,1> -p=<-5770,1949,-1810>, v=<144,-4,67>, a=<16,-10,3> -p=<1032,524,-993>, v=<66,-119,54>, a=<-12,9,0> -p=<-241,904,-2703>, v=<23,-39,74>, a=<-1,-1,7> -p=<1659,-2535,52>, v=<73,32,-11>, a=<-16,10,1> -p=<-469,790,-214>, v=<-55,97,-77>, a=<8,-14,9> -p=<-13,-179,356>, v=<31,18,-57>, a=<-3,-1,4> -p=<899,-312,-2000>, v=<-27,-45,127>, a=<-2,6,-2> -p=<1545,581,-727>, v=<-11,38,40>, a=<-7,-7,0> -p=<-3167,1702,-43>, v=<147,49,4>, a=<2,-14,0> -p=<-526,106,-3919>, v=<8,-17,38>, a=<2,1,17> -p=<1381,-388,-404>, v=<-175,24,29>, a=<7,2,2> -p=<-144,-1008,-374>, v=<5,163,59>, a=<2,-12,-4> -p=<-4344,-3608,1616>, v=<45,54,-4>, a=<6,4,-3> -p=<-1647,-787,4189>, v=<-10,-53,25>, a=<4,5,-10> -p=<3965,7621,-1235>, v=<-35,-45,34>, a=<-4,-9,0> -p=<-6925,-515,4255>, v=<27,33,-26>, a=<9,-1,-5> -p=<-3361,-7715,-3737>, v=<76,48,122>, a=<1,9,-1> -p=<4829,5857,-1217>, v=<-96,-107,15>, a=<-2,-3,1> -p=<1877,-1469,-4079>, v=<-51,41,39>, a=<0,0,4> -p=<4584,-3664,7121>, v=<124,69,-87>, a=<-17,3,-9> -p=<4708,-719,1014>, v=<-8,54,-82>, a=<-9,-2,3> -p=<-4530,3249,1665>, v=<-46,22,73>, a=<12,-8,-8> -p=<361,-798,851>, v=<-116,55,25>, a=<10,-1,-8> -p=<-2177,1209,-355>, v=<82,-66,16>, a=<4,0,0> -p=<784,-573,1544>, v=<-54,52,-23>, a=<1,-2,-7> -p=<1639,-879,-436>, v=<-73,-121,68>, a=<-2,18,-5> -p=<1297,1317,-166>, v=<-54,-15,-4>, a=<-2,-6,1> -p=<3466,1938,-2011>, v=<-70,-78,13>, a=<-13,-3,10> -p=<-2096,1173,-1561>, v=<11,-83,121>, a=<11,2,-4> -p=<-548,2163,1724>, v=<-75,-119,-109>, a=<11,0,1> -p=<469,-2427,1067>, v=<11,3,-63>, a=<-4,14,0> -p=<919,57,3083>, v=<-33,-78,-118>, a=<-2,8,-6> -p=<947,-909,986>, v=<-77,0,-36>, a=<1,10,-6> -p=<609,-857,-925>, v=<-79,73,20>, a=<5,-1,7> -p=<-4448,-1323,-14360>, v=<54,34,149>, a=<3,0,11> -p=<1636,4332,-3557>, v=<78,-71,-68>, a=<-6,-2,8> -p=<-2420,-12321,6739>, v=<2,56,88>, a=<3,13,-13> -p=<1636,6477,-944>, v=<-42,34,-35>, a=<0,-10,3> -p=<8812,2148,-5273>, v=<-26,45,96>, a=<-10,-5,2> -p=<-587,-3195,-14945>, v=<-85,22,84>, a=<5,3,15> -p=<6394,-3429,3346>, v=<36,88,15>, a=<-10,0,-5> -p=<-1958,2401,204>, v=<102,-119,-34>, a=<5,-7,3> -p=<-1090,266,1569>, v=<55,-19,-109>, a=<3,0,0> -p=<2574,-921,907>, v=<-139,58,-86>, a=<-6,1,3> -p=<-2718,-298,501>, v=<59,6,-57>, a=<18,2,3> -p=<-219,-1950,998>, v=<23,94,-40>, a=<-1,6,-4> -p=<3407,-809,1474>, v=<-116,35,-89>, a=<-17,3,-2> -p=<-541,-1670,-661>, v=<-14,29,41>, a=<7,12,1> -p=<-485,451,1803>, v=<-18,-25,-75>, a=<7,-1,-7> -p=<796,1109,1586>, v=<3,-132,-82>, a=<-8,7,-4> -p=<5,-438,2104>, v=<22,76,-59>, a=<-3,-6,-12> -p=<2770,724,137>, v=<-138,8,74>, a=<-8,-8,-11> -p=<1335,-935,1586>, v=<-133,59,-52>, a=<5,1,-8> -p=<-600,-494,17>, v=<0,26,-10>, a=<4,0,1> -p=<-73,1376,-1547>, v=<-13,42,37>, a=<2,-14,6> -p=<-2198,1750,-1088>, v=<85,-124,10>, a=<5,2,6> -p=<-955,2741,1118>, v=<87,-214,-96>, a=<0,-6,-1> -p=<79,398,260>, v=<-1,11,0>, a=<-1,-8,-4> -p=<-394,112,-873>, v=<90,55,13>, a=<-9,-11,11> -p=<750,-251,-1390>, v=<-2,-32,72>, a=<-11,9,9> -p=<-933,-625,-1511>, v=<25,68,77>, a=<10,-2,10> -p=<-812,673,-1159>, v=<38,-38,153>, a=<6,-4,-8> -p=<-2490,1276,508>, v=<17,-16,112>, a=<5,-2,-9> -p=<730,-1902,-4252>, v=<18,-62,21>, a=<-3,9,9> -p=<-1678,6904,3168>, v=<17,-72,-41>, a=<3,-12,-5> -p=<-40,-432,-3034>, v=<-56,132,50>, a=<4,-8,4> -p=<2980,-2943,13263>, v=<-88,-2,-129>, a=<0,5,-15> -p=<8216,3432,-5165>, v=<-67,-32,-42>, a=<-10,-4,11> -p=<-2188,11252,-4927>, v=<64,-87,-49>, a=<0,-14,11> -p=<-2513,-3249,3089>, v=<176,-8,-100>, a=<-6,7,0> -p=<-5055,223,-4289>, v=<2,24,-22>, a=<10,-2,10> -p=<-3722,1370,-2274>, v=<7,35,-7>, a=<7,-5,5> -p=<9201,8581,1004>, v=<-55,-80,114>, a=<-9,-7,-7> -p=<-315,469,-6640>, v=<-51,-52,-30>, a=<3,2,10> -p=<5886,-19772,1433>, v=<-70,127,63>, a=<-4,19,-5> -p=<4716,7333,-7264>, v=<120,12,26>, a=<-12,-10,8> -p=<2571,4213,-7108>, v=<75,-108,42>, a=<-7,0,7> -p=<2688,7060,-946>, v=<12,39,-36>, a=<-4,-11,3> -p=<3195,-4523,-5548>, v=<-41,116,-38>, a=<-2,0,9> -p=<16182,20203,8375>, v=<-134,-78,-175>, a=<-14,-22,-2> -p=<-8583,4213,3851>, v=<41,-28,-99>, a=<9,-4,0> -p=<-29,-291,-717>, v=<-1,26,133>, a=<1,0,-11> -p=<-1487,-747,-663>, v=<140,90,44>, a=<-2,-4,2> -p=<-77,-1047,129>, v=<29,63,-48>, a=<-3,4,6> -p=<1,627,-9>, v=<-62,-5,-4>, a=<10,-7,1> -p=<-689,225,1479>, v=<28,-4,-89>, a=<5,-2,-5> -p=<3651,9977,-1851>, v=<-74,-16,28>, a=<-1,-12,1> -p=<-2004,-10303,2127>, v=<-9,4,-54>, a=<3,13,0> -p=<1389,4088,-3060>, v=<104,15,-1>, a=<-7,-6,4> -p=<11256,-2971,-2007>, v=<-129,36,52>, a=<-8,2,0> -p=<6147,-787,12696>, v=<-98,60,-145>, a=<-3,-2,-9> -p=<8994,6467,10551>, v=<-51,-186,110>, a=<-9,1,-19> -p=<2832,3035,2322>, v=<107,62,41>, a=<-9,-7,-5> -p=<-11559,7286,-5244>, v=<116,-47,-45>, a=<9,-7,9> -p=<5991,-8704,8679>, v=<-94,-17,-2>, a=<-3,12,-11> -p=<4718,-4023,8441>, v=<-136,19,-128>, a=<-1,7,-9> -p=<4625,-861,-1262>, v=<-69,77,73>, a=<-5,-3,-2> -p=<589,3578,-416>, v=<58,-10,64>, a=<-7,-12,-4> -p=<1141,-2678,1217>, v=<-50,34,29>, a=<0,7,-7> -p=<3211,1600,2988>, v=<-44,4,-60>, a=<-8,-6,-6> -p=<-2056,-33,-1727>, v=<5,51,13>, a=<7,-4,5> -p=<-3476,6358,-3757>, v=<96,49,73>, a=<1,-16,3> -p=<2476,-4275,-99>, v=<64,40,-29>, a=<-9,6,2> -p=<9885,2111,1265>, v=<-47,-86,-41>, a=<-17,1,0> -p=<-10544,1150,955>, v=<132,121,-31>, a=<13,-10,0> -p=<-717,-338,-6640>, v=<-41,57,54>, a=<4,-3,10> -p=<-1306,3785,-502>, v=<-22,-124,-32>, a=<4,0,3> -p=<-3941,-2105,-5090>, v=<79,-62,-12>, a=<3,8,11> -p=<-3352,4405,-4067>, v=<108,-32,67>, a=<0,-7,4> -p=<403,-1972,-1042>, v=<-28,84,-34>, a=<1,-1,5> -p=<2153,884,-496>, v=<11,69,-68>, a=<-6,-7,6> -p=<-264,-3603,2640>, v=<26,104,-76>, a=<-1,0,0> -p=<-754,4587,1100>, v=<22,-58,4>, a=<0,-4,-2> -p=<4321,-3078,-6425>, v=<93,125,-33>, a=<-12,-2,12> -p=<-1419,387,-8280>, v=<41,26,92>, a=<0,-2,8> -p=<681,4902,3760>, v=<-55,-49,0>, a=<2,-5,-6> -p=<1451,-7348,-10450>, v=<-59,-5,118>, a=<1,12,10> -p=<4286,2802,-7265>, v=<-122,83,-45>, a=<0,-9,14> -p=<1337,5510,-5238>, v=<7,-83,58>, a=<-3,-6,7> -p=<6297,1232,8216>, v=<-89,-25,-184>, a=<-7,-1,-5> -p=<787,3206,2183>, v=<42,-63,4>, a=<-5,-4,-6> -p=<-941,3017,-3568>, v=<8,-112,147>, a=<2,0,-1> -p=<4027,3557,-679>, v=<-134,-104,68>, a=<-1,-2,-3> -p=<4864,-1438,-2137>, v=<31,67,-46>, a=<-15,-1,9> -p=<325,164,754>, v=<-74,3,-4>, a=<7,-4,-13> -p=<610,524,-201>, v=<-75,-22,20>, a=<2,-6,0> -p=<-215,224,699>, v=<-9,-36,-15>, a=<5,2,-10> -p=<-495,1334,-1331>, v=<30,-136,133>, a=<3,0,0> -p=<-390,-6,-861>, v=<25,9,130>, a=<2,-2,-8> -p=<-595,729,-116>, v=<-4,-59,6>, a=<11,-3,1> -p=<1360,804,-56>, v=<-139,-72,0>, a=<0,-2,1> -p=<90,359,-591>, v=<-78,11,92>, a=<12,-9,-6> -p=<-620,-1566,-231>, v=<48,99,23>, a=<2,10,0> -p=<-1355,1069,-1321>, v=<94,-126,110>, a=<7,3,4> -p=<699,-1699,-4607>, v=<5,86,93>, a=<-3,-1,9> -p=<2056,3131,-329>, v=<-90,8,-141>, a=<0,-12,13> -p=<-3602,1291,407>, v=<36,-44,-53>, a=<10,-1,3> -p=<-267,2717,-1870>, v=<83,-142,82>, a=<-6,2,0> -p=<-704,1636,3903>, v=<6,-47,-109>, a=<2,-2,-5> -p=<-1946,1429,1626>, v=<0,22,-70>, a=<7,-7,0> -p=<156,4594,673>, v=<33,8,-18>, a=<-2,-7,0> -p=<3116,1597,3966>, v=<-28,-6,-31>, a=<-3,-2,-4> -p=<10812,5334,1672>, v=<-27,-126,-64>, a=<-14,-1,1> -p=<1414,524,2190>, v=<75,23,131>, a=<-6,-2,-10> -p=<5336,9663,-6357>, v=<26,-91,58>, a=<-9,-9,6> -p=<4300,-438,-12758>, v=<73,-46,22>, a=<-10,3,17> -p=<3967,-3546,-918>, v=<-70,0,44>, a=<-2,5,-1> -p=<6224,10440,3670>, v=<-112,78,-23>, a=<-3,-19,-4> -p=<7334,2707,1783>, v=<-66,-55,-48>, a=<-7,-1,0> -p=<1007,10514,-3175>, v=<-47,-19,86>, a=<1,-14,0> -p=<-2289,2879,3134>, v=<87,43,-47>, a=<-1,-8,-3> -p=<1279,9407,-6930>, v=<157,-194,53>, a=<-12,-6,10> -p=<943,-8481,-1938>, v=<-80,35,-4>, a=<3,14,4> -p=<-7969,4127,-738>, v=<50,37,-58>, a=<12,-10,5> -p=<2019,1112,5886>, v=<-99,-85,-7>, a=<2,3,-13> -p=<4861,6767,-4438>, v=<-137,5,34>, a=<-2,-16,8> -p=<6427,909,3218>, v=<-56,72,10>, a=<-11,-7,-8> -p=<1758,2446,-4960>, v=<45,-146,112>, a=<-7,4,4> -p=<4165,-1469,2000>, v=<-128,124,-128>, a=<-1,-5,4> -p=<1113,-1854,63>, v=<-47,6,-29>, a=<-3,13,3> -p=<-1495,-30,2031>, v=<65,28,-84>, a=<3,-3,-5> -p=<-1055,-998,1583>, v=<-39,148,-56>, a=<12,-10,-5> -p=<-2071,-654,2647>, v=<135,-1,-216>, a=<-1,5,6> -p=<769,10,2767>, v=<-51,0,-11>, a=<0,0,-19> -p=<-1047,3450,943>, v=<20,-45,-16>, a=<5,-20,-5> -p=<-679,-814,1511>, v=<31,-59,-94>, a=<1,13,0> -p=<17,-1334,-273>, v=<-4,-18,-42>, a=<0,12,7> -p=<521,802,-1201>, v=<7,27,84>, a=<-5,-9,-1> -p=<1041,-686,-737>, v=<-68,69,106>, a=<0,-3,-7> -p=<5465,-618,2857>, v=<-66,17,-74>, a=<-4,0,0> -p=<4344,-1207,-15402>, v=<-134,91,75>, a=<1,-3,17> -p=<-1375,-181,-4002>, v=<-3,-14,87>, a=<2,1,1> -p=<15288,-9263,3256>, v=<-71,69,-26>, a=<-17,9,-3> -p=<-6733,-6755,2914>, v=<21,120,22>, a=<8,3,-5> -p=<88,1567,8025>, v=<17,18,-54>, a=<-1,-3,-8> -p=<2026,1168,-2577>, v=<-34,-30,30>, a=<-1,0,2> -p=<-104,1351,-1305>, v=<59,-36,-21>, a=<-4,-1,5> -p=<2137,1108,-738>, v=<-52,-55,28>, a=<-2,1,0> -p=<3730,-2807,5013>, v=<29,90,-73>, a=<-12,1,-8> -p=<2299,-971,1341>, v=<-86,78,-49>, a=<0,-3,0> -p=<-939,-4363,2031>, v=<35,140,-73>, a=<0,1,0> -p=<265,2329,5083>, v=<-66,-41,-95>, a=<4,-3,-6> -p=<-1009,-261,8765>, v=<52,-21,-38>, a=<-1,2,-19> -p=<2393,1125,2717>, v=<-84,-56,-83>, a=<0,1,-1> -p=<1035,1125,-3989>, v=<8,2,84>, a=<-3,-3,4> -p=<-85,4961,7253>, v=<-39,-164,-71>, a=<3,-1,-13> -p=<6201,-3075,7757>, v=<-191,123,-60>, a=<-2,-1,-15> -p=<300,-160,-566>, v=<-5,-6,-76>, a=<-2,2,15> -p=<2281,-1672,-706>, v=<-124,42,84>, a=<-5,10,-5> -p=<-2836,323,-251>, v=<159,-3,44>, a=<6,-3,-4> -p=<2169,-573,-706>, v=<-71,31,54>, a=<-11,1,-1> -p=<1511,-1259,1527>, v=<-9,95,-38>, a=<-13,-1,-10> -p=<-330,-937,-2071>, v=<-50,-18,84>, a=<10,11,8> -p=<13,386,1457>, v=<-7,15,-108>, a=<1,-6,0> -p=<-953,1163,1331>, v=<-28,-33,-144>, a=<13,-7,6> -p=<-799,-1490,246>, v=<126,149,1>, a=<-9,-6,-3> -p=<90,-930,1177>, v=<10,64,-43>, a=<-2,0,-6> -p=<-1763,-994,1921>, v=<95,80,12>, a=<0,-3,-11> -p=<-1155,-709,-834>, v=<73,-25,67>, a=<-1,6,-2> -p=<1429,-405,1959>, v=<-33,79,-90>, a=<-4,-6,-1> -p=<4418,1330,2934>, v=<-78,-60,33>, a=<-4,1,-8> -p=<-3239,4306,-1902>, v=<57,52,93>, a=<3,-12,-2> -p=<-2929,-5149,4949>, v=<-65,-11,-160>, a=<10,11,0> -p=<-511,-778,-6149>, v=<-47,40,22>, a=<4,-1,11> -p=<5162,4306,-2677>, v=<-38,-188,38>, a=<-8,3,3> -p=<-1631,-8674,2819>, v=<130,172,-108>, a=<-5,12,0> -p=<-1761,3091,-1250>, v=<0,-105,8>, a=<5,-1,3> -p=<-1631,-42,-7022>, v=<-32,110,122>, a=<7,-8,11> -p=<150,-5333,3664>, v=<-33,3,8>, a=<2,15,-11> -p=<6923,-3578,-418>, v=<-118,165,57>, a=<-11,-2,-3> -p=<8873,5795,-5189>, v=<-166,-128,119>, a=<-13,-7,6> -p=<-2125,2103,-2628>, v=<41,-40,115>, a=<3,-3,-1> -p=<-2543,858,5229>, v=<21,-7,-67>, a=<3,-1,-5> -p=<-4668,3476,-3917>, v=<-74,-84,132>, a=<12,-1,-1> -p=<-8357,6332,-7793>, v=<17,-63,36>, a=<13,-7,11> -p=<3125,665,3538>, v=<-65,-76,-2>, a=<-1,3,-5> -p=<-6384,-14838,5203>, v=<59,58,-104>, a=<6,18,-2> -p=<-908,3810,-1753>, v=<-51,67,8>, a=<4,-9,2> -p=<-1722,-6180,-6082>, v=<-48,-43,49>, a=<5,11,6> -p=<-3054,1368,-4565>, v=<83,-38,-49>, a=<0,0,9> -p=<-2373,1080,365>, v=<-31,-24,53>, a=<12,-2,-6> -p=<-4430,2169,-614>, v=<51,53,86>, a=<13,-13,-5> -p=<-924,-3134,591>, v=<79,-14,-49>, a=<-3,18,2> -p=<-1874,514,-3988>, v=<-1,-26,32>, a=<10,0,18> -p=<-145,-1747,4486>, v=<8,43,-114>, a=<0,5,-12> -p=<653,-2032,2320>, v=<-34,108,-70>, a=<0,0,-5> -p=<881,2243,1294>, v=<-6,-37,-26>, a=<-4,-8,-4> -p=<-2425,-1101,-1480>, v=<88,-11,70>, a=<4,7,1> -p=<-2919,1578,1256>, v=<194,-32,46>, a=<-4,-5,-11> -p=<-2634,856,2320>, v=<-1,-24,-50>, a=<14,-2,-7> -p=<144,-1759,161>, v=<26,100,-4>, a=<-6,7,-2> -p=<1464,-673,437>, v=<-32,55,-27>, a=<-14,0,-2> -p=<72,1133,65>, v=<-20,-37,4>, a=<2,-9,-2> -p=<-444,-943,-577>, v=<75,19,-53>, a=<-6,9,15> -p=<-4278,-11885,3366>, v=<-11,163,56>, a=<7,9,-8> -p=<3984,5233,8190>, v=<0,76,-4>, a=<-6,-12,-12> -p=<5460,-4091,8892>, v=<-41,39,-5>, a=<-6,4,-13> -p=<150,-2147,1692>, v=<-60,-52,-27>, a=<3,6,-1> -p=<-2874,1183,-576>, v=<61,133,-75>, a=<1,-9,5> -p=<-1956,-1103,1656>, v=<128,104,11>, a=<-4,-4,-3> -p=<186,-3893,4752>, v=<50,15,-38>, a=<-3,5,-5> -p=<-591,7845,4320>, v=<-13,-93,-43>, a=<2,-10,-6> -p=<1889,-5082,-1012>, v=<-29,148,-63>, a=<-2,1,6> -p=<1858,3040,-2283>, v=<100,-34,74>, a=<-10,-4,0> -p=<-3691,1862,-299>, v=<103,132,-102>, a=<1,-12,7> -p=<-6853,2141,1592>, v=<109,-53,13>, a=<7,-1,-4> -p=<6663,1769,9497>, v=<-55,23,-146>, a=<-10,-5,-10> -p=<-5309,-4880,2885>, v=<105,126,4>, a=<3,1,-5> -p=<3021,-8416,6149>, v=<-70,125,-22>, a=<-1,7,-9> -p=<3949,1547,1981>, v=<-5,21,84>, a=<-11,-6,-12> -p=<5093,156,1487>, v=<-76,-47,22>, a=<-9,3,-6> -p=<6094,2899,-5455>, v=<-74,-112,127>, a=<-12,0,6> -p=<6523,-4615,395>, v=<-131,96,-17>, a=<-9,6,0> -p=<-2486,1820,-2023>, v=<94,-84,130>, a=<0,1,-4> -p=<-4028,1467,2219>, v=<128,-43,-17>, a=<10,-4,-11> -p=<-1472,531,-5062>, v=<-14,9,150>, a=<10,-4,14> -p=<-608,-954,-1948>, v=<-43,6,110>, a=<8,5,0> -p=<-3921,1247,5039>, v=<-33,-106,51>, a=<9,4,-12> -p=<-9267,1214,-175>, v=<61,14,-80>, a=<13,-3,5> -p=<2646,4481,-6313>, v=<23,-34,-64>, a=<-6,-6,15> -p=<996,-2548,-3145>, v=<-63,-93,61>, a=<2,10,2> -p=<-786,-6277,-373>, v=<-26,-14,-40>, a=<3,12,3> -p=<-2898,-8323,-2122>, v=<157,150,47>, a=<-4,6,1> -p=<4098,9167,-2617>, v=<-89,-57,113>, a=<-2,-13,-2> -p=<-225,1808,3752>, v=<42,13,-63>, a=<-2,-4,-3> -p=<-4219,1852,5263>, v=<73,-68,-70>, a=<6,0,-9> -p=<-4597,-119,6667>, v=<101,33,-80>, a=<5,-2,-12> -p=<4637,-3521,2887>, v=<-157,-93,-108>, a=<-1,16,0> -p=<1505,-4304,538>, v=<-41,62,7>, a=<-1,7,-2> -p=<-4737,3953,180>, v=<127,-44,-8>, a=<9,-13,0> -p=<-2154,-1066,-4440>, v=<81,-3,179>, a=<2,5,3> -p=<2025,-457,4380>, v=<-8,-109,-87>, a=<-8,12,-11> -p=<870,1916,1125>, v=<-118,-2,-31>, a=<7,-8,-2> -p=<-33,1076,4338>, v=<-9,-94,-195>, a=<1,4,-1> -p=<3726,1664,-1143>, v=<-122,43,-22>, a=<-5,-11,7> -p=<-3855,-142,3645>, v=<85,-14,-19>, a=<9,2,-14> -p=<-3330,-268,-975>, v=<137,-96,36>, a=<2,10,1> -p=<3096,4079,2280>, v=<-4,-105,-20>, a=<-13,-8,-8> -p=<738,943,775>, v=<-36,0,-63>, a=<-7,-16,-2> -p=<-437,-727,-595>, v=<54,123,63>, a=<-2,-8,0> -p=<633,-157,-1665>, v=<-86,-33,170>, a=<4,10,0> -p=<-312,-262,-110>, v=<-8,49,-13>, a=<7,-3,5> -p=<-897,1478,-1095>, v=<67,-92,113>, a=<4,-9,0> -p=<548,-502,880>, v=<-61,73,-101>, a=<1,-3,3> -p=<-957,-77,-260>, v=<18,3,-20>, a=<14,2,9> -p=<23,-1767,370>, v=<-25,128,-50>, a=<4,10,3> -p=<9335,-1502,-1376>, v=<-94,46,109>, a=<-12,0,-4> -p=<-89,-8910,-1472>, v=<19,162,13>, a=<-1,7,2> -p=<1431,402,7824>, v=<-45,-30,-30>, a=<0,1,-13> -p=<3607,-1854,-3216>, v=<-80,90,-15>, a=<-2,-2,7> -p=<-1431,-1856,4713>, v=<-152,52,-127>, a=<10,0,0> -p=<1418,-8072,-4870>, v=<56,30,132>, a=<-5,10,0> -p=<-5020,-6592,-2539>, v=<21,-67,12>, a=<6,13,3> -p=<1418,6284,-4574>, v=<-20,-16,-85>, a=<-1,-8,11> -p=<-1357,3879,-11493>, v=<36,30,-31>, a=<0,-7,18> -p=<4779,-2196,-6490>, v=<34,-13,-96>, a=<-9,4,15> -p=<405,8280,-820>, v=<63,-82,135>, a=<-4,-8,-6> -p=<-4347,2178,890>, v=<84,-42,-153>, a=<2,-1,7> -p=<7425,936,6740>, v=<-21,11,-1>, a=<-10,-2,-10> -p=<2030,-6060,5989>, v=<-94,68,9>, a=<2,5,-9> -p=<-3113,1562,-3557>, v=<121,-62,20>, a=<-2,1,4> -p=<15387,8111,-3927>, v=<-132,-11,-27>, a=<-15,-11,7> -p=<1105,-12905,-1522>, v=<-31,139,-16>, a=<0,11,3> -p=<-13843,4300,957>, v=<50,-22,12>, a=<17,-5,-2> -p=<1364,970,-338>, v=<-38,-46,-67>, a=<0,1,4> -p=<328,-9020,11539>, v=<-67,-23,-160>, a=<3,14,-8> -p=<1441,1858,-3933>, v=<-114,-33,72>, a=<4,-1,2> -p=<-12401,-6674,-9819>, v=<67,19,69>, a=<15,9,11> -p=<5095,6196,567>, v=<25,-24,-16>, a=<-9,-8,0> -p=<-4751,-4964,10125>, v=<21,27,-152>, a=<6,6,-7> -p=<-1546,-4772,-2286>, v=<41,141,-34>, a=<1,2,8> -p=<6784,-1538,4434>, v=<-126,-76,-129>, a=<-8,9,-2> -p=<-1896,4454,-2356>, v=<68,-58,70>, a=<0,-7,1> -p=<4166,296,2040>, v=<-47,-11,0>, a=<-7,0,-5> -p=<-7306,-125,-3525>, v=<148,-33,50>, a=<11,3,7> -p=<-4356,-8500,-3550>, v=<69,68,168>, a=<8,21,-2> -p=<1044,-225,-1950>, v=<-95,23,39>, a=<4,-1,3> -p=<-617,666,-1168>, v=<-14,-32,45>, a=<4,0,1> -p=<5515,5664,-1714>, v=<-141,-83,71>, a=<-11,-17,1> -p=<1735,-1329,-1084>, v=<50,96,52>, a=<-12,-3,0> -p=<1101,-5305,-338>, v=<-82,-26,-62>, a=<3,14,5> -p=<6843,1974,-4137>, v=<5,-37,-51>, a=<-16,-2,13> -p=<-206,-91,-1046>, v=<110,-61,68>, a=<-15,12,4> -p=<520,877,175>, v=<8,-47,-49>, a=<-9,-5,5> -p=<520,-795,65>, v=<-112,-9,-15>, a=<11,14,1> -p=<597,-608,-1046>, v=<-101,10,86>, a=<8,8,1> -p=<-1702,-190,230>, v=<138,2,54>, a=<3,3,-13> -p=<465,-1136,-1321>, v=<-29,58,87>, a=<-2,8,5> -p=<-1152,-487,-331>, v=<94,71,39>, a=<2,-4,-2> -p=<-1733,-1423,-1483>, v=<-61,121,34>, a=<10,-5,2> -p=<-3583,-148,-2933>, v=<78,-8,27>, a=<5,1,7> -p=<1292,-548,1717>, v=<-39,125,-16>, a=<-1,-8,-4> -p=<-333,2677,842>, v=<91,-4,-33>, a=<-6,-8,0> -p=<1542,4377,1792>, v=<-114,32,20>, a=<4,-16,-7> -p=<2192,402,-2183>, v=<16,22,36>, a=<-8,-3,4> -p=<1792,102,3467>, v=<32,-57,-125>, a=<-8,4,-1> -p=<17,2502,1642>, v=<25,29,-78>, a=<-2,-10,1> -p=<158,-2993,164>, v=<-42,8,-3>, a=<2,4,0> -p=<4820,-3011,2756>, v=<-5,-10,36>, a=<-7,5,-6> -p=<-3151,-4516,-1216>, v=<118,172,1>, a=<3,4,5> -p=<-1324,1385,-1867>, v=<-46,1,54>, a=<10,-6,3> -p=<-4012,1028,-2329>, v=<93,40,54>, a=<9,-8,5> -p=<524,-3697,1829>, v=<31,56,32>, a=<-5,11,-11> -p=<-7847,-3949,10230>, v=<-49,45,-93>, a=<13,3,-9> -p=<-969,-3322,-12874>, v=<-152,-69,203>, a=<9,8,7> -p=<-4579,2131,-1113>, v=<-57,41,69>, a=<9,-5,-2> -p=<-1140,-6286,-9758>, v=<67,126,121>, a=<-2,2,7> -p=<399,-8775,5271>, v=<7,16,-99>, a=<-1,11,-2> -p=<-1390,-740,258>, v=<152,-4,-23>, a=<-6,9,1> -p=<2276,-2742,11>, v=<-172,213,59>, a=<0,0,-8> -p=<1522,-714,63>, v=<-107,-62,-1>, a=<-1,17,0> -p=<-948,1236,492>, v=<-36,-86,8>, a=<16,-1,-6> -p=<-350,-1195,895>, v=<-68,24,5>, a=<14,10,-10> -p=<-662,1392,-106>, v=<61,-14,-30>, a=<-1,-13,6> -p=<2744,547,1090>, v=<-82,-82,-52>, a=<-18,6,-4> -p=<-714,508,-886>, v=<44,-79,44>, a=<2,6,4> -p=<91,79,957>, v=<-26,53,12>, a=<3,-10,-17> -p=<-96,1014,-1573>, v=<3,-80,140>, a=<1,-2,0> -p=<-393,827,55>, v=<48,-63,-8>, a=<-2,-2,0> -p=<872,-559,583>, v=<-49,57,-8>, a=<-5,-1,-8> -p=<-30,673,231>, v=<-57,-61,-60>, a=<10,0,6> -p=<-613,-702,1793>, v=<2,88,-70>, a=<9,-4,-16> -p=<663,596,-253>, v=<-48,-90,26>, a=<-2,6,-1> -p=<-394,705,481>, v=<4,30,-34>, a=<3,-10,0> -p=<61,-1297,-1430>, v=<84,38,50>, a=<-12,8,7> -p=<-233,1909,-163>, v=<15,-131,-33>, a=<0,0,6> -p=<-870,348,2105>, v=<83,-42,-45>, a=<-3,3,-14> -p=<1664,285,1755>, v=<-113,45,-35>, a=<-1,-8,-12> -p=<-1269,1545,-415>, v=<89,-60,-30>, a=<0,-6,8> -p=<-534,-261,1293>, v=<-1,-21,-92>, a=<5,6,0> -p=<-135,-121,-2557>, v=<-7,44,93>, a=<2,-4,12> -p=<1223,-415,292>, v=<-74,35,-28>, a=<-2,0,1> -p=<824,-1430,922>, v=<-68,115,-73>, a=<1,-1,1> -p=<-640,2303,-1594>, v=<-90,328,-227>, a=<5,-25,15> -p=<-1065,354,-3254>, v=<-152,47,-462>, a=<10,-3,31> -p=<2462,751,1569>, v=<346,107,226>, a=<-22,-7,-14> -p=<-106,-2052,-2044>, v=<-16,-295,-290>, a=<4,15,15> -p=<-2837,147,1838>, v=<-406,22,262>, a=<24,-6,-22> -p=<2592,-1392,-608>, v=<374,-198,-87>, a=<-23,12,7> -p=<1813,1582,-1758>, v=<259,229,-248>, a=<-18,-17,14> -p=<-1899,1420,658>, v=<-267,200,92>, a=<16,-16,-11> -p=<1208,-1527,-1923>, v=<172,-215,-275>, a=<-16,10,16> -p=<2156,-2278,169>, v=<307,-326,27>, a=<-21,22,-1> -p=<1056,-798,-2596>, v=<147,-116,-372>, a=<-9,7,28> -p=<-1199,620,2328>, v=<-171,88,326>, a=<14,1,-26> -p=<-2396,-657,2316>, v=<-338,-95,329>, a=<24,6,-22> -p=<-824,587,-2484>, v=<-121,82,-353>, a=<8,-2,28> -p=<1659,739,-2320>, v=<235,105,-333>, a=<-18,-8,23> -p=<-2673,-573,489>, v=<-379,-75,67>, a=<25,5,0> -p=<-1570,-2486,60>, v=<-229,-357,7>, a=<14,29,-2> -p=<-2626,179,257>, v=<-375,24,38>, a=<23,-1,-4> -p=<849,-331,-2900>, v=<120,-49,-417>, a=<-8,0,31> -p=<645,1229,2673>, v=<89,177,376>, a=<-6,-14,-28> -p=<-1480,-2064,-361>, v=<-211,-295,-55>, a=<14,21,5> -p=<-2665,43,1552>, v=<-381,6,223>, a=<30,3,-17> -p=<-1459,51,2649>, v=<-202,7,371>, a=<13,-3,-21> -p=<-1482,-2729,-452>, v=<-211,-391,-64>, a=<14,24,4> -p=<1608,2630,144>, v=<228,371,14>, a=<-16,-26,4> -p=<1165,499,2876>, v=<163,71,411>, a=<-12,-9,-30> -p=<2642,-695,-895>, v=<383,-101,-127>, a=<-23,1,4> -p=<-2614,-864,-1341>, v=<-370,-122,-187>, a=<26,8,10> -p=<-1044,729,-2321>, v=<-151,103,-328>, a=<5,-7,22> -p=<-1018,-916,-2755>, v=<-145,-129,-388>, a=<5,8,23> -p=<-3177,847,960>, v=<-456,120,143>, a=<30,-8,-2> -p=<1358,1463,-2332>, v=<194,215,-332>, a=<-15,-12,23> -p=<-1230,-3445,-695>, v=<-178,-496,-100>, a=<9,34,8> -p=<284,229,2992>, v=<41,34,427>, a=<-4,-2,-30> -p=<-1398,-1284,-2531>, v=<-195,-185,-358>, a=<12,18,30> -p=<280,1690,-1795>, v=<41,241,-252>, a=<-4,-16,19> -p=<-1556,637,2590>, v=<-215,94,374>, a=<15,-3,-25> -p=<1970,-1629,2345>, v=<282,-237,335>, a=<-14,13,-29> -p=<624,-2660,-1245>, v=<92,-377,-177>, a=<-6,27,12> -p=<2472,-1297,-1889>, v=<352,-187,-272>, a=<-21,11,21> -p=<1475,-2024,-2192>, v=<216,-292,-316>, a=<-19,18,22> -p=<2316,-1953,720>, v=<327,-284,103>, a=<-25,21,-5> -p=<-1493,692,-3102>, v=<-213,100,-443>, a=<14,-7,27> -p=<1825,1169,2010>, v=<263,164,287>, a=<-18,-10,-16> -p=<132,-416,2718>, v=<18,-59,390>, a=<-2,7,-26> -p=<-3328,-231,203>, v=<-477,-34,36>, a=<31,4,-4> -p=<-1458,911,-2505>, v=<-208,128,-357>, a=<16,-9,26> -p=<-232,2726,-1244>, v=<-34,389,-177>, a=<-3,-28,9> -p=<-2076,-2126,878>, v=<-297,-304,128>, a=<21,23,-10> -p=<3071,-1789,-978>, v=<444,-255,-139>, a=<-32,15,6> -p=<470,1352,2371>, v=<69,192,338>, a=<-1,-14,-19> -p=<-366,2757,334>, v=<-51,394,48>, a=<3,-23,-2> -p=<142,3704,-779>, v=<23,528,-111>, a=<-4,-35,6> -p=<-2560,678,-902>, v=<-365,96,-128>, a=<26,-4,10> -p=<-799,-1439,1718>, v=<-115,-205,245>, a=<2,16,-16> -p=<252,-205,2964>, v=<36,-31,420>, a=<-3,2,-29> -p=<1111,-2850,-712>, v=<159,-409,-107>, a=<-10,28,8> -p=<-460,2649,-1121>, v=<-67,382,-159>, a=<7,-32,15> -p=<3050,-961,419>, v=<434,-142,58>, a=<-31,13,-4> -p=<-690,583,3314>, v=<-98,86,474>, a=<8,-6,-34> -p=<1533,1358,-2236>, v=<218,195,-319>, a=<-15,-12,23> -p=<2116,1539,1334>, v=<296,223,196>, a=<-23,-12,-16> -p=<-480,-2566,1780>, v=<-70,-372,250>, a=<5,19,-14> -p=<-157,-2633,1171>, v=<-20,-380,163>, a=<0,30,-8> -p=<-551,2588,-222>, v=<-81,366,-28>, a=<11,-23,-1> -p=<-2411,917,589>, v=<-341,131,85>, a=<24,-8,-6> -p=<-889,-2793,-844>, v=<-130,-400,-122>, a=<12,24,8> -p=<1520,-2712,-490>, v=<219,-383,-68>, a=<-12,27,6> -p=<-1591,-1155,1957>, v=<-228,-169,282>, a=<14,15,-18> -p=<-2439,1395,-500>, v=<-347,199,-73>, a=<28,-12,5> -p=<-1337,172,-2489>, v=<-187,23,-355>, a=<18,3,23> -p=<316,-2188,1642>, v=<42,-313,230>, a=<-3,21,-17> -p=<-165,1828,-2025>, v=<-19,258,-292>, a=<1,-16,18> -p=<-1747,1095,1978>, v=<-244,154,284>, a=<18,-12,-25> -p=<-2666,540,-1200>, v=<-379,80,-168>, a=<25,1,8> -p=<1683,-834,-1770>, v=<240,-119,-252>, a=<-16,5,18> -p=<-2653,450,-388>, v=<-382,65,-56>, a=<31,3,7> -p=<2146,-2673,-252>, v=<307,-382,-35>, a=<-25,26,-1> -p=<-496,-2646,1797>, v=<-73,-379,258>, a=<3,24,-16> -p=<1530,360,-3009>, v=<217,48,-423>, a=<-15,-1,30> -p=<-640,-802,-2660>, v=<-88,-114,-376>, a=<7,7,28> -p=<-811,1540,-2260>, v=<-116,218,-322>, a=<1,-12,22> -p=<-2796,1328,-710>, v=<-396,191,-100>, a=<27,-13,7> -p=<129,472,2813>, v=<24,63,404>, a=<4,-2,-26> -p=<-1420,-2470,-1046>, v=<-201,-355,-153>, a=<21,18,6> -p=<2451,808,-944>, v=<347,115,-138>, a=<-24,-6,11> -p=<-40,2324,-1830>, v=<-3,330,-266>, a=<-1,-17,18> -p=<-82,3079,1442>, v=<-10,440,210>, a=<0,-26,-10> -p=<2698,-1471,-783>, v=<379,-209,-112>, a=<-26,16,9> -p=<2894,-1493,-387>, v=<412,-213,-57>, a=<-28,14,-3> -p=<1417,2516,-12>, v=<198,358,2>, a=<-17,-23,-2> -p=<747,2897,-1186>, v=<106,417,-165>, a=<-7,-33,15> -p=<-4,2281,-2417>, v=<-4,328,-340>, a=<6,-23,31> -p=<1737,-1461,2393>, v=<243,-202,335>, a=<-13,18,-30> -p=<-902,1843,-2360>, v=<-130,264,-337>, a=<11,-15,25> -p=<-1582,20,-1857>, v=<-227,-1,-263>, a=<14,-1,23> -p=<-1830,629,-1964>, v=<-258,85,-278>, a=<10,-8,17> -p=<-2085,1038,-866>, v=<-292,149,-127>, a=<21,-10,8> -p=<-1186,2355,1683>, v=<-169,335,243>, a=<11,-23,-16> -p=<-2259,248,-2209>, v=<-324,35,-314>, a=<22,0,21> -p=<-1283,-2116,1398>, v=<-186,-301,202>, a=<7,19,-21> -p=<-645,-3178,1278>, v=<-90,-449,181>, a=<6,26,-15> -p=<-1736,-2087,-1254>, v=<-249,-297,-181>, a=<17,19,14> -p=<183,-1786,-1791>, v=<26,-249,-259>, a=<-1,19,17> -p=<2465,-1286,-188>, v=<355,-185,-26>, a=<-24,12,4> -p=<234,-1280,-2961>, v=<29,-180,-419>, a=<-2,13,25> -p=<1084,1772,-2323>, v=<151,254,-331>, a=<-10,-15,23> -p=<-33,-757,2842>, v=<-7,-110,407>, a=<1,7,-27> -p=<-62,223,-2854>, v=<-6,30,-407>, a=<4,-2,29> -p=<-1939,-2234,-470>, v=<-276,-318,-65>, a=<18,23,6> -p=<-1064,-2485,1011>, v=<-154,-357,141>, a=<10,28,-5> -p=<-2793,-281,1074>, v=<-400,-36,156>, a=<25,2,-9> -p=<-2153,1885,362>, v=<-301,274,50>, a=<19,-19,0> -p=<-1097,2219,-1431>, v=<-157,314,-207>, a=<11,-22,12> -p=<1795,-2653,694>, v=<256,-382,99>, a=<-18,29,-6> -p=<-1706,2021,-841>, v=<-238,287,-120>, a=<17,-25,10> -p=<-163,-1743,1795>, v=<-26,-252,258>, a=<1,17,-17> -p=<1425,1729,977>, v=<202,243,138>, a=<-13,-17,-10> -p=<648,2109,-994>, v=<90,303,-143>, a=<-3,-19,14> -p=<-1738,468,1971>, v=<-249,65,278>, a=<18,0,-20> -p=<1045,1218,2731>, v=<148,175,394>, a=<-8,-11,-27> -p=<-540,1940,-2022>, v=<-77,280,-283>, a=<5,-21,17> -p=<-2979,1549,-239>, v=<-430,222,-34>, a=<27,-21,0> -p=<-2598,-2175,-183>, v=<-374,-314,-26>, a=<21,19,2> -p=<-1391,2880,-1142>, v=<-195,410,-163>, a=<9,-28,12> -p=<-1253,-1245,2513>, v=<-182,-173,362>, a=<12,13,-22> -p=<771,75,2400>, v=<104,11,342>, a=<-7,4,-25> -p=<468,988,-2854>, v=<67,143,-403>, a=<1,-13,25> -p=<-1290,2001,1041>, v=<-180,286,148>, a=<12,-22,-8> -p=<11,-1463,2584>, v=<-4,-215,375>, a=<0,13,-30> -p=<1672,-2459,-1046>, v=<233,-348,-149>, a=<-21,24,15> -p=<-1973,2358,-291>, v=<-279,338,-37>, a=<21,-23,1> -p=<327,-2775,2079>, v=<49,-396,298>, a=<-4,32,-24> -p=<-2260,400,-2962>, v=<-327,56,-422>, a=<22,-8,28> -p=<-431,-282,3083>, v=<-61,-39,440>, a=<1,5,-24> -p=<-2378,1821,-1219>, v=<-331,261,-174>, a=<14,-22,18> -p=<187,2556,-1007>, v=<26,368,-146>, a=<-2,-24,10> -p=<1417,-2451,289>, v=<199,-350,40>, a=<-19,25,-3> -p=<-2105,292,2336>, v=<-295,42,329>, a=<22,-1,-23> -p=<1397,2026,1405>, v=<200,289,200>, a=<-8,-19,-11> -p=<2364,323,-382>, v=<341,49,-58>, a=<-21,-6,4> -p=<-256,-3019,633>, v=<-36,-430,90>, a=<2,35,-5> -p=<3025,-164,1078>, v=<429,-21,153>, a=<-29,1,-9> -p=<2723,-2091,-29>, v=<388,-297,-3>, a=<-29,16,-2> -p=<197,709,2512>, v=<30,108,362>, a=<-6,-5,-25> -p=<-1843,874,1771>, v=<-261,131,253>, a=<17,-12,-17> -p=<2707,-769,818>, v=<382,-107,112>, a=<-26,9,-4> -p=<164,-239,3326>, v=<20,-36,474>, a=<-5,-2,-35> -p=<-1484,-1867,1429>, v=<-211,-271,204>, a=<12,18,-16> -p=<-1091,-1732,-2881>, v=<-154,-248,-411>, a=<8,15,29> -p=<2142,1579,-1231>, v=<306,223,-177>, a=<-19,-18,6> -p=<-2977,300,945>, v=<-425,44,133>, a=<30,3,-7> -p=<1742,1775,-36>, v=<244,253,-7>, a=<-17,-17,5> -p=<-1594,-2674,495>, v=<-230,-382,74>, a=<13,21,-1> -p=<-1665,2225,-1776>, v=<-240,314,-250>, a=<17,-21,17> -p=<142,2432,-376>, v=<18,351,-52>, a=<-2,-16,2> -p=<-950,1633,1739>, v=<-139,229,248>, a=<9,-16,-17> -p=<-2816,-480,-893>, v=<-404,-71,-131>, a=<31,6,8> -p=<-455,932,2810>, v=<-69,135,403>, a=<3,-13,-27> -p=<-3730,366,-606>, v=<-532,55,-86>, a=<37,-3,4> -p=<252,-2577,-244>, v=<36,-367,-35>, a=<-6,26,3> -p=<801,-2233,-1237>, v=<112,-315,-174>, a=<-8,27,13> -p=<2442,-462,1909>, v=<350,-65,270>, a=<-22,5,-12> -p=<-2324,1403,-1040>, v=<-332,203,-139>, a=<22,-13,12> -p=<-2533,1295,-1541>, v=<-361,183,-221>, a=<25,-11,17> -p=<-1512,-932,1936>, v=<-216,-134,276>, a=<18,9,-18> -p=<2274,1583,-1494>, v=<319,227,-214>, a=<-21,-17,14> -p=<-2158,-1734,-2643>, v=<-302,-242,-377>, a=<26,15,26> -p=<687,954,2298>, v=<94,130,329>, a=<-12,-8,-28> -p=<-2296,571,-1404>, v=<-334,81,-198>, a=<24,-5,13> -p=<-431,2980,489>, v=<-55,424,64>, a=<4,-33,-4> -p=<-2237,-2695,-582>, v=<-316,-385,-83>, a=<21,32,5> -p=<-1619,759,-2656>, v=<-225,114,-380>, a=<19,-12,26> -p=<945,447,3126>, v=<130,61,444>, a=<-12,-9,-31> -p=<2412,-1076,1127>, v=<344,-158,158>, a=<-28,8,-7> -p=<77,3074,-1824>, v=<14,438,-257>, a=<0,-30,21> -p=<1306,1552,-1954>, v=<187,222,-281>, a=<-16,-13,18> -p=<808,2843,1357>, v=<116,408,190>, a=<-9,-28,-10> -p=<-105,-919,2898>, v=<-15,-129,418>, a=<1,13,-28> -p=<994,1043,-1978>, v=<140,151,-279>, a=<-9,-9,20> -p=<3077,70,482>, v=<442,10,68>, a=<-32,-1,-6> -p=<-2772,1,-1392>, v=<-397,-2,-201>, a=<30,2,13> -p=<1297,-2205,120>, v=<184,-321,17>, a=<-9,20,0> -p=<-3102,-5,-1354>, v=<-444,3,-194>, a=<30,-1,12> -p=<-1621,-2313,374>, v=<-235,-329,52>, a=<18,20,-3> -p=<1902,-240,2425>, v=<266,-34,348>, a=<-19,1,-25> -p=<-1803,-1696,-543>, v=<-257,-238,-74>, a=<21,18,4> -p=<2854,-216,1608>, v=<404,-28,229>, a=<-30,6,-13> -p=<1502,-1352,-2578>, v=<211,-192,-364>, a=<-15,19,16> -p=<1559,-2311,-45>, v=<220,-328,-6>, a=<-17,22,5> -p=<-402,2270,-796>, v=<-58,325,-110>, a=<7,-21,3> -p=<-1370,-11,-2620>, v=<-196,3,-373>, a=<13,4,31> -p=<-953,3009,1273>, v=<-138,429,181>, a=<8,-33,-15> -p=<1782,-1172,-2352>, v=<255,-164,-337>, a=<-20,11,27> -p=<2237,418,2402>, v=<322,59,341>, a=<-21,-8,-24> -p=<2252,1657,1721>, v=<320,238,247>, a=<-20,-18,-15> -p=<-1315,-2410,1308>, v=<-189,-340,189>, a=<10,26,-18> -p=<48,244,-2745>, v=<2,35,-388>, a=<3,-3,29> -p=<1665,2253,-689>, v=<237,317,-98>, a=<-17,-21,5> -p=<1117,-1998,-2158>, v=<161,-285,-308>, a=<-9,21,22> -p=<-1209,2307,-403>, v=<-172,324,-58>, a=<11,-24,2> -p=<-2058,1700,1773>, v=<-291,243,254>, a=<20,-17,-18> -p=<-995,-1138,-2951>, v=<-138,-163,-418>, a=<8,13,27> -p=<785,-983,2672>, v=<116,-146,383>, a=<-7,10,-26> -p=<-1923,-330,-1677>, v=<-271,-41,-241>, a=<16,4,16> -p=<1401,1896,937>, v=<197,268,131>, a=<-16,-15,-10> -p=<-572,2692,1022>, v=<-83,384,149>, a=<1,-24,-10> -p=<1741,1338,-1868>, v=<253,193,-269>, a=<-17,-10,17> -p=<1566,2188,350>, v=<225,312,48>, a=<-16,-21,-4> -p=<-1734,-1324,-1866>, v=<-244,-188,-269>, a=<17,13,17> -p=<3149,-129,-952>, v=<449,-16,-132>, a=<-32,-1,11> -p=<2091,-1276,-782>, v=<293,-179,-108>, a=<-21,10,11> -p=<1814,2072,315>, v=<260,295,47>, a=<-18,-21,-6> -p=<-1036,-1282,1829>, v=<-147,-189,265>, a=<10,14,-18> -p=<-2434,-333,-1071>, v=<-347,-45,-155>, a=<23,2,7> -p=<2813,315,265>, v=<397,43,35>, a=<-29,-3,-2> -p=<704,-541,-2684>, v=<100,-81,-383>, a=<-8,2,25> -p=<180,-1863,-2277>, v=<28,-266,-326>, a=<-2,12,22> -p=<-537,478,-3146>, v=<-73,72,-449>, a=<1,-3,29> -p=<-2275,1286,1169>, v=<-326,182,165>, a=<21,-16,-13> -p=<-3153,-167,839>, v=<-452,-22,117>, a=<31,5,-8> -p=<-2659,-1005,-62>, v=<-379,-143,-11>, a=<33,14,0> -p=<-2857,1552,-245>, v=<-403,219,-34>, a=<26,-15,-2> -p=<-2420,1189,-1497>, v=<-348,165,-213>, a=<22,-10,13> -p=<-996,-2088,1463>, v=<-141,-296,209>, a=<10,21,-13> -p=<785,-2777,-89>, v=<111,-396,-11>, a=<-10,22,2> -p=<-3064,52,457>, v=<-439,3,58>, a=<29,0,-1> -p=<-2003,1537,-2027>, v=<-286,222,-283>, a=<18,-14,20> -p=<-2744,192,516>, v=<-390,27,75>, a=<28,-1,-8> -p=<2627,428,1268>, v=<377,62,183>, a=<-26,-4,-11> -p=<2370,516,-2130>, v=<335,71,-306>, a=<-25,-4,20> -p=<-167,2752,-190>, v=<-23,391,-27>, a=<1,-24,0> -p=<-2333,-1758,399>, v=<-332,-254,59>, a=<23,10,-4> -p=<115,1289,-2001>, v=<17,186,-285>, a=<0,-12,22> -p=<-1645,320,-2350>, v=<-235,48,-336>, a=<15,1,23> -p=<168,539,-2987>, v=<26,80,-429>, a=<4,-6,30> -p=<550,109,2265>, v=<77,14,323>, a=<-1,-1,-15> -p=<2314,-1485,1355>, v=<330,-206,194>, a=<-21,21,-13> -p=<-2350,1553,904>, v=<-337,226,132>, a=<17,-17,-9> -p=<-1292,2795,-539>, v=<-184,402,-74>, a=<12,-30,8> -p=<-770,-1190,-2785>, v=<-108,-172,-397>, a=<7,9,30> -p=<-2348,-1197,1425>, v=<-336,-172,211>, a=<23,14,-13> -p=<1914,787,1936>, v=<275,112,273>, a=<-19,-8,-16> -p=<-20,934,-2534>, v=<-2,133,-361>, a=<0,-9,24> -p=<-1896,-1410,1509>, v=<-269,-201,214>, a=<14,14,-11> -p=<-3039,-1083,-1197>, v=<-436,-151,-174>, a=<30,14,12> -p=<-703,-1842,2083>, v=<-100,-263,297>, a=<8,21,-21> -p=<-865,2968,-1508>, v=<-121,421,-215>, a=<8,-31,19> -p=<3111,410,1160>, v=<442,62,161>, a=<-26,-4,-15> -p=<-783,2409,-1292>, v=<-107,344,-184>, a=<7,-24,11> -p=<3426,56,23>, v=<492,10,-1>, a=<-31,2,0> -p=<-3055,796,570>, v=<-440,112,73>, a=<28,-6,-8> -p=<-407,1576,2244>, v=<-62,226,323>, a=<3,-11,-22> -p=<-1560,2842,919>, v=<-221,405,133>, a=<14,-26,-7> -p=<2900,635,1073>, v=<411,92,158>, a=<-26,-3,-7> -p=<-2028,-452,2148>, v=<-286,-59,306>, a=<22,4,-20> -p=<-2567,1085,45>, v=<-371,157,1>, a=<32,-18,-1> -p=<-991,1405,2370>, v=<-142,203,340>, a=<9,-14,-23> -p=<142,-1409,-2144>, v=<15,-199,-308>, a=<0,8,26> -p=<1497,303,-2973>, v=<213,42,-427>, a=<-13,-6,33> -p=<-1158,221,2675>, v=<-167,32,380>, a=<9,5,-25> -p=<-147,-400,3215>, v=<-21,-51,459>, a=<-1,0,-32> -p=<-1828,-2033,567>, v=<-263,-290,82>, a=<19,26,-4> -p=<-1953,1811,-2055>, v=<-278,255,-294>, a=<15,-18,14> -p=<-838,-1721,-2258>, v=<-119,-250,-324>, a=<10,16,25> -p=<598,-1963,-2331>, v=<84,-274,-335>, a=<-5,21,24> -p=<-210,400,-2911>, v=<-29,61,-416>, a=<4,-9,31> -p=<-1336,-1236,2422>, v=<-192,-175,348>, a=<9,11,-27> -p=<2593,1842,156>, v=<366,258,23>, a=<-26,-22,3> -p=<683,-2491,2131>, v=<94,-355,301>, a=<-5,26,-19> -p=<-1754,-1837,-1551>, v=<-249,-262,-221>, a=<15,23,13> -p=<1971,2423,440>, v=<278,345,64>, a=<-23,-24,-1> -p=<-398,2348,1947>, v=<-56,333,281>, a=<-2,-23,-19> -p=<2374,-1106,-1948>, v=<339,-158,-282>, a=<-24,13,22> -p=<-989,-1488,-1769>, v=<-148,-214,-252>, a=<9,12,12> -p=<2259,-943,-1333>, v=<318,-135,-185>, a=<-21,9,8> -p=<2871,-44,150>, v=<412,-7,23>, a=<-26,2,-2> -p=<876,-1583,-1974>, v=<131,-232,-281>, a=<-12,18,14> -p=<-597,-2656,690>, v=<-82,-383,91>, a=<5,26,-8> -p=<3218,-115,-141>, v=<455,-18,-18>, a=<-36,0,5> -p=<1347,-17,-2874>, v=<195,-2,-410>, a=<-16,-4,28> -p=<2607,646,1802>, v=<375,90,259>, a=<-30,-7,-18> -p=<2246,-82,1413>, v=<316,-6,200>, a=<-21,-5,-11> -p=<-1515,2402,-1329>, v=<-208,341,-188>, a=<16,-22,15> -p=<-740,-2443,839>, v=<-106,-345,118>, a=<9,27,-9> -p=<-370,-1496,2055>, v=<-57,-212,293>, a=<5,14,-19> -p=<-1652,-1944,-1349>, v=<-236,-281,-184>, a=<9,16,13> -p=<-2499,2057,-233>, v=<-355,294,-32>, a=<24,-21,2> -p=<307,-2054,1512>, v=<38,-293,216>, a=<-4,19,-16> -p=<-2617,-1535,-1691>, v=<-371,-221,-238>, a=<26,14,19> -p=<1419,2503,374>, v=<205,362,55>, a=<-18,-25,-3> -p=<2882,48,1837>, v=<407,3,267>, a=<-26,-4,-22> -p=<-563,-3347,223>, v=<-79,-476,34>, a=<7,33,-2> -p=<-814,-2302,-208>, v=<-116,-326,-29>, a=<7,21,2> -p=<2886,-461,892>, v=<417,-72,127>, a=<-30,4,-11> -p=<38,-829,2517>, v=<9,-117,361>, a=<0,6,-29> -p=<1954,768,-1801>, v=<278,111,-257>, a=<-22,-7,22> -p=<-1138,-848,2144>, v=<-161,-121,307>, a=<14,13,-20> -p=<-2676,69,-662>, v=<-388,11,-94>, a=<26,0,6> -p=<-1190,-2014,1742>, v=<-170,-287,249>, a=<11,21,-20> -p=<-865,2859,-981>, v=<-126,407,-140>, a=<8,-31,12> -p=<3060,1455,828>, v=<437,209,118>, a=<-25,-19,-6> -p=<1292,-1828,-1200>, v=<181,-268,-168>, a=<-13,18,9> -p=<-2351,-1092,557>, v=<-339,-155,81>, a=<23,13,-3> -p=<1107,-2033,693>, v=<155,-290,100>, a=<-7,21,-10> -p=<-962,323,3456>, v=<-140,48,493>, a=<11,-4,-30> -p=<2434,637,-1784>, v=<348,96,-252>, a=<-24,-9,18> -p=<2157,1618,59>, v=<308,226,8>, a=<-25,-20,-2> -p=<849,-62,-2418>, v=<121,-8,-344>, a=<-7,-3,23> -p=<2762,1436,-1383>, v=<394,207,-197>, a=<-23,-15,11> -p=<-3036,419,878>, v=<-432,57,124>, a=<24,1,-10> -p=<2503,1489,-756>, v=<356,217,-109>, a=<-25,-12,4> -p=<-1397,-2563,-133>, v=<-199,-361,-19>, a=<12,23,1> -p=<-288,1425,-3042>, v=<-41,207,-432>, a=<1,-13,29> -p=<24,2975,447>, v=<2,428,63>, a=<-2,-37,-4> -p=<285,-2013,-2331>, v=<34,-287,-329>, a=<5,25,26> -p=<-634,-2885,-1380>, v=<-90,-410,-196>, a=<4,31,16> -p=<-2550,-1613,1326>, v=<-369,-228,189>, a=<22,15,-12> -p=<-260,-1885,1699>, v=<-40,-269,242>, a=<7,18,-16> -p=<-632,1319,2283>, v=<-91,186,323>, a=<4,-18,-22> -p=<-865,-2642,-279>, v=<-126,-373,-39>, a=<3,24,0> -p=<2223,-1977,880>, v=<317,-281,130>, a=<-23,20,-8> -p=<42,2810,-450>, v=<10,401,-65>, a=<0,-24,0> -p=<-950,2330,2037>, v=<-134,332,291>, a=<4,-23,-18> -p=<1044,286,3174>, v=<151,40,451>, a=<-8,-1,-30> -p=<-932,2492,-342>, v=<-135,352,-53>, a=<9,-25,-1> -p=<3318,808,-839>, v=<473,112,-125>, a=<-33,-7,8> -p=<2190,802,1373>, v=<314,108,196>, a=<-21,-10,-13> -p=<-110,2227,2514>, v=<-13,321,357>, a=<1,-26,-22> -p=<-762,-2542,1571>, v=<-107,-363,219>, a=<7,27,-15> -p=<-843,1461,-2501>, v=<-121,208,-360>, a=<6,-15,25> -p=<1037,-2192,-1862>, v=<146,-314,-266>, a=<-9,21,16> -p=<1428,-2502,783>, v=<208,-357,117>, a=<-12,24,-1> -p=<-1519,802,-2626>, v=<-214,115,-375>, a=<12,-10,21> -p=<-2483,1663,1263>, v=<-349,237,180>, a=<19,-18,-17> -p=<1246,-500,2566>, v=<175,-69,366>, a=<-15,2,-25> -p=<-2286,-1779,-461>, v=<-327,-255,-65>, a=<22,23,2> -p=<350,3135,1064>, v=<50,449,152>, a=<-3,-31,-6> -p=<-506,275,-2858>, v=<-70,47,-408>, a=<6,-1,29> -p=<2283,2049,-751>, v=<328,292,-107>, a=<-18,-23,12> -p=<-1926,-1360,-1240>, v=<-279,-194,-175>, a=<19,15,14> -p=<1343,457,-2363>, v=<185,63,-333>, a=<-13,-2,23> -p=<-1206,2687,-982>, v=<-173,379,-140>, a=<8,-22,15> -p=<2187,30,2741>, v=<312,5,391>, a=<-21,2,-25> -p=<2627,1354,-644>, v=<375,193,-92>, a=<-23,-13,-2> -p=<2234,1551,-629>, v=<314,221,-87>, a=<-21,-15,6> -p=<-2224,181,-1582>, v=<-317,28,-226>, a=<19,-2,18> -p=<-1203,943,2568>, v=<-174,137,364>, a=<12,-2,-28> -p=<1723,2089,584>, v=<247,300,80>, a=<-17,-19,-9> -p=<1087,-867,2921>, v=<156,-126,421>, a=<-10,7,-29> -p=<359,-2816,1809>, v=<51,-402,255>, a=<0,28,-19> -p=<1010,1125,-2626>, v=<144,160,-377>, a=<-13,-17,27> -p=<-2218,1407,-767>, v=<-321,206,-110>, a=<24,-16,1> -p=<-3075,459,556>, v=<-436,65,76>, a=<28,-5,-5> -p=<-711,3207,1693>, v=<-97,457,242>, a=<10,-35,-20> -p=<2313,-442,-2190>, v=<330,-64,-315>, a=<-19,2,18> -p=<-1225,2747,-653>, v=<-177,394,-93>, a=<8,-30,5> -p=<1874,-2001,-949>, v=<267,-285,-133>, a=<-18,21,8> -p=<1135,-2961,-1056>, v=<159,-420,-148>, a=<-9,25,9> -p=<-992,1847,1999>, v=<-139,262,285>, a=<7,-22,-23> -p=<355,2681,-983>, v=<50,383,-140>, a=<-4,-27,15> -p=<-366,-2446,1278>, v=<-52,-353,183>, a=<4,27,-12> -p=<1878,-2548,244>, v=<268,-365,33>, a=<-18,27,0> -p=<2552,811,567>, v=<366,110,84>, a=<-25,-8,-8> -p=<3105,498,303>, v=<444,68,45>, a=<-31,-5,-2> -p=<167,-2030,-2095>, v=<20,-290,-300>, a=<2,16,26> -p=<637,2069,1692>, v=<83,294,243>, a=<-9,-20,-18> -p=<279,-2256,1998>, v=<45,-322,285>, a=<-6,21,-14> -p=<1300,-1475,2240>, v=<185,-210,320>, a=<-13,10,-26> -p=<-909,1932,1771>, v=<-128,280,256>, a=<4,-20,-20> -p=<-2564,-1688,925>, v=<-368,-238,129>, a=<27,16,-11> -p=<-1016,-2945,738>, v=<-147,-419,106>, a=<9,33,-5> -p=<-53,-2665,-2270>, v=<-11,-379,-324>, a=<-2,28,19> -p=<1575,642,2511>, v=<223,94,355>, a=<-17,-1,-16> -p=<1038,2769,151>, v=<144,397,21>, a=<-12,-27,-3> -p=<2607,805,-1130>, v=<372,115,-161>, a=<-27,-9,11> -p=<2070,170,2504>, v=<298,21,356>, a=<-24,-4,-26> -p=<-2063,152,-2561>, v=<-295,24,-365>, a=<16,-4,31> -p=<2655,-493,-835>, v=<379,-69,-115>, a=<-26,8,7> -p=<-2780,900,-676>, v=<-397,132,-100>, a=<29,-11,6> -p=<252,2668,1762>, v=<39,379,250>, a=<-2,-29,-17> -p=<-2790,-731,-1001>, v=<-395,-101,-140>, a=<26,6,13> -p=<-1229,497,-2048>, v=<-171,72,-295>, a=<12,1,23> -p=<2491,1388,1334>, v=<356,203,191>, a=<-29,-14,-12> -p=<2321,-1287,2441>, v=<333,-179,351>, a=<-24,14,-23> -p=<1460,2731,-68>, v=<209,390,-5>, a=<-15,-28,7> -p=<1398,618,2852>, v=<202,87,407>, a=<-11,-1,-32> -p=<47,1927,2446>, v=<9,271,348>, a=<-1,-25,-19> -p=<757,2073,-2212>, v=<113,296,-317>, a=<-6,-25,21> -p=<-1045,2707,-1885>, v=<-145,385,-264>, a=<5,-27,18> -p=<-1495,-818,-1857>, v=<-215,-118,-262>, a=<14,9,12> -p=<-2627,-718,-1764>, v=<-378,-101,-252>, a=<25,9,18> -p=<2024,960,1742>, v=<293,135,254>, a=<-27,-9,-21> -p=<1784,2855,-138>, v=<252,406,-15>, a=<-16,-32,1> -p=<-2160,-710,-1609>, v=<-304,-103,-223>, a=<17,6,17> -p=<-2478,-2089,95>, v=<-353,-299,15>, a=<28,23,1> -p=<2435,527,2073>, v=<347,75,296>, a=<-27,-4,-20> -p=<-1352,2955,791>, v=<-193,424,117>, a=<13,-31,-6> -p=<3003,1189,678>, v=<424,169,100>, a=<-30,-9,-10> -p=<604,-799,2066>, v=<89,-115,292>, a=<-10,10,-17> -p=<-2506,-1768,406>, v=<-354,-247,58>, a=<30,16,-2> -p=<-1310,-352,-1934>, v=<-188,-48,-276>, a=<13,6,19> -p=<1378,-2170,834>, v=<196,-312,122>, a=<-13,22,-8> -p=<-714,2923,-799>, v=<-107,414,-115>, a=<8,-30,7> -p=<906,232,-2566>, v=<128,32,-362>, a=<-9,2,18> -p=<-2288,-1476,1309>, v=<-327,-210,183>, a=<22,14,-13> -p=<1697,1613,308>, v=<240,226,45>, a=<-16,-18,-4> -p=<2453,773,-1994>, v=<353,111,-283>, a=<-25,-6,24> -p=<2094,-2409,33>, v=<295,-347,4>, a=<-15,25,2> -p=<526,-1113,2073>, v=<77,-157,294>, a=<-5,12,-21> -p=<-2442,591,-1823>, v=<-349,83,-262>, a=<24,-1,17> -p=<-335,-2835,592>, v=<-43,-406,86>, a=<4,28,-4> -p=<-2785,-972,229>, v=<-394,-135,36>, a=<23,11,-1> -p=<-1100,-1480,1796>, v=<-154,-210,257>, a=<10,17,-20> -p=<2325,1914,-452>, v=<332,272,-60>, a=<-23,-21,2> -p=<2180,1218,2887>, v=<313,177,412>, a=<-19,-12,-29> -p=<2374,-881,-1454>, v=<334,-132,-207>, a=<-22,13,16> -p=<-1748,2499,-1372>, v=<-248,359,-196>, a=<17,-23,16> -p=<1727,-1109,1790>, v=<246,-160,255>, a=<-19,13,-19> -p=<905,1527,-2078>, v=<121,218,-303>, a=<-5,-16,19> -p=<2420,-59,2292>, v=<347,-12,329>, a=<-24,0,-16> -p=<2287,-1783,1206>, v=<328,-257,170>, a=<-21,20,-14> -p=<-2664,-152,-1382>, v=<-374,-23,-198>, a=<26,1,13> -p=<-1081,1292,-2263>, v=<-158,184,-324>, a=<5,-11,24> -p=<2446,-545,-2289>, v=<350,-75,-328>, a=<-25,7,22> -p=<2235,-1381,-2054>, v=<322,-198,-298>, a=<-22,16,26> -p=<-3257,-154,-718>, v=<-466,-23,-101>, a=<29,-2,7> -p=<1673,1690,516>, v=<244,239,70>, a=<-19,-22,-6> -p=<1385,-2456,418>, v=<196,-350,58>, a=<-17,25,-4> -p=<2985,-884,-799>, v=<428,-119,-111>, a=<-33,5,7> -p=<-1513,2311,-173>, v=<-212,328,-23>, a=<15,-20,-4> -p=<-2074,-1496,-1222>, v=<-297,-214,-176>, a=<24,18,12> -p=<-2057,-370,-2301>, v=<-294,-52,-326>, a=<21,6,23> -p=<-2227,-2336,-145>, v=<-320,-339,-18>, a=<22,22,-3> -p=<2914,1632,652>, v=<414,227,94>, a=<-28,-16,-6> -p=<-1038,-2308,1378>, v=<-152,-333,198>, a=<13,31,-15> -p=<643,-1788,-2511>, v=<94,-255,-361>, a=<-2,21,23> -p=<902,2772,-1464>, v=<131,400,-212>, a=<-10,-23,17> -p=<1063,-1453,2430>, v=<156,-209,349>, a=<-10,16,-22> -p=<-224,3075,442>, v=<-29,439,67>, a=<-1,-31,1> -p=<-1373,-2192,-921>, v=<-196,-313,-132>, a=<13,24,8> -p=<-3353,295,495>, v=<-481,42,66>, a=<31,-1,-10> -p=<-1853,809,2625>, v=<-260,110,375>, a=<17,-4,-26> -p=<78,-1196,2121>, v=<9,-171,303>, a=<2,6,-18> -p=<3114,913,1260>, v=<443,123,184>, a=<-28,-10,-8> -p=<2387,-357,370>, v=<341,-48,51>, a=<-29,2,-3> -p=<-2301,-1677,-546>, v=<-328,-241,-75>, a=<22,16,3> -p=<1126,2571,-1330>, v=<157,367,-193>, a=<-13,-25,13> -p=<1806,345,2195>, v=<258,46,317>, a=<-20,-3,-18> -p=<1375,2815,-293>, v=<194,400,-43>, a=<-13,-28,0> -p=<2393,-1081,1055>, v=<342,-154,156>, a=<-23,13,-10> -p=<-74,1914,-2448>, v=<-14,273,-350>, a=<2,-17,23> -p=<2018,-1928,814>, v=<287,-279,114>, a=<-23,12,-10> -p=<-89,1458,2267>, v=<-14,213,322>, a=<-1,-16,-22> -p=<-2310,1272,-1141>, v=<-328,178,-156>, a=<23,-12,10> -p=<1157,2183,885>, v=<162,309,120>, a=<-11,-19,-5> -p=<-2528,2520,163>, v=<-360,364,20>, a=<25,-29,4> -p=<1873,1210,2281>, v=<268,176,327>, a=<-22,-10,-25> -p=<-654,-2387,-1867>, v=<-91,-341,-267>, a=<1,22,17> -p=<1619,-1540,-1714>, v=<226,-222,-247>, a=<-20,13,17> -p=<-2781,1254,-451>, v=<-399,186,-64>, a=<26,-13,0> diff --git a/2017/inputs/day_21.txt b/2017/inputs/day_21.txt deleted file mode 100644 index 280e26d..0000000 --- a/2017/inputs/day_21.txt +++ /dev/null @@ -1,108 +0,0 @@ -../.. => ..#/#../.#. -#./.. => #../#../... -##/.. => ###/#.#/#.. -.#/#. => ###/##./.#. -##/#. => .../.#./..# -##/## => ##./#.#/### -.../.../... => ##../.#../#.#./.... -#../.../... => ..../##.#/...#/##.# -.#./.../... => ###./####/#.../#..# -##./.../... => ###./.##./...#/..## -#.#/.../... => .###/.##./#.../#.## -###/.../... => ##.#/#..#/#.#./#.## -.#./#../... => #.#./.###/#.../#.## -##./#../... => #.../####/#.##/.... -..#/#../... => #.##/..#./...#/...# -#.#/#../... => #.##/####/.#.#/#.#. -.##/#../... => #.../##../##.#/.##. -###/#../... => ..../#.#./.###/#... -.../.#./... => .#.#/#..#/##../#.## -#../.#./... => ###./.###/.#.#/..#. -.#./.#./... => ..##/.##./..##/.#.# -##./.#./... => ..#./##../###./...# -#.#/.#./... => ..##/.##./.###/###. -###/.#./... => ..#./.###/###./#.## -.#./##./... => ###./..../.#../#... -##./##./... => .#.#/##../##.#/...# -..#/##./... => ##.#/.##./.###/..## -#.#/##./... => .###/..#./#.##/#### -.##/##./... => ##.#/..#./..##/###. -###/##./... => ..../.#.#/.#../#... -.../#.#/... => ###./.#.#/.#../#.## -#../#.#/... => ####/#..#/..../.... -.#./#.#/... => #.../..##/#.##/#.#. -##./#.#/... => #.#./###./##../#.#. -#.#/#.#/... => ...#/.##./.##./.#.. -###/#.#/... => ..../.##./####/#.#. -.../###/... => .###/.#../.###/#.## -#../###/... => ..##/..##/.##./##.. -.#./###/... => .#.#/..#./..##/##.# -##./###/... => ...#/#.##/#.#./##.# -#.#/###/... => #.##/.##./...#/###. -###/###/... => ##../...#/..##/#### -..#/.../#.. => #.##/#.../.#../#.#. -#.#/.../#.. => .##./.##./.#.#/.##. -.##/.../#.. => .#.#/#.##/...#/##.# -###/.../#.. => ##../..#./...#/##.. -.##/#../#.. => ##../..##/#..#/#..# -###/#../#.. => ##../..#./#.#./.... -..#/.#./#.. => .##./##.#/##../#### -#.#/.#./#.. => ####/...#/.#.#/..#. -.##/.#./#.. => .#.#/..#./##.#/.#.. -###/.#./#.. => #.../#.##/..../##.# -.##/##./#.. => #.#./#.#./#.##/#.#. -###/##./#.. => ...#/###./.##./.#.# -#../..#/#.. => ####/####/..../.##. -.#./..#/#.. => #.##/...#/..#./#### -##./..#/#.. => ..#./#.../..##/#### -#.#/..#/#.. => #.../#.##/#.##/..## -.##/..#/#.. => ####/..../##../#### -###/..#/#.. => ..../##.#/.##./#### -#../#.#/#.. => ...#/..##/###./#..# -.#./#.#/#.. => #..#/..#./.###/##.# -##./#.#/#.. => ###./####/#.##/..#. -..#/#.#/#.. => ##../##.#/..##/.##. -#.#/#.#/#.. => .#.#/.##./#.../##.# -.##/#.#/#.. => .#.#/#..#/.##./..#. -###/#.#/#.. => ...#/.#../.##./##.# -#../.##/#.. => ###./##../#.#./#### -.#./.##/#.. => .#../##../#.#./.#.# -##./.##/#.. => ##.#/.#../.#.#/#### -#.#/.##/#.. => ####/.#.#/..../.... -.##/.##/#.. => ####/##../#..#/#### -###/.##/#.. => .###/##.#/.#../#.## -#../###/#.. => #..#/###./####/.#.# -.#./###/#.. => ..##/##../##.#/.#.# -##./###/#.. => #..#/.#../####/...# -..#/###/#.. => ##../##.#/...#/#..# -#.#/###/#.. => ..#./.##./#..#/.... -.##/###/#.. => #..#/#.../..../.#.. -###/###/#.. => ..#./#.##/.##./#... -.#./#.#/.#. => .#.#/.##./##.#/.##. -##./#.#/.#. => #..#/.###/.#.#/.##. -#.#/#.#/.#. => #.../##../#.../.### -###/#.#/.#. => ###./.###/###./.... -.#./###/.#. => .#../####/...#/##.. -##./###/.#. => ####/###./..../.... -#.#/###/.#. => ...#/.###/..../#### -###/###/.#. => ..../#.../..#./.### -#.#/..#/##. => #.#./#.../####/#.## -###/..#/##. => .#.#/#..#/.###/#... -.##/#.#/##. => ..##/..#./..../##.. -###/#.#/##. => #.#./##.#/####/#..# -#.#/.##/##. => ..../.#../#.#./##.# -###/.##/##. => ..../..../.#../##.# -.##/###/##. => #.#./.###/#.#./#.## -###/###/##. => ##.#/##.#/.###/..#. -#.#/.../#.# => #..#/.#../#.../...# -###/.../#.# => ##../.#../##.#/..#. -###/#../#.# => ..##/#.#./####/.#.. -#.#/.#./#.# => ...#/...#/#..#/#.#. -###/.#./#.# => ..../####/.##./.#.# -###/##./#.# => #..#/.#.#/..##/#### -#.#/#.#/#.# => #.#./..#./...#/.#.. -###/#.#/#.# => ...#/##.#/.###/.#.. -#.#/###/#.# => .#.#/###./.#../.##. -###/###/#.# => ...#/.###/.#.#/###. -###/#.#/### => #.##/.#.#/...#/.#.. -###/###/### => ..##/.#../#.#./.#.. diff --git a/2017/inputs/day_21_example.txt b/2017/inputs/day_21_example.txt deleted file mode 100644 index f6d24df..0000000 --- a/2017/inputs/day_21_example.txt +++ /dev/null @@ -1,2 +0,0 @@ -../.# => ##./#../... -.#./..#/### => #..#/..../..../#..# diff --git a/2017/inputs/day_22.txt b/2017/inputs/day_22.txt deleted file mode 100644 index 1343456..0000000 --- a/2017/inputs/day_22.txt +++ /dev/null @@ -1,25 +0,0 @@ -.##..#.#.##...#....#..### -####.#...###.####..#..... -#.#.#####....######.###.# -#.#..###.#.#####....#..#. -####.#.#...#.##.##..#.### -#.####..#####.#.#....#.## -.#.####.#....###..##....# -..##.#..##.#.#.###.##.#.. -##....#....######.###.### -.#.##.###.###.###.#..#.#. -#.##.#.#..#.#.....###.... -####.....#..###..##..##.. -##....#.#...####...#.#.#. -...#.##..###..##..#...... -#....#..##.##.#..#.###..# -...#...##.##.##...#.#.#.. -.##....#.####.#..##.#...# -#.######......#.#...#.##. -#.##....###...###.###.... -#..#.#.#.#.#..#.#.....#.. -...##..##.###....#.###... -.######.#...###.###.#.#.# -####..###.####...#..##### -.##.#.##...##..##...#.#.# -###...##..#..##.##..#..#. diff --git a/2017/inputs/day_22_example.txt b/2017/inputs/day_22_example.txt deleted file mode 100644 index 3105a0b..0000000 --- a/2017/inputs/day_22_example.txt +++ /dev/null @@ -1,3 +0,0 @@ -..# -#.. -... diff --git a/2017/inputs/day_23.txt b/2017/inputs/day_23.txt deleted file mode 100644 index 9d29443..0000000 --- a/2017/inputs/day_23.txt +++ /dev/null @@ -1,32 +0,0 @@ -set b 99 -set c b -jnz a 2 -jnz 1 5 -mul b 100 -sub b -100000 -set c b -sub c -17000 -set f 1 -set d 2 -set e 2 -set g d -mul g e -sub g b -jnz g 2 -set f 0 -sub e -1 -set g e -sub g b -jnz g -8 -sub d -1 -set g d -sub g b -jnz g -13 -jnz f 2 -sub h -1 -set g b -sub g c -jnz g 2 -jnz 1 3 -sub b -17 -jnz 1 -23 diff --git a/2017/inputs/day_24.txt b/2017/inputs/day_24.txt deleted file mode 100644 index 1fbfe25..0000000 --- a/2017/inputs/day_24.txt +++ /dev/null @@ -1,57 +0,0 @@ -42/37 -28/28 -29/25 -45/8 -35/23 -49/20 -44/4 -15/33 -14/19 -31/44 -39/14 -25/17 -34/34 -38/42 -8/42 -15/28 -0/7 -49/12 -18/36 -45/45 -28/7 -30/43 -23/41 -0/35 -18/9 -3/31 -20/31 -10/40 -0/22 -1/23 -20/47 -38/36 -15/8 -34/32 -30/30 -30/44 -19/28 -46/15 -34/50 -40/20 -27/39 -3/14 -43/45 -50/42 -1/33 -6/39 -46/44 -22/35 -15/20 -43/31 -23/23 -19/27 -47/15 -43/43 -25/36 -26/38 -1/10 diff --git a/2017/inputs/day_25.txt b/2017/inputs/day_25.txt deleted file mode 100644 index 892ee98..0000000 --- a/2017/inputs/day_25.txt +++ /dev/null @@ -1,62 +0,0 @@ -Begin in state A. -Perform a diagnostic checksum after 12667664 steps. - -In state A: - If the current value is 0: - - Write the value 1. - - Move one slot to the right. - - Continue with state B. - If the current value is 1: - - Write the value 0. - - Move one slot to the left. - - Continue with state C. - -In state B: - If the current value is 0: - - Write the value 1. - - Move one slot to the left. - - Continue with state A. - If the current value is 1: - - Write the value 1. - - Move one slot to the right. - - Continue with state D. - -In state C: - If the current value is 0: - - Write the value 0. - - Move one slot to the left. - - Continue with state B. - If the current value is 1: - - Write the value 0. - - Move one slot to the left. - - Continue with state E. - -In state D: - If the current value is 0: - - Write the value 1. - - Move one slot to the right. - - Continue with state A. - If the current value is 1: - - Write the value 0. - - Move one slot to the right. - - Continue with state B. - -In state E: - If the current value is 0: - - Write the value 1. - - Move one slot to the left. - - Continue with state F. - If the current value is 1: - - Write the value 1. - - Move one slot to the left. - - Continue with state C. - -In state F: - If the current value is 0: - - Write the value 1. - - Move one slot to the right. - - Continue with state D. - If the current value is 1: - - Write the value 1. - - Move one slot to the right. - - Continue with state A. diff --git a/2017/inputs/day_3.txt b/2017/inputs/day_3.txt deleted file mode 100644 index ce15bc4..0000000 --- a/2017/inputs/day_3.txt +++ /dev/null @@ -1 +0,0 @@ -325489 diff --git a/2017/inputs/day_4.txt b/2017/inputs/day_4.txt deleted file mode 100644 index b9f9e0e..0000000 --- a/2017/inputs/day_4.txt +++ /dev/null @@ -1,512 +0,0 @@ -kvvfl kvvfl olud wjqsqa olud frc -slhm rdfm yxb rsobyt rdfm -pib wzfr xyoakcu zoapeze rtdxt rikc jyeps wdyo hawr xyoakcu hawr -ismtq qwoi kzt ktgzoc gnxblp dzfayil ftfx asscba ionxi dzfayil qwoi -dzuhys kfekxe nvdhdtj hzusdy xzhehgc dhtvdnj oxwlvef -gxg qahl aaipx tkmckn hcsuhy jsudcmy kcefhpn kiasaj tkmckn -roan kqnztj edc zpjwb -yzc roc qrygby rsvts nyijgwr xnpqz -jqgj hhgtw tmychia whkm vvxoq tfbzpe ska ldjmvmo -nyeeg omn geyen ngyee rcjt rjuxh -qpq udci tnp fdfk kffd eyzvmg ufppf wfuodj toamfn tkze jzsb -rrcgxyp rbufd tfjmok vpyhej hcnz ftkojm -jnmomfc jnmomfc bkluz izn ovvm flsch bkluz -odisl hzwv hiasrhi hez ihihsra qpbmi ltwjj iknkwxf nbdtq gbo -gjtszl gjtszl fruo fruo -rdapv gaik cqboix sxnizhh uxmpali jdd usqnz advrp dze -flooz flooz qad tcrq yze bnoijff qpqu vup hyagwll -lnazok dze foi tqwjsk hpx qcql euzpj mwfrk -ilb fmviby ivybmf gtx xtg -rpauuu timere gyg wcolt ireetm safi -croe szwmq bbhd lciird vhcci pdax -hnc ykswt qqqmei goe bri wmyai hnc qpgqc pberqf bzs -hsnrb wdvh iezzrq iezzrq rdbmpta iezzrq kemnptg alkjnp wymmz -ngw don ddvyds nlhkoa aaf gptumum ugtpmmu -vmccke qbpag kvf kvf tgrfghb kvf bhpd sglgx -obomgk bkcgo yso ttft vbw ckl wjgk -fli qvw zhin dfpgfjb udsin nihz ovr tiewo -tgmzmph hauzieo jmg tdbtl lvfr qpaayq qapaqy ausioeu jun piygx -jkp guqrnx asdqmxf vmfvtqb tloqgyo ioix gajowri tmek ilc puhipb -uycn zxqm znft ayal znacus kvcyd ekv qqfpnh -fqghur xtbtdd ztjrylr bpuikb ziyk -rvakn uqbl ozitpdh uqbl dsej xehj -laxp haz jyd xnkrb ijldth woy xapl iqgg alpx gnupa ukptmmh -dyiy dyiy ihb qcyxr -wbwkd hdwu zvgkn hdwu wjc sakwhn zxujdo npllzp uyr uyr -fxczpmn cininu akcxs ggslxr riyxe ojisxe -ppbch sampq dnct afikor dnct edsqy pnzyzmc afikor -jnvygtn hijqjxl vsd jnvygtn nqcqv zns odq gkboxrv kolnq wrvd -mroq mroq flsbu flsbu -fyshor xvpaunj qmktlo xoce wkiyfu ukcl srndc ugwylwm ozcwdw mtqcste kpokr -cfh cxjvx cfh cfh uewshh -bpspbap bpspbap fquj mxmn bwls iirhvuk dmpkyt exrn mxmn -tvyvzk ezszod ntxr xtnr och -knfxhy kbnyl knfxhy xhkssx lxru uprh nkxpbx oodolxr tpvyf -nblmysu iwoffs upgof tyagwf aan vovji ajk ywzq oyfi sfulz -aushzkm lcaeki mkuzsah ynxvte rsntd refk pcm -mgguob gobmug dzenpty gmogbu -yvq eepof rgnree nerger fpb stfrln ernger -hrgkbl mzwvswk rsrsbk ieru holco pajvvn ztgsr qkyp fyeg owpcmoj -fowda gmsqdca yugj mcrroxv mqcbojd fjnqfji qdfsc jqs -qnc rvjfz vvxk sjd xrma ucdjvq sbw zydyt dfzww -ocajazv cozaajv tqunkla udwf ecnnmbz lsakqg bki njnda zsdu ccfqw rxpc -qqm qdfya qxyx qmq qfday uqnfttt -rnbirb iapor qet iapor hxkhz dfvzig pedl ybyb -mkgamxg xkniv meb hbzmxjn dhbj zhbxjmn hdjb -ilteux pyutyfx mau lrr bacak -sjjonmn dbbbgs crxyuu jztstgd ezb uiabyaa -tra fle ufzlvf nnaw kec hiwnnlj tei wld iyt syk hjdczb -qmd jtlud dgh dbanock fzp dsjgqru wwvo jwvxwgv xlemfij jcacd -rpkx oxesil snazcgx fly miiyc ikmtmp oefyyn egbw -ypfpeu wldnyd acchppb yqwcaw wldnyd turbz megci nbgxq xkc ypfpeu -iqqv iqqv neui iqqv -ypsxm icqyup zyetrwq nbisrv -viommi toszx dpueq eyy cunjou ffcjc jaeez djefra pxvkj liudlig yye -fhnacbg jghchh ghjhhc iue hwqmo -vbjw lpn cizba ltnsfpz tzoweml irewlc uzckhpd mszal obd -yeos utxkft hflxkfe fxczge qpgigkc ksgr vuumql vhlvv -xzmkv xzmkv krecdi klpem jsbu nwcmik emfzxf cjmpgnj -vtkjo pmiv zou gxo qdiyxsf hwyinjk jhkgf rjq -dyuoc ywiyvch irfgl ywiyvch fxb fxb -tuz onhr syu rqya abkaf bcfx mbknex juwoor zmksl -oheg spjorx ksdy vwtq fxz phvtazk tcze lrxg -hew lbup botaj ltr jpd -dxgc tzinkej gnz hxvvub adsqmc dxgc asgpp rqbdcra goy pmamdua bhiacva -xqv ygb kihxqz vyv pjcny vmyvsdv cgsi nfyx -tqga ssshrw ndq qlbvwh huyd pxbgj qbxk dkkbf jxy chsobw pph -hxl iwph iwph xnr otifm ljhre -zlgvpd kapxpoc dve rklk ogh hgnp rbrmc zzkz hhmcx aklmo -sar gfor nkf hek nkf aql shc aql -dtcrw kfjzcjx qyhi bldson whwdayo mqtgt xhqzp ttqmg -omspdml isze jdl nvwo qrkm wztfg ssfgyh dryj jhp unsmty -jxt cszylng ifht ixtuna azoi xutqlv jtx tjx -usgm azuayp fgkby ezpyq jqwl ezofj -tnhvil nrvg moyrpqs sldx qymoff megflxh pyhqwms xmdw -zomy zcquwnv lzx bvcna yods mjp dgsez -blklyf xokd gpit tiysj yrwfhm tofx -dtig vhdp omuj vhpd -fogwxim qvdwig emdiv jvhl euwbzkg xvxb hwmqo ujdmlp epmykj -sjxll sjxll pedvgb sjxll -drvay gtzhgtx yrt okz nqf -haxfazn pvkovwb pgu tgshw mxcjf pbe nwoymzc mxcjf pbe hydwy jradcr -prjsloa ahylvj okbsj qbdcdjt pmfo pagyoeg vkmhjzt khzmjvt opfm xfrji gyjqyel -lzypt jdbtrad ogr jdbtrad heink -rcoucuq gdxewa rcoucuq whlw zhhm rcoucuq azaqohe mzyli rdvaf -yuag ebcf yuag nsotg qqzuxr jfmao vyucw wmoye -qwvk xemm hgqrr wyxkpp tojndm xlvzypw jus bgnu bgnu nklfwhs -daqi knenmku ccm xkiuy vkexsbc kvvdagx umopitw yaocnx yoakqql mllmsp -mrxgl gywit mfopia ncnsvw vdxek axuiot rsejua nei prndudz mnu -egqn gaa qgen urs mix zbn rhn -ewharq aihy udkdaob kgrdd kgrdd kugbjtj fcef llqb pduxaq wcexmm -dwtiw nelq hppad algxgf gcc upou akm efnb mxmhrud -yxqaa ups okbhgt iet qns tqn rnjqxgp -npmhdm cgds ldexvr typi jyivoqk zkgq vfyxu xgfo -dkwnmr umm dkwnmr okpjw wqx jpztebl eqsib dkwnmr -dxbild wpbup evscivq dxbild dxbild geqp ojfbpl jshvqej -cxdntxs csfocjd pyy tuhws teb boyloz xfw scxh pxhonky -lteucke xrgwy hszgzu hnyrcvb -pfgsgwg dxzh fworek qbstod -usemcrf psczxu gcjtr brls -hjol efxczux bqdn gvrnpey yyoqse gbam ndzyj lbwb bhzn unsezg -bapw xifz blupk qqdk bofvqpp wnbuwyt rnwocu lzwgtt zucag pov -xkre lqvd juf lqvd xio xyg xyg -tzdao ztheib aymcf aorg iyawrch hetcxa iyawrch czdymc ccv -ucgl azlppu jvxqlj pest -dvwlw fuuy mnhmm okrp ualnqlm uyuznba fzyejk yaq crl ctprp -odfq knox mkbcku pxucmuf lpjpol phl -ixongh hfs ruorbd auy qyssl kykwcix aytsm rlj aytsm duq segpqhk -izufsk wedpzh podjkor eamo vqvev ifnz podjkor xrnuqe -twyfps bmdbgtu qye qkwjms -wlav htym vhsnu cocphsj mdsuq vhsnu jflgmrp -opajag itwjhfu purnnvk opajag -hpkopqp vnj aialpt lzrkzfs nwucez nwuezc -mcx hzcjxq zbxr dsx tpknx fva -rlvgm xrejsvn ghawxb efyos xty wdzdgh olahbtn rga efyos vhtm nsr -cni mbab qtgeiow ulttn rckc kmiaju jvbq emyvpew cdlxldn ulttn brhkprx -eykpffp rapik qki fhjgdyu tome ehjuy bibjk htxd vexvag -wrk dpxt gwkuiov gbkif ike gbkif pcd wpj toywyf qzsa aol -yqwzh uujn ujun ujnu -srs ralwxrz yxvvmgp sjhbhk waasid cqtxoxf whcladv jkmaq khjbsh dlavcwh -mdvsjh xaj etvxlsy fxgiy rgjesel rlegesj ptriz ebdyhkp kugxm dxv egljser -lhehwrs mqevb ygmv gri izop qgb ivm -loqqam alojlwg hgen hbyw qlwpun loqqam worgnwk kope -phozre todsknr todsknr ibj mvllsar -wuripy ruwlfbh wukbkey qhq iishw tvtvci xawvxc vxacwx hsiwi ogq -xryq vxwupqa zhqex aquxpwv bnvxrba dtbxki -yvvwh zvsm vqskhp vqskhp ggqqlw bpn wbuv -kqz tdy goqwge ygn jgd -szjjhdk zkpoo nxexz ebicc -wzuemcj oyd qupulju iaakzmt vzkvz -nppahov umm wpzev wxkgfxd owgekp bhhb bbhh dgviiw kdfgxwx wryb -bnc rhes lmbuhhy kwbefga bnc rtxnvz bnc -ani mggxf mcoixh zdd nai hbhzl mes bdpqr -mjn uinoty jjegvze bjgqg yhqsxbt coj obylb hddude xqi rhfbhha alood -cbjzj drmihy tfkrhsd nuhav hihzx bvblqpl tdd szmp gjgfv box -uumhdxd cmwgyf vepr rwqdkj exwk -hwvr ydvw bqefu kghes gvbhp awms iqsqes khgse -mrey jqfw fwvzhps komj dayvs fbui zmtd cofn mrey -dsjds fdpx irjj usndok qcctsvf fgk wvg txwxcl dxs llp zyilwtq -xmkelgk fdukc cye legkxkm wwly -enlny eynln cccku brkz dpof mwfoxcd yftmnqh wpebvyc -ggdn jnysl dsacffw ukj hdae cmzxku -uqhm gcachmn kxndfrl htmfis jfnajz fiqiypr kekho kekho ndcw ckrndub dejfna -keazuq ertql rauwl keazuq obmh rauwl ksrotm -jppp poigqhv repfsje grjk xwkyuh pkx ayzcj hoxzv -yhjw pcuyad icie icie icie hwcsuy wcd yihjh jnrxs -gaug ivvx ceb xujonak hbtfkeb ttciml cctoz -dggyyi dggyyi gqlyumf yasu fwdfa cbb nncn verhq -rhgcw gpcyct kiuhbg kiuhbg gpcyct jlmleo nhumm -wulxxu jyjek hclcp ogob viex wiqcupq -tthu nxgzpid kcnj mss ukapgkp nnc bxjocv qwxs oejwsif aywqtu brahkb -dtde bgvb smu vbbg zhlu -lyo nwjjmep ldbok wgxhto wwuh qfgjknk wnsl -lleyr onha hkwulbm jfg -bybjwd uoxvbh mvj iqfpnxs bybjwd zqtszp wvc lbazjr zkzenja cev -rbuyyr divtslq yuqmyt ajyveb smxsjb nlk tzqhq ims fewg wpjhr gqh -kpewfd beq klilis klisli eeezut -euqh hueq ldoo crqurv lvrwh tmaewp oodl -bqi lzrf jyhvxfh bqi jyhvxfh nbztd lwpdn cuzi -srjylou phavzjd wost uxkaq byh sluryoj -ihrdk bcegkpq nygrs qbcq wyjg dvzme pgzhjl vibg kvv -ijsx iedemek ktlz gtga tbal lbki gtga -vmiaxn kefig kefig vngxz -vrdmfvi qts vlvhq vlvhq dihmq -cfz dyrz zlw qnt vok fwvahg skshbqf hbwozdc ntana jdb uflp -rimbj bxemw sfps krtk umta vnk ewmbx nrlje ymrtqrz mxewb kjxunbt -egnuti ozat eltl ngueti -qtcwoxq rmaf qtcwoxq qtcwoxq -zws gcoa pydruw qsrk lrkybdf ugr wkrxoj nyvf vitwn -tmr hhd dojid zwrj bhsim righ keqlep flzunou -lwoquvy acjowxk tqudk oenvioh nyavyl -rgh dfhgyke iff cpxhuz hui koe iff hui dmukrei -bjiumig lcbmbgh vleipx sfawua rnf -gftfh qwb tfdroe xbno qhgofm vqfoe mux -ljdrr gyfggai iun nju xrucbis mhrcrh fukr obvuqc whlalfe xrucbis nju -nxjmjr egqwg arllu xqaahri lzc ivt uhsti -sqiepba rcmts kvesv nvp -tiksw tiksw rjni gbhvzm ctbq zuqfyvz -ibsnm kfka aoqigwo sqouih rxz -jmymq lxio adtmk umyu sxvzquq bporqnb heol fow -mepa eckq rqviawv dkqoei ifmngpp jiava rtklseu -yuycd jiufjci yuycd uowg yuycd udq izkicbr csxobh -nwu tfsjavb rruoxbn oepcov elxf rruoxbn rruoxbn azglwth jcjm ksqiqpv -dthfwip zqnwa zqnwa zqnwa -gso wruece ufl crgnlxv vllsm dpyfm wpa ctxko -wvpze seodz lpq lpq pmtp wsxs ffppx -yfxquj phvjn rtwieq rtwieq kgxztyu vbjvkc prqqd lyzmdo ojbrt ojbrt qiqjz -esaezr rpggiy jey kbzrhu uthus osr xxaiijd qfxlf auhzbx gkigoqw -yfhcj uvgck cds gjhhrg cmempgj yfhcj cjb -yxi voxvtuw unwg jqqm -igvjr ljz rus sru gbjtjt qfeg ztu zjl -leof ocxns hbkoysh hbkoysh leof -hab lyxmf yhh qeks fwhfxki xmbcak okqjii nfgzyg bhtfgdj lpmjn -mgognh tad herere lvwnzx ixwqs zphmuuc etdjz kczsf -mtej rlolsnn zbl uykek dpkan gmz etxtgj -mihuieo emjgbp jgks mihuieo iexrfw mjdnr bvp mcuzea xkbusvi -jvqpj bwt jvqpj bwt gxr -qpnd fpt tpor bibbpcg hmvguez wqc afl ckviua gpi -dntmcg jglm sxtnu sxtnu sxtnu -fzkbptw cbfwo ozvwov wbv gcdd izqo ovwzov lolewo xikqpw -nkxyxzd kpn datf fki werq mwidqx oiibor zizcjph -xvgyxym zor ijoy lvwsf fjuara idvvq rreit mqyyy ctio tzwqqhj rnpee -maqkfpk maqkfpk xukg sfdmnlg xjopvr xjopvr irf -liujcd vnlkouy dxkwc gto vhjvtw -swhqhj cas aupsd swhqhj cas bvbooii jquck dtdm -igh iqicicf ghi pcxt srcrjx gmf gyscphv -drplj drplj wopgpnk wytag wopgpnk -zexe ilcqoh qiefb txkuv lirfzv -ovvpn ovvpn uqeurqx uwzn hgmucj ovvpn sjxulms -rox silka irhsvym kutus otasof tdneav pcagds -mkja omu tyshbfq onp trxs lxa tftbv bnpl djhnc zdqfs muo -tjj rmmqas cbbkxs qio pikk ykyew gxlxt nhsyl ykyew -frcprg njrz oaxcmhc qben pedm ecvtga nzxwpb ior gaklot dpem -zyt kncau spoe qlchg sqys wkpbng yflju qlchg vkve bzadbpa -qtq pkaicl qtq mfkfqvr dnleiq brrjxsx uoyxh pkaicl yvmlug -firwy imtlp ywl qfa dqrbazz ztzb pcsbwhn zesmlag -ivey ivey mtvc mtvc -lhize acwf moa cdeoazd voktshy qmvqq jvmuvk ljfmq tsanygc -xreiqkc aawrovl pofcsg xreiqkc xreiqkc -cjbzvn ozds iniqu sdoz gqmki bablvll krs vjzcbn -izsod htkeqz entxn qtns prpcwu omfnmoy -kwfb tctzda aztctd tadtcz gyt wunbcub ydiwdin xxk -epnl ijcp giq ltfk zjcabve zfksmz epnl giq xxxbsom -ulyukpa mdjsbn dydko uhkdt qms aaaj hustlwu -zlsbu ohx jcwovf egf zlvpqgx qhejm wrywdmw -uhxqrzr mmu kjxcalj unuohiq rri yzngnb ikvlxry mfiym qbksdx -khqciz som yklmm jceb khqciz jspy jceb -ncwggv njvi nqox krtsn lnm -bgtqme xaxcoq qbtgme obqual vorfk baoqul lgrb -jli tsbb nlxjc pkwzmz dlxrj hmho gzguko ilj iyaasm -wlmw grkumg dynwtyo emxhhqr huluk slpqu uhqcmd absmr ufirmwr -pbs pcammxv dplfr tzvmav nccyy blvyq ffhnz bccutq -hgge ghge vxmvz hqxgjdg zab guo gheg -ylj bucoyoq udndc wpgyrbx ueh udndc gxdsdh hdoz wwgqlg -cjdeh gttyqe kdkm ltzd lfeozse quvjq mnwhokm kdv oojxm nxt -mfkzus knqxt saxkqww njx zumsfk sbmcyad cpt agvbuv -tukn vyco yobvsn bzgnn klrnzy kea thzk pxpwq ryfff nxzm -ylbm lxlz lybm lzxl -wgtxoij zad slgsi cvnxfg iomswwl vmx -hkm yinhnkj kmh kwkw kayknck chur styjif yknakck -rtfwhkq rtfwhkq zsf zsf -sldq zlntr ueegiw kajivqc ozcbm ceft snvugom pdyc elppeed nnqrp prwwf -lhk xjonc muc tudag tsafx mmivb dvrjbp qgrew -hnzer fbgqp aazta aazta lxaz lmgv aazta -victgxu victgxu mlpd ummrnbx cazjgnw isxcyp efy zfa cyusj -gyojxo onzq gyojxo uxufp awi ilhl wefwfxr gcjlt tmliynw uxufp pdcnxah -wjwachn xkuhfbp oky oky ybaeqkr rbuix yreoaw wepmye brvon aasb -kiidorw vxtxiqx wtqvbrv efdth isel qbom vcssyc vxtxiqx wtqvbrv riafzsw mqzsj -eurpjd vkhdamt tmfx czeoot hiz ykz lmixzq tfur jhzr -ipuftpj qbll sqkkdw fwncmiv bri oeeh lehd ioh wag -suima nanngc imrmc krq atxdo woy atxdo akev qlr aezco qlr -cfc efwbzck ozkmcxv moczkvx ccf -bnekky iakrk sask uwgnjp iyi rynev bdnas ldh kass -sicmw vvjbvv cap nsumc xgvrlm wsoo uoqdu psykckm -ugg mtr wnzhmmh tjxc ehwnji lwhu mdsckk yvmk enubrqo -grb oxmxz ohu ytetedv ssx apzlppg fdkamm sxofc jdt ynmu wyejok -umoep rbyqm eqfk twqnog cptbbi dragna ngqs ffb cexxnc rbyqm -utizi ormkel wvwur bdx ecelqbv xiccama aag glfvmj -znb rsuqoa uxo svc -obs lbifa cffi catpd -qkxwian ajlzjz wewduzp bbyv qmt fsr qgiu epinp ghmf -hatg bfgmb aght ghat -kuq inp dun cknbun wmwsu drlmmg kyxc bdl -bddybth swdbf jhi fva qpobio bjwm wjaztp jywi -mgckz vhveu zkemhp zdf xtiqqew mlx wazgd -umbjq pya lvvxf jeavij rhrxvew bwjqgpr piz -xaycpwo vjcuc qksc yuixhni sfbfb dydyaq gdfvb tggg xidphvf bpjdrl goskxym -agxfoip gguif wvo agxfoip ntkbaw fbyggy ooft zxih -nzvsu ffwq uxvfbl qrql olhmhom qhdltg ymwz krtndtx olhmhom nfsv krtndtx -qdp jqk ustz xjripzv mnk grnodk pjwdsj uug zqxjqj -mufrcox zunisfs ocvcge acamm xua vor bsde kxr vor kxr orccxx -ncycbp anvcxay bmm wndmeaw oso knmk mmb wamenwd kmkv ppdd -motdcn xzagzwu vuzt utffrn yuqxzrh uvzt ujttq -tauoqy coiy ybesz tauoqy wpmr trquyne ahxbj jzhems dsdy -aczq ypw pgmzz srfn quatjgf -cih ypapk bfxvr euvhkk gugru auhqui -vyf pssgfvy dnhvbfl xpacme dnhvbfl mzdv iynq hcqu -lbzvbu hhxiq hdfyiiz iyzihfd xhqih uzdqyxr -iapbdll vdr cprmrkk vdr dfjqse mlry flpqk vdr -grrfkq xcpxd grrfkq dxc bjpr prvwh swoc swoc -bopo chvwuhf qhd ieesl xey ieesl fnjcbe -kic fyq hsucnu agwyl pzzmd hqksh psw -mxf uau iti lcoz lpg zbu ocre wqlocmh mxf nidqj lcoz -bypmix ptzxgmf xmtzgpf hrvzzq -lbfw zwusma lbfw tuyyy -lrf uej unswvh obgsb npbl zajr kenea uej qnyjcu wzufim qpzkgya -qcrxj llyu kligt hlm ehwtbx dda lgsvhdt xewfcv uikn -nfzjx izqdbq mfbxs imiuc yqxb xlmvix izqdbq eflqfq wku omgtuu izqdbq -lasdwg hiy btzt eefd eyoep icn nnmhg otml rek luixac nyzgn -vekteds utsuxdx utsuxdx vekteds -feyov qrij zbebwg ijrq seplram wttkwm zewbgb kzuhuh -dmkgtv wohgqo ddtqmv zatahx mym hqowog tkmvdg -vhha wjrmuyx kqh vyyrj xzchbi ejsdq orlxg vyyrj dlrc -yetngqn zdtuqox hkarjei fqpsgh eaqwbg zsssog ghb gddqqzr hbg -obldb zsrhz zxp uxphnev mwnbc pfjft fms xwslk vjm fxy -nfij dbfykv ttq gyjgac igxuyqi gtiioqx ilhdex dbfykv uyp bdiwya gqf -pffzruz vogfosh dcs wje -pohhf fhpoh oon yyz -xxuam afwm qxl lnt syyr bwxhhf sozauq shlhfmz kwnn milav ochq -wefcqrt gejw cwerqtf fttf gjew -jfsvnmr osca epwtle pgfif sxom -exlfzmq nakp rgdnx rrcvth vhrrct aajjdrt ryyg dsozd jdqlqj pakn iruv -rmcvo txszcs xxhyxz hbsozk wshkocf rmcvo rcbnt -kitz yjgney yvkymef nauj hmllsgl kyhm kqr pzsu rcf pzsu qpte -cdinpx bfur mkj naz ihkheyr nohhoe -ylris xeqcgup wap bbfih tgfoj -ina gnlnm zyeqhij cudfuf ipufae bvkdzni aat teqsg cudfuf bjokrbl teqsg -aedx edax dnfwq qndwf -rdngdy jde wvgkhto bdvngf mdup eskuvg ezli opibo mppoc mdup zrasc -qcnc iaw grjfsxe gnf gnf -zbjm snznt zelswrk gkhlnx dqxqn qqxnd dmro -zisecvx ztezof uzbq otnrtj qsjzkwm ewvcp rlir bfghlq tgapdr qxmr -ipnqj opjf vabyoe wkwnd -wyf mfqxnrf apm snarf jqu aaghx pwecbv lvghayg -acncv jmmbwlg oiphlm ifuo cvt -pvmb egansnd zmh gcuzzci rrxpslv ubith -uoleptg xbouzn xbmg cfh cpn wpqi xbouzn xtxis sxzpns -rilybri kurbpq vfmjpck tjyogho hfyxad svfofx lfbbhxj khaerfs iqr -seaebgz wlmtkre qguv qguv wlmtkre -sgo edkxya zdqgwtt gxu nibuu rairqoq mzxli dci qsv -tsol mdhzqr rmaqnru ggvcq arbwkn hlkcnj ljkcuof -mmliphp ocup puoc eijjv -gmajqpb ijki ijki kvz -pmqss unhlpcj dlkll nuhlcjp expe tlurzmv nsy vlumtzr tgseozl -gkvaoni hsba hsba viuedv phyoclp fdq phyoclp febld nqfs -rxvdtw abn pntv qrqfzz slsvv abn lrxix mnu npot -ghlfjp woy xwkbmv bkahpkj jve cncvk jvdype fwgvoju yrkwjp gwfvln mvkv -kmluh mie bby fwer chsinb ojglqr nqk mie -yzmiu igkgca ybnsqja jpfejtp yjddy xsosxfi ingx qwuhb emrkwpx idqjmmm -btrllw mphm dkvo ewdl dchcul yah btrllw kmqi mtvgk wtb -hxsgard yuikc lykt tdee adprp gpougod klnzk mzsmlb -hdn znblw ifoblur bwzln dbv -smofpbs vjuyiro llk lfzesga tybu tybu -gffnpug xaup iqiyz fjkpnkz drrk fwyxw lwzfskz gslwpmv vjxylva tbkyo nib -evydmb nhwuiiu fkerq nkgbuyy uclrs ydjgglh xhotwbm riirgzt -bsub eavbt uvd dpzwyt rhn khrbptt xszckc djnfxju axofhat powmso nvdffrv -xtuykl fjz mbikc xpnx hmey fjz fjz -rkls nwdcsyx rkls rkls -tygml untequ ybdfumz nqffbq uipc sove hfnqj -ytecew vven koqn royynd qsn ksl qsn sdw -hknlw qwho whoq oqwh -lzmmtqu qvhyeo cnofuj utpwkjz gnirz yhhu aodbnd -zsr axw kwtzcv tydzo kwtzcv lkxsm -rbjtqe nihifd gvdxd bpxzy rxteky vgcgllv vbbua anygiup rqo -dpd wblfwp wblfwp wblfwp ygahc tqjbaq -gsw gsw pacgj xmrcz zmxhmch xmrcz -pdq rhe xqmq lgpkhg fyffrot ovnqh wle -tbjavke ypzzrj jizx gdxoh icjsat otfh fmygumv -snch nxlgjgp jeyn sxoqfj jtage jtage iuice -rtb coefuj grwg grwg rtb krhqnma vfhgbr -vhegtl btorwxg szcev kbvkx itsk nlzpbed -hiukrf ilzkm yllhh xsgwkdp zyy kjbv -rfcg tdorci zcj wzftlv rfcg rfcg -lgbc lzizat vsno pau nvv vsno bbr lzizat qhtb gwp -sfwnio tcugjk bsfsz ykyfwg ibkap fsrvy mygk kzunawx zyhyh -mpavlh qps bylh lttjkz rqabgk vewb bwev tlzkjt gzrbxga ktmso prpkj -gpf ims ynh ffrs vpa iemp gofh cgbauje -secys qks mcnfhwh drog kqs pajy zoltkw lfihnb myb ioxptu -ytq nrta ouk ajqblf yuwwcd zdy blyoxbw dakk nvgi bzrhzaa -nkoych sufiia xkdvw crtldee zycl qblab egqhr qblab -nllno muxaf vds qjnitmw zkpj wskyhft kmqct xamuzpw qcai cdjtbt kaxv -qzdytpe osr fuw osr qzdytpe whperd rydwdcl knoa -zkdznhd peh duoygr zamrgl irnvj otpe pltpq jdkecg -byzgw rece iigdug ehif tpgje -ccnn foqdran gbctca tefdjxh ntcr rjciii xip xlss crl wvvhzqm twyohf -dqyii milqqc qjgkojp qjgkojp ryde -tdkyj tbrcud tsba vqtmb cjwxnf -hqhmq wemvrce nagig pwnw nagig epg nagig vlsi -tqgvw luoplw hccti npjm rytdruq cylrsun rytdruq vjsbjl rytdruq ppti -itgt tuwc itgt rvp itgt tigns eipl ksmru -pdw wdhtkn nbdbpn wff zhuuipg rvemv qxr -qgkwdq cjilayh ymeks mrpuzai dwgs stfstgz ucvqhb yout oiq -vpxik ypfr qytimvu qms oxbmw ppyfx -fwwidn gdhd pyuexk snsz iwndfw -lfcb sllxjna lfcb hpzahfg mmvgaa svny jhuzd -unyg gicmzd fwc spkciy toyq wjupckd vzzx iuqgka ytqycb pxsufj -goj tnrcml eyizngj txa xrkiw zvu igduz -wek xrrlkna clyof rrlnxak -cjm rmyuku vjom gtf -buk cfae awstd dywgqp hxo wcxvf laihqw xdqfes wdbh qceh uzlwj -sudguo dxwplto rlebdh bkamu dxwplto -crwkyxm yuz kjtdhom crwkyxm -trhc sduorxr aizfryh rsudxor gbyc -pczkyl bptp qnn nxmpwsx udrg hhlb rubtrmx twzodlp xygnht -jmqct cden yfajtkz fevcw sxonbxz sxonbxz qkzkm hhngr fbv -sdsnm mwvicr wypfi cty ndbowr woiz mrauwzd qlno mwvicr -vteyo fng lvr lxytn txpj milg -wjx ahtmgo cgwcaj kaxae fhlvlqf -ezj eetqhzu upwda iiefwlk vyvby -imalvy yeghqe jwcu mvrod cwju -bxnmsa yhfu npsdar tsbri hfuy sirbt oofxmy -fkndt elbjtn vepqtxt elvpf fpelv bzkgag qttexpv prblwb -rmq iqs yvprnyy iezqrzm wlqsrr -yviovq lekxghj oey qwhzj lxknxw qiyovv ksnt jptz -tyrg cifxt hugqf tyrg ffuiv jmax qyw fozfosq ffuiv -nmg rsl jpzazd qbtlf yxqtsj czwmdfd bamge lbjdof uqy jssc -cbx boozjip pwgvzlq rjz kxy kxy hszacok fvsq jhnir cnsba gafz -sbcuxb wfur nnnfqjj fdwg huhe sbcuxb -icwk qelbxs uevp qped zsnhh wpuok wddxsln ftnzupr ruxol cgxjb jbhh -izcp htykj xxmndoq amnspe htykj -vverol oixwlny vqd tvfzu henc gnyrwr -ytxio etytsx choynep zqapo hfjit -lkvgr oyzfa taiqr jok djatvy ckif tmdw oyzfa zroy -jlgpyp kkqysg oqjki hjohoug hbhta muilz zft -sumfyu wftcu bwwdcy lezimwa qwvxv zwh mqyv bmfot aii torcol rnt -tpdj xrw ccsbnh fhptv fwkxjfm dmqaokd bjci -zxi vmf vmf dpyg -sfzxysw lcms bkojtv bkojtv -opywo qll ipkitr mtwp tudrr svhyp huz bxsdpn xomfy -gkod luo qrosbp orbd rpsjzyd rlh gdok tze -nusiuq nusiuq zeys ahufexc -veno jntg avtmtdn qojxru zegdcql odfcetz pgehau -uqun vigjm ykac ozlelj danmji bibugox -rpuozh ajwru rbvuevv uhzsq -iawoe tyb aewio ymf byt inijv ctu fcys micsgzl pbby alt -gktyxp ris mqpfm bkqsfl nrg idbbcxg jhcf -qibt invvv qibt luitx rnm eby hrfbmwl wnap sgkzvb qlwc hrfbmwl -jwkv qecsjbw lycgldd wjvk tjcp dycldgl pzrvr zrlcf kji -nzsrmiq nmhse ilivrk kqv -besmyzi imkgpt iekbjax abxeijk uvzs wwv -jdocl uki ltswp tjkljc ymce iuepze qygqxzs tei lkry -hhyfy gvzd mqksxlq czn afe mesnag eep frwgekg mqksxlq phpy -ehg connnza ekt ddgokw -mpbsoms uzhzl xevww ztt uzhzl -lftybr firc awsud dsxdkk ltf ipjv dtx lcymth -vkcpb gxtxq yioeq fexj xxgqt -srvca fslnnvf nfmkpvt egw wemumq jie vznf dzsjw cukf kcvyir -yxjkl lyjkx jyxlk kgc xtz -tpoe xzov csp leleoqo noyre tdhf cyib sjgtdx raehdw nmcxp -qvt uhznqe bpvos vtq ddlebtd tqv -xlw utsxs gpia rvlvnts elkxr dddihy tnrslvv ibf wlx bxg -cwqnnrt rkkqyf dye yde fzl pthanj -boc rqjenpp xjqte jteqx pvoofc pidqe ruoucy gvnro ognrv -qhalb gnazwc fhl iuti -clnbjfo nnfs nnfs heymvr oarew oarew nxu -lwtrotg hiaxwj ymzbly nvhzjhj zlsaheg nvhzjhj ymzbly -rrvi tsjp tsjp tsjp killji -rpx hiclj cmwq ibhj nfd -pvwymn iebkd xmpw vuhhkap ksw zigzy mzzyyxy rmuh iwwhea cglfq -rlwelgy sffml jin qsdzro xlsty mgqzuu etxjuo emzd jgnoyq tkjuy vfvb -tkctdj hhkuc viskmy obw -zvjkuj akeky ikj jqd hfhzbwe bkc -btev nrdo hcyiuph stf qharfg vpmel mpfz nvs ytgbbc -ieepn ndueuw svmdr tcvumw mceyrn mrjwhyl tbdj mgrgvz -uxrs ckyi xpmqm czzrkl cjp -nlliwd wrqkrkz yjmng nlliwd zirde hcjjn wco ysf mgl -dxti lcahe ommare izlwf ramsfb nzgfvo ijvm fwymrdu bndq -isxy jpvuzu tdduyhw dixp cfa fkzbteg ytoi kepk ysf yqcpi -qmeprfj soqo ncgeor cqsuuj grzy wogxy vyblnbg slvtry vdols kka -ltykfp gtzl olrp gxend vapee deq -emywfbn dbfiut rkt wvwe dbfiut bwffhea yuzcxv gogpicp wvwe -vqvmrp ofbk dlfabd jwllzxk obx vqpwjj umvng tqwis fstxy fstxy -miha zgvyux rmraszo xwf -kjaagk btm kjaagk wkewjrg kjaagk -lbmli aizs omrdr gzktnx asiz ptanzpa xlo ljre ckyb wob -svz dlk rijagg avxmg fkzwhk uro gegm -dzplum temdw jqnm tvxcww bmg tftttpp deuw comxey xfimzjx caluczi nqn -uwvhxa ztkd nlsdyt vihl julkwwv uzch dwakhs -wkhuihh ycrc cxff vzcfhpp uegfd gaok kcnvz lhzogq lwa tyrypvu -idp zmrrzp zmrrzp nktp xsnx rjsxn -eybrnib ivgntl vaxsbpi eybrnib -nzvnq xvbfa pbhwwh ylju runvsj imlx vztesn -nfdohd nfdohd gtevnky pivjyct ihvd fzcsrq lko fmqk -kwpkks ecikxu bcxswlt qvrxm sbcqmh -kdjrmj piuh kdjrmj vnaf gyedkg vptxgm xezssxx zsg qjzpo zsg -oqo sley aqx qmpqb fgmylbj egd zivj kepxizv kuakyn lunbnd -hmcf hmcf xlhgc hmcf cdlm buofnx -onjcj yluonz kzmk phqo phqo phqo -ohaafy efl bnkkjww wwjnyoj dxeaig ywnjjwo slk hrbebw ohlyju elf -msohiqz aunk njki bfktdgi htmyrj mgx -numlzrl rmnlulz glb ltt fhbajz gqxpu -gko hco oai ryq xwy sdqosft spjkiu cxfhg ycwpglh noy rah -btzpjem brpk vqr atxu rhlh rqv jmg fvyus -phmxxgj ejx xje qtk hsb kqt npwj gqt -hujyjp nwmsd ant zipuya lrkahww uwqal vzlo qmbo twkjkse ufivi -zfbnyz fwvh xrnrw usn zin daq iwjzj -yykyg iwypfy hehqnl cjvk cevdrec -gui muuto wsta glqmx gfo rdmbv mxwz gffzt eejpw gion -lpng nduid iqbpu nduid knrqd -xwxn oefpckv gjaua ugaaj gjuaa -qxk aeql trqdmqc crzlinj crzlinj trqdmqc rijcne ewyf -rfv qmbe fvr bmeq -upqyfw lowzq wpen upqyfw gfskbil sljuzh wpen -bdcara qyhx rtaez qyq gbyr -evzls qxtxq clzd svbgqi zxlzgss vtrre fko eebo qjyl -zaapeo kpwhz tygknau nyd pch trp xqe -ypzcafg rnqmbh qtteg sncu ssojhhm zonfym thir xmgheb wqj gpjg ssojhhm -wvcwyn xrf muozyya lasdp xpjgu kpqv zkiihiv ifje cbdlavg xbied hfnaa -qqqb rettz rycukl ihpkhh -dnxzxqv znb znb fbxj azxtezb xvxa -peqkd xlzqkov esgnw ucku hrwpfxd xtd vnig vlmfp ajte qswr kqoj -dpwy oavzkk dwyp ehij upqxgii pydw -amfc hfv xmqa nqvn cal rqmcq oej amqx cla ntxj -hqhhe qkbhwli wmhlcq xaczs peywuo -vcr xfv xfv kymo qpszwzo xfv -nmrbur tswo xbo ljlrzo bmhpgc pev zovkznz lok wbbhtkk -tojj lxqgr rhjavrm ndsdup gdbjwaq cqpnl wfaxivl rfry ryfr udspnd -beffod sknlph amb feobdf -mldgn jxovw yuawcvz kzgzwht rxqhzev fsdnvu vluuo eycoh cugf qjugo -tlnd qcxj ker fdir cgkpo nrqhyq raef uqadf iahy rxx -mhvisju lhmdbs tcxied xeidtc ujry cditex gvqpqm -cgc jazrp crgnna uvuokl uvuokl uoiwl sknmc sknmc -rvbu czwpdit vmlihg spz lfaxxev zslfuto oog dvoksub diff --git a/2017/inputs/day_5.txt b/2017/inputs/day_5.txt deleted file mode 100644 index 3b5dd14..0000000 --- a/2017/inputs/day_5.txt +++ /dev/null @@ -1,1070 +0,0 @@ -2 -2 --1 -1 --1 -1 -1 --5 --5 --1 -0 --8 --2 --11 --4 --5 --10 --4 --9 --9 -1 -1 --11 --8 --19 --14 --6 --2 --1 --11 --23 --8 --7 --9 --26 --1 --8 --11 --34 -0 --22 --17 --41 --12 --43 --33 --15 -0 -2 --41 --41 --26 --48 --52 --47 --30 --38 --20 --4 --21 --17 --19 --55 --32 --12 --55 -1 --34 --8 --15 --59 --56 --16 --23 --43 --5 --41 --56 --32 --67 --14 -0 --28 --32 --7 --54 --19 --9 --24 --63 --2 --60 --5 --78 --11 --84 --50 --36 --72 --14 --30 --4 --62 --6 --1 --69 --17 --33 --32 --45 --71 --87 --71 --60 --19 --80 --11 --106 --45 --27 --23 --51 --77 --67 --103 --17 --98 --109 --91 --125 --68 --39 --34 --96 --49 --64 --38 --105 --31 --100 --89 --108 --69 --36 --94 --38 --124 --123 --79 --92 --42 --14 --87 --68 --17 --36 --21 --54 --98 --79 --142 --25 --60 --112 --99 --64 --15 --78 --37 --64 --15 --129 --32 --102 --74 --112 -1 --146 --151 --147 --153 --4 --181 --22 --176 --4 --57 --151 --86 --121 --38 --137 --160 --156 --72 --73 --149 --64 --182 --117 --146 --180 --195 --27 --194 --191 --108 --153 --40 --149 --100 --120 --207 --83 --94 --73 --200 --95 --155 --94 --76 --9 --149 --70 --125 --49 --146 --223 --68 --139 --26 --132 --142 --165 --2 --45 --154 --129 --130 --185 --60 --34 --173 --91 --37 --40 --153 --189 --236 --95 --128 --46 --14 --53 --245 --67 --9 --208 --244 --198 --74 --62 --104 --51 --251 --48 --50 --115 --76 --79 --32 --82 --65 --185 --124 --32 --189 --124 --174 -1 --273 --223 --275 --238 --200 --184 --229 --195 --152 --63 --150 --73 --44 --54 --187 --49 --250 --192 --290 --282 --266 --214 --117 --199 --83 --104 --251 --176 --262 --296 --39 --259 --87 --132 --166 --67 --194 -1 --294 --8 --3 --264 --217 --228 --233 --241 --294 --210 --72 --307 --259 --33 --101 --103 --235 --100 --110 --253 --292 --134 --269 --52 --265 --15 --29 --272 --126 --210 --151 --308 --40 --40 --112 --268 --185 --346 --237 --287 --34 --302 --41 --25 --191 --29 --170 --95 --315 --278 --160 --220 --99 --126 --224 --33 --350 --76 --138 --340 --284 --268 --128 --238 --197 --93 --110 --120 --190 --140 --64 --217 --296 --103 --363 --199 --254 --233 --190 --282 --136 --174 --309 --61 --206 --18 --105 --111 --163 --287 --188 --145 --294 --251 --398 --265 --273 --50 --250 --376 --5 --357 --6 --8 --198 --20 --82 --158 --122 --196 --97 --183 --48 --428 --36 --88 --424 --35 --380 --109 --209 --323 --394 --102 --276 --153 --229 --320 --391 --7 --328 --127 --430 --102 --372 --447 --222 --401 --184 --183 --49 --239 --413 --101 --187 --289 --12 --418 --248 --279 --318 --134 --443 --272 --456 --143 --3 --209 --276 --414 --189 --302 --238 --241 --106 --332 --375 --400 --476 --9 --95 --412 --52 --127 --442 --278 --25 --446 --411 --39 --55 --80 --234 --361 --223 --384 --283 --47 --164 --18 --38 --87 --393 --93 --380 --493 --73 --150 --241 --378 --211 --516 --349 --520 --38 --397 --406 --16 --461 --276 --448 --316 --376 --156 --369 --216 --431 --309 --400 --135 --523 --40 --508 --87 --25 --151 --355 --141 --3 --495 --153 --438 --343 --161 --66 --455 --70 --248 --278 --548 --300 --337 --290 --551 --200 --68 --540 --476 --395 --245 --318 --424 --112 --556 --541 --94 --148 --542 --100 --120 --199 --569 --471 --298 --16 --453 --469 --50 --500 --84 --435 --579 --287 --522 --77 --83 --347 --437 --171 --231 --139 --350 --357 --221 --214 --224 --148 --125 --385 --255 --38 --320 --254 --517 --532 --80 --286 --58 --97 --390 --309 --548 --319 --323 --238 --297 --12 --312 --517 --434 --466 --103 --621 --448 --503 --72 --601 --287 --61 --577 --87 --143 --33 --482 --275 --529 --340 --279 --130 --512 --63 --109 --528 --22 --549 --317 --375 --377 --385 --23 --191 --138 --509 --40 --565 --559 --14 --547 --28 --159 --153 --585 --508 --582 --431 --580 --637 --561 --513 --243 --420 --298 --485 --132 --613 --157 --521 --596 --61 --420 --498 --577 --563 --354 --662 --264 --273 --111 --597 --466 --389 --345 --306 --102 --57 --596 --1 --45 --12 --619 --47 --43 -0 --323 --9 --319 --529 --402 --238 --191 --487 --315 --65 --386 --110 --605 --363 --461 --6 --95 --95 -2 --596 --454 --618 --83 --481 --283 --386 --247 --417 --707 --564 --603 --17 --712 --140 --336 --567 --443 --36 --476 --251 --735 --589 --198 --197 --476 --49 --736 --422 --383 --569 --732 --1 --104 --261 --352 --453 --273 --344 --66 --307 --698 --158 --238 --280 --207 --624 --491 --765 --506 --146 --616 --711 --650 --655 --393 --19 --315 --311 --572 --675 --533 --156 --373 --744 --142 --582 --491 --796 --777 --125 --483 --426 --510 --560 --700 --778 --407 --440 --409 --238 --738 --477 --147 --152 --317 --110 --323 --788 --601 --202 --517 --487 --726 --300 --1 --554 --448 --15 --191 --531 --568 --466 --527 --132 --254 --290 --8 --400 --655 --788 --376 --249 --662 --315 --378 --41 --793 --163 --29 --327 --839 --133 --124 --129 --673 --32 --605 --393 --664 --374 --135 --366 --717 --93 --601 --763 --788 --494 --802 --282 --443 --491 --461 --197 --83 --96 --162 --97 --161 --232 --144 --472 --118 --429 --387 --724 --789 --636 --298 --484 --720 --526 --382 --102 --449 --846 --525 --547 --696 --524 --272 --843 --286 --247 --838 --447 --489 --797 --483 --386 --775 --340 --772 --158 --293 --256 --432 --812 --273 --93 --487 --264 --594 --330 --712 --798 --131 --591 --539 --677 --455 --470 --108 --573 --57 --845 --383 --273 --890 --747 --913 --648 --625 --650 --544 --137 --490 --434 --734 --182 --355 --859 --835 --141 --536 --874 --102 --940 --359 --83 --800 --894 --712 --470 --687 --578 --435 --935 --400 --780 --814 --458 --892 --481 --371 --761 --348 --388 --891 --764 --297 --536 --695 --314 --336 --978 --379 --462 --597 --533 --561 --9 --474 --292 --560 --420 --828 --721 --769 --874 --157 --495 --771 --899 --571 --98 --282 --233 --203 --982 --416 --142 --993 --540 --979 --851 --506 --238 --292 --184 --695 --195 --632 --575 --962 --76 --546 --705 --13 --271 --222 --124 --380 -2 --1003 --251 --525 --228 --644 --159 --624 --477 --912 --712 --343 --263 --88 --745 --85 --374 --675 --804 --610 --854 --511 --612 --964 --731 --358 --495 --946 --466 --364 --1053 --57 --101 --829 --155 --600 diff --git a/2017/inputs/day_6.txt b/2017/inputs/day_6.txt deleted file mode 100644 index b16e11b..0000000 --- a/2017/inputs/day_6.txt +++ /dev/null @@ -1 +0,0 @@ -4 10 4 1 8 4 9 14 5 1 14 15 0 15 3 5 diff --git a/2017/inputs/day_7.txt b/2017/inputs/day_7.txt deleted file mode 100644 index faa4be1..0000000 --- a/2017/inputs/day_7.txt +++ /dev/null @@ -1,1091 +0,0 @@ -yjmbbu (75) -zdhvqrl (40) -> fpbsu, fwpfjjd, viqhfi -dywqvqh (9) -gewgn (31) -xfekjt (67) -zezowe (31) -wgqkdcr (79) -ljhwzvv (258) -vustse (1584) -> ffnabs, qinmi, qhafxnl -idfwjgx (112) -> buoakk, itwbpot -lxesg (71) -qkbnq (99) -jppgd (27) -ztghd (125) -> bcibchp, aaheijb -qcrpdy (29) -fwidkbp (152) -> mnkwo, ehjooz, jvccsp, cyrrjtx, imynb, chnkkj, agywjrs -nymhem (52) -cazid (93) -olspit (121) -> bqtas, fhuiyrl -ayteb (92) -hjucki (58) -wrqtk (305) -jfjemon (217) -> bjhickt, uacjhqx -mcmqliy (925) -> coopirx, ekohgo, ioywk -rsancy (70) -> aeuub, vchuc, heacb -zjwpbzs (23) -> jysaup, pgubexv, lckuoqf, eeguu -qflouyn (90) -nswximo (65478) -> ibjvonk, sdhtguj, dxyifeb -rymkqd (102) -> vgqeyx, zezowe -wlujpl (92) -> sjwhig, wymfopy, ylfsnz -imcczga (95) -xehdglb (52) -twubx (46) -> goimlra, vlimzz, xaoncma, gfzbp, spdhhoe, fhmauag, cyapi -yjhes (72) -ymcuygn (81) -yatbsip (19) -> bkdtinl, nzqcq, tkmed, ysbrui -yipoeia (58) -chophr (27) -tdwtlf (305) -> epuaii, idfwjgx, nwikpdm -emzrj (119) -> aimav, dtscjna -vbxmpc (7) -nrpxx (21) -wgexpa (103) -> paxzd, vgdwm -vnrmx (359) -> knzppj, gkkgkp, ttwfig, vcixs -knltna (677) -> zbhtee, ztzwh -ojvlwm (52) -bgflw (27) -lsdrwz (73) -hswzo (40) -spwgm (351) -> mizab, cyzkk -jlnyr (16) -nwikpdm (36) -> ihwaeuw, wwkeej -qbmtmcs (34) -djirpp (19) -pkfhp (59) -qfypnb (76) -jzequar (272) -> mtcrswx, wkcyd -tttle (71) -> xlskkfi, ayteb -zbhtee (48) -iriun (9) -dwezv (73) -tojyt (58) -> dwezv, nbngkou, wnjtb, rarkunn -bsorz (27) -qvkotfd (337) -azxjd (268) -> exeub, lryzkx, nqvxs -wpxxh (998) -> wrqtk, yosnw, vyxfljc -gwournc (85) -aghdlll (88) -lejgcu (19) -lxlbt (363) -> oiosol, mpchqe, bsorz, jbpjt -nbeagw (94) -vbbgeo (19) -lqfyzo (21) -> tggkm, zdbqs -vqclii (331) -> dmkbnot, omdpc -lhmnd (216) -> onnylx, khaupo -wwkeej (60) -laczal (99) -xrbjn (20) -qvteg (64) -ogbsm (92) -> xpzhy, mhsjkm -ymckwqo (41) -ghsjtj (271) -> hhmwlo, faixe -sjrxs (259) -> mnijdlk, hygfoe -hdvel (197) -> upuxd, dtstgj -lckuoqf (78) -yppydul (91) -frirj (6) -duftj (42) -dnmvzeg (64) -cpazlc (19) -krxyaak (198) -> maqgick, xbnmvd -oyczfgb (395) -> rxcnn, ktpte, qybmgto -oxiuaz (12) -wfphcf (6) -ihtnbb (87) -omsroa (45) -lybkeg (6022) -> oyczfgb, jzequar, yrcgsnx, ujulj -agywjrs (184) -> anpnrdt, hgdbaol, hcjmsd, kzbvrxk -tiujei (34) -lwencl (28) -> ieusgd, mthhq, fsuzqyz, miwoup, isrtfc -wekya (34) -bkdtinl (1167) -> ojsjuts, euoclfs, xbkeua, mykrcq, jjsvfy, aazxafl -qinmi (1896) -> qshbt, ruozmjk -yfmxvay (46) -kgpwo (52) -fgjjwep (14) -odvtiti (76) -ienye (19) -tcvabyz (99) -ycclns (7) -njogewi (30) -bfchbs (87) -> jykbb, qnbfk -dlbzng (99) -xnmvtem (51) -ccciux (94) -xwlmsqy (25) -wekkbw (17) -yipzce (21) -hcjmsd (10) -upvhfmn (68) -> fvlfq, ivmndi, ussmw, ccciux -hacwv (50) -redqvw (269) -dtpexjq (52) -kmlwj (84) -mluykm (19) -ucbbun (114) -> hrqzqqh, ccuarv -kymhbse (155) -> tznudmk, hnlgkv -xomnhw (185) -nsmoh (65) -> ceuygh, acpfsnb, vgubuy, apkwi, yoeau, pdosfg, lfpzff -zvepqr (51) -wnotwt (99) -lcrwbqi (27) -hdlqvlg (27) -iphgmyt (160) -> woolxv, ewyzqg -ujulj (50) -> cazid, npmwcx, yeooycn, dmeee -zjaklmn (52) -bjrpalu (53) -> rhodopg, tcospq, cvrcvgp -azdei (48) -snzfrer (149) -> bhsbd, tgdzl -zsxizw (18) -fwpfjjd (89) -fndxl (36) -uzrnud (14) -igyxt (41) -vxdkej (135) -> diomq, qokscr -gjuekv (5) -uzufet (143) -> fgjjwep, uzrnud -vzuqbye (87) -> eviqjr, cgxsmq, egmfbdq -zirocl (29) -jonshpm (99) -zmlth (154) -> zhxhkgf, cokzlht -bujroda (51) -bdvtvcu (74) -> tvcod, ouamzwh -jdrdxu (36) -troyu (29) -nrczsn (86) -aihow (92) -gaihmf (84) -ehjooz (124) -> hgwsl, mefxonk -omydd (6) -raevpsw (64) -aylmbfh (188) -> ddspu, thdwfw, kxnkbs, rziezq, jfjemon -diomq (65) -jjyjrtr (87) -> fjduphn, yjvgwdl -zsiziaa (38) -lyptirp (8) -lctdjj (56) -pbtks (85) -jxhrar (227) -> barnhza, iqovqp -neqfzm (13) -dhwauy (48) -qvjqfi (80) -ivstcsm (72) -aabrjf (72) -jvccsp (86) -> gukuqw, hpmbkwb -ddspu (113) -> yjmbbu, dzbrgb -zgevpxx (48) -qrrey (588) -> bhvmgw, wgexpa, xiotwdk -ncodn (62) -rbcqgqv (75) -> imcczga, xzurwza -fpxtub (11) -ldfopw (30) -ewyzqg (49) -iuhlc (6) -oqphsw (2722) -> iueejt, ekdqf, btbxk, jdshuob -eysrnaa (71) -ojsjuts (176) -> njxyw, dzasw, rpzaqc -ozyexx (83) -nnldikq (316) -> upwlxnb, vbxmpc, dgwcz -tfmtk (69) -hwctdr (76) -rothisa (66) -qnbfk (91) -qcgxvx (99) -igyiie (237) -> knirl, trbzi, auxvur, rvhxik -cverrt (52) -orrutjs (93) -ffloi (25) -> kflize, icgwppo -phrxnli (21) -eopxpo (41) -vlfouc (62) -fdnom (87) -wuxhvnx (86) -> ikfpktb, zcvipz -flefy (38) -yoeau (206) -> rfwgtb, drmyco -ozatmpe (34) -ydbri (66) -tufds (42) -pprhx (57) -> xitzb, zqyua, dtpexjq, zyradhz -zhxhkgf (29) -qwzmv (52) -paxzd (53) -cyzkk (60) -gyjxkl (37) -pzpjw (54) -svayf (89) -xxxqpkx (7) -imihjj (69) -> yygqky, qlkslp -tkpvf (47) -tljdqy (81) -> sxllorg, yatfpqx, zbznuyf, kymhbse, rfmeug, tetmzw -iphzyj (260) -> omsroa, mxupea -xiotwdk (177) -> jlnyr, nsqqw -eyyzy (274) -> opuaau, qolnvo, jxhrar -baewpe (55) -> svkdyq, hitoud, zvnxfa, emfctr, facrq, vykqcnj, bckuyxm -barnhza (20) -oafnfo (51) -pjcttzo (50) -aooni (205) -> xrvbzya, gvjrx -scchi (48) -zcgrnt (73) -pmsdv (93) -> pyypotx, marzlxh, zvepqr -kngbqid (89) -iwhqlr (949) -> ztkgsyt, ffloi, hzgig -vyxfljc (92) -> pyrlph, wdsiq, eysrnaa -hddzn (69) -cxvqvjz (136) -> kfrti, nslettz -tcospq (96) -> aabrjf, dllgpye -mnmwzz (142) -xfblj (40) -vfwegiu (46) -iphncut (138) -> wslsg, qhnaxuy -algqhtz (37) -> qeojk, sybpano -dmoxr (73) -tozktyo (29) -npjxq (46) -uvfyo (675) -> lxlbt, gnjvf, nfsuzef, spwgm -ollhxuy (821) -> vefzbc, faecnr, geldsqv, xneoi, cxvqvjz, jgkvfa, xtwdx -ksvfdcc (72) -avycyh (180) -> hwosyg, alqim -nsqqw (16) -nsfsj (99) -tpphe (64887) -> yatbsip, syzlt, uttujj -miwoup (40) -> gyjpoco, apgjv, eknui -iljwgzf (92) -bfuywyg (82) -aaqdb (44) -fgbyre (11) -kywfqzv (41) -> lajidkr, gyjxkl, wfhyr, evhsybt -aiovxpk (95) -> yoxvx, pbtks -hrovawq (50) -ajenoz (48) -aeuub (53) -gxjvj (163) -> yiusa, nrczsn -ippzix (9) -ttllx (73) -rorqy (43) -dqash (96) -lwvnbzs (24) -ckheb (34) -rgfndsx (18) -> qkbnq, welll, bkextqn, wnotwt -rsazi (62) -rpfmi (52) -uxslfay (72) -aemgsa (40) -jfmnsqg (85) -ggnsa (114) -> xhmfmo, azdei -lndaa (175) -> qvjqfi, iyuuh -kjdoubx (128) -> eopxpo, igyxt -dzasw (47) -emfctr (9120) -> qzckx, fsaoa, bjrpalu, mdneq, tdwtlf, hswrbpz, knltna -srqntb (137) -> raevpsw, qvteg -wweusm (66) -hawsl (13) -cupsjm (146) -> baiaa, pcqyagx -ppqlc (42) -tadnt (47) -> ufefj, rwxggm, rorqy -rvhxik (11) -vijkx (32) -lqcar (71) -dhkahb (49) -ftuemb (19) -ewdqb (50) -npmwcx (93) -wwezydn (97) -fuvru (98) -cdpwklz (83) -dtscjna (46) -exuusj (7) -ouamzwh (88) -ggvbqrp (145) -> opohwq, yrmgc, gewgn -ekdqf (467) -> ugvqayz, ysgsry, ogbsm -torxqh (90) -> dzwol, lepja -hpmbkwb (69) -ripqyzr (48) -eiklbh (32) -omdlwm (168) -> ihtnbb, hjjkx, bomho -lbwzat (74) -> iivncbz, dmoxr -pyypotx (51) -bjabd (7) -auzbdlz (95) -sxfilp (72) -> livlj, lgenxz -kxvlprg (60) -rfmeug (121) -> apygt, viwns, chtlcwq, wekkbw -xajjyba (164) -kzltfq (94288) -> vnrmx, lrihy, arqoys, nsmoh -mbhld (73) -rwxggm (43) -vapwxei (61) -ufefj (43) -oajawn (34) -dgnjf (335) -> yxseri, nscbsob -xaoncma (296) -> yipzce, nrpxx, rrfbngi -kqlsniq (95) -> qwsxpnc, mqmbcl, gtbbuvb -jrvbacq (49) -oavluo (21) -qpldch (54) -ieusgd (295) -tifgptk (100) -> ddldgex, ggvbqrp, focqhgt, cncak, ksvpnt, weuwc -lhradm (583) -> vusxa, lbwzat, ucbbun -apgjv (85) -cbibo (99) -jxhngrl (48) -qwsxpnc (96) -ysbrui (1293) -> iqggu, upvhfmn, kpqyb, wdeuy -ekvall (209) -> jxhngrl, aplvqql, drwfop -mkwfj (35) -pjiqvd (87) -pgubexv (78) -vbhnmr (2850) -> iftfc, kunzpa, qrrey, tljdqy -sjwhig (93) -zyradhz (52) -wcexum (116) -> eiklbh, vijkx -cdcye (53) -> izppmg, rxvyqsp -bdinafh (10) -rziezq (145) -> taiho, pkfhp -nslettz (10) -svhbd (109) -> xcvxle, fqzsq, jopjvd -limljj (68) -kauphp (231) -> dyxsmz, yzxzo -caryo (7) -nahovfk (109) -> flefy, cfztpc -qolnvo (267) -cmqwplb (9) -cfhuce (71) -> cecsr, josdslh -zwnvqu (88) -mhjtjp (91) -apkwi (222) -> rxragg, zsxizw -ioywk (16) -> ozyexx, eikmns, ktjav -yrmgc (31) -kqzemkv (96) -rxvyqsp (60) -hnlgkv (17) -raryuo (73) -bomho (87) -rixnft (85) -> cpndnx, fpxtub -zoewj (193) -> ohbuhy, ymckwqo -hnyqq (34) -tkmed (1959) -> tuqmup, jwgchxu, sjforw, zmsosb, tqikxkp -wlpyulp (10) -pixjzh (158) -> fgjwz, lsknlg, hlcghe, txhfuoh, hdvel -likvlm (62) -xhmfmo (48) -rgrxpe (69) -weuwc (84) -> xtwdau, muncur -uevcwul (92) -kpxqlr (155) -> nbbyqsa, ilkqp -fqzsq (98) -> tiujei, yhubw -ubovv (6) -knirl (11) -lzvniiz (60) -cwtdf (29) -qeojk (99) -ycxzfkf (131) -> bgflw, chophr -thjulip (20) -vgdwm (53) -myhch (25) -bovno (175) -uqlso (48) -rhnkdt (59) -> rsazi, ncodn, pwizhzr, likvlm -acpfsnb (204) -> nmlcne, vfsttaj -wzfkk (99) -oqlpz (81) -nscbsob (24) -mzmfygf (171) -> jxyoypa, ippzix -rvrlma (211) -pfphng (90) -mdiqsgg (12) -jtzkva (274) -> flomey, ukvvt -tvwxmur (64) -> yodoqn, ksvfdcc, ivstcsm, pvgzz -aplvqql (48) -qybmgto (9) -mtcrswx (75) -aphpzub (29) -vchsdif (105) -> ofisj, zwnvqu -dllgpye (72) -lfzahrm (79) -oiosol (27) -geldsqv (80) -> ienye, eeppf, ftuemb, vbbgeo -vlbba (81) -> ewdqb, vfzby, pjcttzo, abddskq -nfsuzef (75) -> dlbzng, cbibo, wzfkk, jonshpm -lryzkx (71) -mhndszl (190) -> tbrfk, xprzeeb -jbepak (66) -nmlcne (27) -gfffvbp (8) -bqtas (93) -fhmauag (221) -> vantwg, kzwqzqf, vfwegiu -misyfn (82) -> uixlx, oupzsh, bovno -jtauf (13) -> xskehl, bmfhjm, srhirm, kjfmqkt, qzxaqvy -eerktn (85) -> npjxq, kasfuwe, ljbss, theau -ktaet (58) -eeppf (19) -vgqeyx (31) -qhnaxuy (31) -xrvbzya (35) -nzqcq (66) -> vewgrvp, vfngjd, sjrxs, hvjtn, ecokyy, gcaxntb, omdlwm -sybpano (99) -ebsniof (39) -urzul (9) -srmiagk (292) -> dvdgowj, vqpeg, gjuekv -uexdnv (82) -pgspysb (40) -wymfopy (93) -nqhdt (164) -> mkwfj, gjwaqu, sxmbcwp -twzpqip (41) -bniti (66) -yfjenp (295) -> qxfce, zsiziaa -meoeea (60) -> laczal, tcvabyz -heacb (53) -focqhgt (238) -dtstgj (36) -kkmqko (7) -vcjjo (98) -nnnkeh (445) -> gzzpja, bhuyfk, xnukvni, tttle, snzfrer -baesyhf (1013) -> tznkwk, hcjxz -hygfoe (85) -wtxbqe (87) -vwzglf (58) -hswrbpz (254) -> flcqsb, sbguah, cdcye -axtqrx (29) -auxvur (11) -iqggu (444) -kceusl (42) -jykbb (91) -nxzkuj (75) -xzurwza (95) -rrflox (52) -kfmzbvk (10) -mnkwo (212) -> jyskb, wfphcf -dfvhic (82) -> fhmazv, hwctdr -gfzbp (197) -> ymcuygn, mxzbcqn -tlednk (39) -lgenxz (54) -emwbbut (9) -exoft (17) -woolxv (49) -auxqbbc (87) -wvocz (67) -hvjtn (325) -> cverrt, kfxoi -aunhcg (613) -> kjdoubx, ggnsa, acknlp -absdwf (39) -wajnxjj (40) -> imjzf, wwezydn -hgdbaol (10) -cfztpc (38) -chlxm (46) -ljbss (46) -gauumxf (230) -> tkiraal, lyptirp -nhlittn (22) -gcaxntb (405) -> mdiqsgg, oxiuaz -lfxew (66) -bamxg (66) -wdsiq (71) -mykrcq (98) -> zcgrnt, raryuo, okrdziq -erpvue (91) -kmwbbz (93) -vsgaam (7) -hokyk (66) -pjzpmq (38) -iqovqp (20) -mmcychg (65) -guncf (259) -> proshun, wxjka -jatnl (216) -> oavluo, phrxnli -nhkvp (100) -> rgrxpe, nscav, illjvf -hcjxz (31) -mqrroj (243) -> jtjcj, dnmvzeg -lvksghj (18) -mhsjkm (84) -popplum (89) -vusxa (30) -> ieadjz, mzmtuw -dmkbnot (26) -httit (18) -tbrfk (19) -ztzwh (48) -imjzf (97) -rypdxr (105) -> qyoqb, lejgcu, djirpp -qzckx (35) -> qzzkvf, pmsdv, gauumxf -xbnmvd (76) -ouymke (47) -rajtef (365) -> iriun, ezaypy -itngcua (65) -orxoo (66) -tcdwurt (18) -auqoj (99) -sqnvvbg (36) -rxragg (18) -kpqyb (258) -> sqkcdf, iqxwh, vnhvilk -proshun (47) -uscufoy (15) -tpipb (61) -owhjmt (155) -> vsruoi, ifxcrug -bkvle (9) -yosnw (32) -> ilymgq, yppydul, yamclb -iynywq (66) -nxpexoq (92) -eviqjr (25) -trbzi (11) -rfvomn (95) -ohbuhy (41) -vkpltts (73) -ktpte (9) -bbgwzg (79) -bgcigo (8) -> bruzfkf, lxcbjgy, vlmcmcu -ecokyy (357) -> iaphzk, httit, vztnh, owmni -jwgchxu (32) -> rfvomn, auzbdlz -xlskkfi (92) -uxjasn (36) -dcumfo (73) -wpnqet (87) -ilqol (88) -bhsbd (53) -flcqsb (115) -> meypo, aphpzub -yvqtyi (85) -oyvhouc (37) -> cdpgoi, bbgwzg, xoziel, lfzahrm -bjhickt (23) -hmvwl (32) -> nswximo, tpphe, baewpe, hghnmib, kzltfq -oiijtm (20) -ylfsnz (93) -imynb (146) -> absdwf, cikaze -yygqky (82) -yuswp (68) -izppmg (60) -itwbpot (22) -hwosyg (42) -mkrzp (211) -> laxsl, zirocl -vqpeg (5) -gddkqw (244) -> vhtyadn, lvksghj -bhuyfk (79) -> aghdlll, ilqol -yrfqaga (103) -> jqinti, zjaklmn -bnfopv (118) -> cjmxed, zlzers, qrlggma -welll (99) -ehuzoq (77) -nqyok (77) -rrfbngi (21) -yoezrpw (38) -rpzaqc (47) -qxlucvg (84) -tehyhc (13) -gqrfok (231) -> kfhnhm, aituccf, qrkhol -zvnxfa (10022) -> aylmbfh, lwencl, pixjzh -gzzpja (255) -ofrwmq (205) -> iigvpqy, wweusm -qanbo (50) -obslyn (13) -hwovhvw (915) -> qdhrchr, nahovfk, xomnhw, ycxzfkf -smlfbc (1615) -> wnjwnr, pprhx, aiovxpk -xbkeua (157) -> pgspysb, aemgsa, xfblj, hswzo -btklib (51) -owmni (18) -qzzkvf (108) -> aobitc, tsrogy -umtrod (22) -vxajmkg (71) -jmlmzpz (62) -plurwe (228) -jyskb (6) -xnuoujm (16) -nakmo (10) -uzhlers (50) -umlkxqv (20) -> ecimj, wudjf, jfmnsqg -ziqwzzy (204) -> uscufoy, fooyrq -ymrogz (272) -> ebsniof, tlednk -lpuass (28) -qrkhol (9) -hpkpw (38) -gtzcxq (73) -gvjrx (35) -ieadjz (95) -tcukgv (66) -ifxcrug (55) -thxtoc (178) -> trtgn, fdnom -puwvse (414) -pvppi (246) -> qlwxeb, nuqyqh -vcixs (260) -> noipcz, frohei -cichyqw (71) -ugvqayz (126) -> xfekjt, wvocz -hrqzqqh (53) -qedst (18) -wnjtb (73) -kjfmqkt (138) -> pzpjw, qpldch -ussmw (94) -sxmbcwp (35) -dqdfv (73) -ptyxo (13) -upuxd (36) -fppcif (209) -> uxslfay, yjhes -kxykfr (82) -> twzpqip, qymwy -yodoqn (72) -mnzbkuh (28) -> jtouvtb, wdvwub -omdpc (26) -ccrftvw (62) -bmfhjm (222) -> lyvyhkm, sbyxyf, kblshw -fwgqj (1924) -> zmcgfdp, vzuqbye, rypdxr -rlbom (79) -livlj (54) -ybvgki (8) -zcvipz (97) -xyohoxa (928) -> qkkzzlm, lmuyfcw, avycyh -dchts (99) -> lctdjj, oevyknd -ksfok (217) -> gfffvbp, ybvgki -hoomyh (88) -> aaqdb, ljfqvk -qijarlh (58) -tznudmk (17) -cyrrjtx (124) -> oqbdf, xwlmsqy, ulztj, rjsnth -nuqyqh (52) -oblsboq (85) -imnhql (94) -hxswghs (126) -> dwwsu, hdlqvlg, jppgd -ulztj (25) -hgwsl (50) -ksvpnt (96) -> fqlezvk, lqcar -mjpzp (10) -fsaoa (89) -> dbwmq, uzufet, arwmalf, gobrf -iftfc (159) -> thxtoc, jtzkva, tvwxmur -zjpsm (83) -vwfhi (9) -opuaau (75) -> dqash, kqzemkv -mxupea (45) -dmkyzy (15) -> ttllx, horqcc, dcumfo -sxllorg (69) -> kxvlprg, lzvniiz -txhfuoh (219) -> lwdqnj, myhch -chtlcwq (17) -hlcbqu (104) -> ccrftvw, jmlmzpz -ivmndi (94) -lficpr (62) -ortqc (99) -dvzlq (33) -acknlp (56) -> aozoac, ehuzoq -jqxnf (60) -hfftu (52) -ihzvygq (94) -> kmwbbz, orrutjs -rarkunn (73) -hitoud (5511) -> vcktg, rqbjbio, xtyzy, ssdgbnh -sdhtguj (58) -> uklsrym, mcmqliy, nnnkeh, clinrg, fwidkbp, hzmhm, xyohoxa -hrlkgen (99) -vuyzhsh (61) -nzzfer (85) -> qcgxvx, ortqc, auqoj, ilfzi -tuqmup (222) -zbznuyf (137) -> ptyxo, qwtzc, neqfzm, hawsl -qwtzc (13) -vykqcnj (71) -> jitzj, nkhadt, tcsbho, fhxpkd, fwgqj, smlfbc -mjzksjz (7) -yfdtz (36) -faixe (56) -tejnuve (209) -> jgmisxl, dhkahb -opohwq (31) -lsknlg (95) -> vwzglf, hjucki, yrkvb -fhmazv (76) -egmfbdq (25) -rxcnn (9) -tboizos (250) -glwhd (122) -> ceoav, troyu -ykehxw (19) -bruzfkf (91) -rjjlus (87) -ocnna (18) -qshbt (73) -raakduh (85) -> fuvru, vcjjo -wudjf (85) -ihwaeuw (60) -kfxoi (52) -oewzluz (39) -coopirx (251) -> exuusj, rvimq -cokzlht (29) -uacjhqx (23) -tznkwk (31) -mthhq (111) -> uevcwul, nxpexoq -uixlx (7) -> kmlwj, gaihmf -nqvxs (71) -ktjav (83) -eknui (85) -fhuiyrl (93) -fktsu (65) -vugnug (65) -ilymgq (91) -clinrg (1033) -> rsancy, jrqorlo, lvklj -bkextqn (99) -ekohgo (251) -> xxxqpkx, wkphn -alkneau (34) -mnijdlk (85) -dyxsmz (38) -mefxonk (50) -lajidkr (37) -uiuokpq (89) -oupzsh (43) -> bzmade, bamxg -cijptz (18) -khibjj (89) -yamclb (91) -okrdziq (73) -sbyxyf (8) -zknziw (18) -fobzai (75) -rjsnth (25) -iaphzk (18) -lufgosn (10) -rzkcu (34) -xlhfyw (471) -> yuswp, limljj -tcsbho (1842) -> mnmwzz, mnzbkuh, zpidc, cpqti -docln (85) -neeqb (7) -tvcod (88) -uklsrym (40) -> bbhniy, gddkqw, lhmnd, ihzvygq, nhkeb, wuxhvnx -qkkzzlm (76) -> imnhql, nbeagw -qywkuqu (20) -fvgbg (191) -> iwkntdi, jdrdxu, sqnvvbg, yfdtz -qlkslp (82) -iqxwh (62) -mdneq (623) -> uzhlers, qanbo, tedplb -msmgk (173) -> fygmpjn, exoft -euoclfs (241) -> pjzpmq, hpkpw -vlimzz (19) -> yvqtyi, gwournc, docln, oblsboq -zoqni (189) -> chlxm, yfmxvay -oignan (206) -> hdaqxlh, fgbyre -zpidc (40) -> bujroda, btklib -aazxafl (215) -> xnmvtem, oafnfo -yhubw (34) -xneoi (138) -> vwfhi, cmqwplb -vefzbc (138) -> dywqvqh, emwbbut -ruozmjk (73) -jrwfehi (75) -> kcnim, bdvtvcu, tfsoxgb, tboizos -iivncbz (73) -ccuarv (53) -lrihy (185) -> vchsdif, bgcigo, raakduh, vlbba, igyiie, zoqni -vewgrvp (73) -> dntphko, svayf, uiuokpq, popplum -iigvpqy (66) -fjduphn (91) -uttujj (11755) -> glwhd, sxfilp, wcexum -tluap (6) -exeub (71) -dzwol (61) -ilfzi (99) -cdpgoi (79) -hxckb (71) -yoxvx (85) -theau (46) -vwnjh (233) -> jqxnf, qfpwln -jbpjt (27) -zmsosb (14) -> rrflox, ovluts, rpfmi, ojvlwm -yoivja (59) -towlhi (36) -zcrjb (253) -> qhohy, uwaiki -josdslh (59) -xoziel (79) -fsuzqyz (169) -> duftj, ppqlc, kceusl -chwjiub (96) -fpbsu (89) -qyoqb (19) -dfeomzr (38) -kfhnhm (9) -oevyknd (56) -buoakk (22) -wduqgix (77) -qokscr (65) -oqbdf (25) -jjsvfy (199) -> yoivja, gdnsat -ssdgbnh (887) -> qtsjbq, plurwe, mhndszl, hlcbqu, pgskth, oignan -lrsedv (213) -> eaqjcju, cekpxgj -iwkntdi (36) -qfgzmtz (73) -rfwgtb (26) -alcvj (7) -bvdxf (30) -ofisj (88) -mpchqe (27) -pwizhzr (62) -wkcyd (75) -mxzbcqn (81) -npzdqeg (227) -> tufds, msxhvo, pcsucog -illjvf (69) -iyuuh (80) -fygmpjn (17) -dvdgowj (5) -hlcghe (91) -> khibjj, kngbqid -zvurtb (77) -ouspx (46) -dbvxai (76) -facrq (13496) -> fkbla, ffvprc, yrfqaga, msmgk, hxswghs -xbcgipi (66) -wfhyr (37) -ziyata (221) -> oqlpz, jjtrisl -muncur (77) -vlvss (183) -> odvtiti, fazqw -kvdkwy (96) -ddldgex (84) -> nqyok, wduqgix -trtgn (87) -jitzj (65) -> fvgbg, nbfqgr, zjwpbzs, lndaa, vlvss, gxjvj, zcrjb -hkhoyje (95) -> frirj, iuhlc -gtbbuvb (96) -tfsoxgb (250) -rohvy (95) -qhohy (41) -goimlra (227) -> orxoo, lfxew -hubbqbi (95) -vchuc (53) -svkdyq (9559) -> akmgfo, lhradm, jtauf, aunhcg -fazqw (76) -flomey (39) -apygt (17) -wjptb (43) -srhirm (147) -> bicsjoc, dvzlq, olykwbi -wdeuy (254) -> hubbqbi, rohvy -yeooycn (93) -qoyzgsp (28) -sqkcdf (62) -rgbvlc (49) -qinzaf (813) -> aooni, zoewj, ogzrdrk, umlkxqv -kflize (84) -isrtfc (201) -> vmutyru, ouymke -nkhadt (292) -> fppcif, vwnjh, oyvhouc, ekvall, guncf, npzdqeg -nbbyqsa (40) -ikfpktb (97) -maqgick (76) -xtwdx (156) -sbyzsq (10) -vgubuy (74) -> iljwgzf, aihow -taiho (59) -cpndnx (11) -vhtyadn (18) -aaheijb (54) -rykadr (19) -onnylx (32) -gukuqw (69) -fooyrq (15) -zqyua (52) -vsruoi (55) -ikmvhid (2745) -> hwovhvw, arsuc, yzrdupu -vztnh (18) -khaupo (32) -cpqti (142) -qtsjbq (126) -> wekya, rzkcu, alkneau -pcsucog (42) -lepja (61) -ibjvonk (10277) -> xlhfyw, svhbd, misyfn -rqbjbio (29) -> mqrroj, hjeysaa, wlujpl, vooac, rrggg, yfjenp -ceuygh (90) -> aqxsjq, qxlucvg -qzxaqvy (78) -> fwskxtt, jlgvplm -fwskxtt (84) -yrkvb (58) -thdwfw (219) -> umtrod, nhlittn -zpkbe (73) -> cwtdf, tozktyo, qcrpdy, axtqrx -hjjkx (87) -jxyoypa (9) -ilkqp (40) -akwvj (238) -> jatnl, iphgmyt, meoeea, gqrfok, ljhwzvv -lkcddrg (2238) -> lqfyzo, rixnft, hkhoyje -xprzeeb (19) -rhodopg (94) -> qfgzmtz, dqdfv -ttwfig (340) -> rykadr, ykehxw -kueyf (85) -> ulbbc, nzzfer, azxjd -zmcgfdp (136) -> tehyhc, obslyn -ffnabs (20) -> guehoas, nnldikq, ofrwmq, lrsedv, qvkotfd, shfdaba -arwmalf (143) -> vsgaam, bjabd, ycclns, kkmqko -gyjpoco (85) -drmyco (26) -arqoys (1859) -> urzul, bkvle -nscav (69) -tsrogy (69) -qhafxnl (1337) -> xbcskih, kpxqlr, algqhtz -yiusa (86) -zdbqs (43) -xzppxad (58) -> ltxkw, ollhxuy, qinzaf, wpxxh -dxyifeb (1862) -> twubx, lkcddrg, uwqgz, uvfyo -zlzers (49) -gkkgkp (358) -> wlpyulp, nakmo -abddskq (50) -tggkm (43) -dgwcz (7) -bhvmgw (29) -> qflouyn, pfphng -guehoas (283) -> qedst, cijptz, zknziw -marzlxh (51) -mizab (60) -jgkvfa (120) -> ocnna, tcdwurt -jopjvd (80) -> dnouufu, wjptb -lwdqnj (25) -xpzhy (84) -noipcz (59) -bbhniy (20) -> itngcua, mmcychg, vugnug, fktsu -jtjcj (64) -tgdzl (53) -gobrf (25) -> gtzcxq, lsdrwz -arsuc (65) -> rbcqgqv, huwsoc, bnfopv, srqntb, vxdkej, owhjmt -ogzrdrk (101) -> vztbn, wtxbqe -oxbkwyr (91) -yatfpqx (109) -> xrbjn, qywkuqu, thjulip, oiijtm -jlgvplm (84) -bcibchp (54) -glgnecl (16) -tqikxkp (222) -bhcal (7) -vmutyru (47) -kzwqzqf (46) -evhsybt (37) -gdnsat (59) -cikaze (39) -jrqorlo (229) -ovluts (52) -nbfqgr (169) -> cdpwklz, zjpsm -nbngkou (73) -wslsg (31) -aobitc (69) -htgxu (24) -wjolzt (46) -hzgig (95) -> jrvbacq, rgbvlc -ulbbc (217) -> bniti, jbepak, iynywq, xbcgipi -wkphn (7) -fkbla (207) -jqinti (52) -yhiogu (256) -> neusnw, tkpvf -ebjsluk (39) -shfdaba (76) -> wpnqet, rjjlus, pjiqvd -anpnrdt (10) -jdshuob (491) -> kywfqzv, zpkbe, cfhuce, mzmfygf -vooac (341) -> lufgosn, sbyzsq, mjpzp -frohei (59) -baiaa (15) -pyrlph (71) -cgxsmq (25) -ukvvt (39) -gaujsyk (26) -> ktaet, yipoeia, qijarlh -gnjvf (375) -> ajenoz, ripqyzr -hghnmib (47802) -> vbhnmr, vustse, lybkeg, ikmvhid, oqphsw, xzppxad, gvkcsad -yrcgsnx (270) -> qfypnb, dbvxai -kwqrbav (34) -wdvwub (57) -viqhfi (89) -akmgfo (243) -> zhvji, iphncut, oyxbblb, gaujsyk, ybftt -faecnr (80) -> dfeomzr, yoezrpw -xskehl (228) -> ubovv, omydd, tluap -pdosfg (21) -> rlbom, lbjwlov, wgqkdcr -tkiraal (8) -aimav (46) -ecimj (85) -eikmns (83) -fqlezvk (71) -qrlggma (49) -ztkgsyt (29) -> bfuywyg, uexdnv -tedplb (50) -cvrcvgp (86) -> zvurtb, dkcix -bckuyxm (11306) -> eyyzy, jrwfehi, baesyhf -ffvprc (65) -> vxajmkg, cichyqw -jjtrisl (81) -vantwg (46) -vlmcmcu (91) -qdhrchr (89) -> dhwauy, uqlso -ceoav (29) -bhrbod (50) -> oxbkwyr, erpvue, zhrnwk, mhjtjp -yxseri (24) -kzbvrxk (10) -kcnim (76) -> zjoxibi, auxqbbc -ltxkw (30) -> eerktn, nqhdt, jjyjrtr, bfchbs, redqvw, mkrzp, nymguj -rrggg (371) -uwqgz (1923) -> torxqh, zmlth, lnctft -dbwmq (117) -> bmecxwd, lcrwbqi -kasfuwe (46) -btbxk (755) -> xajjyba, kxykfr, rymkqd -njxyw (47) -fvlfq (94) -zhvji (162) -> cpazlc, mluykm -aozoac (77) -chnkkj (86) -> tfmtk, hddzn -dkcix (77) -lxcbjgy (91) -mofks (30) -yzrdupu (719) -> wajnxjj, dfvhic, dmkyzy, ziqwzzy -wxjka (47) -xitzb (52) -rvimq (7) -qddsx (30) -lvklj (97) -> ydbri, tcukgv -sjforw (208) -> alcvj, neeqb -yjvgwdl (91) -fhxpkd (261) -> kauphp, zdhvqrl, rhnkdt, nhkvp, tejnuve, olspit, srmiagk -eaqjcju (62) -ybftt (122) -> oewzluz, ebjsluk -jgmisxl (49) -hdaqxlh (11) -cjmxed (49) -aqxsjq (84) -cekpxgj (62) -tetmzw (121) -> ozatmpe, qbmtmcs -mqmbcl (96) -xtyzy (155) -> yhiogu, iphzyj, pvppi, tojyt, krxyaak, ymrogz -drwfop (48) -pgskth (86) -> hxckb, lxesg -pvgzz (72) -kunzpa (687) -> tadnt, cupsjm, hoomyh -nhkeb (252) -> caryo, bhcal, mjzksjz, ufitse -cncak (182) -> qoyzgsp, lpuass -aituccf (9) -qfpwln (60) -laxsl (29) -yzxzo (38) -lnctft (116) -> zgevpxx, scchi -lyvyhkm (8) -vcktg (1556) -> ztghd, imihjj, ksfok -dzbrgb (75) -xbcskih (85) -> fobzai, nxzkuj -jtouvtb (57) -ufitse (7) -upwlxnb (7) -jysaup (78) -ysgsry (228) -> glgnecl, xnuoujm -horqcc (73) -vfsttaj (27) -gvkcsad (5412) -> ghsjtj, dgnjf, ziyata, rajtef, kqlsniq, vqclii -lbjwlov (79) -vnhvilk (62) -dntphko (89) -syzlt (6183) -> tifgptk, iwhqlr, akwvj, kueyf -hzmhm (1087) -> rvrlma, dchts, emzrj -neusnw (47) -vfzby (50) -cecsr (59) -uwaiki (41) -msxhvo (42) -fgjwz (113) -> qwzmv, xehdglb, kgpwo -lmuyfcw (164) -> hrovawq, hacwv -zjoxibi (87) -viwns (17) -olykwbi (33) -meypo (29) -sbguah (49) -> vlfouc, lficpr -oyxbblb (92) -> towlhi, fndxl, uxjasn -bzmade (66) -lfpzff (238) -> bdinafh, kfmzbvk -epuaii (88) -> ckheb, kwqrbav -dwwsu (27) -xnukvni (207) -> htgxu, lwvnbzs -zhrnwk (91) -vfngjd (325) -> hfftu, nymhem -vztbn (87) -kxnkbs (19) -> tpipb, vuyzhsh, vapwxei, wbxdta -bmecxwd (27) -nymguj (123) -> vkpltts, mbhld -qlwxeb (52) -kfrti (10) -xcvxle (106) -> qddsx, bvdxf -wbesqn (99) -kblshw (8) -qymwy (41) -ezaypy (9) -dnouufu (43) -cyapi (227) -> rothisa, hokyk -itbsk (30) -alqim (42) -hjeysaa (251) -> mofks, itbsk, njogewi, ldfopw -ljfqvk (44) -iueejt (5) -> rgfndsx, bhrbod, puwvse -knzppj (81) -> hrlkgen, nsfsj, wbesqn -wnjwnr (197) -> hnyqq, oajawn -xtwdau (77) -dmeee (93) -qxfce (38) -pcqyagx (15) -bicsjoc (33) -eeguu (78) -wbxdta (61) -gjwaqu (35) -mzmtuw (95) -huwsoc (173) -> ouspx, wjolzt -spdhhoe (167) -> chwjiub, kvdkwy -hhmwlo (56) -icgwppo (84) diff --git a/2017/inputs/day_8.txt b/2017/inputs/day_8.txt deleted file mode 100644 index 7b63126..0000000 --- a/2017/inputs/day_8.txt +++ /dev/null @@ -1,1000 +0,0 @@ -ev dec -705 if cag != 2 -b dec -195 if ty >= -8 -red dec -404 if v > -7 -d inc -971 if k >= -9 -k inc 303 if k > -8 -cag inc 539 if ev > 697 -ev inc -11 if d <= -963 -alf inc -634 if xoc < -2 -eb dec 927 if b <= 201 -e dec 67 if eb >= -930 -he dec -29 if qby < 8 -cox inc 193 if b >= 188 -red dec 340 if alf >= -7 -k dec 8 if red > 57 -eb inc -606 if e <= -75 -xoc inc 337 if red == 64 -xoc inc 186 if mk == 0 -cox inc 840 if npo >= -5 -s inc -449 if anb != -3 -eb inc -233 if npo < 2 -npo inc -808 if mk <= 9 -eb dec 139 if eb > -1161 -ty inc -929 if ty > -7 -mk inc 789 if d > -977 -red dec 915 if k < 299 -anb inc 852 if mk == 789 -red dec 242 if swy == -6 -e inc -29 if cag < 546 -alf dec -219 if cag > 535 -red dec -298 if ty < -921 -tm dec 175 if obo <= 2 -alf dec 553 if eb != -1298 -alf inc -870 if s != -449 -v dec 744 if cox < 1036 -d dec -720 if he > 24 -ty inc -201 if k <= 301 -xoc inc 956 if v > -744 -s dec 539 if e >= -100 -mk dec -37 if anb != 852 -mk dec 833 if tm < -167 -ev dec -410 if ev < 686 -s dec 77 if cag != 539 -anb inc 917 if swy >= -2 -obo dec -5 if s >= -997 -qby inc -231 if tm == -175 -ev dec 378 if tm <= -167 -b dec -106 if s < -985 -s dec 301 if e < -89 -npo inc 232 if b == 301 -red dec -960 if mqk < -9 -he inc -789 if k == 300 -npo dec 826 if cox < 1033 -e inc 101 if k > 291 -v inc -898 if he > 27 -alf inc 141 if anb > 1767 -red inc -613 if e < -2 -tm inc -151 if cag >= 530 -k inc -346 if b != 305 -he dec 967 if cag <= 546 -ev dec -931 if cag < 543 -swy dec 309 if qby < -228 -d inc 437 if cox > 1030 -ty dec 586 if ev <= 1249 -alf dec 299 if e <= -2 -d inc 977 if xoc == 523 -d inc 594 if s <= -1282 -ev inc 21 if swy < -306 -qby dec -722 if cag < 543 -k inc -381 if ev < 1259 -alf inc 847 if anb > 1764 -k inc 126 if s <= -1292 -eb inc -109 if mqk > -4 -obo dec 900 if swy < -300 -obo dec 364 if mk <= -35 -swy inc -211 if eb >= -1416 -ty dec -680 if mqk <= 1 -ty dec -235 if cox > 1024 -cag dec -261 if red <= -559 -obo dec -897 if mqk == 0 -tm inc -981 if mk < -49 -ty inc -805 if eb >= -1402 -mk inc 278 if red < -552 -ev inc 63 if v > -1645 -swy dec -388 if xoc <= 530 -mqk inc 187 if obo != -357 -s inc 416 if b < 309 -qby inc 399 if mqk >= 185 -red inc -680 if mqk != 188 -he inc -981 if eb >= -1407 -d inc 225 if tm >= -327 -he dec 158 if d <= 1991 -d dec 74 if qby == 890 -k dec -930 if anb <= 1770 -s dec -546 if mqk == 179 -ty dec 733 if k >= 874 -ev dec 581 if obo == -362 -cox dec -922 if obo == -362 -obo dec 922 if e == 5 -d inc -948 if tm == -326 -cag inc 161 if mk <= 241 -eb inc -580 if e != -1 -anb inc -632 if qby != 889 -red dec -285 if mk <= 239 -qby inc 550 if eb >= -1997 -e dec 930 if k > 869 -eb inc 604 if swy > -138 -obo inc 383 if he != -1100 -s dec -89 if eb <= -1377 -qby dec -821 if ty < -1532 -ty inc 940 if qby >= 2257 -alf inc -421 if swy != -123 -qby inc 787 if b != 293 -alf inc -80 if b < 301 -b dec 205 if eb <= -1378 -qby dec 870 if obo != -892 -d inc 183 if swy == -132 -s dec -81 if mqk != 187 -swy inc 976 if d >= 1138 -red dec 281 if anb == 1138 -xoc inc 681 if d < 1141 -v dec 14 if obo > -902 -he dec -525 if xoc <= 530 -v inc -866 if red >= -955 -cag inc -835 if mk != 240 -qby inc -549 if s <= -781 -eb dec 584 if mk >= 229 -qby dec -711 if obo >= -904 -ev inc -400 if anb <= 1144 -k inc 82 if swy >= 840 -e dec -415 if mk != 229 -red dec -923 if anb > 1128 -v dec 602 if b != 86 -ty dec -699 if ev > 346 -xoc dec 549 if k > 968 -k inc 317 if qby < 2343 -npo dec 919 if d >= 1137 -e inc 421 if e > -519 -eb dec -104 if ev <= 351 -b inc 368 if qby != 2342 -mk dec -987 if ev == 357 -eb dec -509 if alf <= 236 -obo dec -380 if v != -3127 -npo dec -790 if b < 455 -xoc inc 405 if k < 1287 -obo dec -56 if b < 465 -swy dec 194 if k != 1281 -red inc -562 if tm <= -326 -swy dec 75 if e <= -86 -obo dec -4 if ev == 350 -e inc 533 if xoc < 931 -cox inc -584 if d < 1146 -swy inc 506 if eb >= -1354 -obo dec 458 if k >= 1279 -swy inc 447 if e > 447 -qby dec 847 if cox <= 1377 -xoc inc 225 if xoc < 931 -obo dec 301 if b > 462 -cag inc -740 if e > 438 -tm dec -83 if e <= 447 -tm dec -151 if cag <= -866 -npo inc 26 if s < -784 -v inc 12 if cox != 1368 -eb inc -399 if ev > 340 -eb dec 780 if d == 1143 -e dec 87 if tm == -91 -k dec -13 if anb <= 1139 -v dec 829 if swy >= 567 -k dec -229 if ev < 351 -qby inc 972 if xoc == 1143 -s inc 609 if s >= -789 -mk dec -931 if ev > 346 -mqk inc -605 if cag > -880 -v inc 302 if anb <= 1139 -mk dec 342 if v > -3647 -xoc inc -905 if k <= 1523 -qby inc -412 if qby == 1493 -v dec -548 if d > 1142 -xoc inc 311 if obo >= -771 -npo inc -955 if xoc < 551 -swy inc -885 if mk > 821 -ty dec 91 if ty >= 100 -s dec -840 if npo <= -1492 -qby inc 158 if ev > 342 -ev inc 227 if cag >= -878 -alf dec 612 if tm <= -92 -ev inc 395 if he <= -572 -s inc 570 if swy > -311 -s inc 283 if alf > -382 -xoc inc 297 if tm >= -94 -v dec 100 if d != 1153 -cag inc 928 if ty <= 19 -tm inc 829 if obo > -765 -alf inc -94 if ty >= 8 -ty inc -224 if cox <= 1367 -obo dec -352 if d > 1137 -mqk inc 223 if ev <= 580 -cag inc 55 if eb >= -2541 -red dec 969 if alf > -474 -alf inc -564 if e != 447 -qby inc -97 if obo < -400 -red dec -530 if cag > 107 -ev inc -579 if he > -574 -tm dec -788 if eb <= -2528 -alf inc -217 if v > -3191 -tm inc 635 if cox >= 1362 -tm inc -217 if mqk < -189 -cag dec -547 if v != -3191 -red dec -241 if alf > -1045 -red inc -492 if b <= 473 -he inc 46 if b > 454 -xoc inc 86 if ty > 8 -d dec -755 if qby < 1140 -mk inc -347 if obo <= -405 -v dec 870 if npo >= -1497 -npo inc 216 if red != -1287 -anb inc -574 if obo > -414 -ev inc -364 if eb == -2534 -anb dec -825 if npo < -1277 -k dec 587 if cox < 1372 -anb inc -888 if obo > -401 -swy dec -435 if npo != -1283 -e dec 551 if e != 444 -swy dec 772 if alf == -1036 -tm dec -339 if e == 444 -swy dec 259 if mk == 470 -xoc inc -224 if ev >= -359 -ty inc 265 if red >= -1279 -obo dec 449 if mqk > -202 -d inc 891 if e >= 438 -cag dec 606 if b >= 461 -mk inc -894 if v != -4064 -cag dec -128 if d != 2034 -eb dec 723 if eb <= -2528 -swy inc -12 if s < 1525 -s inc -569 if d == 2032 -npo inc 326 if alf >= -1038 -cox dec -213 if anb == 1379 -obo dec -222 if d > 2026 -ev dec 809 if anb == 1393 -s inc -637 if alf != -1037 -s dec -892 if xoc == 942 -eb inc -248 if cag != -491 -b dec 499 if qby != 1142 -b dec 543 if d <= 2033 -mk inc 345 if mk < -411 -ty dec -284 if npo != -960 -d dec -327 if eb < -3498 -cag inc -743 if mqk > -196 -cag dec 708 if ev > -374 -eb inc 935 if swy == 113 -d dec -908 if swy == 113 -npo inc -753 if swy == 113 -cag dec -227 if alf > -1045 -red dec -658 if v <= -4061 -cox inc -66 if anb < 1397 -cag dec -209 if b > 463 -cox inc -245 if alf != -1037 -alf dec -212 if s >= 2402 -d inc 590 if d >= 3273 -xoc inc -325 if xoc > 935 -red inc 935 if he >= -519 -tm dec 332 if ev >= -366 -cag inc 583 if xoc <= 615 -e inc -892 if e >= 439 -npo inc -628 if obo > -629 -red inc -819 if tm <= 1958 -qby dec -960 if ev > -372 -red dec -781 if tm < 1959 -cox inc -831 if xoc < 621 -b inc -830 if ty >= 559 -anb inc 654 if cag < -1507 -cag dec 995 if red >= -659 -npo inc 356 if b < -361 -tm dec 286 if qby > 2093 -mk dec 369 if ty <= 569 -mk dec -971 if qby != 2112 -swy inc 137 if xoc > 617 -alf dec -743 if npo > -1355 -alf inc 39 if ty < 569 -tm dec -42 if s <= 2413 -anb inc -685 if alf != -48 -ty dec 660 if anb <= 1360 -npo dec 313 if ev < -359 -cag inc -611 if obo >= -646 -tm inc 728 if v <= -4067 -swy inc -4 if cag != -3124 -npo inc 359 if xoc >= 613 -obo inc 694 if b != -358 -obo dec 439 if e >= -452 -npo dec -160 if xoc <= 626 -red inc -659 if e <= -439 -b inc -445 if obo == -382 -red dec 543 if k > 931 -s dec 274 if qby != 2093 -cag dec -338 if k <= 934 -alf dec -211 if alf == -45 -v dec -451 if tm == 1706 -obo dec -465 if v > -3606 -k inc 415 if qby > 2100 -anb dec 220 if swy == 109 -alf inc -3 if cox < 477 -d dec 164 if s > 2131 -qby dec -974 if alf >= -40 -cag dec 891 if anb < 1146 -d dec -337 if qby > 2100 -cag dec -628 if d != 3442 -k dec -648 if alf == -46 -red dec -329 if k == 1996 -e inc -891 if alf <= -38 -cox inc -626 if ty >= -99 -mqk inc -349 if mqk >= -204 -alf inc 388 if qby > 2092 -mk inc -430 if d > 3443 -eb dec 338 if alf < 352 -mk inc -215 if cox == -147 -e dec 171 if b >= -819 -alf dec -205 if d != 3433 -d inc -490 if qby == 2102 -e inc 612 if he > -528 -anb inc -811 if mqk > -543 -he inc 685 if cox >= -154 -red dec -748 if anb <= 1129 -ty dec -872 if ty >= -97 -b inc -920 if eb == -2908 -s inc -701 if mqk >= -548 -tm inc 136 if alf > 545 -he dec -100 if e != -898 -qby inc 552 if anb >= 1132 -xoc inc 700 if xoc == 617 -xoc dec 827 if obo != -385 -anb inc 738 if d != 2956 -eb inc 476 if mqk == -544 -s dec -100 if ev == -366 -obo inc -602 if e == -898 -tm inc -80 if xoc == 490 -eb inc 160 if eb == -2432 -he inc 229 if he == 159 -tm inc 453 if b > -1739 -obo dec 786 if qby < 2655 -swy inc -120 if qby != 2651 -ev dec -382 if obo != -1770 -qby dec 41 if eb < -2265 -cox inc -991 if obo > -1765 -cag inc -713 if obo > -1773 -he inc -958 if red <= -1522 -ty inc -426 if mqk != -551 -k inc 902 if ty == 349 -npo dec -550 if eb < -2274 -swy inc -30 if d < 2954 -anb dec 990 if npo < -1139 -ty dec 301 if red >= -1529 -ev inc -687 if ty > 347 -ty dec 261 if he <= -802 -b dec -313 if ev < -1043 -alf dec 231 if k != 2889 -npo inc 956 if qby >= 2618 -cag inc -39 if npo <= -1135 -he dec 117 if qby > 2605 -v inc -574 if cag > -4421 -npo inc -179 if mk <= 538 -v inc -737 if he < -910 -npo inc 722 if swy < -37 -mk inc 200 if alf != 313 -npo dec -604 if mqk == -544 -ev dec -794 if ev > -1048 -eb inc -384 if npo == 3 -he dec -10 if qby != 2614 -e dec -317 if e > -906 -e inc -662 if d >= 2946 -s inc 941 if npo != 0 -xoc inc 765 if e <= -1235 -b inc 434 if ty > 354 -e inc 513 if anb > 880 -cox inc 146 if mk > 734 -mk inc -31 if alf == 316 -qby inc 887 if mqk == -547 -obo dec -87 if mqk != -536 -he inc -230 if tm != 2217 -e dec -469 if alf < 326 -alf inc 608 if d != 2950 -mqk dec -78 if v < -4355 -b inc -865 if ty < 356 -s dec 57 if npo < 7 -npo dec -100 if cag > -4428 -cag inc -217 if red > -1522 -b dec 338 if k == 2898 -npo inc -324 if k <= 2906 -mk dec -763 if obo >= -1687 -e inc 760 if d > 2945 -e dec 984 if v == -4350 -obo inc 651 if he <= -1126 -red dec -380 if d >= 2950 -b inc 11 if k > 2888 -v dec -406 if red <= -1142 -anb dec -900 if e <= 501 -ty inc -2 if mk != 1471 -tm dec -655 if qby > 2619 -k inc 142 if mqk < -540 -ev inc -346 if xoc != 1265 -xoc dec -284 if k >= 3032 -d inc -908 if k == 3040 -e inc 36 if swy == -41 -xoc dec 372 if alf != 930 -s dec -327 if xoc != 1159 -e inc 56 if ty < 343 -v inc -445 if npo == -221 -xoc dec 265 if s >= 2746 -k dec 604 if swy >= -42 -alf inc 918 if eb > -2662 -mk inc -227 if cox != -150 -cox dec -693 if qby <= 2614 -d inc 88 if k != 2434 -tm dec -278 if k > 2428 -v dec 384 if red <= -1145 -npo inc 854 if ev != -1390 -he inc 69 if xoc >= 893 -d inc 587 if eb <= -2650 -b dec 873 if anb == 1785 -tm dec -557 if mk != 1230 -k dec -335 if k <= 2437 -d inc -215 if cag != -4424 -obo dec -754 if red == -1140 -d inc 369 if v != -4766 -tm dec -12 if red >= -1155 -anb dec -836 if xoc <= 892 -s inc -170 if cag <= -4422 -k dec -717 if mk != 1234 -npo inc -790 if k >= 2764 -obo dec -87 if red <= -1157 -v dec -894 if ev >= -1401 -cag inc -440 if swy >= -49 -e inc 31 if d > 3091 -v dec -581 if he != -1057 -anb dec 760 if k <= 2775 -swy dec 513 if v != -3295 -s inc 840 if mk > 1242 -npo dec -359 if mqk > -549 -red dec -958 if ev >= -1403 -ty dec -246 if qby != 2617 -k inc -28 if cox <= 544 -npo inc -881 if cox > 545 -ty dec -733 if ev < -1391 -e dec 750 if cag <= -4863 -cox dec -44 if alf < 1843 -mk inc 751 if ev < -1390 -he inc -968 if mk > 1980 -d dec -431 if npo != 202 -v inc 406 if xoc != 902 -tm inc 635 if mk <= 1991 -npo dec 401 if anb <= 1022 -v dec 940 if obo >= -1034 -npo dec 572 if qby < 2619 -swy inc 934 if anb != 1021 -eb inc 499 if swy == 893 -mqk inc 17 if s < 2568 -mqk dec -704 if alf != 1836 -ty inc -301 if mqk != 162 -npo dec 29 if cox >= 579 -alf inc -677 if npo > -409 -mk dec -399 if npo == -399 -cox dec 639 if e == -213 -ev inc 602 if qby < 2617 -ev dec -238 if eb != -2149 -mqk inc 26 if k > 2734 -anb dec -153 if v > -4238 -b inc -331 if cox != 584 -mk dec 411 if s > 2574 -xoc dec -631 if xoc == 902 -mqk dec 795 if d != 3083 -swy dec -911 if anb > 1184 -anb dec 368 if e >= -217 -b dec 463 if qby != 2612 -qby dec -127 if v <= -4226 -alf inc -848 if npo != -409 -obo dec -499 if s >= 2571 -swy dec 165 if v < -4225 -alf dec 71 if mqk == -609 -b dec -717 if d != 3090 -cag inc 721 if tm <= 3694 -xoc inc 304 if ty > 1033 -swy inc 728 if d < 3096 -tm inc -690 if eb >= -2163 -qby inc 979 if ty == 1025 -s dec -175 if swy >= 1449 -s dec 639 if he > -2038 -mqk dec 615 if red <= -189 -he dec 481 if cox >= 578 -anb inc -329 if xoc <= 1532 -anb inc 350 if red != -192 -obo inc 720 if s != 2108 -ev dec -316 if s > 2111 -mqk inc 322 if alf == 246 -d dec -723 if cox > 580 -b inc -301 if alf >= 254 -cox dec 847 if xoc > 1528 -v dec -298 if cox <= -254 -eb dec -842 if cag != -4874 -he inc 483 if eb != -1324 -b inc -160 if npo >= -400 -tm dec 885 if obo == 187 -anb inc -505 if tm <= 2129 -red dec 387 if e < -212 -e dec 761 if npo <= -397 -he dec 303 if tm == 2128 -s dec 308 if b < -3718 -mqk dec -207 if he > -2041 -ev inc -655 if xoc != 1533 -s inc -601 if d > 3809 -ev dec 666 if cox < -256 -ty inc 384 if he != -2041 -v inc -560 if ty >= 1403 -ty inc 446 if obo != 194 -obo inc -570 if cag != -4868 -obo inc 21 if k == 2743 -cox dec -183 if mk != 1973 -s inc -780 if eb <= -1306 -b inc -173 if tm != 2131 -b inc 489 if v > -4488 -swy inc 337 if s < 431 -ty inc 36 if alf >= 240 -xoc inc -941 if s < 427 -xoc dec -533 if xoc <= 600 -eb dec 269 if swy == 1795 -eb inc -718 if swy < 1796 -xoc dec 319 if eb <= -2039 -ev dec 855 if npo < -390 -v inc 208 if d >= 3805 -d inc -846 if tm == 2122 -red inc -636 if mk <= 1977 -d dec 695 if ev == -1764 -e dec -864 if cox == -268 -v dec -913 if d == 2270 -alf inc -364 if cox > -270 -he dec -211 if cag != -4862 -b dec 624 if b != -3887 -v dec -953 if b < -4514 -ty dec 631 if b < -4518 -e dec -496 if obo <= -367 -d dec -911 if cag >= -4872 -mk inc -549 if xoc >= 1117 -alf dec -586 if e <= -971 -cag dec -919 if k == 2743 -qby inc -803 if cag <= -3943 -k dec 18 if k > 2734 -ty dec 537 if qby > 2909 -swy dec 973 if tm >= 2122 -d dec -502 if qby == 2916 -ty inc 50 if he >= -1816 -cag dec 344 if e > -985 -cag inc -967 if anb < 311 -ev inc 193 if npo != -393 -ev inc -934 if cag >= -5265 -ev dec 416 if d == 3683 -ty inc -963 if d < 3688 -s dec -904 if s <= 424 -b dec 52 if b >= -4524 -alf inc -427 if obo <= -363 -red dec -686 if cox > -268 -b dec 551 if mqk == -695 -xoc dec -670 if v > -2428 -anb inc 310 if ty >= 401 -ev dec 768 if red < -519 -tm dec -391 if k == 2725 -b inc -624 if xoc < 1797 -s inc -962 if ty != 391 -xoc inc -482 if mqk > -703 -alf inc -110 if v < -2418 -mqk inc -812 if s < 1329 -cag dec -584 if red >= -529 -qby dec -503 if npo >= -405 -npo dec -592 if npo <= -396 -anb inc -611 if anb < 313 -anb inc -537 if red < -538 -eb inc 781 if cag < -4664 -xoc dec -241 if he >= -1821 -k inc -974 if swy >= 816 -eb dec -649 if ev > -3690 -he dec 258 if b > -5750 -cag inc -618 if tm >= 2513 -b inc -132 if npo == 190 -cox inc -187 if mk > 1427 -tm dec 244 if npo <= 198 -cag inc -21 if alf != 350 -npo inc -332 if ev >= -3696 -obo inc -144 if ev < -3698 -npo inc 652 if k >= 1744 -anb inc 682 if b > -5739 -mk dec -585 if eb > -607 -ty dec -395 if red <= -521 -d dec -118 if cox < -260 -obo dec 97 if d < 3797 -mk inc 561 if s != 1327 -mqk inc 341 if xoc < 1558 -eb dec 136 if xoc >= 1546 -eb dec -144 if b == -5744 -b dec 416 if xoc < 1560 -e inc -688 if red <= -520 -cag inc -846 if cox <= -264 -e inc 858 if mk >= 2009 -d inc 120 if mqk < -1165 -eb inc 275 if anb < -304 -d dec 426 if e <= -801 -obo inc -175 if alf == 358 -b inc 411 if v > -2433 -anb dec -285 if qby != 3420 -e inc -899 if cox != -257 -ty inc 764 if xoc >= 1552 -eb inc 157 if tm == 2273 -alf dec 416 if xoc <= 1562 -mqk inc -251 if d <= 3498 -s inc -405 if e != -1698 -he dec 280 if v < -2419 -mqk dec 783 if e == -1705 -s dec -530 if mk > 2013 -cox dec 601 if qby >= 3421 -alf dec -214 if cox <= -253 -cox inc -280 if v < -2418 -obo inc -617 if k > 1749 -tm dec 400 if v >= -2427 -obo inc -810 if swy == 820 -cag inc 245 if red < -524 -k inc 939 if obo < -1973 -xoc inc -867 if d != 3499 -ev inc 930 if ev >= -3690 -npo inc 490 if npo == 513 -obo dec -127 if tm <= 1874 -v inc -937 if cox < -539 -cox inc 806 if eb < -315 -tm inc 868 if b == -5749 -d inc 370 if cox != 264 -mk dec 735 if d >= 3488 -v dec 651 if tm >= 2736 -d dec 751 if d == 3495 -eb inc 73 if eb == -320 -anb inc 946 if mqk >= -2202 -k inc -879 if tm != 2731 -cag dec 329 if cag >= -5075 -v dec 110 if npo <= 998 -cox inc -324 if v != -4012 -s dec -43 if xoc <= 688 -xoc inc 154 if ty <= 1552 -npo dec 126 if e == -1705 -mqk inc 631 if qby < 3428 -obo dec 875 if k < 882 -eb inc -159 if d >= 2737 -ty inc 158 if mk < 1266 -cox inc -726 if cox != -65 -red inc 699 if he <= -2352 -anb dec 348 if he == -2353 -mqk dec -25 if cox <= -792 -he inc -72 if ty == 1550 -tm dec -396 if obo >= -2712 -mqk inc -730 if alf >= 153 -ty inc 950 if b <= -5741 -qby inc 711 if b <= -5747 -he inc 990 if ty == 2500 -eb inc 691 if cag <= -5394 -v dec 315 if v >= -4001 -cag inc 831 if k == 872 -cag dec -285 if s != 974 -tm inc 500 if k >= 865 -ty inc -407 if ev >= -2761 -ev dec -960 if v >= -4019 -anb dec 698 if cox < -781 -swy dec 265 if cox <= -783 -e dec -962 if anb < 237 -he dec -152 if swy != 555 -npo dec -416 if alf < 159 -red dec 450 if qby > 4127 -cag inc 253 if s <= 964 -cox dec -969 if tm <= 3634 -e dec 442 if qby < 4135 -mk dec 890 if qby > 4128 -cag dec -934 if ty != 2085 -cox dec 905 if k != 876 -red inc 595 if k <= 862 -b inc 105 if npo > 1286 -obo dec 502 if mk == 394 -ty dec 533 if obo != -2718 -ev inc -6 if mk < 386 -npo inc -144 if d < 2746 -e inc -232 if ev >= -1813 -alf inc -78 if ty > 1553 -eb inc -637 if ev != -1796 -tm dec 132 if e != -1425 -swy inc 667 if alf == 78 -red dec -166 if mk <= 387 -swy dec -173 if v >= -4014 -qby inc 788 if qby > 4121 -ty dec 172 if qby <= 4919 -red dec 447 if tm == 3501 -obo dec 366 if alf == 78 -he dec -842 if mqk != -2305 -xoc inc -10 if d >= 2736 -ev inc 517 if cox != -726 -mqk dec 865 if npo != 1151 -obo inc 29 if red <= -552 -qby inc -337 if b == -5644 -cag dec -970 if mqk != -3172 -e dec 343 if xoc != 827 -d dec -890 if v == -4017 -v dec 793 if anb > 220 -cox dec -442 if he == -599 -eb dec -759 if anb > 225 -obo dec 45 if k == 872 -obo dec -534 if e > -1764 -cag inc 344 if npo >= 1149 -eb inc -458 if e <= -1764 -obo dec 55 if mqk > -3167 -s dec -487 if v > -4813 -xoc dec -51 if d >= 2744 -ty dec 568 if ty >= 1387 -cag inc -698 if cox <= -276 -cag dec 162 if mqk > -3170 -k inc 563 if qby > 4579 -alf inc -784 if tm >= 3498 -mqk dec 520 if obo > -2624 -npo inc -780 if qby > 4576 -alf dec 152 if he >= -602 -v inc -614 if eb <= 415 -he dec 659 if k < 1445 -ev inc -49 if d >= 2740 -e dec 302 if v >= -5424 -ty dec -877 if alf < -867 -qby inc 368 if swy != 1394 -anb inc 732 if swy < 1396 -mk inc 61 if ev > -1344 -b inc -66 if cox == -280 -npo inc 11 if swy <= 1397 -swy inc 292 if alf >= -852 -red inc -606 if mqk == -3684 -e dec -460 if cox > -272 -s dec -469 if cag > -2898 -tm dec -717 if obo > -2618 -xoc dec -796 if cag != -2893 -ev inc -145 if tm < 4222 -e dec 892 if red == -1167 -red inc -403 if red == -1164 -tm dec 519 if npo != 389 -cag dec -107 if cag <= -2900 -ev inc -385 if d > 2743 -qby inc -444 if alf <= -857 -ev inc -201 if swy != 1398 -npo dec -851 if s >= 1922 -s inc 975 if s <= 1923 -alf inc -906 if v != -5413 -obo dec 870 if ty >= 815 -obo inc -26 if anb == 959 -e dec -65 if e <= -2951 -ty dec -835 if anb == 958 -anb dec -49 if swy > 1394 -mk inc -253 if mqk <= -3680 -e dec -862 if b != -5708 -qby dec -293 if s == 2896 -s inc -845 if cox != -271 -xoc inc 509 if npo >= 387 -obo dec -758 if mqk >= -3675 -v inc 370 if b < -5703 -cox dec -986 if red >= -1172 -b inc -682 if d >= 2739 -k dec 568 if v >= -5055 -mk inc 451 if alf == -1764 -ty inc -56 if mk <= 645 -eb dec 173 if s <= 2051 -s inc 836 if ty != 764 -alf dec 345 if cag <= -2887 -cox dec 206 if k != 867 -eb inc 44 if s > 2053 -d dec -294 if cag <= -2891 -he dec 904 if swy >= 1386 -ty dec 499 if swy < 1399 -e dec 891 if tm > 3698 -b dec -732 if v < -5057 -qby inc 722 if red != -1168 -e inc -609 if npo != 379 -b inc 741 if e < -3525 -b inc -833 if tm >= 3701 -red inc 282 if ev > -2072 -obo dec 441 if b < -5647 -xoc dec -612 if anb != 1005 -s dec 67 if mk > 647 -cox dec -341 if red > -879 -v inc 316 if qby <= 5519 -mk inc -251 if ty == 271 -ty dec 587 if b <= -5658 -anb dec 204 if d < 3044 -he dec -358 if qby < 5521 -s dec -594 if obo < -3946 -xoc dec -802 if d > 3029 -alf dec -536 if alf <= -2105 -tm dec 209 if cox <= 711 -s inc -142 if anb > 809 -s inc -571 if mqk >= -3676 -npo inc 607 if alf == -1563 -swy inc -438 if swy >= 1388 -b inc 325 if xoc != 3092 -k dec 338 if s <= 2650 -cag dec -748 if he == -1804 -npo inc -186 if npo <= 382 -cag inc -920 if tm != 3483 -swy dec 288 if mk >= 652 -ty dec 362 if mqk != -3685 -alf inc 291 if anb == 811 -mqk inc 203 if red == -890 -swy inc 712 if eb >= 231 -ty dec 327 if v > -5052 -npo inc -453 if mqk == -3684 -cox inc 747 if mqk < -3685 -qby dec 844 if cox >= 698 -cag inc 785 if swy != 1659 -red dec -820 if xoc > 3086 -anb inc -2 if cox < 709 -cox inc 91 if cag <= -2280 -cox inc 988 if mk <= 643 -ev inc 895 if ty != -433 -red dec -411 if npo == -259 -npo dec 831 if npo > -261 -k dec 799 if mk == 643 -qby inc 373 if v != -5054 -e inc 949 if swy > 1668 -qby inc 278 if d > 3037 -eb inc -839 if obo != -3946 -mk dec 758 if anb <= 800 -npo inc -662 if s != 2642 -e inc -807 if e < -2575 -cag inc 755 if swy <= 1669 -e dec -532 if swy > 1662 -alf dec -4 if eb <= -596 -swy dec -552 if ev <= -1170 -d dec -857 if cox != 1700 -anb dec -31 if anb > 798 -eb dec -482 if npo < -1759 -ty inc 820 if d == 3897 -xoc inc -846 if v >= -5054 -alf dec 312 if d != 3895 -obo dec -531 if npo >= -1752 -b dec 722 if ev > -1177 -d inc 912 if ev == -1173 -e inc -497 if cag <= -1514 -b dec 551 if eb <= -599 -mqk dec -130 if alf >= -1576 -obo dec 426 if s >= 2649 -mqk inc 672 if cox >= 1698 -red inc -879 if alf <= -1568 -he dec -503 if cox != 1687 -tm dec 117 if ev != -1173 -he dec 237 if mk < 645 -qby inc 189 if eb != -601 -k inc 820 if k < -279 -mqk inc -594 if obo <= -3421 -k dec 375 if v > -5041 -cag dec 298 if d != 4807 -b inc 985 if ev != -1163 -tm inc -697 if cox >= 1687 -v dec -940 if swy >= 2212 -k inc -260 if d >= 4806 -ty dec 73 if k < -526 -swy inc -530 if s <= 2654 -mqk dec 636 if swy >= 1686 -d inc 32 if qby <= 5516 -v inc -809 if v <= -4103 -e dec 380 if k != -540 -ev inc -651 if b == -5939 -qby inc 352 if alf >= -1576 -v inc -256 if obo > -3416 -mqk dec 28 if red <= -527 -alf inc 395 if npo > -1762 -ev dec 317 if d < 4837 -cag inc 74 if red >= -528 -mk dec -575 if anb == 833 -cag dec 744 if obo == -3421 -mk dec -455 if qby == 5868 -k inc 350 if cag <= -2266 -d inc 730 if npo <= -1749 -ty dec 180 if mk != 1673 -xoc inc 364 if cox == 1694 -anb inc 937 if cox == 1694 -s dec 459 if tm >= 2785 -cox inc -594 if cag != -2271 -cox dec 874 if cox > 1102 -xoc dec 289 if alf > -1178 -e inc -178 if obo < -3413 -red dec -965 if obo >= -3416 -npo dec -47 if ty == -497 -alf inc -264 if npo < -1697 -v inc -518 if alf == -1429 -red dec -264 if swy == 1697 -k inc 540 if obo > -3415 -ev dec 208 if tm != 2799 -npo dec -967 if tm >= 2788 -xoc inc 106 if swy == 1691 -eb dec -276 if s >= 2185 -b inc -151 if mqk == -4812 -he dec 120 if he <= -1534 -e inc -236 if cox >= 1091 -tm dec -25 if alf == -1436 -xoc inc 618 if s == 2186 -b dec 269 if qby != 5876 -cag inc -911 if cag != -2267 -mqk inc -68 if he == -1658 -alf inc -267 if ev > -2035 -cag dec -228 if npo < -733 -k inc -527 if cag > -2043 -qby inc 341 if red == -533 -xoc dec 539 if mqk >= -4879 -d dec 884 if ev == -2032 -mk dec -837 if ty == -497 -tm inc -879 if k == -707 -k dec -32 if tm > 1907 -e dec 771 if ev > -2026 -qby inc -732 if s <= 2192 -ev dec 629 if swy < 1700 -obo dec -799 if e > -4138 -e dec -954 if k >= -683 -ev inc 177 if eb == -329 -d inc -151 if cag < -2032 -b dec 967 if alf > -1711 -e dec 836 if b == -7326 -he dec -543 if eb > -337 -d inc 478 if alf == -1705 -mqk dec 251 if xoc < 3047 -v inc 235 if anb == 1770 -xoc inc 94 if mqk > -5134 -swy dec -106 if s > 2176 -cox inc 591 if xoc != 3138 -eb dec -594 if eb == -329 -he inc -389 if qby == 5469 -swy dec 680 if ty != -487 -alf inc 713 if ev < -2483 -mqk dec 533 if b != -7332 -mk dec -282 if tm <= 1920 -d dec -878 if tm >= 1913 -ev inc -821 if b > -7327 -s dec -229 if qby > 5475 -tm dec -671 if swy > 1115 -mk dec 703 if eb > 262 -cag inc 96 if v == -4682 -alf inc -771 if mqk != -5672 -eb inc 140 if b > -7322 -swy inc -493 if eb != 270 -he inc 826 if eb == 273 -v inc 82 if s <= 2408 -anb inc -898 if tm <= 2585 -mk dec 735 if red <= -531 -obo inc -704 if eb >= 262 -cag dec -145 if tm == 2585 -k dec -952 if swy > 620 -mqk inc 818 if eb == 265 -he inc 229 if b > -7325 -v dec -717 if npo != -746 -npo inc -329 if d == 5890 -xoc inc 820 if v > -3957 -ev inc -751 if alf != -1768 -he inc -105 if npo == -1066 -tm inc -86 if swy <= 627 -npo inc 83 if qby < 5486 -npo inc 829 if mk != 1347 -swy dec -554 if tm >= 2504 -anb inc 836 if red <= -524 -npo dec -878 if b > -7328 -cag inc -276 if alf != -1763 -red inc 215 if qby >= 5469 -eb inc -509 if d >= 5884 -xoc dec -707 if he >= -1119 -s dec 42 if cag > -1801 -s dec 63 if obo >= -4125 -mk dec 358 if cag <= -1793 -eb inc 95 if cag <= -1793 -eb dec -637 if b >= -7323 -ty inc -617 if xoc != 3854 -mqk dec 510 if ty < -1112 -he inc -285 if tm != 2499 -ev inc -547 if qby < 5487 -mk dec -915 if npo < 730 -eb inc -953 if e > -4036 -obo dec 412 if he >= -1108 -npo inc -925 if d < 5888 -ev inc 930 if cag < -1792 -v inc 658 if npo <= 726 -ev inc 892 if mk <= 1918 -ev inc 756 if b == -7326 -qby inc -574 if s > 2307 -npo inc -638 if red >= -326 -tm dec 248 if mk < 1913 -cox inc 865 if s < 2317 -cox dec -950 if d <= 5893 -mk dec -632 if he <= -1108 -v inc 176 if d <= 5893 -mk inc -805 if ty != -1120 -ev dec 973 if npo < 89 -swy dec -601 if s < 2308 -e dec -146 if cox < 3509 -mqk inc 321 if cag > -1803 -xoc inc -534 if alf >= -1764 -d dec 747 if ev >= -3004 -npo inc -826 if obo != -4120 -xoc inc -343 if ev < -2994 -b dec 415 if anb <= 1708 -b dec 323 if xoc > 2976 -b inc 697 if ty <= -1118 diff --git a/2017/inputs/day_9.txt b/2017/inputs/day_9.txt deleted file mode 100644 index eb4d605..0000000 --- a/2017/inputs/day_9.txt +++ /dev/null @@ -1 +0,0 @@ -{{{{{<!!!>!>'!!!>!!!!!!!>u!!!!!>},<'>,<!>e{o!!!>!'>}},{{{<!!u<>},<!!!!!>!'!!a}!!!>,<!>!!!!!i!!,e!>,<i{o!>},<!!>}},{{},{{<e},!>},<!{"!!'e'>},<auu<oa{!!!>!i>},{<a!!,'<!>>,{<a}!!!>a>}}},{{{{<!!'!>,u!!,}!!!>!!"'!!!>,i!!e>},<!!}<!>},<!!!!'i!!!>ii{!>},<!>,<!!"!>">}},{<!!ua<!>},<{!!!>!>},<!<e''!!!>ou!!!!!>!"!!!!!!!>!!>,{<!>},<u!!a!>,<!><"ui!!,u'!>,<!!!>!!o!!a>}},{{<"!!<<!>,<!>},<o{<e!!!>!!"<!>},<o>}}}}},{{{{{{{{{<!>!>,<,>},{<!>,<,}!>},<!a"!!!>},<,!!!>,<!!!>!!!>'>}},{{<{}!!e!!!!>},{<e!!!><!!!!'!>,<ea!!u'i,e{!i>,<""a!!!>},<o>}},{<!>,<!u<!!!!au!!!>!eia'!>},<!>,<!<>,{}}},{<,oo>,{{<!>},<ei,{<oeo,!!'a!!!>!>},<''>,{<{e!!!>!!!>}>}},{{}}}},{{<i!!'}u!>>}}},{{{{<!>,<oe}'u<!>,<e"e!a>}},{{}},{{{{<!!!!!>o!!!>!!"o!!!>>}},{<'>}},{<e>}}},{{<!>,<!!o<<!>i>}},{}}},{{{<a!>!>},<!!!!{!a,!!!>{!"i!}oie>},{<e!!!!!>,<,">}}},{{{},{{{{{{<{uu{'!!>},{<>,<!aeoae>}},{{{<!!!>,<!<<!>,<!!!!i<!!!ue!>,<ui}o!!e>}},<!>,<!!e"i!!'{"'>}},{}}},<'i!!ueiu,!>},<!>},<!>!!<"}!!!>,<!>},<>}}}},{{{{<,!>},<',!!',ei!>!>},<!}!!!>i!!}ee,>,{{}}},{{{<'a'!!e!"i!>o!!!>!!!>!!!>{!!!>,<,>},<ei!<!!<!{e{ua>},{<!!!>,<{!!!!!>!!,!!!>>,{<,!!>}},{<!>,<!>!>}e!>},<!!!>}{'!!!>o>}},{}},{{{<!!!uu!!!!!!!i<>,{<,}"!>!!!>}o!>,<>}}},{{{{{<!>,<u!oo!>,<!!}a<>},{<!!!'!>o>}},<o!>,<!<!>,<<ii>}},{},{{<<!>,<>},{<i!>"o!!aue,>,<i!>},<!>},<<!!e!!i>}}},{<!>},<!!{"!>,<!o!}!>},<o,o'!>!!a,e!!!!!>,<>,{<u"!!!>!>},<!!>}}}},{{{{{<!>},<!!!>!>,<o>,{<!!!!!>!!!!o!>},<!>u!>,<!!!>i!o!>!e<!!!>''!>!>i>,{{<,u'!>i"o!!"}>}}}}},{<!!!!'}{>}},{<!>"}{!>},<!>},<i<!!!>,<i<>,<"!>,<"u>},{{}}},{{{{{<!!'e!!!!!>>,<!!a{o!>u,,o}"{>},{<!>,<<,!!!>,!>o!,!>,<!!!!'>}}},{{{<uo!!!>!>},<!>,<e>,{}},{<!!'a",!}!!!>!!i>,{{},{<!!!!!e!!"e!>},<'{<!!!>},<o!!u!!!!!>{{!>,<>}}}},{{<,<!,!!">},{{{}},<!"o<o!!}!>},<!>,<{!!!!!>"o!!<,e!o!!!!!>},<!>},<>},{<i!>},<>}},{{<'!>!>!>,<>},<"io!!!''!!!>!!o!!o!!!>,<<i<i!!!>!>,<>}},{}},{{{<'i!!!'}!!!>!>!!u!!!u!>oo!>},<>},{<!!,i!>,<!!a!>!>,<u!>},<ae>}}}},{{<{i!!iu!,!!'!!!!{"!!!>>,{<!a'>}},{{<",!>a{a!!{i!>,<!>},<}u!>,<!>!!oii>},{{<'u!!"!!!>}a!!e!aa!>,<i!!!>!!!>,<<>},<!>},<"}"!!!>i!>,<>}},{{<!!u!a',"{>,{<'}"!!!o!>},<!!'!!<a,,"!!,uo>}},{<e!>,<e{!!,}<!!<!!eu<<uui>,{<{!>,<"!>,<,!!,!!,e!!{{a,!!!!!>},<<a>}}}},{{<}!>'!!{,<!}!!"!!e!!u"e,!!i>,<!!!>e!>,<!>},<!!!!!>>},{{{{{{<!!""!!!a!u>}}},{}},{{<eio>}}}}}}},{{{{},<!!'<!!!>},<u!>!!!!i}e!!},!>,<{!>,<!!!>>},{<'!'''!>o"},!!e{!"o!>,<u!!!>{!>u>,{}}},{{{<!>,<u"o"{!!!>!>!!o!!}iou>}},{{{},<io<!!'"!>,<!>,<!!!>a<>},{<!>,<a!>},<<o!!!>{i!!o>,<!ao!>,<!!"!!u{!!{!!!!<!!e<!!a}{u}{!!!!a>}}}}},{{{{<!!!><!>},<!>},<a!"!>,<,!!!!!!,!!!>,<a!!e>}},{{<!!o<!u!!ee{>},{<!!!><<o<"e>,{<!>},<{!,!!u!!!!!!!!!>},<!!!>,!!!>i!!{<!>,<!!>}}},{<!!!!!>o!>'<!{<{!!{!!>,{<"!>!>!>},<!!!><'{o{e!>,<,a}!!i>}}},{{},{},{<!!!!a!>},<!!!}!>,<!!!>e!!!!!!!!e}!!!!a!!'}">}},{{{{<!>},<i!!!>!>},<uu<o{io>},<e<!!!>!!!>i}!>,<<>},{},{{{},{<i"!!a!!i!!!!}!>},<!}{<!'o!uu,>}},{<u!!eo!!{eo!>,<'!!!>{!!>}}},{{},{<!!!>'""!o!>,<>,<i<!>!!!>ue!!!>i{'!u<<!!!>,!,>},{{<e>}}},{{{},<!>,<!!!>,i}},!>,<!!e!!>},{{<!!!!}e!!i!'"!iu!>},<!!{!!u>},<u!>>}}},{{<"}<!!!>},<ou!o}!>,<>,<!!!>'!!!'u!!!!!u!!}>},{{<!!!>!>},<}>},<!!<!"!,'u!!!>!!,a','>},{{<u>,{}}}}},{{{{{{}}},{{{{{<aa,,!>!>,<>}},{{<oo>}}},{<}!>,<,{i!!}!>},<!!!>>},{{{{<a!!!>,<!'<!>"!!!>u<i!>},<a}'}!<ie>,{<!>,<o!!!!!>i"a}!!}a!>i<!>},<!!!>!!a!!!>>}}},{{},{}},{{{{<!>,<"u<!!}ui!!e<!a}u!>},<!!",>}},{}},{{{<">,<!>},<!!!>!!u>},{<!>,<{>,{{<"ie!}!>a!e>,{}}}},{<}i''ua{!>},<>}},{{},{<!>},<!>!>},<o},!!!>!>},<<!>,<u{,!>},<,a,>}}}}},{{},{{<,"u{>},{}}}}},{{<,!!i!!i!!!!"a"!!!>!>,<>,<e,a,}!>,<<!!!<>}},{<!!!!!>!!ou>,<<!>},<}u!!!!!>{!!,!>,<i!>,<>}},{{{<a!>{!>},<!>">},<a!o!!!>!i"!><!>,<"i}!>!>!>a>}}},{{{{<a>,<!!!>!>e!!>},{<!!a!!>},{{{},{<i>}},{}}},{{{<!>},<>,<"'<<!,">}},{{<e!!""!e!>"iaa,a>}}},{{{}},{{}},{}}},{{{},{<!i>}},{{}},{{{{<<!>},<{a!!!>!!!>}ua!!!!!>a>},{<ea!!{i!!,!!a"}!!}{u'!>ae!!!>'>}},{<>}},{{<!>},<!',!<<,!>,<>,<{,"ea>}},{<u,o!!u>,{{},<}!!{!>},<i!!!"<!!}!>},<ieo!>!>,<{!>},<!{!<!>,<!!u>}}}},{{<!!"',u"}u!>,<>}},{{{<u!>,<!a!!o>},{<!>},<!>{!>'!!u!!!!'!>,<!!<!>,<!!!>},<},!!!!'>}},{},{{{{<<ou!!e!>},<i>},{<}{!>},<!>,<!>"''!!!>a<!!!>o!!!>ue>,<!<,'!>,<<!>,<o}!!!>,<!!!>}o!!ea}>}},{{<!>eo,a!>!>},<<a!'!>},<"!u!{i!!!!e!>,<,!!u>},<{}>}}}}}},{{{}}}},{{{<,au'!>},<oo!>,<!i},}"!>},<>,<i!!!!!>},<{!!!>!>!!o'"!>!,"}!">}},{{<!!'ia!!o{e}'!>!>!!!>",!!!!!!!!!!!<!>},<>,{<!!""}!'<"{!!!>>}},{{{}}},{{<!!!>i!!!>!>},<!!!!!>!>e!!!>,<!>},<!!}eei<i!!!!uu>},{}}},{{<>},{{<!i<!!a}u!!!>"!>,<'!!!>,!>},<<!>},<ui!>,<>},<<!>o<"!!!!e}}!!!!}!!!>!!">},{{<,<!!!>e>,<!e!i!>i{<!}!>},<}!!!>>},{{<"e""!}u"!!!>!>,<!!">},{<!!!>!>},<oo!!!>'!!e!!!>!>,<!!!>,<{iau!>},<eo'>,<!>{u{e!!"}u!!<!'o>}},{}}}},{{{{{<!o!>},<>,{<o{ee!>}"!!!>},<!!o!>!!!!!>!!!>},<!>!>,<oa>}}}},{{{{<{i!!uu',",u>},<a!>,<"!!,i,!!a!>!!o!>,<!a!!e,!>},<>},<,o<!!!>!!!>o!>o>},{},{<'u!>,<!!!!>,{<i!!!>!>},<!!i!!""{!!e}u!>},<i}!!'e!!!>{'>}}}},{{{<e!>},<,!>>,{<""a'oa<!a}!!!>!>,<>,{<!>},<>}}},{<ou!!!>,!!!>,<>}},{{{<e{!!{!!!>!!!>a!!!o!!!>!!'e!>,<}o{!>},<!!">,<,'>},<!!!,!}i!>oa!>,<i"<!!<',!o>},{<i!>},<>}},{}},{{{{<,{!!o!>i>}},{<oe!>,<,"o!>},<a>}},{<i'!',!>,'>,<o<a!>},<<!>},<!!!>"!!!!o<a>},{}}}},{{{{{<a!iaou>},<!!!!!!!>ua,!>o"}e!>},<e,>},{{<,!!!>!!!><o!>,<!>,<<!>},<!>{a{i!>},<u>}}},{{{<>,{<!>,<u'i!o!>},<>}},{{}}},{{{<>}},{{<'!>,<!>},<",!!o}}{!>},<oo!!!>>},{{{{<'}!!!>,{a>},{}},{<!!!>o'!u"!!!>,<!!!!!>!a!!!>>}},{{<'!!!>,<'"}>}},{}},{{<!!!>e,o<uao>,{<<">}},{},{{{},{{<{e!!!>{!!!>},<"!"!!!>!>},<>},{<o'!!!>{>}}},{{{<'!>},<,!!e>}}}}}},{{<aioa!>{{!>,<",!>,<!!o!!a>,{{<}!>,<<!!!!!>!>},<,'{,}!>{uiu,!!i">},<!!!>u>}},{{<!!!>!!!!!!!!!>ae}'"!ua<i,!!!>,<oe!!!>>},<}!>},<!!!>}}ui!}u>},{{},{}}}},{{},{<!!!>,<!!!>o!!!!o'!!!!!>{u!>,<!>},<'i,!!}<!!,>}}},{{{<u'a,!!!>i>}},{{{{{<!!!>}e,""!{!!!!""!>!!!>ea>}}},<!!!!",'!!!>,<!!!>!!!>!<!!!>,<}>},{{<'!!!'!>ee!>,<>,<!!}!'>},<""!!!>},<i!o<!>,<eie!!",!>e>}},{<!!!>},<i!!!>'"!!!>!!<!>},<a!!,!>},<>}}},{{{{{<!>},<u!>,<!>,<!!{'!>},<!>},<<<>}},{<a!!!!!!!>!>},<<!o<"u<a'">,<!!!>,<'<!>},<!!!e!>},<!!!>oe,!!<>}},{{{{<u''!a",<io!>,<!>'a!!!>,<!!{"!!u'>},{<'!>},<!>,<!!a!>!>},<a!a!!,>}}},{{<!>},<oa>,{{{<!>},<!!o,>}},<i}u!>},<a!>},<<<!}!!!>!"e<!!!>!>},<}i>}}},{<{>,{<!>},<!>,<}{a!>,<u!>},<e!o>,{<!{e!!!>!>,<e!,!!o',>}}}},{{<'!<<i,a!!!!!o>},{{<<"}'!>},<<ao>},{<!!o!<!!!>>}},{{{},{{<!aoa{!>,<i!!e!{!!!!e!'ao!!!>,<}!>!!!>e!!{>}}},{},{{<i!>,<!>},<!>},<!>iaeo>},{{{{<!!u}!!!!,!!!!"uo!>,<<'o!>,<!>},<'i!!!>},<">},{<ii>}},<,>},{{<!>},<!>},<>,{<u>}},{<!>},<!!!!!!'"!!!>!>},<{!!!>i!>ao!>i>}},{{}}},{<i!!'!!!>e<{o"!!!!!>'>,{}}}}},{{{{<ou!{"!>},<!>},<>},<!!!>iauiui!>},<>},{<!!}e}e'!>,<!!!>>}}}}},{{{},{<!!!>}eoei!!!>u!>},<ie!!!>">,{{{<e!o!>},<}!>},<!>!!ie!,!!!i!oi!!!>},<!!!>>}}}}},{{<}!!e!iieu!!'>},{{<!>,<!!!!!>>,<}o!!!>>}},{{<!>!!u!!!>>}}},{{<!>},<<!>},<},,!!!<'u,!!o!!i<u{">,{<!>,<}!>,<!>!>,<!!!!!>!!!>!!!!}u"}i>}},{{{{<{e!>,<e{'i!oiu>},{{{{<>},{<"e!>},<ie">}}},<uu'<{<!>,<,}!!!>!!!!!>,<!!'o!!u'{>}}},{},{{},{<!!,'}!>!!!!!!!>,o!<!!!>'!>,<>,<o}!>!>,<{!!e!!,!>!!e!>,<!>i!!<{>},{}}}},{{{}},{{{<!!eu!!{o!!!>!>!!!!!!"!!!!>}},{},{<!!!>!!!!!>'oaii!!!>e!>,<!!!!!!!!!>!!!>o!>},<!!!>a>,<!!!>'!!i}u'{e!'!>e!>'!}!!>}},{{<!!!>!>},<o!!!}!!!>}'!!!>>,{}}}}}},{{{{{},{{<}u!!!!i<e!!a,i>}}}},{{<!!<}{<<u}u!>{ioe!!>,<''!!'e}!>>},{<u}eai>}},{{<'!,o>},{{}}},{{}}},{{{{{},<!!<u!!{o!}!!!>"<!>,<!,>},{{{},{}},{{<i,!>!>,<"<!}'!>,<!{>},{<!!!>}a!>ae!!!>o!!u!!"e!!<'o{>,<u<!{!>},<{>}},{{{<{}eeoua!!!>},<!!o"'{{>}},{<u!!!>!!}!!!!!>!u>},{{{<!!!>!>,<'a!>}!>!!<,u"!>!,{e<>},{{<!!eu!e!aa"'o'"!>u"'<!>>,<!>},<!!>}}},{<,eo'}o!'{>,<ia,!>i!!a"!!!>!>},<}!a!!!>!!!!!>,<ee>}}}}},{{{<!>u!!o'!!}!!!!!>!!!>>},<e<!>},<u!!>},{{<,!>!i!!<!>,<!>},<!>!>,<!!!!ao{<ae,,!>},<>,<<"e!>!>!>,<u!!!!u!!!!!>,o!>,<o!!!!!>},<a>},{{}}},{}}},{{{{},{},{<"!"<"!,!!!!!>eau!>,<,>}}}},{{{{{{}},<o<i!!!>,!>,<a,!!!>!!!>!!!>!<<<>},{<a{ue>,{<a!>!>"i!o,!!{!>},<a!!!!>}},{<"ia,i>,<'!>ioi!>},<>}},{{{<>},<!!<,e'au!!!!'>},{},{{<i',e!<!>,<'u,>}}}},{{{<o'i'!!<{!>,<a!!o!!e!!,!u!!o>},<,!>,<<o!>,i!>>},{{{<},}!!",!>!!!><>}}},{{},{{{<!!!'',u'a!<a!!!>},<ou!!!>!!a>},{{},{}}},<}a!!!,'a',!>u>},{{<!u!!!>ia{!!o!!!>},<!>,<!!<!>},<!!!>"!>,<!!!!}i>},{<!>,<!>!!,!>,!>>,{<}i>}},{{},{{<''!!e<!>},<a!!!>e{!e>}}}}}},{{{{{<"u!>!!!!>,<a!!o!>},<}!>},<!>i!}'>}}},{{{{{{<,,!eaa!u!!oie!<,!!!>!>},<!>,<!>{u{!!i>},{<"<i,!a"!!eo>,{}}},{{},{<!!!!e!>},<'!!!!,!!!>!!",>}}},{}}}},{{{<i{}'>},{<{!!!>,,!!e!>,<!!!!!>a"!u!!!!e!>,<{!!!!!',<>}},{{<!!u!!,!<}}<,<>},{<"!,!>},<{a!>},<}}>}},{{<<!!!>}!!"!>,<}!!i""'!!!>{>,<!!!>},<!>,<{!u!!'<io!o{>},{{{{{}},{<!!}!>!'u>,{<'u!!!>,<!eo<!>,<!!!>{>}}},{{<a{o!!!>"!!!>'}e!>,<}>},<!>,<}{!!!>!!!!"!"!>!!!!,}<<>}}}}}}},{{{},{{{{<,!!!>,!>},<!>,<!>},<>}}},{<!>},<>}},{}},{},{},{{},{{<u!>},<ieo!{!!<'"!u<!!!>!!!>,>,{}},{},{{{<o>},<,>},{<<i!a{{{<<!!!>!!!!o>,{<!!{<a!!!>u!>},<,!!!!oo!!!>!!u"!>}!>,<>}},{}}},{}}}},{{{{{{<<!!!!!>i!>!oi}oeuu>},{{<,{!>!>!!!>!!!>},<!!!>!!!>!!!>!!,'!},o!}>}}},{{<!>a!!iu{!e>},{{{<{!!{!!o!,!!!>>},{<!>},<!>},<"oi!"!!!>!>},<>}},{<!>},<i!!i}>},{<ue'!!a"uu{!>,<!>},<uuaa{!"!!!>>,<ee>}},{{},{{{},{}},{{<a!!!>!!!!!!{!"{e}e!!,!>ae!!'},!>},<!!!!o!>},<>}}}}},{{<!!!>},<>},{<u!!!>!><,!!!>},<!!!!<>}}},{{<{<e!<,!>},<'i!"{!>},<!>,<!>,<ie}>,<{,!{},!>e!!!!!!!>!","ua!}!!<'!!u'>},{{{{<!!!>!>,<!!e'u"'<"!"',,i!!i}<a>},<aoie}!>},<'}o,<>},{<'!a!!{"u!e!><i!!'!!"o!>,<>}},{<!>!!i!{{o!!!!!>,<!{!!i<e!!{">,<e!o'u,!!!!uu!!!}!>},<,!!}>},{{{{<!!!>,i""{!!!>},<!a,>,{}},{{<!}!!!>,o!>}"!!o,!!>},{<!>},<"u}!>"!ae!{!<>}},{{<oao}}a"i{!!!>,<o{>},{<o!!!><a!!!>u>}}},{{},{}}},{<!>!!!><",{}!>ee!>,<!'!!!eu!!!><!!>}}}}},{{{<e}!>},<!!!>!!o!!!!{{!!!>!>"a!>!!!!!!>},<!>!!!!!>!!!>e>},{{<!!a!!!>}!!{ie,!!<!>!!<e!}eo!>},<,}>,<!!!!}!>i!>,<,!!"!>},<}!>o!"oo'o!>},<>},{{<{{!!!>ua'ei'!!<>},{}}}}},{{{{{{}}}}},{{},{{<!>iu'!>>}},{{<!!ouo,!>},<i!ii!>},<o!!!>,<>},{}}},{{{{{<}<!!!>},<"}<oa!!''!>'!oe!>,<!>,<iu>},<{o<<a>}},{<!,<!!!>},<>,<>}},{{}},{{{{<!ua""<o{<!!!>!>},<'i<"!",>}},{<a{!!!>,!!i!",!>,<!!i{>},{{<a!>"{aia<!!!>!!!>,<u'!!u,>}}},{{<i!>},<!{!!!!!>},<,,!!}'!!!!ae"!>,<"i!>,<o}>,{{{<,!{o<!>},<!!a}}i>,<!!'!>!oi!!!>!u<'"e!!,{i>}},{<uu{!e!!!>}}a!,o!!a!{a>}}},{}},{{{<{!>,<!!}i!>,<}{!!!>!!!>,<i"!>,<oi"}'>},{<o!>,<!!!!!!!>,!>},<!<!"!!<!>!!!>e,>,{<!>},<!!<o!!'<}i!>!>,<u!>,<!>},<!>,<!>,<!a!>,>,{}}}},{{},<aee}}u!!<}!>i!>,<>},{{{{{},{<!!!>!!"'{!!,'}>}},{{},{<!!!<>}}},{{<'a"!>e!>},<',>},<io,,a!!!>!>,<i!e!!,!>,<,,eu!!!>!!u!>,<>},{{{{<,!}<!!!!{!>,<{!!!><ia}e!>},<{}e>}},{<!!!!!!{a,>}},{{{{<i,e!!{!!!>"o{uu!>},<>},<!>},<!>!!!'!!i!>!"a!!}!>,<"'!'!>>},<{!!!>,<!!!>a!!!!{""!>"!!"'u!!!!!><!!!>>}}}},{{<!!}!>,<!>},<'!!"!"<!!,<!!!!!>!>>},<!>{}!>!>},<}}"ao!!!!ua!!{!><">},{{<!!!!!!ou<!!'u!>!>},<!>,<{!>!><>}}}}}}},{{{{<'}u!>,<{!!,}!>},<'!"'{!>},<!>>}}},{{{<{a!!!>u!>!>!!!>ae}!>!>},<{!!ua>},{{}}},{{<,!!!>},<!>!!!>>},{<}!!!uu{,!!!!i!>},<{!!!>},<ie<!a"e>}},{{<ou{!>!!!>a!!}!!>},{{{{}},{<!,u'!!!>,<u!>,<ui,}u!!!'!!!>{a!>a>,<,,"!!a!!>}},{<!!!>!>},<o!!{!>oa!!{!!!>a}a!!{>},{{<!>},<a>,{<!!o!>,<!"}!!'!!a",!a!>,<i!!!>o!!e!>,>}},{<,!>},<"{}}}"<!>},<!!e!!!e!!!>,<!!!>,<<!>},<>,{}},{<!!iao!>},<}!!!ea{!!!>,<'uui>,<i"!!!>!>,<u!a"ea!!!>,<>}}}}}},{{{{{{{}},{<,!>},<a{!>},<eoei<<o>,<>}},{},{<i!!!>!>!!!>ii!>!'<!!!>"},},!!>}},{{{{{<,,!i,,ae{!!!,!>!!!>},<!,!!o!!}!!!>}>,{{<}!!!>!!!>'!!!>"!{{!>!!!>>}}},{<!!a!>,<{oia}ueue!!!>eai>}},{{<!>},<!}!!!>!!!!!!ei!io}!!!>!!ue>},{<}!!!>!>i}!!!>,<!>u!>,<!a!!!>!>,<"o!>,<!>,<a!>},<!>,<>}}},{{<!>eo,o!'!!!>'<!!e>}}},{{{{{<!e!>!>,<!!<!!!>!!!!!>}>}},<!>!>'}}!!!>!>!>,<!>!u>},{<!o!!!{>,<!>},<'''!>},<">}},{<<,iiu!'iu!><>,{<,!!{e!!!>o!ai'!!'!!!!{a!>>}},{{<a},!>},<!!!!!><,i{!>"}>},<'<ui<!!a!!''!aa!!!!!>!!!>u'ao!!<!'>}},{{{<!u<e!>,<'{"a'!>,<!>},<!!!>>,<!i'>},{}},{{<'!,e!>},<!!>},{},{{{<<euu!>,<!!,!e!>,<!!!!},!>},<a}!!!!!>a{>},{{<!<ee!>},<o<{i!!}!!!>'!u!>,<>},<}!!!!eai!!!>,<e!>!>!!!!!>>}},{<!!!!!u!!!>!!a{oo,i>}}},{{{}},{},{<!!!>,<{'a!!'a!!!>{<!<e!>},<!!'!io>}}},{{{<i!!,!!e!!aee!!!!!>},,!!'>},{{},<e"o!!u{!>,<{!>},<,>}},{<",!>,<'!>,<!!!>!!u!!{'{!>},<}!!{!oa!!!!e'!>>,{<!>,<!>},<!>,<uie!!,!>,<{!>!!!!!!!>>}},{{<>},{{<!>,<!!a!}!!o'!>!>,<>}}}}},{{{{{{<>}},<u{!>},<e'!>,<,!>},<>},{{},<>},{{<',!,ioe!>u>,{<!>}o!>},<}>}},{{<{a'e,i!>"u>},{{{<!>},<!!!>,i,eo!!!!!>},<eo!>>},{}}}}}}},{},{{},{{{{{},{<a!!a!!!>,<e{>}}},{{<>},{{{<!>},<>}},<<ea,},!!!>!>!!"{,uei!>},<}>}},{<!!',eu'"a}!>o'}!<!>!a!!o!eu>}},{<>,<!!!>>},{<!,!!o!!!>,!,u!!}'!{ee!!i!>,<!!!>!!!>!>>}}}},{{<uo!!">},{<!!u!a!!">,<!!!>!!,}o{>},{<iuoa{!}u',{!!,}'!>,<>,<!!!>!!a!>!!!>u!>,<!>},<!>,<!'!>,<!!!!!><!!!>},<!!<>}}},{{{<!!!>},<!e>,{}},{}},{}},{{{{<,e!!,!>,<!>},<,!!!>a!,!!'ie!>,<o!>},<>},{{<e!!'i!>},<!!!>,!e!!!>!!!e"}uu!>},<u!i'>},{{},{{{<o!><!!o<"!'!!!>,<!>},<!!!>!!!>e'u!!!>o!!u!>},<}>},{}}}},{{{<!i<!i>,<{'!!i!>,<>},{{}}},{}}},{{<>,<,<e!!!>,>},<{>}},{<!!!>,<e!>,<<!!,!<!!,ou>,<!!!>o'!!!!!!!>"a!!eeu!o,!>},<o<>},{{<!>},<!!,!!,o,>},{}}},{{<!>,<'o>},{{<aeei{o}i>},{}}}},{{{{},<>},{<{!>},<!!!!!!<!!'e!>'e>,{{}}}},{{{{{{<!>,<e!{!>,<i!u!!!!<!>,<!!!>>},{}},{<oo">}},{{},<',i!!"<>}},{{{<!>,<!!,u,u'}i<!>},<!!!>!!!>{!>},<!i>},{}},{{<!oe!>}'iou!{u!!!!!!}!<!>u<a>,{<{!!'oa}!!!>!!!!,ii!>,<oa!!i!!a>}},{{{<{a}o}!,!!!!!>,<'}{>}},{{{<!>!!i"eeeuo!>},<<aa!{!!!>!!!!!>!>,<>},<{!!'>},<!>,<<<a!!,{'!!<>}},{{<'!>ao!{u!!!>"!i{}i'u,},>,{<!!!>!!iuee!!!>'!!!>,<>}},<!!!>!>},<!o!>,<e!!!!"!>,'e'a<!!}>}},{{{<eou!>o}i!>!!u}>}}}}},{{{<!!}u!>o!>,<u!!u"u!!a",a!>,<>,{}},<}}"!>,<o!>,<!}'!>>}},{{<>,<!>!>'!!!>!>!>,<!!!ai!,>},{<}}!!!><!>!!!>!!!>},<!><!>!!{!{!!}o!}>,<}i!!"!!!>,<,,!!!!!>>},{{<!!!>'!!}!!!>!!!!!>>}}}}},{{{}},{{{{<!'i!>,<ae>}},<!aa!,">}}}},{{{<!!a,"!iu!!e!"'{>},{{{{<uu'i<!!!><!>!>}uieo!!!>!>,<"o>},<}!>}!>,<>}},{{<!!!>'<!>,<!>},<ua{!>},<i!i!}!!i>},{}}},{{<!!u}!!!><a{!u!>"o!!!>!!!>",e">,<{}i!!!>!!!,!!u!!,"}!>,<!>,<i>},{<!!'o!!!!{>},{{{{<!!!>a!}e!!e"!>},<!><!o>},{{<"a""!>},<!!!!,!>}!>},<}'!!u!!!!!>!>},<>}}},{{},<}>},{{<ioo!!u}!>},<<{"!!!!ui!!{>},<"!iui!!!>!!!>'"!!!!,!!o''!>},<}u!!!>{>}},{{},{<a!!oi>}}}}},{{<"o!>},<,!}!!!>"<ao'>,{<e!>,<eu>}},{{},{{<<}!!o!{!i<!!!>,<!!!>,!>},<o"!!!>!>},<!>,<>},{<!!"u!>,<!!oa"'!!!!>}},{<!>},<o!><<<,>,{{{<!!!>{!!'u!>,<!!{o}"!>},<!>,<>}},<!!!>!!>}}},{}},{{<!!!>},<,!>ei'!e!!!>},<u,u!!!>'aui>,{}}},{{{{{<!>,<"oia!!e!!!>!!{!!u!>,<>,<!!>},{<!'!i!!!>o!o{>}},{<',!!{",<>,{<o!!<}'ii!!!>!>},<''!!!>>}},{{}}},{{{},{<!!!>{{!!!!!!a,e!'<!>,<!!!>!!!>u"i!,i!e>},{{<{<}>},{<!>,<!>{>}}},{{},{<i!!},u}'!<>,<!><o!>>},{}},{{{<a!!!!!>{!>,<o>,{<!!!>!>},<!!'a!>ii!!!>u!!oa}}"">}},{<!ai!ua!!<!!!>,<<e}a!>>}},{<u!ea"ue,!!<!<,>,{{<!}"a!>>}}},{<oa!!!>,<{!>},<e!,!>!!!!<u!!i}!>>,{{<,{{"!>},<<!>,<!>u!>!>},<}'{!!!ao>},{<!!!>},<>}}}}}},{{{{<{o'oi!>,<o!>},<ue!>},<ao>},{<!>,<a!!ia!,i}{!>,<!!!>>}}},{{{<!!o!>,<o!>},<!>},<,,{!>},<i!>u!>,<i}>,<e!!!>,<!>,<'!><a<e!>,<!>},<e,",!{!!!>,<i>},{{<!>,<"!>},<!!}!!!!!!!>!!aa!!o'!>},<!>},<>,{{}}}}},{{{<<ea!!!!}!o!!,!!,!!!>!>i!>,<"''!>!!}>,{<,,!!!!!>},<"!>!!!!!>,<o>}}}},{{<!>},<u{!a<"!!>,{<}!>,<}'e!!"<!>},<>}},{{<a!!'}{!>},<{!!!>!!!>,oa"!>,<}''!!!>,<!!}u>}},{<!!'!!'a!>},<!!!>!!!!>,{<!!!>},<{a"u}!>},<!!,!>,<i>}}},{}},{{{}},{{<"!>},<!!,uii"a!>},<a!>>},<aa!>>},{{<!!'>},{<!>!>,<e!!a''!>"!!!>o>}}},{{{<!>},<u'<'!>,<o'"!>,<,"a!>,<!!a!{!>,<!!>},{{{}}}},{{},{{{{<}}}!!!!!>,<!iiue!!"!!>},{}},{<!>!!!!!><!!!!!>!a!!!>!!,<!>},<<aa'!!<u!>,<!">},{{},<>}},{{<e!!!>a<{!!!!'}!>oi!!<!!!!!}>,{{{{<!>}}a"!!,"!!!>!>,<e!!i!!!!!>a'!!e>,{<>,{<{ue!!!!!>!!}!!!>o>,{<!>,<!>}!>!<!>!>},<!!!!!oa!!!>!>},<!>},<}<'>}}}}},<!!"u>},{}}},{<>},{<ii}!!!>}i>}},{{},{<}!>,<!>},<<">,<!>{>},{{{<'>},<>}}},{{{<!{ia!>,<a!!<'!!!",<!}e>}},{},{{{<'u}>}},{<}i!>},<}<!!o}'a,}!>!}!>i<>}}}},{{{{<>},{<!i!!"!!!>},<"!!e}u!!!>},<'!!>,{{<o!>,<!!a"!!<!>,<'!>,<,}!!!!!{!>a!!!!ea>}}},{{<!>,<<!>},<{ao}>},<>}},{{{{<uo!>,<>},{<}<!!>}},{<,u!>},<!>,<}i>}},{{<a!>,<,!!!>o!>!>},<"{oa>,{{<o!>,<!!!>,!{!>},<"}i!!!o!!!>>}}},{<,o!!!i!a{<!>,<!!!!"!,!!!>>}}}},{{<e!!ai!e,!>>,<i{,e}e!>!>},<!!'!!a<>}},{{{<i!>},<!>,<!>},<!!o>,{<"!!!>!>,<>}}},{{},{<!>},<<i>,<<!>,<oi!!!!!>!a!>,<!'"!>,<!>},<"!!!>{>}}},{{<eao!>},<a{a<e"!>!>},<>},{{{{<!!!>!'!!!!!>e!>},<!!",>},<!o<!!!!!>,!!'!!!!,i!>o!!!!!>{!'"u}>}},{{},{{{{<i!<!!,!!!!!>!!!>>}},<!!!>!{}a!!!!!>},<i",>},{},{<>,<{!><o!o!!!!!!!>i"uo}o!!"!!{>}}}}}}},{{{{<,e!!}">},<!>},<e!>,<u!!!>,<'!>},<<!!u!>!!>},{{},{}}},{{<<!>,<{<!!!u>},{{<!,!,>},{<<!>},<}a!!{!><>,{<e!>!>},<,oai!>!>},<!{>}}},{{<"u!>,<<!>},<i!>,<i'<!>!!e!{!>},<!!i,>}}},{{<}!!<!>},<i!!!!<<!!!>,<!>,<!!i!!!!!>!>},<!!!>},<ao,!>},<>},{<i!!!>"a'!!}!!{"{>,{{<!!u!!"!>,<'>},{<!!""u!e!!!!u!>,<io!>,<"u!>,<{'">}}}}},{{<!>!!<oe!>!!!>'!!,<!!<!!!>}!>>,{{{}},<!!!>,!!!>!>"ii>}},{{{<'u!!!>!!!>,<>},<u>}}}}},{{{{<i!!!{,!"!!o"i}!>,<!!!{{>}},{{{}},{{{<ao!>,<!}'!}"e,o!!!!>},<!>!>,<a{e,a<!!!>",'oe<>},{<ae,!!oue}>,{<','a!!!>a!!<!iu!a!!u!!!i>,{<}!!,!>},<!!!>,a>}}},{{<}>}}},{{{},{<i!!o!!!>"!>!!ou!}i!!oo!>},<'!!!!!>>}}}},{<!>!!u}!>,!>i!!!!!!,"!!,!>},<u!!,'>,{<}a'ua!>o!>},<!}!>},<!!u>}}},{<!>,<!!!!!>},<!!e!o!>'!!"!>,<>,{<eu,e!uiioe{>}}},{{{}}}}}},{{{<>,{}},{<o!>},<'>}},{},{{{{{{}},{{<!>},<!!,'ii!>,<!!o,!>},<"!!i'"u}a!"e>}}},<!,<i>},{<!"!e"''!>,<iau!>!>},<i'>,{{}}},{{},<!!!>,<ea!>,<!a!'}<!!!>,<!!!>!>},<!!!!!!!,>}},{{{{<e<e>},{<>}},<!'au!>!!!!!>!>,<'!!',ea'!!o!}}!!}>},{{<!!!>a{!!,!!""oue{o"!>!!}>,{}},{}}},{{{},<a"!><a!!u!>!>,<u{!>!!">},{{{<!!o!>},<ao,o!!!>,<,i<i>}}}}}}}},{{{{{<"e}uu!!,!!i!!!>!>},<"!>>,{<}<!>!!!>!>,<i!!{!!",a<!>},<!>},<!o!>o>}}},{{{{<iuu>,{{{<,>},<!>},<e!>,<}!!!><o!>},<o!!!!}>},<{a>}}},{{<!!!>ie}i<!"a{!!i>}}},{<!>u!e,e!!!!!>e"e!!!!!>ue{{!!"!>},<u>},{{{<,!a!>!,!>},<,,e!!,!,<ui>},{{<auei!!!>{!!!!!!>},<!!!>'}!>,<a!!!>e'"o!>!>"{ou}}!!}>}}}},{{{<!>,<!!'u!u!>!!!>!>,<!!,!!!>i!>,<o"!>,<}>,{}},{<>}},{{{<a'o<!>,<i!'ia!!e!!!"!!!>u'!o>},{<}!!e!!!>>}}},{{<e!>!>},<>}}},{{{},{{{{<!!!!a!!!!!!<u>}}},<'!'<!au!!!>a!<'{e,,!!{a'!!}>}},{<,>,<!!!>!!>}}},{{{{},{<>},{{<!!!>},<"!}{!!'{!!!}e"o!>,<}!>!}ou,!!<>}}},{{<<}!>},<>},{{<!>!>,<!!!>o,""eu!!'u!!i>}}},{{<!>},<iu!>,<e>,<!>},<',o,,{a!!!!o<!<e!>,<>},{{<'!>,<o!>,<!>,<>},{}}}},{{{{}},{{<}!!e!!}!}}!!!>{{>}}},{{},{{{{{{<!>"iu!<!!,i!!!>>},{<u'>,{}}},{},{}},{{<o<}u'e!>,<!!u{a!>,<eaoa>}},{<!>},<{i!>},<o>,{<,!eo!!}>}}},{{{{<!!!!!!!!!><!!!>>},<!!!!!!e{}!>,<!>,<{!,e{}aoo!!{{}>},{<!>},<u!>},<!!!<'>}},{{{},{}}}},{<!!ue!>},<!!""}{!!!>,,{a!{{!!"!!!>,<e>,{<ou,,"}!!!>!!!>!!!""!>,<o,e!}"!!!>a>}}}},{<e!!!>!>},<!>},<u>,<u'!>},<"a"!!!>,!!!>>}},{{{},<eoeo'<eiaa!!,,>},{<!!,!!!>{!!!'!>},<{!>,<ou!}!!!>,'!!!!o>},{{<o!!aa!>!!!>!>,<"!'!!!>!!!!{"a!!!>io<!>},<!>},<>}}},{{{<o"!!!>!!!>},<e!>},<o!!a>,{<ieoie!>,<u!!a!>">}},{{<!!!>!!a!>,<a!!!,!>},<!>},<u!>u">}},{{{}},{<io!!i!>,<!!e{aa!>},<>,{{<!>},<!!!!ui!!,!>!!!!{o}}!>},<>},{{}}}}}},{{{<"!!!>!>,<!>},<,a!'}!!}!>},<u"}!!,>}}}}},{{{<a'"<>},{{<!>u!>{!!i>},{{<!>{!!!>},<o!o!!"!>},<e}i!!!>o>},{<aei<e{",!!>}}},{{{<!!!!!>!o!!!>!>!>},<u{<!!}i!!!>,<!!!!<"'ei>}},{<{e!>"!>,!a!!!>,<!!!{!!!>!!!>{<!>,<!!!>,<>}}}},{{{{{<}u>},<i"!<u}!!u,!>,<>},{<!!!>!>},<}{!!"oeu>}},{{<,"'u}!>!<{'o>,<{!!}!>,!!!!!!,!>,,"!>,<!eu!>},<!>},<<>},{<!>},<'!!!>!>!>},<}<!"!><oua!<'ou>}},{{{<>},<>}}},{{{{<ai!>,<}''!>},<o!"i!>>},{<{!>u!eu{!!!>}'e>}},{<,{!e!!}!!!>,<,i>}},{<!!"i{{>},{}}},{{{{<ui>},{}},{{{}},{{<<!>,<{!!a<!>},<!!!!"a!!!>},<e'!!>}}},{{<u!>},<i!">},{{<e,!}!aea!"!'!!ea>,{<a!>},<!>,<o!>},<!>,<!>>}},{}}}},{},{{{{},{<"!!e!!"!>},<"}!><{}"!>>,{{<!o!!!>uo!!,o!!!!io!!!>'>}}},{{{<a>}},{<e,,!>,,!!i<!}!!{!!!!!>!>e!>},<u>}}},{}},{{<!!!!!!">},{{{},{<uo<!>""!>,<!!}"!>!!!>i!>>}}},{{{<!>,<e!>o!!!>o!>{,'u}!!u',!>},<}>}},{}}}},{{{}},{{{<<!>!!!>,<!>>},<{i"<uu{a!!a!}!>},<!>},<!!!}}>},{{<oaa!>!>},<'>},<!!!!aie>},{<e!>,<u,}<!>},<{iu}'!>}!!<'i>,<oea!>},<!><!u}<a"!>{>}},{<>,{}}}}},{{{},{{{<e}e<u>},{{<a"!>!!!>!!!>'>,<{,'!>!!}!>u<}!!,!!i!!!ei}>},<a!"!!!>>}}}},{{<'!!!>!!o!>,<}',!>o<o!>},<!!i>,{<!>,!>},<>}},{<{!!,!!{<ouu>}},{{{{{<o!{!}!i!io!>!!!!e!!!>!>!>!!!>!>'>}},{}},{<!!!>>,<!!!u!>""!,!>},<i}!>},<ou!>!>{,!>'o>},{}},{{<ua>,{<!!!!!>a,!}!>,<!>iaa>}},{<>}},{{{}}}}},{{{{{<!!!>!>},<{e>},{<!>,<!>,,<i}!!!!!uu,!!!>>,{<!i">}}},{{<!,!u>},{{<!>},<"uoa<au!!!>a!!,}>}}},{<!!aa}!>,<!>,<au!!!<o>}},{{{<!>!,!!u!!!>'<!>,<,!>!!>},{<!!e!>uo!!'ai{a!>>,{}},{{<o{!><i{!!!>!!!>!>>}}},{{{{<!>!>},<a!}!a!!!!>}},<!>},<,<'o!!!!,uiu>},{<!!e}{"u!!!i!>},<!!a!>!!!!!}'>},{}}},{{<!!'!!!>,!""!!!>,'!>},<{o!!}!o<>,{<"o!!"!!uu>}},{},{{}}},{{},{{{<!>},<{!!!!,!>,<>,{}},{{<oie!!i!eo!!!>{!>},<<<>}},{{}}},{{<!>},<!>!!ae!>,<>},<!>,<!{!>!>!>},<'i!!>},{<i}!!!a!>u!<'>}},{{{<!!aee!!!>!>,<!!!>u"}!!"!!i!>!e,i!!{,>},<e'oa{!!e!!}'a!!!!!>>},{{}}},{{{<a!!e!>{,i"i!!!>}!!"!!!!!>},<uu!>},<">}},{<!>!>},<!"a}ee"!>,<{!>,<,oe!!!>!>!>,<!>>}}}},{{{{{<!>,<{!!o>,{<{,!>e}!e!>,<>}},{},{<!>},<<!>,!>u,!>,<!!!!!>ae'>,{<!>},<'!!o!>},<!!e}o}!!!>!>,<e!>},<'i{!!o>}}},{{{<"!!{}"!!,,!>},<i<"e}>,{<>,{}}}},{{<u'<!!'!>},<!!!>>}},{{<!>e!!!>},<!>,<!!!>i!>!>},<ae,{u!iu!!!>u}!!e>},{<!!!>a'i!!au!{u!>},<!>},<o},u>}}}}},{{{{{<!!!ee"!>},<!>,<a!>},<a!>a!>},<}<!!"!!!>>}},{{<!!!u{<",ao!!u,!>,<'!!!>},<!!!>u>},{<ueea}!!!>{!!!!!!!!!!!>!>},<!!>,{<!!!!!>o'>}}}}},{{{<'!!!>!>o{""<i"}!"!>},<!!e!!!>!>},<{>},{<!>!!u!>},<!!,'u!>},<!>"u!>"!}!>{a!!!>},<}>},{{<!>},<e!!!>}"i{>,{}},{{{<a'!>,<,o!!!>,<e'}>}},{<!!u'!!<,e{e!><i!!!>a<>}},{<o{!!'!!!>!!{}!!<{}!>!>,<!!}>}}},{{{}}},{<!>o"u!{u"{!>,<'!!!!!>!>!>},<>,<!,a<{!!!>!!,i!>!>},<e<<!>a>}},{{<,>,{}},{{<!!o"!!!>>},{{{}},<ea">}}}},{{},{{<!!eeou{!!!>ai!>,u!!!>,<!}'!>,<!<{>,{<!!!'!<e>}}},{},{{{{<u!!!>u!>,<!!'!>,<}a!!,!>},<i!>,<>},{}},{<i{!>,<!!!>{!>!>},<!>},<{a>,<oi!i{!>o!>!!{e!>,<}!!!>>}},{},{{{<>}},{{{<!!!'!,!>e!>o<e!>i!>,<>}},{}}}}},{{{{{{{{},<!>},<o!>,<!!'eo!!!>},<!!i!"!>,<!!!>!>ie"ae>},{<!!{au!{!!!i!}a!!!>,<o!u}}!!!>!!!>,<!!!>>}},<ui!!!"","'}!>,<,!!!>e!!,!>,<!>},<!!e!!!>,<!!!!i>},{{<!>!!}"e}{!oe!'}!>!>a,>},{<!{!!u!>},<>}},{<!!!,!>,<o!!!>'''!{!!!>'!!!!!>"!>},<!!>}},{<o!>,<o"i'!>!eo>,{{{<u!!!>,,!!!>!>!>,<!>,<>},<!}!!!>e!a}ao!i!>aau,!!!!!>e>},{<!ee!o,}!!!!!>>,{<!!">}}}}},{},{{},{<!!'a!{!!!>!!{,!>!!u}!!!>,<>}}}}}},{{{},{{{}}},{}},{{{{<uu!i{}!>,<'!i>},<{aa!>,<<e!>},<<!>a!>>},{{<<a<ue!>},<o!!!!!>},<{!!eea!>,<>},{}},{<!>},<"eo!!!!o,a!!"u!!>}},{{{<}}!>,<!!o!>},<e>},{<!!!!ao!>,<!!!!!!!!!>!>!'e<<<!!!,o,!!!>!>,<>}},{<}},'!>e!!!>!!!>!a}<!>,<!!!>e}!>},<!!!>>},{<,e>,{<!>,<eu}!!!!'e"!!"!i!!!>o!!i!>"!>>,{<'}o!!u<!!!>!>},<<a<!>},<!!i<{!>,<u>}}}},{{{{{{<!>!>},<"io>}},{<'!e{!>!>},<!>,<!>,<ii}>}}},<u!!"!!!!!>,<i'e!>},<'i!!!>i{>},{{{{<!>,<a<"<{>},<u!'!>},<!!!!}{!>!!!>!>},<o>}}}},{{{{},{{},<a!!!>!o!>},<i!!!>,<'"e<}!!>}},{{}}},{{<{,!!!,!!!>},<"!>!!!>},<!!!>"'"'!!!>!!!>!>,<>}},{{},{<!!>}}}}}},{{{{<aao!!!>,<'{u"u>},{<!>},<{!>},<i!>ii!>},<!>"a<i!!>}}},{{{{{}},{<"i!!{>,{{{<!><!>},<a,,!{!!!i,!!',,'ae>}},<euio!iu!!!>!!""!>a!>},<"oa>}},{{},{<!!'}!>,<<},!!u,,!!!>!!!!,!!!{',{!<!!o!!!>>,<e{!!>},{{<<!>},<}"">,<a'<!!ouo!>,">},{}}}},{{{<{{!!"!>},<""{!o!>},<!>,<!!!>!>i!!!>!>,<}>},{<!!,"!!!}uu>,{<i!!u<!>},<uo!>,<!!ia!>,<>}}},<!!<!!a<!!!>i<!!!!!a!!ouo!!!!!!!>e>},{<o!{o}o!!!>,!>},<aa!',!!>,{<!!"!!!>},<!>i{>}}},{{<!>!}!>a'>,{{<"a}'eo!!!>,!!!>,<{",!>!>>}}},{},{<!!i!>!!}>,{}}},{{{{{},{{}}},{{}},{{{{<!>>},<}ao!!,'!!u!>,<'}{!!!>o!>},<<!!"a>},{{<e!!i!!}'!!!!!!!>},<!!!!!!i{eiu!>},<!!!>!i!>},<<!>!!!!!>!>,<>}},{{{{},{}},{<!!uo!>,<"!!e!!!!!>,'!!}>}},{<!!}!!!>!>,<>}}},{<!!e"!uuu>},{{<,>},{{},{{}}}}}}},{{},{{<,{e!>},<!,!!ue>}}},{{{{<{!>},<>,{<}"!>!>,<!}"!>,<!!!!a!>},<ea!!!!{>}}},{<!!'o!!!>u<>,{<!i!{>}}},{{<'oa!>},<>},<iio!>!>,<!<!>,<!ie!!{"<}<!!!!!>!>},<!>>}},{{<!>,o!!oe!!{!>,<"e!!!>!>>}}}},{{{},<!>},<}!!a!!!>e!!,!!!>,!!!>!>},<<o!!i!>},<>},{<!i!!!>!>},<!!!!!!!>,<<!!"!!!!a!!!!!><u!>,<>,{{<'''>}}},{{{<!>o'!>i{!>},<!>},<a">},{{<!!e>},{{<>},{{{<"<!!iia!>,<a<a!>},<!i,!>!!!!o!>},<!!!>,<u">},{<}!!,!>ii<!>,<o}io>}}}}},{{<!'"!<"!!!>,<!>!>},<!}!!a!!"!e<u"oi!>,<>,<!!!>,!i!>},<'i>},{<<o!!'oiue!!!>!eiu}!>,<!>},<!>},<>}}},{{}},{{<!>},<!!!!!>>},{<!>,"!!!!!>!i!!!>!>!><{ae!!!>o!>},<>}}}},{{{<!!!!!>}!!!>u"o''"!ai!>,<!!!!>,{{<!!!>!!!!,!>},<{!>,<!>{<eo{,!!o!>},<'i!<'>},{<!!!>>}}},<!>,<!!!>i>},{{<!!!!!{,iu!a{!>!!!>"!>},<a!>a>}}}},{{{{{<!!!>,<!!!!"<"!!<!a!>,<'!>,<<u!>,<">},<!>,<!!!>},<!>,<e!!!>!!o!!o!!!!o!!!!>},{{<'u!>a!>,<>},<!!!>!i<o!a!!!><}aouu'<,>},{{{<!!!>"!!!>,}ea!!}!>!><!!'"!!<{>,<e!!!>!>!a<!!o!!!>i}!!}>},{{{<!>},<!">}},{<,!!!!!!!><>}},{{<!!!>},<'e>,<i!>,!i,!!!>ea>},{{<,>,<!!!>o!u,i!>u!!!!u!!!!!!!>},<}{!!>}},{{<}!>,,>}}}},{<i}}iu}{!>},<!>{<u!!!!!!o'>,<}<!!<<<,!>,<!<!!"u!>,<u>}}},{{{<!>},<!>},<!!'!>,<!!o!!oa!}!>!>!!!!"{>}},{}},{{{<<!>e!ooa!!!>},<<!!!>",!>},<!u{!!!!<e!!<>},{<}}u{!!"!>},<"!!o!!!><!<!!!>,<e!!!>u!!a!!!>},<>}},{{},<a!>'{"!>},<}!>,<!!!>"e>},{{<!>},<>,{<oe!!!>!!u>}},{<!!!!!>},<!>,<!>!!i!>,<!>}},!!!!e",>},{{<}!!!>!>},<!!a'oi<>,{{<"ou!!{{!>,<''euu>}}},{{<i<<o>},{}}}}}},{{{{<uu!!!>,<!>,<e!{,!>,<!!!!!>'!!>}},{{<o,>,{<{}oe}!o!>!!!!>}},{{}},{{<<o'!<!>,<{{,!!!>},<'e!!!!!!,!!!>!!!!!!!!>}}}},{{},{{}},{{<ai!>},<}!>,}<!!"e<!>,<!o>}}},{{{<<}o!!!>!}!}>},<"i"ei<}!!!!ae,!>,<!u!!i!>!!u>},{{{<!!!>"{o!!!>!!!>ii!!!!!}!!"!!u!!!>,<!!!>e!!<>},{<uu!>'ou!'""!"i!!!>,>}},<!o!>,<<!!!!<e!>},<"!>,<>}},{{}}}}},{{{{{},<'e!!'>},{{<!!,!>!e,!>},<,'!>},<!!!!!>!!!>},<,!!a,ie!!o!>},<!u>,{<a}"!a!>!!!!!>!>},<eao!>!!oi>}},{<!a!}!>o!!!>e!>,<!!!>,<!!!>,!!a"!!,{a,>}}},{{<!!!>a!!!!!>!!!>>},{{{<!!!>}!ueae!>!>{o!!!!!>!!"!!!>!>!ua>}},<!!!>}>}},{{{{<'u,!e!{"!!{!!{"''"a}{u!}>},<!!!oo'!>,<!!!>},<!!!!!!!>},<!!!>},<!>},<o!}!!!}>}},{{{<i!>,<!!!>ui!!!>!>}i<e>},{{{<!>,<!!e!>},<"!,'!!!!aa'!!!!,>}},{<u!!"!!!>!>},<!!!>{!!!!">}}},{{<'u!!{!}{>,<!e!>,<}e}!>},<>}},{<ea!!'!>!>,<o}<!!!!!!",e!!!'}>,{<>}}},{{<{!>},<o!!!>,<,>},{{{},{<u,e!!!>},<{u!>,<'au>}},{{<{a!o,!!{<!!!>{"!>!!!>!>},<'{'<>}}}},{}},{{{{<!>{!>,<<'ei!,!!!>iu!>e!!!>!!>}},<!>,<!>},<!!o'}}u!!!>,<!>!!!>},<eu>},{{<i<"{!"}!!!<o>},{<ao!!!i!!}!!!>!>!<oae<>}},{{{},{},{<}"!>,!!}'!>},<i!!!o}!!oo!!!>!!!>i!!>,{<<!!<e<!!!!!!eo!>},<!!o!a!!!>ei!!!>!>,<!!','<u>}}},{}}}}},{{{<}>},{<!!!>eu>,{<ui<!'!!{!!!>!!!>},<o!!!>o"u!!>,<}!!!>i!!!!!!!>!>},<!<uo<''!!,ii>}},{{},{<'e'!>!>},<!!!a!>!!i!!!>!!!!<!>"{<}>}}},{{<!>,<{i>,{{<a'!eu!>"!!!>>}}},{{<!>,<o!!!>,<o<!e}"!!!>!!!>"!},,e>}},{{{{<!>,<>},{<!!a!>,<u!!<,!!o"!'{>}},<!>!>,<o"<!!!,!><<!>u>},{},{{{<e!>,<o!>,<,!>,<!>,<>},{}},{}}}},{{{{<>},{<uo>,{{{<!!!>o!>},<}e}a"{e!!!>,<!>,<u<"!!"!>},<>}}}}}},{{{<,!{>}},{<o>}},{}}}},{{{{},{{<<!!{!!!>!!!!!!!>!>},<!>},<!!a!!!>},<,!!!>'!!!!!>,!!!>''">,{{},{<{}{'!>>}}}},{}},{{{}},{{{<>}},{<a"{!>},<>}}},{},{{{{},{<!!!>>}}},{{{<!"!>},<!!<<{!>,<!!a>},<{aoi'!!>}}}},{{{{{},{<'!>}!!!>,<!!!>i!o!!!>i!!!>},<"!>,!>!!{!>,<o>,<i<!>,<!!}",>},{<i!>},<a!>!!e>,{<<!}{!>},<!!!>!!!>!>,<!>},<!!!!!>!>!!>}}},{{<!!{"!!!{!!u!!!>'!!!>!!e!!!,'>}}},{{{}},{{{<!>},<>},<}e!'i>},{{{<!>ue!!!>},<{uu!!!>}!!{'>,{{<!!!>!e!>,<ooa}ou{!>''!}",!a'>}}},{{<i!!!<}u!!,}u!!!>"!!!>},<}{!!}>},{<!!'o,!>},<o}}',!>},<<!>},<!!,a"!>,<!"!>,<a>}}},{{<i{}o!!>,{<}i!!!>!>,<!!!>!!,!!!>{>,<!>},<!>,<!<!!'!!!"}!!!>e!>,<u<>}}}}},{<!!!u,!>!>,<u>,<e{!!!>u{eu!>},<!!<<!>,<u>}},{{{<!!}!>},<'!!'ii,"!!uu!>!'e>}}},{{{{<!a<'!>,<,>},<>},{<!!,}>}}}},{{<aoo,'!>!!,!>},<!i!!u>,{}},{{}}}},{{{<{!!'e!!!>!>},<!!!>"o!!,!>},<ooi!!!><>},{{<!!!!!>},<ee!!!>,<'!!!>a{!!,e!!!!!>a!>,!<!i!>,<>}}},{{{<ua}!>o>,{<!>,<!>'a{!!!>,<!>>}},{{{<,oiu{!!!!!!!>},<eo>},{<<e>}}}},{<!>},<""!!!>!>,<,ooe!!{!!!>},<!>,<>}},{{<i!!!><>},{},{{{<!!e{!>,<!!o!!!>,<e<!}!!"!!!>!>},<,>},{<!>},<!!oo}!a!!!>!!<'u>}},{{<e>},<>}}},{{<!}{a<!'}"a!>,<a!!o'i>,<!!!>},<!!!>i"!!!!{!!!!}ao!>},<}!!'i!!!!!!>},{{<!>},<!!,!>a!"!!u!!"a!!e>},<o,e!>,<!>,<}!!e!>},<!!'a,ii!o!>},<!!ai">},{{<o"!!!>!!!>}}!!!!!>i!>},<!>},<">,<!!!!!!!><{!!u!!,a'o{!>,<!">},{{<<a<>,<{>},{{{<!>o!>!>e}i">},{{<!!!!!>!>,<<!>},<!{a<a<!!>},{<!!'ue"e{ua>,<!>'!!}o!!!>!!!>a!>,<<!!!>!!!!!!{!>>}}},<{<a"!!"}o'io>},{<ue!>},<}e'e{>}},{{<'!>,<o!!!>},<!>!!!>oi'!!!>},<'o<>},{{{<!>!>!!!>!>},<!!!>},<u,!>,<!o}>},{}},{<!!!!}!u{!o!!ieea",u!!!!!>!!!>!><!!"">}},{<!>},<<}!!aa"!>},<"!>}a{!>},<!!!!!>!uo>}}}}}}},{{{{<{!}>},{{}},{}},{},{{<,!>"!!!>!>,<!!oo!!!>},<}i!'u'!!!>!>!>},<{a>,{<a!!!>!!!>!>,<!!!'!>!a",!>},<!!o!>},<a!!!!}}{>}},{<{u!>{,!>!!<!i>,<e<!>o!i!!!>!!!!"uo"!>,<u'"!>},<,!i>}}},{{{<<iee!!a"!>},<!>,<,>,<,!!!!!>}o!>,<oo!>!>,<"io!>},<}!',"!o>},{<}!!{'{!!!!<{!ai!!!>"!<ou!!a!{<!!">},{<!>},<!>,<i!e!!!>a!>,<!!o!>!>},<!>},<!!!>aa>,{<u"{<!>},<}!!o'"i!!u<}a>}}},{{{{{<>},{<<}uoa,'!e!!e!!!>!{o!!!i>}}},{<ai!!!>eou!!!>!a!!!ei}!{u!!!a!!!<!!ei>,<aue}!!!!}!>,<a{o!>,<!!!!>}},{{<!!o!!ieu!>,<!u',aeaia!!}">},{{{},{<!!'"<}i>}}}}}},{{},{{{{<'!!e!i!>u!><e,!">},{<!<<!>!!uu"!>},<!!u<iia!!}!">,{}}},{{}}},{{<a!!a<!>,<'!>,<!>,<,',!>,<>,{{{<!!!!!!!>e}"!!i<>}},<e!}'!>},<!>!>},<!!a!!'i>}},{<"!a',"a>}}},{{{<<,!>},<!>,<!o<!>},<<!!!>u>},{{{}},{<!!!!e<!!!!!>o!>,<o{!>!>,<>,<>},{}},{{},{<"!>,<!i>,{<>}}}},{{{<{!"!>i"!!<i"{}>}},{<>,<oi,i'>}},{{{<{!!!>oe!'!!!!!>!>!>},<!>,!!!e{a>}},{{<"!>,<!>u!!,!>a{<!!'a,>,{<i"!>},<u!>,<,,'!,!o!>},<!!!!i>}},<i!>},<io<!!a!!,!!!>}!"'"o!!o!>}>},{<!>'ue!!!>,<'ia}{!>},<!>,<{o<u!>,<>}},{{{{{<>}},<!o!!!>},<!!!>!>},<!!{ae!!e!!!!!!!!!!!>i>},{{},{{<o!>},<}{o!>,<!!!!!>!!!>,<!>!!!>!>,<u>}}},{{{<!>,a"!!i!>},<!!"!!"!!u}ue!!"o!!e>},{}},{<!>,<!!!>!!!>{ue!e,!>,<o<o{!>,<!>,<!!!>,<>}}},{{<!>},<i}!!<<!!e!>>}}}}},{{{<,>,<{!>},<{!,{,>},{<<e"}u}}!!!>!>!!!>a!>},<!>,<oea'u!!!>>,<i!>,o<!>!!"!>a!!!>,<!'!>!!!>>},{<{o{uuo<,o!!!>!!!>!!!>}>,{}}}},{{},{{{},{}},{{<i{ie"!o'{!!!>},<!a}!!!>},<>},<!!,e<e!>},<!>},<!!!>a!!e!>i>}},{{{{{{{{{<!>u!!!>!!!>!ui'{!>},<>}},{}},{}}},{<o!!!>>},{}},{{{{}},{{{<}ue<!!!!!>i!>},<!!a}a<!>,<!>,<>}},{{<!!{!>i!!!>},<a<!!!>!>},<!>},<u}{ao!!!!>},<o!>,<o!!!>!!!>i!!!><!>oe}!o>},{{{<!>!>,<!>ee!!!a!>!!!>>}}}},{{<a!!!>!!<<!!!!u!!e>,{}}},{{{<!>},<eu!>i!!'!>!!!!!>!>,<">},{{<'!!!!!>u!>,<ue"{,i!a}"{!!!>!!o!>,<>}},{{},{}}},{{{{},{{{<!>,<!'>}}},{<!i!>,<oe}!!o''<!>},<>}},{{{<ee!>!!>}},{<a{>,<!>!!{!>,<>}},{{{}},{{{{<!!a>},<>},<{!!!>,<o>},{{<{<<>},<!!!"!>,<!!!!!>!!e!!!>!>!!>}}},{{<!!,u{!!}"uie!!}!>,<o>},{{{<}!!!>!>,<!>},<a>}},{<!!!>!>,<<ea{"!>}aua}!>},<}!!!>!!!o'>,{<'",}"}>}}}}}},{{{<e!>},<!>>},{{<!>!>"'!!!<}!io!!!!u!!!>!><i!a!!!!!>>}}},{}},{{}}}},{{{<>},{{<!!!!!}!!i!><!!!>>}},{{<!!!!!>'>}}},{{{<{!!!><!!!>e!>!!!>e"!,}u>},{<!>}>,<!!!>'!"ae<a>},{{<i!>,<"!>},<!!!!!>},<ae!>>},{}}},{{{{<>}},{<o<!!!>e>,{{<oa!>,<"!}'u!>,<o'!>!"",!!!>>},{<!!a!>,<!!}!>},<!>},<!!!!!>,<u!>,<e<!!<a!{a!,!!!>!!!>>}}},{{<}'{!!a!!!>!!o!>!{!>},<!!!!!!""'>},{<{!!!>{>}}},{},{{{{{}},{{{<!!{"eu>},{}},{<!!'ia!}a''!>}>,{{<<},!>,<,ea!oi!!'a!!!"!!!>!>,<!!!>u>},<>}}}},{{<>}},{{{{<!>,<{!e!>,<au<,}>},{<!>!>},<"<e!>!"o',ua'"!>},<!!!{>}},{<!"!>},<!!}!!"e!!!>{{!!'u!e!>,<"!>,<>}},{{{<o!!!>!!"!"o!>!>,<!!!>>},<,a<!>},<!>,<!!o{ioo!"!>>},{{}},{{{<}'!!!!!>},<}{>}}}}}},{{<}e{!!ieia"a!>!eeu!!i!>>,{<!!!!!>"i>}},{{<'<,!'!!!>!>},<e>,<a!>>},{{<!!u<a'!!!><"!ou>,<!!!>!,!!>}}},{{<}u!o>},<!>!>,<ui>}}},{{<uu!i!<u!<u!!!>{!!!ii!!!>>},{<!!,,!<!{!>},<!!!>>,<<i!"}!!!>"oi}"o'!>!'!>!u>},{{<<i!!a!>!!"o!!i!!,e}{!!"i!!!><>},{}}}}},{{{{{},<a"!!!>!>'>}},{{<'>},{<,!!eie!>},<!!!>},<o!!!>!!!>'"!!!!<!>>,<o!>ou<>},{{<a!i!!io,>}}},{{{{<!!!>!>},<!!'!!,"!!!>!}"}!>},<}!!u>,<<a!!!>"!>,<"!!"o!>},<>},{{}}}}}},{{{<u!!!>"!>!!!>oi{!!!!<a!>},<i{!>!>"<}>},{{<}!!ee!>!!!!ea!!!!!!!><,!>>},<i!!!>,<u<i}"!!!>,iii{a}a!o>}},{<!>,<!>},<!!,}!!<!!!>'!!!>'!!!>},<!!!a>,{<!<}!>,<!!!>,!{{<o!>,<a!!!>!{u!>,<}!!!!!!,>}},{<o>}},{{{<!e!!!!!>,<,}a!!o!e}!!<i,a!!!!!>!>>}},{{<'!>},<!!<i!>!>a!><!>,<!!!>'>}}},{{{{<}!>,<!>},<>}},{<}!!!>!!!>!!e!>,<ooia!<>}},{{<}"i,i{!>,<<,}!>}!<!!}!!!!,{!!>},<<ii}!!!>!i>},{}}}},{{{<i,,a"!!oie!>,<u>}}}},{{{<>},{<!ua}>}}},{{},{},{{{},{<'!ou{>}},<!!!>!>!>},<{!>,<oeu>}}},{{<!!!!o!>!!"!!!>!>,<!"!>!!!>!>,<{u!!!>},<!!!>"!!>}},{{{<!>!},<!!{<>},<!>},<o}e!>,<}>},{{{},{{<aio{<!{!!u!>'{a,o!!ii">}},{<ei!>},<},!'<!!o'!!<!!{!>,<a!{>,{{}}}},{},{{<!!!>!>},<,!!!>}!>}!!ou!}ia'i>,<!e!!!!!!i!>},<!!!>!>!>},<!>,<!!!>},<e'!!'u!!!a{>},<u'i}!!!!}!>e">}},{<{!!auo!>,<e!>},<<i!!i!>,<'!!!>ie}"u>}}},{{<>,{{}}},{{{{<!!<a!!<,!!a!!!!!!e<>},<!>>},{<a}!!!>!>},<{!>},<u!>},<,!>},<'>}},{},{<"!!!!i!!{"o!!a}!o!!!>!>'>}}},{{<ou<!>,<>,{<!>,<!!,{'a,'!!,!>,<!!u!>,<!>!<<!>,<">}},{<<'>}}}}}} diff --git a/2018/Cargo.lock b/2018/Cargo.lock new file mode 100644 index 0000000..4a73762 --- /dev/null +++ b/2018/Cargo.lock @@ -0,0 +1,76 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "advent_of_code_2018" +version = "0.1.0" +dependencies = [ + "arrayvec", + "im-rc", +] + +[[package]] +name = "arrayvec" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9" +dependencies = [ + "nodrop", +] + +[[package]] +name = "im-rc" +version = "12.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e882e6e7cd335baacae574b56aa3ce74844ec82fc6777def7c0ac368837dc3d5" +dependencies = [ + "rustc_version", + "sized-chunks", + "typenum", +] + +[[package]] +name = "nodrop" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver", +] + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "sized-chunks" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d3e7f23bad2d6694e0f46f5e470ec27eb07b8f3e8b309a4b0dc17501928b9f2" +dependencies = [ + "typenum", +] + +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" diff --git a/2018/inputs/.gitkeep b/2018/inputs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/2018/inputs/.gitkeep diff --git a/2018/inputs/1.txt b/2018/inputs/1.txt deleted file mode 100644 index 079567f..0000000 --- a/2018/inputs/1.txt +++ /dev/null @@ -1,968 +0,0 @@ -+11 -+9 -+15 --17 -+8 -+16 -+5 -+13 -+8 --6 -+12 --17 --16 -+13 -+16 --15 --5 -+11 -+19 -+5 --8 -+20 -+18 -+15 --4 --12 -+8 -+2 -+15 -+12 --13 --4 --1 --14 --15 --6 --9 --13 -+18 -+13 -+6 --8 --3 --19 -+8 -+17 -+8 -+5 --11 -+15 --7 -+9 --18 --9 -+17 --14 --19 -+4 --6 -+4 -+1 --12 -+4 --1 --9 -+4 -+19 -+20 -+11 -+8 -+19 --13 -+17 -+6 -+8 --11 -+5 -+9 --15 -+17 --12 -+6 --19 --2 -+17 --18 -+7 --5 -+19 -+15 -+5 --6 -+2 -+5 -+18 -+11 -+2 -+5 --14 -+17 -+17 -+1 -+17 --9 --1 -+5 --11 -+5 --17 -+2 -+14 -+16 --3 -+17 -+18 -+1 --16 -+19 --11 --10 -+3 -+8 -+17 -+19 --18 -+6 --1 --2 -+14 --2 -+12 -+11 -+1 --19 --1 -+18 -+13 --6 --10 --13 -+12 --11 -+19 -+14 -+17 --2 --18 --4 -+11 --12 --2 --21 -+7 --1 --5 --13 --18 --18 --7 -+9 -+12 -+6 --12 -+20 --19 -+6 --19 -+3 --16 -+20 --17 --8 -+4 -+8 --21 -+18 --6 --13 -+2 -+5 --14 --16 --19 --17 -+4 --15 --11 --3 -+6 -+13 -+18 --16 --16 --15 --15 --2 -+1 --3 -+13 -+25 -+1 -+14 --8 --8 --19 -+7 -+11 -+20 -+5 --9 -+8 -+19 --9 -+3 -+1 -+1 --12 -+18 -+15 --5 -+11 --1 -+18 --2 --18 --14 --1 --16 -+12 -+12 --20 -+10 -+25 --13 --17 --20 --13 -+11 --40 --19 -+5 --21 --9 --15 --6 -+3 -+13 --5 --2 -+33 -+3 --7 -+42 -+32 --13 -+2 -+37 --1 --20 -+30 -+3 -+8 -+10 -+11 --5 --26 -+35 -+16 --12 -+9 -+16 -+18 --13 --15 -+19 -+6 -+18 -+16 -+11 -+16 --2 --10 -+1 --2 -+17 -+7 --1 -+17 -+6 -+15 -+7 --5 --6 -+9 --4 --17 --14 --1 --21 --2 -+15 -+3 -+8 --18 --17 --14 -+6 --17 -+20 -+13 -+14 --1 --1 -+3 --11 -+19 -+19 -+7 --18 --9 -+11 --12 -+11 -+4 -+2 -+8 --2 -+6 --20 -+5 -+6 --13 --8 -+6 -+11 -+8 -+2 -+7 -+11 --7 -+18 -+11 -+15 --16 --18 -+6 -+10 -+6 -+15 -+13 -+4 -+4 -+14 -+14 --47 -+17 --7 --20 --1 -+19 -+16 --23 --13 --17 -+13 --8 -+6 --20 -+4 -+15 -+4 -+19 -+19 --7 --24 --17 --19 --2 -+19 --13 -+8 --4 --19 --9 -+29 -+21 --29 -+2 -+15 -+22 -+1 -+21 --13 --14 -+12 --57 --5 --49 --10 --19 --19 --6 -+7 -+21 --12 --13 --13 -+4 --15 -+9 -+21 --7 -+19 -+32 -+31 --27 --21 -+25 --101 -+69 --75 -+26 --22 --45 --30 -+5 --40 --15 --880 --60727 -+14 --13 --18 -+7 -+2 --5 -+6 -+14 -+5 -+5 --18 --15 --9 -+7 --10 -+19 -+4 -+7 -+6 -+3 -+21 -+2 -+5 --19 -+15 --11 --19 --7 --1 --16 -+4 --12 --15 -+3 -+5 --6 --14 -+11 --16 --7 --15 -+8 -+12 --2 --9 --12 --17 -+19 --5 --19 -+16 --10 --13 --14 --1 --10 --18 --6 --11 -+8 --11 -+4 -+14 -+9 -+8 --18 --9 -+8 --19 --5 --14 -+13 -+19 -+13 -+16 -+19 --4 --4 -+3 -+19 --4 --7 --15 -+6 --9 --15 -+12 --14 -+6 --17 -+9 -+13 --4 --20 -+17 --9 --12 -+16 -+6 --9 -+19 -+10 -+11 -+17 --19 --1 -+12 -+12 -+1 --6 --1 -+4 --12 -+11 --14 -+19 --3 --9 --6 --23 --2 --13 -+18 --2 -+10 -+2 -+8 --9 --20 --17 --21 --14 -+11 --5 --15 -+2 --9 -+4 --7 --12 -+9 --1 --11 -+1 --10 -+11 --17 --10 --17 --3 --10 -+11 -+15 --19 --14 -+1 -+2 -+18 -+17 -+3 -+17 --18 --15 -+2 --3 --14 -+9 -+9 -+6 --18 -+13 --21 --18 -+12 -+7 -+13 --11 -+20 -+12 -+1 -+15 --14 -+4 -+11 -+18 --2 --7 --12 --11 -+5 -+10 -+6 -+8 -+18 -+6 --13 -+19 --5 --3 -+14 --3 --20 --3 --3 -+16 --15 --12 -+8 --24 --16 --13 --3 -+13 -+6 --12 --31 -+7 --18 -+17 --13 -+1 --15 -+16 -+4 --1 --17 --1 -+16 --4 -+13 -+8 -+3 -+33 -+8 --6 -+20 --4 -+2 -+13 --29 --17 --22 --24 --5 -+2 --12 --1 -+2 --15 -+2 --11 -+6 -+1 --2 -+5 -+4 --22 -+5 -+19 --13 --7 -+16 -+6 -+2 --22 -+19 -+9 -+8 --9 --12 --18 --13 -+1 -+5 --9 -+10 --11 --10 -+16 --15 --2 --16 -+1 --15 --17 --3 -+6 -+11 -+4 -+11 --16 --3 -+6 --1 -+13 -+18 -+6 --2 --6 --4 --5 -+20 -+19 --8 -+1 --13 -+16 -+1 -+10 --25 --19 --4 -+9 --8 -+17 -+6 --19 --2 -+5 -+12 -+7 --21 --12 -+3 --7 --11 --3 --18 -+2 -+12 -+20 --23 --19 --17 -+9 --19 -+1 --14 --5 --4 --9 -+17 -+4 -+3 -+15 --13 -+1 --12 --17 -+8 -+8 --20 --17 -+15 --16 -+10 -+7 -+2 --10 --2 -+8 -+19 --6 --17 --8 -+9 -+17 -+25 --5 --18 -+4 -+18 -+9 -+18 --14 --2 -+11 -+14 --17 --15 -+38 -+12 --2 -+14 -+4 -+21 -+16 -+12 -+15 -+23 --1 -+6 -+9 --24 --6 --13 --3 -+33 --13 -+62 -+81 -+11 --5 --27 -+9 --7 -+20 --19 --4 -+27 -+28 --29 -+82 -+11 --10 -+8 --22 -+42 -+34 --24 --15 -+19 --66 --70 --34 --18 --548 -+408 --1249 --60542 -+6 --17 --4 -+6 --7 -+3 -+14 -+2 -+15 --6 --5 -+19 --17 --10 -+6 --11 -+2 --4 -+10 --5 --11 --13 --12 --14 --10 --9 -+17 -+9 -+15 -+1 --10 --10 -+14 -+16 --17 --15 -+7 --6 --16 --10 -+15 --2 --7 --3 --5 --14 --8 --9 -+16 -+7 -+17 --22 -+12 --16 -+18 -+5 -+15 -+10 -+20 -+11 --5 -+12 --16 -+8 --16 -+13 -+14 --5 --12 --9 --16 --5 -+16 --18 -+21 --9 --13 --8 --10 -+14 -+18 --17 --16 -+8 --15 -+2 --4 -+3 --21 -+17 --16 -+18 -+18 --3 --21 -+1 --19 --3 --2 --4 --5 --20 --19 -+6 --19 -+3 --12 -+124236 diff --git a/2018/inputs/10.txt b/2018/inputs/10.txt deleted file mode 100644 index 3c77538..0000000 --- a/2018/inputs/10.txt +++ /dev/null @@ -1,369 +0,0 @@ -position=<-30052, -9918> velocity=< 3, 1> -position=< 20349, -50260> velocity=<-2, 5> -position=< 40505, -40169> velocity=<-4, 4> -position=< 30444, 50599> velocity=<-3, -5> -position=< 40549, -50259> velocity=<-4, 5> -position=< 30454, -30087> velocity=<-3, 3> -position=< 50623, 20347> velocity=<-5, -2> -position=< 30439, -50262> velocity=<-3, 5> -position=< 50623, 40516> velocity=<-5, -4> -position=<-40143, -30090> velocity=< 4, 3> -position=< 50594, 50602> velocity=<-5, -5> -position=< -9884, -30087> velocity=< 1, 3> -position=<-19958, -40168> velocity=< 2, 4> -position=< 20357, 40513> velocity=<-2, -4> -position=<-50240, 30431> velocity=< 5, -3> -position=< 20351, 40516> velocity=<-2, -4> -position=<-50257, -20005> velocity=< 5, 2> -position=<-30073, 10253> velocity=< 3, -1> -position=<-50265, 50597> velocity=< 5, -5> -position=<-40154, 50601> velocity=< 4, -5> -position=<-19987, -40168> velocity=< 2, 4> -position=<-19987, -30087> velocity=< 2, 3> -position=<-50257, 30425> velocity=< 5, -3> -position=< 40558, 30425> velocity=<-4, -3> -position=<-19990, 10256> velocity=< 2, -1> -position=<-19979, 30425> velocity=< 2, -3> -position=<-19976, -50254> velocity=< 2, 5> -position=< 30446, -40172> velocity=<-3, 4> -position=<-40157, 40515> velocity=< 4, -4> -position=<-40143, 20342> velocity=< 4, -2> -position=< 30467, -50255> velocity=<-3, 5> -position=<-30040, 50606> velocity=< 3, -5> -position=<-30037, 50605> velocity=< 3, -5> -position=< 20382, -30086> velocity=<-2, 3> -position=< 50594, 10262> velocity=<-5, -1> -position=< 20342, 40515> velocity=<-2, -4> -position=<-19963, -50258> velocity=< 2, 5> -position=<-40135, 50599> velocity=< 4, -5> -position=< 40558, 10262> velocity=<-4, -1> -position=< 20366, -40177> velocity=<-2, 4> -position=< -9888, -9919> velocity=< 1, 1> -position=<-19998, 40511> velocity=< 2, -4> -position=< 50608, 40516> velocity=<-5, -4> -position=< 10263, 40520> velocity=<-1, -4> -position=< 40521, -40171> velocity=<-4, 4> -position=< 30427, -20005> velocity=<-3, 2> -position=< 20333, -9916> velocity=<-2, 1> -position=< -9909, -9913> velocity=< 1, 1> -position=< 50628, 40511> velocity=<-5, -4> -position=< 50610, 30430> velocity=<-5, -3> -position=<-50248, 30433> velocity=< 5, -3> -position=< 50612, 50599> velocity=<-5, -5> -position=<-50253, -40170> velocity=< 5, 4> -position=< -9880, 40513> velocity=< 1, -4> -position=< 20362, 10256> velocity=<-2, -1> -position=< -9877, -30087> velocity=< 1, 3> -position=<-40182, -30082> velocity=< 4, 3> -position=<-50240, -20003> velocity=< 5, 2> -position=<-40138, 10255> velocity=< 4, -1> -position=<-50221, 20348> velocity=< 5, -2> -position=< -9896, -9917> velocity=< 1, 1> -position=<-50209, 40516> velocity=< 5, -4> -position=< 20352, 50602> velocity=<-2, -5> -position=< 50607, -19998> velocity=<-5, 2> -position=<-19995, -30087> velocity=< 2, 3> -position=<-20003, 40517> velocity=< 2, -4> -position=<-50219, 30431> velocity=< 5, -3> -position=< 40521, -20001> velocity=<-4, 2> -position=<-30036, 20339> velocity=< 3, -2> -position=< 50624, 10257> velocity=<-5, -1> -position=<-50224, 40517> velocity=< 5, -4> -position=< -9907, 20344> velocity=< 1, -2> -position=< 40534, -40169> velocity=<-4, 4> -position=<-30065, -20003> velocity=< 3, 2> -position=< -9922, 20339> velocity=< 1, -2> -position=<-30052, 50602> velocity=< 3, -5> -position=< 10276, -50263> velocity=<-1, 5> -position=< 50594, 10258> velocity=<-5, -1> -position=< -9876, 10258> velocity=< 1, -1> -position=<-20001, -30091> velocity=< 2, 3> -position=<-50253, 50602> velocity=< 5, -5> -position=<-40159, -20002> velocity=< 4, 2> -position=<-50224, -30091> velocity=< 5, 3> -position=<-20001, 40511> velocity=< 2, -4> -position=< 20357, -40173> velocity=<-2, 4> -position=< 50615, 10255> velocity=<-5, -1> -position=< -9877, -50254> velocity=< 1, 5> -position=< 30440, 40516> velocity=<-3, -4> -position=< 30427, 50605> velocity=<-3, -5> -position=< 30419, -30090> velocity=<-3, 3> -position=< 20376, -20001> velocity=<-2, 2> -position=< 10255, 20344> velocity=<-1, -2> -position=< 30419, 20344> velocity=<-3, -2> -position=< 50595, -40169> velocity=<-5, 4> -position=<-30081, 40513> velocity=< 3, -4> -position=<-40143, -30090> velocity=< 4, 3> -position=< 40553, 20344> velocity=<-4, -2> -position=< 40529, -40170> velocity=<-4, 4> -position=< 30427, -50262> velocity=<-3, 5> -position=<-50240, -19996> velocity=< 5, 2> -position=<-50245, -30090> velocity=< 5, 3> -position=< 30448, -30087> velocity=<-3, 3> -position=< -9875, -40171> velocity=< 1, 4> -position=< -9900, 50599> velocity=< 1, -5> -position=<-19954, -40168> velocity=< 2, 4> -position=< 40526, 40518> velocity=<-4, -4> -position=<-20011, 30428> velocity=< 2, -3> -position=< 10283, 10257> velocity=<-1, -1> -position=<-40175, 40520> velocity=< 4, -4> -position=< 50636, -9915> velocity=<-5, 1> -position=< -9904, 10255> velocity=< 1, -1> -position=< 30435, 40520> velocity=<-3, -4> -position=< 30424, -50254> velocity=<-3, 5> -position=< 20393, 50602> velocity=<-2, -5> -position=<-50261, -30083> velocity=< 5, 3> -position=<-30065, 10254> velocity=< 3, -1> -position=<-30052, -40177> velocity=< 3, 4> -position=< 50625, -50263> velocity=<-5, 5> -position=<-40142, -20001> velocity=< 4, 2> -position=< 20338, -19996> velocity=<-2, 2> -position=< 50599, 50604> velocity=<-5, -5> -position=< 40534, -40176> velocity=<-4, 4> -position=<-50235, 20339> velocity=< 5, -2> -position=<-30068, -9918> velocity=< 3, 1> -position=<-40173, 20339> velocity=< 4, -2> -position=<-30054, -9915> velocity=< 3, 1> -position=< 10255, 20348> velocity=<-1, -2> -position=<-40162, 40520> velocity=< 4, -4> -position=<-40158, -9918> velocity=< 4, 1> -position=< 40508, 20348> velocity=<-4, -2> -position=< 10307, -40177> velocity=<-1, 4> -position=< 40545, -50261> velocity=<-4, 5> -position=<-30073, -40172> velocity=< 3, 4> -position=<-50209, -9918> velocity=< 5, 1> -position=< -9913, 40515> velocity=< 1, -4> -position=< -9873, -50262> velocity=< 1, 5> -position=< -9877, 10261> velocity=< 1, -1> -position=<-50245, -30084> velocity=< 5, 3> -position=< 30440, 50606> velocity=<-3, -5> -position=<-40167, 40514> velocity=< 4, -4> -position=<-30076, -50255> velocity=< 3, 5> -position=< -9891, -19996> velocity=< 1, 2> -position=< -9877, 20340> velocity=< 1, -2> -position=< 20365, -9911> velocity=<-2, 1> -position=<-50256, 10253> velocity=< 5, -1> -position=< -9909, -19996> velocity=< 1, 2> -position=< 30479, -9919> velocity=<-3, 1> -position=<-30065, 10257> velocity=< 3, -1> -position=< 50652, -9919> velocity=<-5, 1> -position=< 20338, -9914> velocity=<-2, 1> -position=<-30062, 20339> velocity=< 3, -2> -position=< 20360, 10259> velocity=<-2, -1> -position=< 40537, 50604> velocity=<-4, -5> -position=<-50221, 50603> velocity=< 5, -5> -position=< 40505, -30090> velocity=<-4, 3> -position=< -9890, 20339> velocity=< 1, -2> -position=<-30097, -50261> velocity=< 3, 5> -position=<-19995, -30086> velocity=< 2, 3> -position=< 20341, 10255> velocity=<-2, -1> -position=<-19977, -20005> velocity=< 2, 2> -position=<-30053, -50259> velocity=< 3, 5> -position=<-30065, -40173> velocity=< 3, 4> -position=< 50617, 50601> velocity=<-5, -5> -position=< 50631, -40171> velocity=<-5, 4> -position=< -9925, -9915> velocity=< 1, 1> -position=<-40150, 10262> velocity=< 4, -1> -position=< 40526, 40516> velocity=<-4, -4> -position=<-30055, -9915> velocity=< 3, 1> -position=<-50264, 30432> velocity=< 5, -3> -position=< 10287, -20003> velocity=<-1, 2> -position=< 40534, 20348> velocity=<-4, -2> -position=<-19960, -19998> velocity=< 2, 2> -position=< 30464, -40173> velocity=<-3, 4> -position=<-50220, -50259> velocity=< 5, 5> -position=< 40537, -9919> velocity=<-4, 1> -position=< 20357, 20346> velocity=<-2, -2> -position=< 40510, 50598> velocity=<-4, -5> -position=< 50607, -40172> velocity=<-5, 4> -position=< 40537, -19996> velocity=<-4, 2> -position=< 50636, 10261> velocity=<-5, -1> -position=< -9896, 30425> velocity=< 1, -3> -position=< -9917, 10255> velocity=< 1, -1> -position=<-50248, 50606> velocity=< 5, -5> -position=<-50237, -9919> velocity=< 5, 1> -position=<-30073, -20005> velocity=< 3, 2> -position=< 40529, 50606> velocity=<-4, -5> -position=< 50650, -30082> velocity=<-5, 3> -position=<-30093, 10258> velocity=< 3, -1> -position=< 30456, -40177> velocity=<-3, 4> -position=< 40521, -40170> velocity=<-4, 4> -position=< 30468, 10257> velocity=<-3, -1> -position=< 10276, -50261> velocity=<-1, 5> -position=< 30421, -9919> velocity=<-3, 1> -position=< -9877, 20346> velocity=< 1, -2> -position=< 10258, -40177> velocity=<-1, 4> -position=<-50264, 40516> velocity=< 5, -4> -position=< -9883, -40173> velocity=< 1, 4> -position=<-40127, -50256> velocity=< 4, 5> -position=< -9885, 20343> velocity=< 1, -2> -position=< 20382, -9914> velocity=<-2, 1> -position=<-30076, -19998> velocity=< 3, 2> -position=<-30073, 50601> velocity=< 3, -5> -position=< -9893, 20345> velocity=< 1, -2> -position=< -9904, 10258> velocity=< 1, -1> -position=< 20393, -40171> velocity=<-2, 4> -position=<-19984, 50603> velocity=< 2, -5> -position=< -9889, 20343> velocity=< 1, -2> -position=<-19982, 40512> velocity=< 2, -4> -position=<-20009, -40168> velocity=< 2, 4> -position=<-30069, -19997> velocity=< 3, 2> -position=<-19987, -30085> velocity=< 2, 3> -position=< 10252, 10259> velocity=<-1, -1> -position=< -9917, 30428> velocity=< 1, -3> -position=< 10287, 20342> velocity=<-1, -2> -position=<-50245, -20000> velocity=< 5, 2> -position=<-40165, -40177> velocity=< 4, 4> -position=<-40135, -50262> velocity=< 4, 5> -position=<-19984, -30085> velocity=< 2, 3> -position=< 30428, -30091> velocity=<-3, 3> -position=<-30089, 30431> velocity=< 3, -3> -position=< 30467, 20344> velocity=<-3, -2> -position=<-19987, 40520> velocity=< 2, -4> -position=<-30037, 40512> velocity=< 3, -4> -position=< 40557, -50255> velocity=<-4, 5> -position=< 40550, 10254> velocity=<-4, -1> -position=<-40159, 10258> velocity=< 4, -1> -position=< 40539, 20343> velocity=<-4, -2> -position=< 30440, 50605> velocity=<-3, -5> -position=< 30453, 30434> velocity=<-3, -3> -position=< 40550, -30088> velocity=<-4, 3> -position=<-40151, 10256> velocity=< 4, -1> -position=< 10276, 40514> velocity=<-1, -4> -position=< 10280, 20348> velocity=<-1, -2> -position=<-20009, -30091> velocity=< 2, 3> -position=< 30467, 50601> velocity=<-3, -5> -position=< 30439, -20000> velocity=<-3, 2> -position=< 10276, -20005> velocity=<-1, 2> -position=< 40562, -30082> velocity=<-4, 3> -position=<-19986, -20004> velocity=< 2, 2> -position=< 20333, 10259> velocity=<-2, -1> -position=<-50224, -9911> velocity=< 5, 1> -position=< -9872, -9919> velocity=< 1, 1> -position=< 10295, -30085> velocity=<-1, 3> -position=<-19990, 30429> velocity=< 2, -3> -position=< 10295, -30084> velocity=<-1, 3> -position=< 30429, 40515> velocity=<-3, -4> -position=< 20365, -30086> velocity=<-2, 3> -position=< 50618, 10258> velocity=<-5, -1> -position=<-20010, -9910> velocity=< 2, 1> -position=< 20373, -40169> velocity=<-2, 4> -position=< 10307, -50261> velocity=<-1, 5> -position=< 20381, 10256> velocity=<-2, -1> -position=< 40513, 40517> velocity=<-4, -4> -position=< -9865, 20345> velocity=< 1, -2> -position=< -9909, 20347> velocity=< 1, -2> -position=< 10284, 20348> velocity=<-1, -2> -position=<-30073, 20342> velocity=< 3, -2> -position=<-30078, 30425> velocity=< 3, -3> -position=< -9899, 20342> velocity=< 1, -2> -position=< 20333, 30429> velocity=<-2, -3> -position=< 10306, 10253> velocity=<-1, -1> -position=<-50261, 10260> velocity=< 5, -1> -position=< 30459, -9912> velocity=<-3, 1> -position=< 10292, -40176> velocity=<-1, 4> -position=< 20389, -30083> velocity=<-2, 3> -position=<-40166, 20340> velocity=< 4, -2> -position=< -9901, 20345> velocity=< 1, -2> -position=< 40557, -20004> velocity=<-4, 2> -position=<-40158, -30090> velocity=< 4, 3> -position=<-50209, 10255> velocity=< 5, -1> -position=<-50265, -40172> velocity=< 5, 4> -position=<-50245, 50605> velocity=< 5, -5> -position=< 30443, -40177> velocity=<-3, 4> -position=< -9916, 20339> velocity=< 1, -2> -position=< 50640, 50601> velocity=<-5, -5> -position=<-19971, -20005> velocity=< 2, 2> -position=< 40522, -9914> velocity=<-4, 1> -position=< 50607, -19999> velocity=<-5, 2> -position=<-50243, 40515> velocity=< 5, -4> -position=<-50240, 10260> velocity=< 5, -1> -position=< 40561, -19998> velocity=<-4, 2> -position=<-50211, -50254> velocity=< 5, 5> -position=<-40143, 30431> velocity=< 4, -3> -position=< 30430, -50259> velocity=<-3, 5> -position=< 30479, -20002> velocity=<-3, 2> -position=<-30092, 20344> velocity=< 3, -2> -position=<-30092, -40168> velocity=< 3, 4> -position=< 50601, 10257> velocity=<-5, -1> -position=< 20373, 40515> velocity=<-2, -4> -position=< 30479, -19997> velocity=<-3, 2> -position=<-40175, 50605> velocity=< 4, -5> -position=< -9880, -40173> velocity=< 1, 4> -position=< 20349, -50255> velocity=<-2, 5> -position=< 20362, -9914> velocity=<-2, 1> -position=<-30089, 50601> velocity=< 3, -5> -position=< 30467, 10253> velocity=<-3, -1> -position=< 40565, 30429> velocity=<-4, -3> -position=<-40142, 10257> velocity=< 4, -1> -position=< 50609, -50263> velocity=<-5, 5> -position=< -9881, -40173> velocity=< 1, 4> -position=< 50639, 40515> velocity=<-5, -4> -position=<-50269, -40170> velocity=< 5, 4> -position=< 40553, -9910> velocity=<-4, 1> -position=< 30455, 30434> velocity=<-3, -3> -position=< 20362, 10258> velocity=<-2, -1> -position=< 40505, 50603> velocity=<-4, -5> -position=<-19990, 10260> velocity=< 2, -1> -position=< 30447, -19998> velocity=<-3, 2> -position=<-40150, -30087> velocity=< 4, 3> -position=< -9907, -40172> velocity=< 1, 4> -position=<-30044, 20348> velocity=< 3, -2> -position=<-40178, -9913> velocity=< 4, 1> -position=<-50261, 30428> velocity=< 5, -3> -position=<-40151, 20348> velocity=< 4, -2> -position=<-50224, 30432> velocity=< 5, -3> -position=< 50652, -50263> velocity=<-5, 5> -position=<-19952, 50606> velocity=< 2, -5> -position=< 30431, 40511> velocity=<-3, -4> -position=< 30459, -30088> velocity=<-3, 3> -position=< 50651, 20347> velocity=<-5, -2> -position=< 10292, -30082> velocity=<-1, 3> -position=< 20366, 10257> velocity=<-2, -1> -position=<-19987, -9913> velocity=< 2, 1> -position=< -9865, -40170> velocity=< 1, 4> -position=< -9889, 50597> velocity=< 1, -5> -position=<-30065, -50262> velocity=< 3, 5> -position=< -9921, 20347> velocity=< 1, -2> -position=<-30084, 10253> velocity=< 3, -1> -position=< 10248, -20005> velocity=<-1, 2> -position=< 20345, -9915> velocity=<-2, 1> -position=< -9882, -9915> velocity=< 1, 1> -position=<-30065, 50602> velocity=< 3, -5> -position=< 40565, 50599> velocity=<-4, -5> -position=< 20349, -50261> velocity=<-2, 5> -position=<-19960, -19998> velocity=< 2, 2> -position=< 10255, -50258> velocity=<-1, 5> -position=< -9901, -50255> velocity=< 1, 5> -position=<-50219, -9916> velocity=< 5, 1> -position=< 40524, -30086> velocity=<-4, 3> -position=< 40550, 50600> velocity=<-4, -5> -position=<-50233, -30091> velocity=< 5, 3> -position=< 30440, -50257> velocity=<-3, 5> -position=< -9920, 50605> velocity=< 1, -5> -position=< 40507, 20339> velocity=<-4, -2> -position=< 10264, 30426> velocity=<-1, -3> -position=< 40556, 20341> velocity=<-4, -2> -position=< -9875, -9913> velocity=< 1, 1> -position=<-30068, -50254> velocity=< 3, 5> -position=< -9889, 30425> velocity=< 1, -3> -position=<-20011, -40172> velocity=< 2, 4> -position=<-50269, 10259> velocity=< 5, -1> -position=<-40132, 30432> velocity=< 4, -3> -position=< 40553, -9913> velocity=<-4, 1> -position=<-30073, 10256> velocity=< 3, -1> -position=<-30092, 20340> velocity=< 3, -2> -position=< 40542, 50606> velocity=<-4, -5> -position=<-50224, 20347> velocity=< 5, -2> -position=<-40143, 50606> velocity=< 4, -5> -position=<-19971, -20000> velocity=< 2, 2> -position=< 40553, 20340> velocity=<-4, -2> -position=<-30081, -20001> velocity=< 3, 2> -position=<-30037, -40172> velocity=< 3, 4> -position=< -9865, 30428> velocity=< 1, -3> -position=< 30479, 20340> velocity=<-3, -2> -position=< 30429, 20343> velocity=<-3, -2> -position=<-19971, -40172> velocity=< 2, 4> -position=< 30431, 50601> velocity=<-3, -5> -position=<-19982, 10256> velocity=< 2, -1> -position=< 20344, 20343> velocity=<-2, -2> diff --git a/2018/inputs/12.txt b/2018/inputs/12.txt deleted file mode 100644 index 6d801ae..0000000 --- a/2018/inputs/12.txt +++ /dev/null @@ -1,34 +0,0 @@ -initial state: ###..#...####.#..###.....####.######.....##.#####.##.##..###....#....##...##...##.#..###..#.#...#..# - -.###. => . -..#.. => . -.#### => . -.##.. => # -#.#.# => . -..#.# => # -#.##. => # -#...# => # -..... => . -##..# => # -.#.#. => . -..##. => # -##.#. => . -###.. => . -.#... => # -..### => . -#..## => . -...#. => . -###.# => # -.##.# => . -.#.## => . -....# => . -##### => . -#.#.. => # -...## => # -#.... => . -#.### => # -##... => # -.#..# => . -####. => . -#..#. => # -##.## => # diff --git a/2018/inputs/13.txt b/2018/inputs/13.txt deleted file mode 100644 index a2195f8..0000000 --- a/2018/inputs/13.txt +++ /dev/null @@ -1,150 +0,0 @@ - /----------------------------------------------------\ /----------------------------\ - /-------->-------\ | /----+----------+----------------------------+----------\ - | /+-----+-----------------------------------------------+----+----------+-\ /---+-------\ | - | /-------++-----+-----------------------------------------------+----+----------+-+---\ | | | | - /--+-------+-------++-----+-----------------------------------------------+---\| | | | | | | | - /----------+--+-----\ | || | /----------------------------------+---++----------+-+---+----\ | | | | - | | | /---+-+-------++-----+------------+--------------->------------------+---++----------+-+\ | | | | | | - | /-----+--+-+---+-+-------++-----+------------+----------------------------------+---++---\ | || | | | | | | - | | | | | | | || | | /-------------------+---++---+--\ | || | | | | | | - /+----+-----+--+-+---+-+-------++-----+------------+\ | | || | | | || | | | | | | - || | /---+--+-+---+-+-------++-----+------------++-------------+-------------------+---++---+--+-\ | || | | | | | | - || | | | | | | | || /-+---------\ || | | || | | | | || | | | | | | - || | | | | | | | || | | | || | | || | | | | || | | | | | | - || | | | | | | ^ || | | | || | /-----+---++---+--+-+-+-++--+----+-------------+---+--\ | | - || | | | | | | | ||/--+-+---------+--++-------------+------->-----+-----+\ || | | | | || | | | | | | | - || | | | | | | | ||| | | | || /-------+-------------+-----++--++---+--+-+-+-++--+----+-------------+---+\ | | | - || | | | | | | | ||| |/+---------+--++-----+-------+-------------+-----++--++---+--+-+-+-++--+----+-------------+---++\| | | - || \-+---+--+-+---+-+-------+++--+++---------+--++-----+-------+-------------+-----++--++---/ | | | || |/---+-------------+---++++----+--+\ - || | | | | | | ||| ||| | || | | | || || | | | || || | \---++++----/ || - || | | \-+---+-+-------+/| ||| | || | | | |v || | | | || || | |||| || - || | | | | | | |/-+++-----\ | || | | | || || | | | || || | |||| || - || | | | | | | || ||| | | || | | | || || /----+-+-+-++--++---+-----------------++++-------++--\ - || | /+----+---+-+-------+-++-+++-----+---+--++-\ | | | || || | | | | || || | |||| || | - || /--+--++----+---+-+--\ | || ||| | | || | | | /------+-----++--++-+----+-+-+-++--++---+-----------------++++--\ || | - || | | || | | | | | || ||| | | || | | | | /-+-----++-\|| | | | | || || | |||| | || | - || | | ||/---+---+-+--+----+-++-+++-----+---+--++-+---+--->---+-\ | | | || |||/+----+-+-+-++--++---+-----------------++++--+----++--+\ - || | | ||| | | | | | || ||| | | || | | | | | | \-----++-+++++----+-+-+-++--++---+-----------------+++/ | || || - || | | ||| | | | | | || ||| | | || | /+-------+-+----+----+-------++\||||| | | | || || | ||| | || || - || | | ||| | | | | /+-++-+++-----+---+--++-+--++-------+-+\ /+----+-------++++++++----+-+-+-++--++---+-----------------+++-\ | || || - || | | ||| /-+---+-+--+---++-++-+++-----+---+--++-+--++-------+-++--++----+------\|||||||| | | | || || | ||| | | || || - || | | ||| | | | | | || || ||| | | || | || | || || | ||||||||| |/+-+-++--++---+-----------------+++-+-+\ || || - || | | ||| | | | | | || || ||| | | || | || \-++--++----+------+++++++++----/|| | || /++---+------------\ ||| | || || || - || | | ||| | | | | | || || ||| | | || | || /++--++----+---\ ||||||||| || | || ||| | | ||| | || || || - || | | ||| | | | | | || || ||| | | || | || ||| || | | ||||||||| || | || ||\---+------------+----+++-+-++---+/ || - || | | ||| | | | | | || || ||| |/--+--++-+--++-------\||| || | | ||||||||| || | || || | | ||| | || | || - || | | /+++-+-+---+-+--+---++-++-+++-----++--+--++-+--++-------++++--++----+---+--+++++++++----\|| | || || | | ||| | || | || - || | | |||| | | | | | || || ||\-----++--+--++-+--++-------++++--++----+---+--++++++/|| ||| | || || | | ||| | || | || - || | | |||| | |/--+-+--+---++-++-++------++--+--++\| || /----++++--++----+---+--++++++-++----+++-+-++-++----+------\ | ||| | || | || - || | | |||| | || | | | || || || || | |||| || | |||| || | | |||||| || ||| | || || | | | ||| | || | || - || | | |||| | || | | | || || || /++--+--++++--++--+----++++--++----+---+--++++++-++----+++-+-++-++----+------+-----+----+++-+-++---+---++\ - || | | |||| | || | | | || || || /---+++--+--++++--++--+----++++--++----+---+--++++++-++----+++-+-++-++\ | | /+----+++-+-++---+--\||| - || | | |||| | || | | | || || || | ||| | \+++--++--+----++++--++----+---+--++++++-++----+++-+-++-+++---/ | || ||| | || | |||| - || | | |||| | || | | | || || \+-+---+++--/ ||| || | |||| || | | |||||| || ||| | || ||| | || ||| | || | |||| - || | | |||| | || | | | || || |/+---+++------+++--++--+----++++--++\ | | |||||| || ||| | || ||| | || ||| | || | |||| - || | | |||| | || | | | || || ||| ||| ||| || | ||||/-+++---+---+--++++++-++----+++-+-++-+++----------+----++----+++-+\|| | |||| - || | | |||| \-++--+-+--+---++-++--+++---+++------+++--++--+----+++++-+++---+---+--/||||| || ||| | || ||| | || ||| |||| | |||| - || | | |||| || | | | || || ||| ||| ||| || | ||||| ||| | | ||||| || ||| | || ||| | || ||| |||| | |||| - || | | |||| || | | | || || ||| ||| /----+++--++--+----+++++-+++---+---+---+++++-++----+++-+-++-+++----------+----++---\||| |||| | |||| - || | /+-++++---++--+-+--+---++-++--+++---+++-+----+++--++--+----+++++-+++\ | | ||||| || ||| | || ||| | ||/--++++-++++\ | |||| - || |/++-++++---++--+-+--+--\|| || ||| ||\-+----+++--++--+----/\+++-++++--+---/ ||||| || ||| | || ||| | ||| |||| ||||| | |||| - || |||| |||| || | | | ||| || ||| || | ||| || | ||| |||| | ||||| || /-+++-+-++-+++---\ | ||| |||| ||||| | |||| - |\---++++-++++---++--/ | | ||| || ||| || | ||| || \------+++-++++--+-------+++++-++--+-+++-+-++-+++---+------/ ||| |||| ||||| | |||| - | |||| |||| || | | ||| || ||| || | ||| || ||| |||| | ||||| || | ||| | || ||| | ||| |||| ||||| | |||| - | |||| |||| || \--+--+++-++--+++---++--+----+++--++---------+++-++++--+-------+++++-++--+-+++-+-++-+/| | ||| |||| ||||| | |||| - | ||||/++++---++-------+--+++-++--+++---++--+----+++--++---------+++\|||| | ||||| || | |||/+-++-+-+---+-----------+++--++++-+++++--+\ |||| - | ||||||||\<--++-------+--+++-++--+++---++--+----+++--++---------/||||||| \-------+++/| || | ||||| || \-+---+-----------+/| |||| ||||| || |||| - | |||||||| /++------\| ||| || /+++---++--+----+++--++----------+++++++----------+++-+-++--+-+++++-++---+---+---------\ | | |||| ||||| || |||| - | |||||||| ||| ||/-+++-++-++++---++--+-\ ||| || ||||||| ||| | || | ||||| || | | | | | |||| ||||| || |||| - | |||||||| ||| ||| ||| || |||| || | | ||| || ||||||| /+++-+-++--+-+++++-++\ | | | | \--++++-++++/ || |||| - | |||||||| ||| ||| ||| || |||| || | | ||| || ||||||| |\++-+-++--+-+++++-+++--+---+---------+-+----++++-++++---/| |||| - | /--++++++++---+++------+++-+++-++-++++---++--+-+--+++\ || ||||||| | || | || | ||||| ||| | | | \----++++-++++----+-/||| - | | |||||||| ||| ||| ||| || |||| || | | |||| || ||||||| | || | || | ||||| ||| | |/--------+----\ |||| |||| | ||| - | | |||||||| ||| /+++-+++-++-++++---++--+-+--++++-++----------+++++++---\ | || | || | ||||| ||| | || /------+---\| |||| |||| | ||| - | | |||||||| ||| |||| ||| || |||| || | | |||| || /-----+++++++---+---\ | || | || | ||||| ||| |/--++-+------+---++-++++-++++----+-\||| - \-+--++++++++---+++-----++++-+++-++-++++---++--+-+--/||| || | ||||||| | | | || | || | ||||| ||| || || | | || |||| |||| | |||| - | |||||||| /-+++-----++++-+++-++-++++---++--+\| ||| || | ||||||| | | | || | || | ||||| ||| || || | | || |||| |||| | |||| - | |||||||| | ||| |||| ||| ||/++++---++--+++---+++-++----+-----+++++++---+---+-+-++-+-++--+-+++++-+++--++--++-+------+\ || |||| |||| | |||| -/--+--++++++++-+-+++-----++++-+++-+++++++---++--+++---+++-++----+-----+++++++---+---+-+-++-+-++--+-+++++-+++\ || || | || || |||| |||| | |||| -| | |||||||| | ||| ||||/+++-+++++++---++--+++---+++-++----+-----+++++++---+\ | | || | |\--+-+++++-++++-++--++-+------++--++-++++-++++----+-+/|| -| | |||||||| | ||| |||||||| ||||||| || ||| ||| || | ||||||| || | | || | | | ||||| |||| || || | || || |||| |||| | | || -| | |||||||| | |||/----++++++++-+++++++---++--+++---+++-++----+-----+++++++---++--+-+-++-+-+---+-+++++-++++-++\ || | || || |||| |||| | | || -| | |||||||| | |||| |||||||| ||||||| /-++--+++---+++-++----+-----+++++++---++--+\| || | | | ||||| |||| ||| || | || || |||| |||| | | || -| | |||||||| | |||| |||||||| ||||||| | || ||| ||| || | ||||||| || ||| || | | | ||||| |||| ||| || | || || |||| |||| | | || -| | |||\++++-+-++++----++++++++-+++++++-+-++--+++---+++-++----+-----+++++++---++--+++-++-+-+---+-++/|| |||| ||| || | || || |||| |||| | | || -| | ||| |||| | |||| ||||||||/+++++++-+-++\ ||| ||| || \-----+++++++---++--/|| || | | | || || |||| ||| || | || || |||| |||| | | || -| | ||| |||| | |||| |||||||\++++++++-+-+++-+++---+++-++----------+++++++---++---++-++-+-+---+-++-++-/||| ||| || | || || |||| |||| | | || -| | ||| |\++-+-++++----+++++++-++++++++-+-+++-+++---+++-++----------+++++++---++---++-++-+-+---+-/\-++--+++-+++-++-+------++--++-++++-+++/ | | || -| | ||| | || | |||| ||||||| |||||||| | ||| ||| ||| ^| ||||\++---++---++-++-+-+---+----++--+++-+++-++-+------++--++-++++-++/ | | || -| | ||| | || | |||| ||||||| ||||||\+-+-+++-+++---+++-++----------++++-/|/--++---++-++-+-+---+----++--+++-+++-++-+-\ || || |||| || | | || -| | ||| | || \-++++----+++++++-++++++-+-+-+++-+/| /-+++-++-------\ |||| || || || |v | v | \+--+++-+++-++-+-+----++--++-++++-++------/ | || -| | ||| | || |\++----+++++++-++++++-+-+-+++-+-+-+-+++-++-------+--++++--++--++---++-++-+-+---+-----+--/|| ||| || | | || || |||| || | || -| /+--+++-+-++---+-++----+++++++-++++++-+-+-+++-+-+-+-+++-++-------+--++++--++-\|| || || | | /+-----+---++-+++-++-+-+----++--++-++++-++-----\ | || -| || ||| | \+---+-++----+++++++-++++++-+-+-+++-+-+-+-+/| || | |||| || ||| || || | | || | || |\+-++-+-+----++--++-++++-++-----+--/ || -| || ||| | | |/++----+++++++-++++++-+-+-+++-+-+-+-+-+-++-------+--++++--++-+++---++-++-+-+--++-----+---++-+\| || | | || || |||| || | || -| || ||| | | |||| ||||||\-++++++-+-+-+++-+-+-+-+-+-++-------+--/||| || ||| || || | | || /---+---++-+++-++-+-+----++--++-++++-++---\ | || -| || ||| | /+---++++----++++++--++++++-+-+-+++-+-+-+-+-+-++-------+---+++--++-+++---++-++-+-+--++-+--\| || ||| || | | || || |||| || | | || -| || ||| | || /-++++----++++++\ |||||| | \-+++-+-+-+-+-+-++-------+---+++--++-+++---/| ||/+-+--++-+--++---++-+++-++-+\| || || |||| || | | || -| || ||\-+-++-+-++++----+++++++-++++++-+---+++-+-+-+-+-+-++-------+---+++--/| ||| | |||| | || | || || ||| || ||| || || |||| || | | || -| || || | |\-+-++++----+++++++-++++++-+---+++-+-+-+-+-+-++-------+---+++---+-+++----+-+++/ | || | || || ||| || ||| || || |||| || | | || -| || || | | | \+++----+/||||| \+++++-+---++/ | | | | | || | ||| | ||| | ||| | || | || || ||| || ||| || || |||| || | | || -| || || | | | |\+----+-+++++--+++++-+---++--+-+-+-/ | || | ||| | ||| | ||| | || | || || ||| || ||| || || |||| || | | || -| || || | | | | | | ||||| ||||| | || | | | /+-++-------+\ ||| | ||| | ||| | || | || || ||| || ||| || || |||| || | | || -| || || \-+--+--+-+----+-+++++--+++++-+---++--+-+-+--++-++-------++--+/| | ||| \-+++--+--++-+--++---/| ||| || ||| || || |||| || | | || -| || || | | | | | ||||| ||||| | || | | | || || /----++--+-+---+-+++------+++--+--++-+--++----+-+++-++-+++----++-\|| |||| || | | || -| || ||/---+--+-\| |/---+-+++++--+++++-+---++--+-+-+--++-++--+----++--+-+---+-+++----\ ||| | ||/+--++----+-+++-++-+++----++-+++-++++-++---+\| || -| || ||| | | || || | ||||| ||||| | || | | | || || | || | | | ||| | ||| \--++++--++----+-+++-++-+++----++-+++-++++-++---+++----/| -| || ||| | | || || | ||||| ||||| | || | | | /++-++--+----++--+-+---+-+++----+-+++-----++++--++----+-+++-++-+++----++-+++\|||| || ||| | -| || ||| ^ | || || | ||||| ||||| | || | | | ||| || | || | | | ||| | ||| |||\--++----+-+++-++-+++----++-++++++++-++---/|| | -| || ||| | | || || | ||||| ||||| | || \-+-+-+++-++--+----++--+-+---+-+++----+-+++-----+++---++----+-+++-++-+++----++-++++/||| || || | -| || ||| | | || || | ||||| ||||| | || | | ||| || | /-++--+-+---+-+++----+-+++-----+++---++----+-+++-++-+++--\ || |||| ||| || || | -|/++--+++---+--+-++-++---+-+++++--+++++-+--\|| |/+-+++-++--+--+\|| | | | ||| | ||| ||| |\----+-+++-++-+++--+-++-++++-/|| || || | -|||| ||| | | || || | ||||| ||||| | ||| /+++-+++-++--+--++++--+-+---+-+++----+-+++-----+++---+-----+-+++-++-+++--+-++-++++\ || || || | -|||| ||| | | || || | ||||| |\+++-+--++/ |||| ||| || | |||| | | | ||| | ||| ||| | | ||| || ||| | || ||||| || || || | -|||| ||| | | || || | ||||| |/+++-+--++---\|||| ||| || | |||| | | | ||| | ||| ||| | | ||| || ||| | || ||||| || || || | -|||| |\+---+--+-++-++---+-+++/| ||||| | |\---+++++-+++-++--+--++++--+-+---+-+++----+-+++-----+++---+-----+-+++-++-+++--+-++-+++++-++-++----++-----/ -|||| | | | | |\-++---+-+++-+--+++++-+--+----+++++-+++-++--+--++++--+-+---+-+++----+-+++-----+++---+-----+-+/| || ||| | || ||||| || || || -|||| | | | | | /++---+-+++\| ||||| | | ||||| ||| || | |||| | | | ||| | ||| ||| | | | | || ||| | || ||||| || || || -|||| | | | /+-+-+++--\| ||||| ||||| | | ||||| ||| || | |||| | | | ||| | ||| ||| | | | | || ||| | || ||||| || || || -|||| | | | || | ||| || ||||| ||||| | | ||||| ||| || | |||| | | | ||| /-+-+++-----+++---+----\| | | || ||| | || ||||| || || || -|||| | | | || | ||| /++-+++++--+++++-+--+----+++++-+++-++--+--++++-\| | | ||| | | ||| ||\---+----++-+-+-++-+++--+-++-+++++-++-++----/| -|||| | | | || | ||| ||| ||||| ||||| \--+----+++++-+++-++--+--++++-++-+---+-+++--+-+-+++-----++----+----++-/ | || ||| | || ||||| || || | -|||| \-+--<+-++-+-+++-+++-/|||| ||||| | |\+++-+++-++--+--++++-++-+---+-+++--+-+-+++-----++----+----++---+-++-+++--+-++-++++/ || || | -|||| | | || | ||| ||| |||| ||||| | | ||| ||| || | |||| |\-+---+-+++--+-+-+++-----++----+----++---+-++-+++--+-++-++++--++-+/ | -|\++----+---+-++-+-+++-+++--++++--+++++----/ | ||| ||| \+--+--++++-+--+---+-+++--+-+-+/| |\----+----++---+-/| ||| | || |||| || | | -| || | | || | ||| ||| |||| \++++---------+-+++-+++--+--+--++++-+--+---+-+++--+-+-/ | | | || | | ||| | || |||| || | | -| || | | || | ||| ||| |||| |||\---------+-+++-+++--+--+--++++-+--+---+-+++--+-+---+-----+-----+----++---+--+-+++--+-++-++++--+/ | | -| || | | || | ||| ||| |||| ||| /----+-+++-+++--+--+--++++-+--+---+-+++--+-+---+-----+--\ | || | | |||/-+-++-++++--+--+------+-\ -| |\----+---+-++-+-+++-+++--++++---+++-----+----+-+++-++/ | | |||| | \---+-+++--+-+---+-----+--+--+----++---+--+-++++-+-++-++++--+--/ | | -| | | | || | ||| ||| |||| ||| | | ||| || | | |||| | | ||| | | | | | | || | | \+++-+-++-+/|| | | | -| \-----+---+-++-+-+++-+++--++++---+++-----+----+-+++-++---+--+--++++-+------+-/|| | | \-----+--+--+----++---+--+--/|| | || | || | | | -| | \-++-+-+++-+++--++++---+++-----+----+-+++-++---+--+--++++-+------+--++--+-+---------+--+--/ || | | || |/++-+-++--+---------+-+---\ -| | |\-+-+++-+++--+++/ /+++-----+----+-+++-++---+--+--++++-+------+--++--+-+---------+--+-------++---+--+>--++-++++-+-++--+-------\ | | | -| | | | ||| ||| ||| ||\+-----+----+-+++-++---+--+--++++-+------+--++--+-+---------+--+-------++---+--+---++-+++/ | || | | | | | -| | | | ||| ||| ||| || | | | ||| || \--+--++++-+------+--++--+-+---------+--+-------++---+--+---++-+++--+-++--/ | | | | -| | | | ||| ||| \++---++-+-----+----+-/|| || | |||| | | || | | | | || | | || ||| | || | | | | -| | | | \++-+++---+/ || | \----+--++-++------+--++++-+------+--++--+-+---------+--/ || | | || ||| | || | | | | -| | | | || ||| \----++-+----------+--++-++------+--++++-+---->-+--+/ | | | || | | || ||| | || | | | | -| | | | || \++--------++-+----------+--++-++------+--++++-/ | | | | \----------++---+--+---++-+++--+-++----------+-/ | | -| | | | || || || | | || || | |||| | | | | /--------------++---+--+---++-+++--+-++-----\ | | | -| | | | || || || | | || || | \+++--------+--+---+-+-----+--------------++---+--+---++-/|| | || | | | | -| | | | || || || | | || || | ||| | | \-+-----+--------------/| | | || || | || | | | | -| | | | || || /++-+----------+\ || \+------+---+++--------+--+-----+-----+---------------+---+--+---++--++--+-+/ | | | | -| | | | || || |\+-+----------++-++--+------+---+++--------+--+-----+-----+---------------+---+--+---++--++--+-+------+----/ | | -| | | | /++--++-------+-+-+----------++-++--+------+---+++-\ \--+-----+-----+---------------+---+--+---/| || | | | | | -| | | | ||| || | | | || \+--+------+---/|| | | | | | | | | || | | | | | -| | | | ||| || | | | |v | | | || | | | | | | | | \+--+-+------+--------+---/ -| /-+-----+--+-+++--++-------+-+-+----------++--+--+------+----++-+---------+-----+-----+---------------+\ | | | | | | | | -| | | | | ||| |\-------+-+-+----------++--+--+------+----++-+---------/ | | || | | | | | | | | -| | | | | ||| | | | \----------++--+--+------+----++-+---------------+-----+---------------++--+--+----+---/ | | | | -| | | | | ||| | | | || | \------+----+/ | | | || | | | | | | | -| | | \--+-+++--/ ^ | || | | | | | | || | | | | | | | -| | | | ||\-----------+-+------------++--+---------+----+--+---------------/ | || | | \------+-+------+--------/ -| | | | || | | || \---------+----/ | | || | | | | | -\-----+-+--------+-++------------+-+------------++------------+-------+---------------------+---------------/| | | | | | - | | | |\------------+-+------------++------------+-------+-<-------------------+----------------+--/ \-----------+-/ | - | | | | \-+------------+/ \-------+---------------------+----------------+-----------------/ | - | | | \---------------+------------+---------------------/ | | | - | | | \------------/ \----------------+--------------------------/ - \-+--------+-------------------------------------------------------------------------------------------/ - \--------/ diff --git a/2018/inputs/15.txt b/2018/inputs/15.txt deleted file mode 100644 index 0bd71e0..0000000 --- a/2018/inputs/15.txt +++ /dev/null @@ -1,32 +0,0 @@ -################################ -#######################.######## -#######################.######## -########..#############.######## -#######.....#########....#..#### -#######.....##########......#### -######....#..########.......#..# -#######.G...########...........# -####..GG....G######..........### -########....G..###..E.......#.E# -########...G..#....G..G.....E..# -########...G...G.G...........E.# -####....G.....#####..E......#E.# -####.####.#..#######....G.....## -####.G#####.#########..........# -####G#####..#########..........# -####.####..E#########..........# -####...#..#.#########.G........# -####.....G..#########.........## -####..G....E.#######........#### -####G.........#####...##....#### -#####G................###..E#### -#####..####...............###### -####..#####.............######## -#####.#######...........######## -#####.########.........######### -#####.########.....E..########## -#.....#########...#.############ -#..#############....############ -################....############ -##################.############# -################################ diff --git a/2018/inputs/16_1.txt b/2018/inputs/16_1.txt deleted file mode 100644 index 755acda..0000000 --- a/2018/inputs/16_1.txt +++ /dev/null @@ -1,3143 +0,0 @@ -Before: [2, 3, 2, 2] -0 3 3 0 -After: [0, 3, 2, 2] - -Before: [1, 1, 2, 3] -6 0 2 0 -After: [0, 1, 2, 3] - -Before: [1, 0, 2, 2] -6 0 2 0 -After: [0, 0, 2, 2] - -Before: [1, 1, 1, 1] -11 2 1 0 -After: [2, 1, 1, 1] - -Before: [3, 0, 0, 2] -0 3 3 2 -After: [3, 0, 0, 2] - -Before: [1, 1, 2, 2] -9 1 0 2 -After: [1, 1, 1, 2] - -Before: [3, 2, 1, 1] -5 2 1 1 -After: [3, 2, 1, 1] - -Before: [1, 1, 0, 3] -7 1 3 0 -After: [0, 1, 0, 3] - -Before: [1, 2, 1, 3] -5 2 1 0 -After: [2, 2, 1, 3] - -Before: [0, 2, 2, 0] -8 0 0 0 -After: [0, 2, 2, 0] - -Before: [2, 0, 0, 1] -3 0 3 0 -After: [1, 0, 0, 1] - -Before: [3, 1, 2, 2] -4 1 3 1 -After: [3, 0, 2, 2] - -Before: [2, 2, 1, 1] -5 2 1 1 -After: [2, 2, 1, 1] - -Before: [1, 1, 2, 2] -6 0 2 2 -After: [1, 1, 0, 2] - -Before: [1, 1, 1, 2] -4 1 3 0 -After: [0, 1, 1, 2] - -Before: [2, 1, 3, 1] -13 1 3 0 -After: [1, 1, 3, 1] - -Before: [0, 1, 2, 1] -13 1 3 1 -After: [0, 1, 2, 1] - -Before: [2, 1, 0, 2] -4 1 3 1 -After: [2, 0, 0, 2] - -Before: [2, 1, 0, 1] -2 0 1 3 -After: [2, 1, 0, 1] - -Before: [3, 1, 2, 1] -12 1 2 2 -After: [3, 1, 0, 1] - -Before: [1, 1, 3, 2] -4 1 3 3 -After: [1, 1, 3, 0] - -Before: [2, 2, 1, 3] -7 1 3 0 -After: [0, 2, 1, 3] - -Before: [1, 3, 2, 1] -6 0 2 1 -After: [1, 0, 2, 1] - -Before: [2, 1, 2, 1] -13 1 3 1 -After: [2, 1, 2, 1] - -Before: [2, 1, 3, 0] -14 2 0 3 -After: [2, 1, 3, 1] - -Before: [1, 1, 2, 3] -6 0 2 3 -After: [1, 1, 2, 0] - -Before: [1, 1, 1, 3] -11 2 1 2 -After: [1, 1, 2, 3] - -Before: [2, 2, 3, 2] -0 3 3 0 -After: [0, 2, 3, 2] - -Before: [1, 2, 0, 2] -1 0 2 3 -After: [1, 2, 0, 0] - -Before: [2, 1, 0, 0] -2 0 1 3 -After: [2, 1, 0, 1] - -Before: [0, 2, 1, 1] -5 2 1 3 -After: [0, 2, 1, 2] - -Before: [0, 3, 2, 1] -10 3 2 3 -After: [0, 3, 2, 1] - -Before: [3, 3, 2, 2] -0 3 3 0 -After: [0, 3, 2, 2] - -Before: [1, 1, 2, 0] -12 1 2 0 -After: [0, 1, 2, 0] - -Before: [0, 2, 1, 3] -5 2 1 0 -After: [2, 2, 1, 3] - -Before: [0, 3, 2, 1] -8 0 0 0 -After: [0, 3, 2, 1] - -Before: [1, 1, 1, 3] -11 2 1 1 -After: [1, 2, 1, 3] - -Before: [0, 1, 1, 2] -11 2 1 2 -After: [0, 1, 2, 2] - -Before: [1, 1, 1, 1] -13 1 3 1 -After: [1, 1, 1, 1] - -Before: [1, 3, 0, 0] -1 0 2 1 -After: [1, 0, 0, 0] - -Before: [2, 2, 3, 1] -14 2 0 1 -After: [2, 1, 3, 1] - -Before: [0, 3, 0, 3] -8 0 0 3 -After: [0, 3, 0, 0] - -Before: [0, 0, 1, 1] -8 0 0 2 -After: [0, 0, 0, 1] - -Before: [0, 3, 2, 1] -8 0 0 2 -After: [0, 3, 0, 1] - -Before: [2, 1, 2, 3] -12 1 2 1 -After: [2, 0, 2, 3] - -Before: [3, 2, 2, 3] -14 2 1 2 -After: [3, 2, 1, 3] - -Before: [2, 2, 3, 0] -15 2 2 2 -After: [2, 2, 1, 0] - -Before: [2, 3, 3, 2] -15 2 2 0 -After: [1, 3, 3, 2] - -Before: [1, 1, 0, 0] -1 0 2 3 -After: [1, 1, 0, 0] - -Before: [3, 2, 2, 2] -0 3 3 3 -After: [3, 2, 2, 0] - -Before: [1, 3, 2, 2] -6 0 2 3 -After: [1, 3, 2, 0] - -Before: [2, 1, 0, 1] -3 0 3 1 -After: [2, 1, 0, 1] - -Before: [3, 3, 1, 3] -7 2 3 0 -After: [0, 3, 1, 3] - -Before: [0, 2, 1, 0] -5 2 1 3 -After: [0, 2, 1, 2] - -Before: [1, 1, 1, 2] -4 1 3 2 -After: [1, 1, 0, 2] - -Before: [0, 3, 1, 2] -8 0 0 1 -After: [0, 0, 1, 2] - -Before: [2, 1, 3, 3] -7 1 3 0 -After: [0, 1, 3, 3] - -Before: [3, 2, 2, 1] -10 3 2 0 -After: [1, 2, 2, 1] - -Before: [2, 1, 0, 1] -3 0 3 3 -After: [2, 1, 0, 1] - -Before: [2, 1, 1, 1] -13 1 3 2 -After: [2, 1, 1, 1] - -Before: [2, 2, 0, 3] -7 1 3 1 -After: [2, 0, 0, 3] - -Before: [2, 2, 0, 1] -3 0 3 0 -After: [1, 2, 0, 1] - -Before: [2, 2, 3, 1] -3 0 3 3 -After: [2, 2, 3, 1] - -Before: [1, 2, 0, 0] -1 0 2 1 -After: [1, 0, 0, 0] - -Before: [2, 2, 2, 2] -14 3 2 1 -After: [2, 0, 2, 2] - -Before: [3, 1, 1, 2] -4 1 3 1 -After: [3, 0, 1, 2] - -Before: [2, 1, 1, 1] -2 0 1 3 -After: [2, 1, 1, 1] - -Before: [1, 1, 0, 0] -1 0 2 1 -After: [1, 0, 0, 0] - -Before: [1, 3, 0, 2] -1 0 2 1 -After: [1, 0, 0, 2] - -Before: [1, 1, 1, 3] -9 1 0 2 -After: [1, 1, 1, 3] - -Before: [3, 1, 2, 2] -12 1 2 2 -After: [3, 1, 0, 2] - -Before: [0, 1, 2, 1] -12 1 2 2 -After: [0, 1, 0, 1] - -Before: [3, 2, 0, 3] -7 1 3 3 -After: [3, 2, 0, 0] - -Before: [2, 1, 2, 3] -7 2 3 2 -After: [2, 1, 0, 3] - -Before: [3, 1, 3, 1] -13 1 3 0 -After: [1, 1, 3, 1] - -Before: [2, 1, 1, 1] -11 2 1 0 -After: [2, 1, 1, 1] - -Before: [0, 1, 1, 0] -11 2 1 3 -After: [0, 1, 1, 2] - -Before: [2, 1, 3, 3] -7 1 3 2 -After: [2, 1, 0, 3] - -Before: [2, 3, 2, 1] -10 3 2 1 -After: [2, 1, 2, 1] - -Before: [1, 1, 2, 2] -4 1 3 1 -After: [1, 0, 2, 2] - -Before: [1, 3, 0, 1] -1 0 2 0 -After: [0, 3, 0, 1] - -Before: [1, 3, 0, 3] -1 0 2 3 -After: [1, 3, 0, 0] - -Before: [2, 3, 3, 1] -3 0 3 1 -After: [2, 1, 3, 1] - -Before: [2, 1, 1, 2] -11 2 1 3 -After: [2, 1, 1, 2] - -Before: [2, 1, 1, 1] -2 0 1 1 -After: [2, 1, 1, 1] - -Before: [3, 1, 2, 2] -4 1 3 0 -After: [0, 1, 2, 2] - -Before: [2, 0, 2, 1] -10 3 2 1 -After: [2, 1, 2, 1] - -Before: [1, 3, 0, 1] -1 0 2 1 -After: [1, 0, 0, 1] - -Before: [1, 1, 0, 2] -9 1 0 0 -After: [1, 1, 0, 2] - -Before: [2, 3, 2, 1] -3 0 3 2 -After: [2, 3, 1, 1] - -Before: [1, 2, 2, 1] -0 3 3 3 -After: [1, 2, 2, 0] - -Before: [3, 1, 2, 2] -12 1 2 1 -After: [3, 0, 2, 2] - -Before: [0, 2, 3, 1] -8 0 0 1 -After: [0, 0, 3, 1] - -Before: [0, 0, 2, 1] -10 3 2 2 -After: [0, 0, 1, 1] - -Before: [3, 2, 1, 3] -15 0 0 3 -After: [3, 2, 1, 1] - -Before: [1, 3, 2, 2] -6 0 2 2 -After: [1, 3, 0, 2] - -Before: [1, 2, 2, 3] -6 0 2 3 -After: [1, 2, 2, 0] - -Before: [1, 1, 3, 2] -4 1 3 2 -After: [1, 1, 0, 2] - -Before: [1, 2, 2, 1] -10 3 2 3 -After: [1, 2, 2, 1] - -Before: [1, 2, 2, 1] -6 0 2 2 -After: [1, 2, 0, 1] - -Before: [1, 2, 1, 3] -7 2 3 1 -After: [1, 0, 1, 3] - -Before: [1, 2, 2, 1] -10 3 2 0 -After: [1, 2, 2, 1] - -Before: [2, 3, 3, 1] -3 0 3 3 -After: [2, 3, 3, 1] - -Before: [2, 3, 2, 3] -14 2 0 2 -After: [2, 3, 1, 3] - -Before: [2, 1, 3, 1] -2 0 1 3 -After: [2, 1, 3, 1] - -Before: [0, 3, 3, 0] -8 0 0 1 -After: [0, 0, 3, 0] - -Before: [2, 1, 1, 3] -7 2 3 2 -After: [2, 1, 0, 3] - -Before: [0, 2, 2, 1] -10 3 2 3 -After: [0, 2, 2, 1] - -Before: [3, 2, 1, 3] -5 2 1 3 -After: [3, 2, 1, 2] - -Before: [3, 1, 1, 2] -0 3 3 2 -After: [3, 1, 0, 2] - -Before: [0, 3, 1, 3] -7 2 3 3 -After: [0, 3, 1, 0] - -Before: [2, 0, 2, 1] -10 3 2 3 -After: [2, 0, 2, 1] - -Before: [2, 2, 1, 0] -5 2 1 2 -After: [2, 2, 2, 0] - -Before: [2, 1, 2, 2] -4 1 3 3 -After: [2, 1, 2, 0] - -Before: [1, 3, 1, 1] -0 2 3 2 -After: [1, 3, 0, 1] - -Before: [1, 1, 0, 3] -1 0 2 3 -After: [1, 1, 0, 0] - -Before: [1, 0, 0, 3] -1 0 2 2 -After: [1, 0, 0, 3] - -Before: [2, 1, 1, 0] -11 2 1 0 -After: [2, 1, 1, 0] - -Before: [2, 0, 0, 1] -3 0 3 3 -After: [2, 0, 0, 1] - -Before: [3, 3, 0, 1] -14 0 2 2 -After: [3, 3, 1, 1] - -Before: [0, 1, 2, 0] -8 0 0 1 -After: [0, 0, 2, 0] - -Before: [2, 0, 1, 1] -3 0 3 2 -After: [2, 0, 1, 1] - -Before: [1, 3, 2, 0] -6 0 2 1 -After: [1, 0, 2, 0] - -Before: [3, 3, 2, 0] -2 0 2 3 -After: [3, 3, 2, 1] - -Before: [2, 1, 0, 1] -13 1 3 2 -After: [2, 1, 1, 1] - -Before: [1, 1, 2, 1] -13 1 3 2 -After: [1, 1, 1, 1] - -Before: [1, 3, 2, 0] -6 0 2 2 -After: [1, 3, 0, 0] - -Before: [3, 1, 3, 2] -4 1 3 1 -After: [3, 0, 3, 2] - -Before: [2, 3, 2, 2] -15 0 0 3 -After: [2, 3, 2, 1] - -Before: [2, 3, 2, 1] -3 0 3 3 -After: [2, 3, 2, 1] - -Before: [2, 1, 1, 2] -4 1 3 0 -After: [0, 1, 1, 2] - -Before: [1, 1, 1, 1] -13 1 3 0 -After: [1, 1, 1, 1] - -Before: [3, 1, 1, 0] -11 2 1 2 -After: [3, 1, 2, 0] - -Before: [3, 1, 1, 1] -11 2 1 0 -After: [2, 1, 1, 1] - -Before: [3, 1, 0, 2] -4 1 3 0 -After: [0, 1, 0, 2] - -Before: [3, 3, 1, 3] -15 0 0 3 -After: [3, 3, 1, 1] - -Before: [1, 2, 2, 1] -10 3 2 1 -After: [1, 1, 2, 1] - -Before: [1, 1, 1, 0] -11 2 1 3 -After: [1, 1, 1, 2] - -Before: [1, 1, 1, 2] -11 2 1 0 -After: [2, 1, 1, 2] - -Before: [3, 2, 2, 2] -14 2 1 2 -After: [3, 2, 1, 2] - -Before: [0, 0, 3, 3] -15 2 2 3 -After: [0, 0, 3, 1] - -Before: [0, 3, 2, 2] -0 3 3 0 -After: [0, 3, 2, 2] - -Before: [1, 0, 2, 1] -10 3 2 1 -After: [1, 1, 2, 1] - -Before: [2, 1, 2, 2] -14 3 2 1 -After: [2, 0, 2, 2] - -Before: [1, 0, 0, 3] -1 0 2 1 -After: [1, 0, 0, 3] - -Before: [3, 2, 1, 3] -7 2 3 1 -After: [3, 0, 1, 3] - -Before: [3, 1, 1, 2] -11 2 1 0 -After: [2, 1, 1, 2] - -Before: [1, 3, 2, 1] -6 0 2 0 -After: [0, 3, 2, 1] - -Before: [2, 0, 3, 1] -3 0 3 0 -After: [1, 0, 3, 1] - -Before: [3, 1, 2, 2] -12 1 2 0 -After: [0, 1, 2, 2] - -Before: [3, 1, 2, 0] -12 1 2 3 -After: [3, 1, 2, 0] - -Before: [2, 1, 2, 0] -2 0 1 3 -After: [2, 1, 2, 1] - -Before: [1, 1, 3, 1] -14 2 3 2 -After: [1, 1, 0, 1] - -Before: [1, 3, 2, 3] -6 0 2 0 -After: [0, 3, 2, 3] - -Before: [1, 1, 2, 3] -12 1 2 0 -After: [0, 1, 2, 3] - -Before: [3, 0, 2, 1] -10 3 2 1 -After: [3, 1, 2, 1] - -Before: [1, 0, 2, 0] -6 0 2 1 -After: [1, 0, 2, 0] - -Before: [2, 3, 1, 3] -7 2 3 2 -After: [2, 3, 0, 3] - -Before: [1, 1, 1, 1] -11 2 1 3 -After: [1, 1, 1, 2] - -Before: [2, 1, 2, 2] -2 0 1 0 -After: [1, 1, 2, 2] - -Before: [1, 2, 1, 3] -7 2 3 3 -After: [1, 2, 1, 0] - -Before: [1, 1, 2, 2] -12 1 2 0 -After: [0, 1, 2, 2] - -Before: [2, 0, 2, 1] -10 3 2 2 -After: [2, 0, 1, 1] - -Before: [0, 1, 2, 3] -12 1 2 2 -After: [0, 1, 0, 3] - -Before: [2, 1, 1, 3] -11 2 1 0 -After: [2, 1, 1, 3] - -Before: [2, 1, 3, 1] -13 1 3 3 -After: [2, 1, 3, 1] - -Before: [0, 2, 1, 1] -8 0 0 1 -After: [0, 0, 1, 1] - -Before: [1, 0, 0, 2] -1 0 2 1 -After: [1, 0, 0, 2] - -Before: [2, 1, 3, 3] -2 0 1 1 -After: [2, 1, 3, 3] - -Before: [0, 1, 2, 2] -4 1 3 2 -After: [0, 1, 0, 2] - -Before: [1, 1, 2, 1] -13 1 3 0 -After: [1, 1, 2, 1] - -Before: [1, 1, 3, 0] -9 1 0 1 -After: [1, 1, 3, 0] - -Before: [1, 1, 0, 1] -1 0 2 1 -After: [1, 0, 0, 1] - -Before: [2, 2, 3, 1] -3 0 3 1 -After: [2, 1, 3, 1] - -Before: [3, 2, 1, 2] -5 2 1 0 -After: [2, 2, 1, 2] - -Before: [1, 1, 2, 0] -12 1 2 1 -After: [1, 0, 2, 0] - -Before: [3, 0, 2, 3] -2 0 2 3 -After: [3, 0, 2, 1] - -Before: [2, 1, 3, 3] -2 0 1 2 -After: [2, 1, 1, 3] - -Before: [3, 1, 3, 1] -15 0 0 0 -After: [1, 1, 3, 1] - -Before: [0, 1, 3, 2] -4 1 3 1 -After: [0, 0, 3, 2] - -Before: [3, 2, 3, 3] -15 2 0 0 -After: [1, 2, 3, 3] - -Before: [1, 3, 3, 1] -0 3 3 0 -After: [0, 3, 3, 1] - -Before: [0, 0, 2, 3] -7 2 3 0 -After: [0, 0, 2, 3] - -Before: [0, 2, 1, 3] -7 2 3 2 -After: [0, 2, 0, 3] - -Before: [3, 0, 2, 1] -2 0 2 0 -After: [1, 0, 2, 1] - -Before: [2, 2, 2, 1] -10 3 2 2 -After: [2, 2, 1, 1] - -Before: [1, 2, 0, 1] -1 0 2 0 -After: [0, 2, 0, 1] - -Before: [1, 2, 0, 0] -1 0 2 2 -After: [1, 2, 0, 0] - -Before: [3, 1, 2, 1] -2 0 2 1 -After: [3, 1, 2, 1] - -Before: [0, 0, 3, 1] -8 0 0 1 -After: [0, 0, 3, 1] - -Before: [0, 1, 1, 2] -11 2 1 3 -After: [0, 1, 1, 2] - -Before: [0, 1, 3, 1] -13 1 3 2 -After: [0, 1, 1, 1] - -Before: [1, 1, 1, 2] -11 2 1 2 -After: [1, 1, 2, 2] - -Before: [2, 0, 3, 1] -3 0 3 3 -After: [2, 0, 3, 1] - -Before: [0, 2, 1, 2] -8 0 0 0 -After: [0, 2, 1, 2] - -Before: [1, 0, 2, 1] -6 0 2 1 -After: [1, 0, 2, 1] - -Before: [1, 1, 0, 2] -4 1 3 3 -After: [1, 1, 0, 0] - -Before: [2, 2, 1, 1] -3 0 3 2 -After: [2, 2, 1, 1] - -Before: [1, 2, 1, 2] -5 2 1 2 -After: [1, 2, 2, 2] - -Before: [2, 0, 2, 1] -3 0 3 3 -After: [2, 0, 2, 1] - -Before: [2, 1, 0, 1] -3 0 3 2 -After: [2, 1, 1, 1] - -Before: [2, 2, 1, 2] -5 2 1 1 -After: [2, 2, 1, 2] - -Before: [1, 1, 2, 2] -9 1 0 3 -After: [1, 1, 2, 1] - -Before: [2, 2, 1, 3] -15 0 0 3 -After: [2, 2, 1, 1] - -Before: [3, 1, 0, 1] -13 1 3 3 -After: [3, 1, 0, 1] - -Before: [3, 3, 2, 1] -10 3 2 2 -After: [3, 3, 1, 1] - -Before: [0, 1, 3, 2] -4 1 3 3 -After: [0, 1, 3, 0] - -Before: [0, 1, 1, 0] -11 2 1 2 -After: [0, 1, 2, 0] - -Before: [3, 1, 3, 1] -14 3 1 0 -After: [0, 1, 3, 1] - -Before: [0, 1, 3, 3] -8 0 0 3 -After: [0, 1, 3, 0] - -Before: [0, 1, 2, 1] -10 3 2 0 -After: [1, 1, 2, 1] - -Before: [2, 1, 2, 1] -3 0 3 2 -After: [2, 1, 1, 1] - -Before: [0, 2, 1, 3] -5 2 1 3 -After: [0, 2, 1, 2] - -Before: [1, 0, 0, 3] -1 0 2 0 -After: [0, 0, 0, 3] - -Before: [2, 3, 0, 1] -3 0 3 0 -After: [1, 3, 0, 1] - -Before: [2, 1, 2, 1] -12 1 2 1 -After: [2, 0, 2, 1] - -Before: [2, 1, 3, 2] -4 1 3 0 -After: [0, 1, 3, 2] - -Before: [1, 2, 1, 0] -5 2 1 3 -After: [1, 2, 1, 2] - -Before: [3, 1, 3, 1] -13 1 3 1 -After: [3, 1, 3, 1] - -Before: [1, 2, 1, 0] -5 2 1 1 -After: [1, 2, 1, 0] - -Before: [3, 1, 2, 1] -10 3 2 1 -After: [3, 1, 2, 1] - -Before: [1, 1, 1, 1] -13 1 3 2 -After: [1, 1, 1, 1] - -Before: [2, 1, 2, 1] -13 1 3 2 -After: [2, 1, 1, 1] - -Before: [1, 2, 1, 3] -7 1 3 1 -After: [1, 0, 1, 3] - -Before: [0, 0, 2, 2] -14 3 2 3 -After: [0, 0, 2, 0] - -Before: [2, 2, 1, 3] -15 0 0 1 -After: [2, 1, 1, 3] - -Before: [2, 1, 3, 2] -4 1 3 1 -After: [2, 0, 3, 2] - -Before: [1, 2, 1, 3] -5 2 1 2 -After: [1, 2, 2, 3] - -Before: [2, 2, 1, 0] -5 2 1 3 -After: [2, 2, 1, 2] - -Before: [2, 0, 2, 1] -3 0 3 2 -After: [2, 0, 1, 1] - -Before: [1, 0, 0, 1] -1 0 2 0 -After: [0, 0, 0, 1] - -Before: [2, 1, 1, 0] -15 0 0 0 -After: [1, 1, 1, 0] - -Before: [0, 0, 3, 3] -8 0 0 0 -After: [0, 0, 3, 3] - -Before: [1, 1, 1, 2] -4 1 3 3 -After: [1, 1, 1, 0] - -Before: [1, 2, 0, 3] -1 0 2 1 -After: [1, 0, 0, 3] - -Before: [1, 1, 0, 2] -9 1 0 1 -After: [1, 1, 0, 2] - -Before: [3, 1, 1, 1] -11 2 1 3 -After: [3, 1, 1, 2] - -Before: [1, 1, 0, 3] -7 1 3 1 -After: [1, 0, 0, 3] - -Before: [1, 1, 1, 3] -7 1 3 2 -After: [1, 1, 0, 3] - -Before: [1, 1, 2, 3] -6 0 2 1 -After: [1, 0, 2, 3] - -Before: [2, 1, 1, 2] -4 1 3 3 -After: [2, 1, 1, 0] - -Before: [2, 2, 2, 3] -7 1 3 2 -After: [2, 2, 0, 3] - -Before: [1, 3, 2, 1] -0 3 3 3 -After: [1, 3, 2, 0] - -Before: [0, 0, 3, 3] -8 0 0 3 -After: [0, 0, 3, 0] - -Before: [3, 1, 3, 1] -15 0 0 1 -After: [3, 1, 3, 1] - -Before: [1, 0, 0, 2] -1 0 2 2 -After: [1, 0, 0, 2] - -Before: [0, 0, 0, 1] -0 3 3 1 -After: [0, 0, 0, 1] - -Before: [1, 1, 1, 2] -9 1 0 0 -After: [1, 1, 1, 2] - -Before: [1, 3, 0, 1] -1 0 2 2 -After: [1, 3, 0, 1] - -Before: [1, 1, 3, 3] -9 1 0 0 -After: [1, 1, 3, 3] - -Before: [2, 1, 3, 1] -13 1 3 2 -After: [2, 1, 1, 1] - -Before: [2, 1, 3, 2] -4 1 3 3 -After: [2, 1, 3, 0] - -Before: [2, 1, 2, 1] -13 1 3 3 -After: [2, 1, 2, 1] - -Before: [1, 0, 2, 2] -6 0 2 1 -After: [1, 0, 2, 2] - -Before: [1, 1, 2, 1] -10 3 2 2 -After: [1, 1, 1, 1] - -Before: [3, 2, 1, 3] -5 2 1 2 -After: [3, 2, 2, 3] - -Before: [0, 1, 2, 0] -12 1 2 2 -After: [0, 1, 0, 0] - -Before: [2, 1, 1, 3] -2 0 1 0 -After: [1, 1, 1, 3] - -Before: [1, 2, 2, 3] -14 2 1 2 -After: [1, 2, 1, 3] - -Before: [1, 2, 0, 3] -1 0 2 0 -After: [0, 2, 0, 3] - -Before: [0, 1, 2, 2] -8 0 0 2 -After: [0, 1, 0, 2] - -Before: [0, 2, 1, 0] -5 2 1 1 -After: [0, 2, 1, 0] - -Before: [2, 0, 0, 1] -15 0 0 2 -After: [2, 0, 1, 1] - -Before: [2, 2, 1, 3] -5 2 1 0 -After: [2, 2, 1, 3] - -Before: [3, 2, 2, 1] -10 3 2 2 -After: [3, 2, 1, 1] - -Before: [0, 3, 2, 2] -14 3 2 2 -After: [0, 3, 0, 2] - -Before: [1, 2, 0, 1] -1 0 2 2 -After: [1, 2, 0, 1] - -Before: [0, 1, 1, 0] -11 2 1 0 -After: [2, 1, 1, 0] - -Before: [1, 2, 2, 3] -14 2 1 3 -After: [1, 2, 2, 1] - -Before: [2, 1, 3, 1] -3 0 3 3 -After: [2, 1, 3, 1] - -Before: [0, 1, 2, 3] -7 1 3 3 -After: [0, 1, 2, 0] - -Before: [2, 1, 2, 2] -2 0 1 1 -After: [2, 1, 2, 2] - -Before: [2, 2, 1, 0] -5 2 1 1 -After: [2, 2, 1, 0] - -Before: [3, 2, 1, 3] -5 2 1 0 -After: [2, 2, 1, 3] - -Before: [1, 1, 2, 1] -0 3 3 1 -After: [1, 0, 2, 1] - -Before: [1, 0, 2, 1] -6 0 2 3 -After: [1, 0, 2, 0] - -Before: [1, 3, 0, 2] -1 0 2 0 -After: [0, 3, 0, 2] - -Before: [0, 1, 1, 3] -11 2 1 2 -After: [0, 1, 2, 3] - -Before: [1, 1, 3, 3] -9 1 0 1 -After: [1, 1, 3, 3] - -Before: [3, 1, 2, 3] -12 1 2 1 -After: [3, 0, 2, 3] - -Before: [0, 1, 1, 1] -13 1 3 0 -After: [1, 1, 1, 1] - -Before: [1, 1, 2, 3] -9 1 0 1 -After: [1, 1, 2, 3] - -Before: [0, 3, 1, 3] -7 2 3 0 -After: [0, 3, 1, 3] - -Before: [3, 1, 2, 1] -13 1 3 2 -After: [3, 1, 1, 1] - -Before: [1, 0, 1, 3] -7 2 3 1 -After: [1, 0, 1, 3] - -Before: [1, 1, 0, 3] -1 0 2 0 -After: [0, 1, 0, 3] - -Before: [2, 1, 2, 2] -12 1 2 2 -After: [2, 1, 0, 2] - -Before: [3, 0, 1, 3] -14 3 0 0 -After: [1, 0, 1, 3] - -Before: [3, 1, 3, 3] -7 1 3 3 -After: [3, 1, 3, 0] - -Before: [1, 1, 0, 0] -1 0 2 0 -After: [0, 1, 0, 0] - -Before: [1, 1, 1, 1] -0 2 3 2 -After: [1, 1, 0, 1] - -Before: [2, 1, 0, 1] -2 0 1 2 -After: [2, 1, 1, 1] - -Before: [1, 1, 2, 1] -14 3 1 1 -After: [1, 0, 2, 1] - -Before: [0, 0, 2, 3] -7 2 3 3 -After: [0, 0, 2, 0] - -Before: [3, 2, 0, 0] -14 0 2 1 -After: [3, 1, 0, 0] - -Before: [0, 0, 2, 3] -8 0 0 0 -After: [0, 0, 2, 3] - -Before: [3, 1, 1, 0] -11 2 1 1 -After: [3, 2, 1, 0] - -Before: [1, 2, 1, 1] -5 2 1 2 -After: [1, 2, 2, 1] - -Before: [0, 2, 1, 3] -7 2 3 3 -After: [0, 2, 1, 0] - -Before: [3, 1, 2, 2] -15 0 0 3 -After: [3, 1, 2, 1] - -Before: [0, 0, 0, 2] -8 0 0 2 -After: [0, 0, 0, 2] - -Before: [3, 1, 3, 1] -13 1 3 2 -After: [3, 1, 1, 1] - -Before: [1, 1, 2, 3] -9 1 0 2 -After: [1, 1, 1, 3] - -Before: [1, 2, 0, 2] -1 0 2 2 -After: [1, 2, 0, 2] - -Before: [2, 1, 2, 3] -2 0 1 3 -After: [2, 1, 2, 1] - -Before: [1, 2, 0, 3] -1 0 2 2 -After: [1, 2, 0, 3] - -Before: [1, 0, 2, 0] -6 0 2 3 -After: [1, 0, 2, 0] - -Before: [1, 0, 3, 1] -0 3 3 2 -After: [1, 0, 0, 1] - -Before: [1, 3, 2, 1] -6 0 2 3 -After: [1, 3, 2, 0] - -Before: [1, 1, 1, 1] -9 1 0 3 -After: [1, 1, 1, 1] - -Before: [0, 3, 2, 1] -0 3 3 1 -After: [0, 0, 2, 1] - -Before: [1, 1, 3, 1] -13 1 3 3 -After: [1, 1, 3, 1] - -Before: [2, 2, 0, 3] -7 1 3 0 -After: [0, 2, 0, 3] - -Before: [0, 3, 2, 1] -0 3 3 0 -After: [0, 3, 2, 1] - -Before: [1, 0, 0, 1] -1 0 2 2 -After: [1, 0, 0, 1] - -Before: [2, 1, 2, 1] -2 0 1 2 -After: [2, 1, 1, 1] - -Before: [1, 2, 2, 2] -6 0 2 2 -After: [1, 2, 0, 2] - -Before: [0, 1, 1, 1] -13 1 3 3 -After: [0, 1, 1, 1] - -Before: [2, 1, 1, 0] -11 2 1 2 -After: [2, 1, 2, 0] - -Before: [0, 1, 3, 1] -13 1 3 1 -After: [0, 1, 3, 1] - -Before: [3, 2, 0, 2] -0 3 3 1 -After: [3, 0, 0, 2] - -Before: [1, 1, 2, 1] -10 3 2 3 -After: [1, 1, 2, 1] - -Before: [2, 1, 2, 1] -13 1 3 0 -After: [1, 1, 2, 1] - -Before: [2, 1, 0, 1] -13 1 3 1 -After: [2, 1, 0, 1] - -Before: [2, 1, 2, 2] -12 1 2 3 -After: [2, 1, 2, 0] - -Before: [0, 1, 2, 0] -12 1 2 1 -After: [0, 0, 2, 0] - -Before: [3, 1, 2, 2] -4 1 3 2 -After: [3, 1, 0, 2] - -Before: [1, 1, 0, 2] -1 0 2 1 -After: [1, 0, 0, 2] - -Before: [0, 2, 1, 1] -0 2 3 2 -After: [0, 2, 0, 1] - -Before: [1, 1, 2, 0] -6 0 2 0 -After: [0, 1, 2, 0] - -Before: [0, 3, 1, 2] -8 0 0 3 -After: [0, 3, 1, 0] - -Before: [1, 3, 0, 0] -1 0 2 2 -After: [1, 3, 0, 0] - -Before: [1, 1, 2, 0] -12 1 2 2 -After: [1, 1, 0, 0] - -Before: [2, 1, 0, 2] -0 3 3 1 -After: [2, 0, 0, 2] - -Before: [0, 3, 3, 3] -8 0 0 1 -After: [0, 0, 3, 3] - -Before: [3, 3, 0, 1] -0 3 3 0 -After: [0, 3, 0, 1] - -Before: [3, 1, 1, 2] -4 1 3 3 -After: [3, 1, 1, 0] - -Before: [2, 1, 2, 3] -12 1 2 3 -After: [2, 1, 2, 0] - -Before: [3, 1, 2, 1] -12 1 2 3 -After: [3, 1, 2, 0] - -Before: [1, 0, 2, 2] -6 0 2 3 -After: [1, 0, 2, 0] - -Before: [1, 1, 0, 1] -0 3 3 1 -After: [1, 0, 0, 1] - -Before: [1, 1, 0, 3] -9 1 0 2 -After: [1, 1, 1, 3] - -Before: [3, 0, 2, 1] -10 3 2 3 -After: [3, 0, 2, 1] - -Before: [2, 2, 3, 3] -14 3 2 3 -After: [2, 2, 3, 1] - -Before: [3, 1, 2, 2] -12 1 2 3 -After: [3, 1, 2, 0] - -Before: [0, 1, 2, 1] -10 3 2 1 -After: [0, 1, 2, 1] - -Before: [0, 1, 3, 0] -8 0 0 2 -After: [0, 1, 0, 0] - -Before: [3, 1, 2, 0] -12 1 2 1 -After: [3, 0, 2, 0] - -Before: [1, 3, 2, 0] -6 0 2 3 -After: [1, 3, 2, 0] - -Before: [2, 0, 1, 3] -7 2 3 3 -After: [2, 0, 1, 0] - -Before: [3, 2, 2, 1] -10 3 2 3 -After: [3, 2, 2, 1] - -Before: [1, 2, 0, 0] -1 0 2 3 -After: [1, 2, 0, 0] - -Before: [2, 1, 1, 1] -0 2 3 0 -After: [0, 1, 1, 1] - -Before: [3, 2, 1, 1] -5 2 1 3 -After: [3, 2, 1, 2] - -Before: [3, 1, 3, 1] -14 2 3 0 -After: [0, 1, 3, 1] - -Before: [2, 1, 1, 3] -14 2 1 1 -After: [2, 0, 1, 3] - -Before: [0, 1, 1, 2] -8 0 0 0 -After: [0, 1, 1, 2] - -Before: [2, 3, 3, 2] -15 2 2 2 -After: [2, 3, 1, 2] - -Before: [0, 1, 2, 3] -7 2 3 1 -After: [0, 0, 2, 3] - -Before: [1, 1, 0, 2] -4 1 3 2 -After: [1, 1, 0, 2] - -Before: [0, 2, 3, 0] -8 0 0 2 -After: [0, 2, 0, 0] - -Before: [0, 1, 1, 1] -11 2 1 1 -After: [0, 2, 1, 1] - -Before: [2, 1, 1, 1] -13 1 3 0 -After: [1, 1, 1, 1] - -Before: [2, 3, 1, 3] -7 2 3 0 -After: [0, 3, 1, 3] - -Before: [2, 1, 2, 3] -12 1 2 2 -After: [2, 1, 0, 3] - -Before: [2, 2, 1, 3] -5 2 1 3 -After: [2, 2, 1, 2] - -Before: [3, 1, 1, 3] -11 2 1 0 -After: [2, 1, 1, 3] - -Before: [0, 0, 1, 3] -7 2 3 1 -After: [0, 0, 1, 3] - -Before: [1, 3, 2, 1] -10 3 2 2 -After: [1, 3, 1, 1] - -Before: [3, 2, 1, 2] -15 0 0 2 -After: [3, 2, 1, 2] - -Before: [1, 2, 1, 1] -0 2 3 1 -After: [1, 0, 1, 1] - -Before: [1, 1, 1, 3] -9 1 0 3 -After: [1, 1, 1, 1] - -Before: [1, 1, 0, 3] -9 1 0 3 -After: [1, 1, 0, 1] - -Before: [0, 1, 1, 1] -11 2 1 2 -After: [0, 1, 2, 1] - -Before: [0, 1, 2, 1] -13 1 3 2 -After: [0, 1, 1, 1] - -Before: [1, 1, 2, 2] -4 1 3 2 -After: [1, 1, 0, 2] - -Before: [3, 1, 1, 2] -11 2 1 3 -After: [3, 1, 1, 2] - -Before: [2, 2, 3, 2] -0 3 3 3 -After: [2, 2, 3, 0] - -Before: [0, 0, 1, 1] -0 2 3 1 -After: [0, 0, 1, 1] - -Before: [0, 1, 2, 2] -12 1 2 1 -After: [0, 0, 2, 2] - -Before: [2, 0, 3, 1] -3 0 3 2 -After: [2, 0, 1, 1] - -Before: [1, 0, 2, 0] -6 0 2 0 -After: [0, 0, 2, 0] - -Before: [0, 2, 1, 1] -5 2 1 0 -After: [2, 2, 1, 1] - -Before: [1, 3, 3, 0] -15 2 2 0 -After: [1, 3, 3, 0] - -Before: [0, 3, 2, 0] -8 0 0 2 -After: [0, 3, 0, 0] - -Before: [2, 2, 2, 1] -0 3 3 1 -After: [2, 0, 2, 1] - -Before: [3, 1, 1, 2] -4 1 3 0 -After: [0, 1, 1, 2] - -Before: [1, 2, 1, 0] -5 2 1 0 -After: [2, 2, 1, 0] - -Before: [2, 2, 3, 3] -15 0 0 0 -After: [1, 2, 3, 3] - -Before: [2, 1, 0, 0] -2 0 1 1 -After: [2, 1, 0, 0] - -Before: [1, 2, 2, 3] -6 0 2 2 -After: [1, 2, 0, 3] - -Before: [1, 0, 0, 1] -1 0 2 1 -After: [1, 0, 0, 1] - -Before: [2, 2, 0, 1] -3 0 3 1 -After: [2, 1, 0, 1] - -Before: [3, 2, 1, 2] -5 2 1 1 -After: [3, 2, 1, 2] - -Before: [2, 1, 3, 2] -14 2 0 1 -After: [2, 1, 3, 2] - -Before: [1, 1, 0, 0] -9 1 0 2 -After: [1, 1, 1, 0] - -Before: [2, 2, 3, 3] -15 2 2 2 -After: [2, 2, 1, 3] - -Before: [0, 2, 1, 0] -8 0 0 2 -After: [0, 2, 0, 0] - -Before: [1, 1, 0, 1] -9 1 0 0 -After: [1, 1, 0, 1] - -Before: [0, 1, 2, 2] -4 1 3 0 -After: [0, 1, 2, 2] - -Before: [1, 1, 0, 0] -9 1 0 0 -After: [1, 1, 0, 0] - -Before: [2, 3, 2, 1] -3 0 3 1 -After: [2, 1, 2, 1] - -Before: [1, 2, 1, 3] -5 2 1 3 -After: [1, 2, 1, 2] - -Before: [2, 1, 1, 3] -11 2 1 2 -After: [2, 1, 2, 3] - -Before: [1, 1, 3, 0] -9 1 0 2 -After: [1, 1, 1, 0] - -Before: [2, 1, 1, 3] -11 2 1 1 -After: [2, 2, 1, 3] - -Before: [2, 1, 3, 2] -2 0 1 2 -After: [2, 1, 1, 2] - -Before: [0, 2, 1, 3] -5 2 1 2 -After: [0, 2, 2, 3] - -Before: [1, 0, 0, 2] -1 0 2 3 -After: [1, 0, 0, 0] - -Before: [1, 1, 1, 2] -9 1 0 3 -After: [1, 1, 1, 1] - -Before: [2, 1, 3, 2] -4 1 3 2 -After: [2, 1, 0, 2] - -Before: [1, 0, 2, 2] -6 0 2 2 -After: [1, 0, 0, 2] - -Before: [3, 1, 1, 3] -11 2 1 1 -After: [3, 2, 1, 3] - -Before: [3, 1, 2, 3] -2 0 2 0 -After: [1, 1, 2, 3] - -Before: [1, 2, 0, 2] -1 0 2 0 -After: [0, 2, 0, 2] - -Before: [3, 1, 2, 1] -10 3 2 2 -After: [3, 1, 1, 1] - -Before: [1, 0, 2, 3] -7 2 3 0 -After: [0, 0, 2, 3] - -Before: [3, 1, 2, 3] -12 1 2 0 -After: [0, 1, 2, 3] - -Before: [2, 1, 1, 3] -7 2 3 1 -After: [2, 0, 1, 3] - -Before: [0, 2, 1, 2] -5 2 1 3 -After: [0, 2, 1, 2] - -Before: [3, 1, 1, 0] -11 2 1 0 -After: [2, 1, 1, 0] - -Before: [1, 1, 3, 1] -9 1 0 0 -After: [1, 1, 3, 1] - -Before: [1, 1, 2, 2] -9 1 0 1 -After: [1, 1, 2, 2] - -Before: [2, 1, 1, 3] -11 2 1 3 -After: [2, 1, 1, 2] - -Before: [1, 1, 1, 2] -4 1 3 1 -After: [1, 0, 1, 2] - -Before: [3, 1, 0, 1] -13 1 3 0 -After: [1, 1, 0, 1] - -Before: [1, 2, 2, 3] -6 0 2 0 -After: [0, 2, 2, 3] - -Before: [1, 3, 0, 3] -1 0 2 0 -After: [0, 3, 0, 3] - -Before: [2, 1, 1, 0] -2 0 1 2 -After: [2, 1, 1, 0] - -Before: [0, 1, 2, 1] -12 1 2 3 -After: [0, 1, 2, 0] - -Before: [2, 3, 1, 1] -3 0 3 3 -After: [2, 3, 1, 1] - -Before: [2, 1, 3, 3] -2 0 1 3 -After: [2, 1, 3, 1] - -Before: [1, 3, 2, 1] -10 3 2 3 -After: [1, 3, 2, 1] - -Before: [1, 1, 3, 3] -9 1 0 3 -After: [1, 1, 3, 1] - -Before: [1, 1, 3, 2] -9 1 0 1 -After: [1, 1, 3, 2] - -Before: [1, 1, 0, 1] -13 1 3 2 -After: [1, 1, 1, 1] - -Before: [3, 0, 2, 0] -2 0 2 1 -After: [3, 1, 2, 0] - -Before: [2, 0, 0, 0] -14 0 1 2 -After: [2, 0, 1, 0] - -Before: [0, 1, 2, 1] -13 1 3 3 -After: [0, 1, 2, 1] - -Before: [2, 1, 3, 0] -14 2 0 1 -After: [2, 1, 3, 0] - -Before: [2, 1, 0, 1] -13 1 3 0 -After: [1, 1, 0, 1] - -Before: [2, 1, 0, 1] -2 0 1 1 -After: [2, 1, 0, 1] - -Before: [0, 3, 2, 1] -10 3 2 0 -After: [1, 3, 2, 1] - -Before: [0, 1, 3, 1] -0 3 3 2 -After: [0, 1, 0, 1] - -Before: [0, 2, 1, 1] -5 2 1 1 -After: [0, 2, 1, 1] - -Before: [2, 1, 1, 2] -15 0 0 3 -After: [2, 1, 1, 1] - -Before: [1, 1, 2, 0] -6 0 2 2 -After: [1, 1, 0, 0] - -Before: [1, 1, 2, 1] -6 0 2 0 -After: [0, 1, 2, 1] - -Before: [0, 2, 1, 3] -7 1 3 1 -After: [0, 0, 1, 3] - -Before: [1, 0, 0, 0] -1 0 2 3 -After: [1, 0, 0, 0] - -Before: [2, 1, 2, 3] -2 0 1 2 -After: [2, 1, 1, 3] - -Before: [0, 2, 0, 2] -0 3 3 1 -After: [0, 0, 0, 2] - -Before: [0, 2, 3, 0] -15 2 2 2 -After: [0, 2, 1, 0] - -Before: [1, 2, 2, 2] -14 2 1 3 -After: [1, 2, 2, 1] - -Before: [0, 1, 3, 1] -8 0 0 2 -After: [0, 1, 0, 1] - -Before: [3, 3, 3, 2] -15 0 0 3 -After: [3, 3, 3, 1] - -Before: [3, 3, 0, 2] -14 0 2 1 -After: [3, 1, 0, 2] - -Before: [0, 1, 1, 3] -11 2 1 0 -After: [2, 1, 1, 3] - -Before: [1, 1, 0, 1] -9 1 0 2 -After: [1, 1, 1, 1] - -Before: [0, 1, 2, 1] -10 3 2 3 -After: [0, 1, 2, 1] - -Before: [2, 2, 2, 1] -10 3 2 1 -After: [2, 1, 2, 1] - -Before: [0, 1, 2, 2] -4 1 3 3 -After: [0, 1, 2, 0] - -Before: [1, 2, 2, 1] -10 3 2 2 -After: [1, 2, 1, 1] - -Before: [2, 1, 1, 2] -11 2 1 1 -After: [2, 2, 1, 2] - -Before: [1, 1, 2, 1] -12 1 2 3 -After: [1, 1, 2, 0] - -Before: [3, 3, 1, 1] -0 2 3 1 -After: [3, 0, 1, 1] - -Before: [0, 1, 2, 2] -4 1 3 1 -After: [0, 0, 2, 2] - -Before: [0, 3, 2, 2] -8 0 0 3 -After: [0, 3, 2, 0] - -Before: [2, 1, 2, 1] -2 0 1 0 -After: [1, 1, 2, 1] - -Before: [1, 1, 0, 3] -1 0 2 1 -After: [1, 0, 0, 3] - -Before: [3, 3, 3, 2] -15 0 0 0 -After: [1, 3, 3, 2] - -Before: [0, 1, 1, 2] -4 1 3 2 -After: [0, 1, 0, 2] - -Before: [1, 3, 0, 3] -1 0 2 1 -After: [1, 0, 0, 3] - -Before: [1, 1, 0, 1] -1 0 2 2 -After: [1, 1, 0, 1] - -Before: [2, 1, 0, 2] -4 1 3 0 -After: [0, 1, 0, 2] - -Before: [3, 2, 2, 2] -2 0 2 2 -After: [3, 2, 1, 2] - -Before: [0, 2, 2, 1] -10 3 2 1 -After: [0, 1, 2, 1] - -Before: [0, 1, 0, 2] -4 1 3 2 -After: [0, 1, 0, 2] - -Before: [0, 1, 0, 2] -4 1 3 3 -After: [0, 1, 0, 0] - -Before: [1, 1, 2, 1] -10 3 2 1 -After: [1, 1, 2, 1] - -Before: [1, 1, 0, 1] -13 1 3 0 -After: [1, 1, 0, 1] - -Before: [1, 3, 2, 2] -6 0 2 1 -After: [1, 0, 2, 2] - -Before: [0, 1, 2, 1] -13 1 3 0 -After: [1, 1, 2, 1] - -Before: [0, 1, 1, 3] -11 2 1 1 -After: [0, 2, 1, 3] - -Before: [3, 2, 1, 0] -5 2 1 3 -After: [3, 2, 1, 2] - -Before: [2, 1, 2, 3] -7 2 3 3 -After: [2, 1, 2, 0] - -Before: [1, 1, 1, 1] -11 2 1 2 -After: [1, 1, 2, 1] - -Before: [2, 1, 1, 1] -3 0 3 2 -After: [2, 1, 1, 1] - -Before: [0, 1, 1, 3] -8 0 0 1 -After: [0, 0, 1, 3] - -Before: [3, 2, 3, 3] -7 1 3 3 -After: [3, 2, 3, 0] - -Before: [0, 3, 0, 0] -8 0 0 2 -After: [0, 3, 0, 0] - -Before: [1, 1, 2, 1] -6 0 2 1 -After: [1, 0, 2, 1] - -Before: [0, 1, 1, 2] -4 1 3 0 -After: [0, 1, 1, 2] - -Before: [1, 1, 2, 1] -9 1 0 1 -After: [1, 1, 2, 1] - -Before: [3, 1, 2, 0] -12 1 2 0 -After: [0, 1, 2, 0] - -Before: [1, 3, 0, 3] -1 0 2 2 -After: [1, 3, 0, 3] - -Before: [1, 1, 0, 3] -9 1 0 1 -After: [1, 1, 0, 3] - -Before: [0, 2, 2, 2] -8 0 0 1 -After: [0, 0, 2, 2] - -Before: [0, 1, 1, 1] -13 1 3 1 -After: [0, 1, 1, 1] - -Before: [1, 1, 3, 1] -13 1 3 0 -After: [1, 1, 3, 1] - -Before: [0, 1, 2, 1] -8 0 0 0 -After: [0, 1, 2, 1] - -Before: [2, 1, 2, 1] -12 1 2 2 -After: [2, 1, 0, 1] - -Before: [1, 0, 2, 3] -6 0 2 1 -After: [1, 0, 2, 3] - -Before: [3, 0, 3, 1] -15 2 0 2 -After: [3, 0, 1, 1] - -Before: [0, 1, 1, 1] -0 2 3 0 -After: [0, 1, 1, 1] - -Before: [3, 0, 0, 3] -14 0 2 1 -After: [3, 1, 0, 3] - -Before: [3, 1, 1, 1] -0 2 3 1 -After: [3, 0, 1, 1] - -Before: [0, 1, 2, 3] -7 2 3 3 -After: [0, 1, 2, 0] - -Before: [3, 1, 0, 1] -13 1 3 1 -After: [3, 1, 0, 1] - -Before: [0, 0, 3, 0] -8 0 0 1 -After: [0, 0, 3, 0] - -Before: [1, 1, 0, 2] -1 0 2 3 -After: [1, 1, 0, 0] - -Before: [2, 1, 1, 2] -4 1 3 1 -After: [2, 0, 1, 2] - -Before: [3, 2, 3, 0] -15 2 2 3 -After: [3, 2, 3, 1] - -Before: [0, 2, 0, 3] -7 1 3 0 -After: [0, 2, 0, 3] - -Before: [1, 1, 3, 2] -9 1 0 2 -After: [1, 1, 1, 2] - -Before: [0, 3, 1, 3] -8 0 0 1 -After: [0, 0, 1, 3] - -Before: [3, 1, 2, 1] -2 0 2 0 -After: [1, 1, 2, 1] - -Before: [1, 1, 3, 1] -9 1 0 2 -After: [1, 1, 1, 1] - -Before: [2, 1, 3, 0] -2 0 1 3 -After: [2, 1, 3, 1] - -Before: [2, 1, 1, 0] -11 2 1 1 -After: [2, 2, 1, 0] - -Before: [3, 1, 1, 1] -13 1 3 0 -After: [1, 1, 1, 1] - -Before: [2, 2, 1, 3] -5 2 1 1 -After: [2, 2, 1, 3] - -Before: [0, 0, 2, 1] -10 3 2 3 -After: [0, 0, 2, 1] - -Before: [3, 3, 0, 2] -0 3 3 1 -After: [3, 0, 0, 2] - -Before: [0, 2, 1, 0] -8 0 0 0 -After: [0, 2, 1, 0] - -Before: [3, 3, 0, 2] -15 0 0 3 -After: [3, 3, 0, 1] - -Before: [1, 0, 2, 3] -6 0 2 0 -After: [0, 0, 2, 3] - -Before: [0, 0, 1, 1] -8 0 0 1 -After: [0, 0, 1, 1] - -Before: [1, 0, 2, 1] -10 3 2 0 -After: [1, 0, 2, 1] - -Before: [1, 2, 1, 2] -5 2 1 1 -After: [1, 2, 1, 2] - -Before: [2, 1, 3, 1] -14 2 0 1 -After: [2, 1, 3, 1] - -Before: [2, 1, 2, 0] -2 0 1 0 -After: [1, 1, 2, 0] - -Before: [1, 1, 2, 2] -6 0 2 3 -After: [1, 1, 2, 0] - -Before: [2, 1, 1, 3] -2 0 1 2 -After: [2, 1, 1, 3] - -Before: [2, 3, 3, 2] -14 2 0 2 -After: [2, 3, 1, 2] - -Before: [1, 0, 0, 2] -1 0 2 0 -After: [0, 0, 0, 2] - -Before: [3, 3, 2, 2] -15 0 0 0 -After: [1, 3, 2, 2] - -Before: [0, 1, 1, 2] -4 1 3 3 -After: [0, 1, 1, 0] - -Before: [2, 2, 1, 2] -5 2 1 3 -After: [2, 2, 1, 2] - -Before: [2, 1, 2, 0] -12 1 2 0 -After: [0, 1, 2, 0] - -Before: [3, 1, 0, 1] -13 1 3 2 -After: [3, 1, 1, 1] - -Before: [1, 2, 1, 1] -5 2 1 1 -After: [1, 2, 1, 1] - -Before: [2, 1, 2, 2] -4 1 3 2 -After: [2, 1, 0, 2] - -Before: [0, 1, 0, 2] -4 1 3 0 -After: [0, 1, 0, 2] - -Before: [3, 1, 0, 2] -4 1 3 2 -After: [3, 1, 0, 2] - -Before: [1, 1, 3, 2] -4 1 3 1 -After: [1, 0, 3, 2] - -Before: [3, 1, 1, 1] -13 1 3 2 -After: [3, 1, 1, 1] - -Before: [0, 0, 2, 0] -8 0 0 3 -After: [0, 0, 2, 0] - -Before: [1, 1, 3, 2] -9 1 0 0 -After: [1, 1, 3, 2] - -Before: [3, 2, 1, 0] -5 2 1 1 -After: [3, 2, 1, 0] - -Before: [1, 1, 0, 2] -1 0 2 0 -After: [0, 1, 0, 2] - -Before: [2, 1, 0, 1] -13 1 3 3 -After: [2, 1, 0, 1] - -Before: [3, 1, 2, 0] -12 1 2 2 -After: [3, 1, 0, 0] - -Before: [3, 2, 2, 3] -2 0 2 0 -After: [1, 2, 2, 3] - -Before: [1, 1, 1, 0] -11 2 1 1 -After: [1, 2, 1, 0] - -Before: [0, 0, 1, 2] -8 0 0 3 -After: [0, 0, 1, 0] - -Before: [1, 1, 0, 0] -9 1 0 3 -After: [1, 1, 0, 1] - -Before: [1, 1, 3, 0] -9 1 0 3 -After: [1, 1, 3, 1] - -Before: [1, 1, 1, 1] -11 2 1 1 -After: [1, 2, 1, 1] - -Before: [3, 0, 0, 0] -14 0 2 3 -After: [3, 0, 0, 1] - -Before: [2, 1, 1, 3] -7 1 3 3 -After: [2, 1, 1, 0] - -Before: [0, 3, 3, 2] -8 0 0 2 -After: [0, 3, 0, 2] - -Before: [3, 1, 2, 1] -12 1 2 1 -After: [3, 0, 2, 1] - -Before: [3, 0, 2, 3] -7 2 3 0 -After: [0, 0, 2, 3] - -Before: [3, 1, 1, 1] -14 3 1 1 -After: [3, 0, 1, 1] - -Before: [1, 1, 1, 3] -9 1 0 0 -After: [1, 1, 1, 3] - -Before: [0, 0, 3, 3] -8 0 0 2 -After: [0, 0, 0, 3] - -Before: [3, 1, 3, 3] -7 1 3 1 -After: [3, 0, 3, 3] - -Before: [1, 1, 2, 2] -12 1 2 1 -After: [1, 0, 2, 2] - -Before: [1, 1, 0, 1] -1 0 2 3 -After: [1, 1, 0, 0] - -Before: [2, 2, 2, 1] -3 0 3 2 -After: [2, 2, 1, 1] - -Before: [2, 0, 3, 0] -14 0 1 1 -After: [2, 1, 3, 0] - -Before: [1, 1, 2, 2] -4 1 3 3 -After: [1, 1, 2, 0] - -Before: [1, 1, 2, 3] -12 1 2 2 -After: [1, 1, 0, 3] - -Before: [1, 2, 1, 3] -7 2 3 2 -After: [1, 2, 0, 3] - -Before: [3, 0, 0, 1] -14 0 2 2 -After: [3, 0, 1, 1] - -Before: [3, 2, 1, 0] -5 2 1 0 -After: [2, 2, 1, 0] - -Before: [2, 3, 2, 1] -3 0 3 0 -After: [1, 3, 2, 1] - -Before: [0, 1, 3, 2] -8 0 0 3 -After: [0, 1, 3, 0] - -Before: [2, 2, 1, 1] -3 0 3 3 -After: [2, 2, 1, 1] - -Before: [3, 2, 3, 1] -0 3 3 3 -After: [3, 2, 3, 0] - -Before: [2, 1, 1, 0] -14 2 1 3 -After: [2, 1, 1, 0] - -Before: [2, 2, 1, 3] -7 2 3 1 -After: [2, 0, 1, 3] - -Before: [2, 3, 3, 1] -3 0 3 2 -After: [2, 3, 1, 1] - -Before: [1, 1, 2, 1] -9 1 0 2 -After: [1, 1, 1, 1] - -Before: [0, 3, 2, 1] -10 3 2 1 -After: [0, 1, 2, 1] - -Before: [0, 1, 0, 1] -13 1 3 3 -After: [0, 1, 0, 1] - -Before: [1, 1, 1, 3] -11 2 1 3 -After: [1, 1, 1, 2] - -Before: [3, 1, 1, 2] -11 2 1 2 -After: [3, 1, 2, 2] - -Before: [1, 3, 2, 3] -6 0 2 3 -After: [1, 3, 2, 0] - -Before: [0, 1, 2, 3] -8 0 0 2 -After: [0, 1, 0, 3] - -Before: [3, 0, 1, 3] -14 3 0 2 -After: [3, 0, 1, 3] - -Before: [2, 1, 2, 0] -12 1 2 3 -After: [2, 1, 2, 0] - -Before: [0, 1, 1, 1] -11 2 1 0 -After: [2, 1, 1, 1] - -Before: [2, 3, 2, 1] -0 3 3 2 -After: [2, 3, 0, 1] - -Before: [1, 1, 0, 2] -0 3 3 3 -After: [1, 1, 0, 0] - -Before: [1, 0, 0, 1] -1 0 2 3 -After: [1, 0, 0, 0] - -Before: [3, 2, 1, 3] -7 2 3 3 -After: [3, 2, 1, 0] - -Before: [3, 1, 1, 3] -11 2 1 2 -After: [3, 1, 2, 3] - -Before: [0, 1, 2, 2] -12 1 2 3 -After: [0, 1, 2, 0] - -Before: [3, 3, 2, 1] -10 3 2 0 -After: [1, 3, 2, 1] - -Before: [1, 1, 3, 1] -13 1 3 1 -After: [1, 1, 3, 1] - -Before: [2, 2, 1, 1] -3 0 3 1 -After: [2, 1, 1, 1] - -Before: [2, 1, 2, 2] -4 1 3 0 -After: [0, 1, 2, 2] - -Before: [1, 1, 1, 1] -9 1 0 2 -After: [1, 1, 1, 1] - -Before: [1, 3, 2, 1] -10 3 2 0 -After: [1, 3, 2, 1] - -Before: [2, 0, 2, 1] -10 3 2 0 -After: [1, 0, 2, 1] - -Before: [1, 1, 0, 3] -1 0 2 2 -After: [1, 1, 0, 3] - -Before: [1, 2, 0, 1] -1 0 2 3 -After: [1, 2, 0, 0] - -Before: [1, 3, 0, 0] -1 0 2 0 -After: [0, 3, 0, 0] - -Before: [2, 1, 1, 3] -14 2 1 0 -After: [0, 1, 1, 3] - -Before: [1, 1, 1, 2] -9 1 0 1 -After: [1, 1, 1, 2] - -Before: [1, 1, 0, 1] -13 1 3 1 -After: [1, 1, 0, 1] - -Before: [2, 0, 0, 2] -15 0 0 0 -After: [1, 0, 0, 2] - -Before: [2, 3, 1, 1] -3 0 3 0 -After: [1, 3, 1, 1] - -Before: [0, 1, 2, 0] -12 1 2 3 -After: [0, 1, 2, 0] - -Before: [1, 2, 1, 2] -5 2 1 0 -After: [2, 2, 1, 2] - -Before: [2, 0, 2, 2] -14 3 2 2 -After: [2, 0, 0, 2] - -Before: [0, 2, 2, 1] -10 3 2 0 -After: [1, 2, 2, 1] - -Before: [2, 1, 0, 2] -4 1 3 3 -After: [2, 1, 0, 0] - -Before: [1, 3, 0, 2] -1 0 2 2 -After: [1, 3, 0, 2] - -Before: [0, 0, 2, 3] -8 0 0 1 -After: [0, 0, 2, 3] - -Before: [2, 1, 1, 3] -7 1 3 0 -After: [0, 1, 1, 3] - -Before: [3, 1, 2, 1] -13 1 3 0 -After: [1, 1, 2, 1] - -Before: [2, 0, 1, 1] -3 0 3 1 -After: [2, 1, 1, 1] - -Before: [1, 1, 2, 1] -13 1 3 1 -After: [1, 1, 2, 1] - -Before: [0, 1, 2, 1] -12 1 2 1 -After: [0, 0, 2, 1] - -Before: [2, 2, 3, 3] -14 3 2 2 -After: [2, 2, 1, 3] - -Before: [3, 1, 1, 1] -13 1 3 3 -After: [3, 1, 1, 1] - -Before: [3, 3, 3, 2] -15 2 0 1 -After: [3, 1, 3, 2] - -Before: [2, 1, 2, 1] -3 0 3 1 -After: [2, 1, 2, 1] - -Before: [3, 1, 2, 0] -2 0 2 3 -After: [3, 1, 2, 1] - -Before: [1, 2, 1, 2] -5 2 1 3 -After: [1, 2, 1, 2] - -Before: [3, 2, 1, 1] -5 2 1 0 -After: [2, 2, 1, 1] - -Before: [0, 1, 2, 1] -12 1 2 0 -After: [0, 1, 2, 1] - -Before: [2, 1, 1, 1] -3 0 3 0 -After: [1, 1, 1, 1] - -Before: [3, 1, 1, 2] -11 2 1 1 -After: [3, 2, 1, 2] - -Before: [1, 1, 1, 3] -11 2 1 0 -After: [2, 1, 1, 3] - -Before: [1, 1, 2, 0] -9 1 0 3 -After: [1, 1, 2, 1] - -Before: [0, 2, 2, 3] -8 0 0 3 -After: [0, 2, 2, 0] - -Before: [0, 0, 2, 1] -10 3 2 1 -After: [0, 1, 2, 1] - -Before: [0, 2, 3, 3] -14 3 2 0 -After: [1, 2, 3, 3] - -Before: [2, 1, 0, 3] -2 0 1 2 -After: [2, 1, 1, 3] - -Before: [3, 1, 2, 0] -2 0 2 0 -After: [1, 1, 2, 0] - -Before: [3, 1, 0, 2] -14 0 2 0 -After: [1, 1, 0, 2] - -Before: [2, 1, 3, 0] -2 0 1 1 -After: [2, 1, 3, 0] - -Before: [1, 1, 1, 0] -9 1 0 3 -After: [1, 1, 1, 1] - -Before: [1, 0, 0, 0] -1 0 2 1 -After: [1, 0, 0, 0] - -Before: [0, 3, 2, 2] -8 0 0 2 -After: [0, 3, 0, 2] - -Before: [3, 3, 2, 2] -2 0 2 0 -After: [1, 3, 2, 2] - -Before: [0, 2, 1, 2] -5 2 1 1 -After: [0, 2, 1, 2] - -Before: [3, 3, 2, 2] -2 0 2 3 -After: [3, 3, 2, 1] - -Before: [0, 2, 1, 2] -5 2 1 0 -After: [2, 2, 1, 2] - -Before: [1, 0, 2, 1] -10 3 2 2 -After: [1, 0, 1, 1] - -Before: [0, 1, 0, 1] -13 1 3 2 -After: [0, 1, 1, 1] - -Before: [3, 1, 1, 1] -14 2 1 1 -After: [3, 0, 1, 1] - -Before: [0, 1, 0, 1] -13 1 3 1 -After: [0, 1, 0, 1] - -Before: [2, 2, 0, 1] -3 0 3 2 -After: [2, 2, 1, 1] - -Before: [3, 2, 1, 3] -14 3 0 0 -After: [1, 2, 1, 3] - -Before: [1, 1, 2, 2] -4 1 3 0 -After: [0, 1, 2, 2] - -Before: [3, 1, 2, 3] -7 1 3 1 -After: [3, 0, 2, 3] - -Before: [3, 0, 3, 0] -15 2 2 1 -After: [3, 1, 3, 0] - -Before: [0, 2, 2, 2] -14 2 1 3 -After: [0, 2, 2, 1] - -Before: [1, 1, 2, 3] -12 1 2 1 -After: [1, 0, 2, 3] - -Before: [3, 1, 1, 1] -13 1 3 1 -After: [3, 1, 1, 1] - -Before: [2, 1, 1, 1] -13 1 3 3 -After: [2, 1, 1, 1] - -Before: [2, 2, 2, 3] -7 2 3 3 -After: [2, 2, 2, 0] - -Before: [2, 3, 3, 3] -15 0 0 2 -After: [2, 3, 1, 3] - -Before: [3, 1, 2, 1] -13 1 3 3 -After: [3, 1, 2, 1] - -Before: [3, 3, 3, 2] -15 0 2 0 -After: [1, 3, 3, 2] - -Before: [3, 1, 0, 2] -0 3 3 0 -After: [0, 1, 0, 2] - -Before: [2, 0, 3, 2] -14 0 1 1 -After: [2, 1, 3, 2] - -Before: [1, 0, 2, 1] -10 3 2 3 -After: [1, 0, 2, 1] - -Before: [1, 3, 3, 1] -0 3 3 2 -After: [1, 3, 0, 1] - -Before: [0, 2, 2, 1] -10 3 2 2 -After: [0, 2, 1, 1] - -Before: [2, 2, 1, 0] -5 2 1 0 -After: [2, 2, 1, 0] - -Before: [2, 3, 0, 1] -3 0 3 2 -After: [2, 3, 1, 1] - -Before: [1, 2, 2, 2] -6 0 2 1 -After: [1, 0, 2, 2] - -Before: [0, 1, 2, 2] -12 1 2 0 -After: [0, 1, 2, 2] - -Before: [1, 1, 0, 2] -9 1 0 2 -After: [1, 1, 1, 2] - -Before: [0, 1, 2, 2] -12 1 2 2 -After: [0, 1, 0, 2] - -Before: [2, 1, 2, 0] -12 1 2 2 -After: [2, 1, 0, 0] - -Before: [2, 3, 3, 0] -15 0 0 3 -After: [2, 3, 3, 1] - -Before: [2, 2, 0, 1] -15 0 0 0 -After: [1, 2, 0, 1] - -Before: [2, 0, 3, 2] -0 3 3 2 -After: [2, 0, 0, 2] - -Before: [3, 0, 3, 2] -15 2 2 3 -After: [3, 0, 3, 1] - -Before: [2, 3, 2, 1] -10 3 2 3 -After: [2, 3, 2, 1] - -Before: [2, 1, 2, 1] -3 0 3 3 -After: [2, 1, 2, 1] - -Before: [1, 3, 0, 0] -1 0 2 3 -After: [1, 3, 0, 0] - -Before: [3, 1, 2, 3] -2 0 2 3 -After: [3, 1, 2, 1] - -Before: [2, 1, 1, 2] -11 2 1 2 -After: [2, 1, 2, 2] - -Before: [1, 3, 2, 3] -7 2 3 1 -After: [1, 0, 2, 3] - -Before: [0, 0, 0, 0] -8 0 0 3 -After: [0, 0, 0, 0] - -Before: [1, 0, 3, 1] -14 2 3 2 -After: [1, 0, 0, 1] - -Before: [3, 2, 0, 3] -14 0 2 3 -After: [3, 2, 0, 1] - -Before: [3, 2, 2, 1] -2 0 2 1 -After: [3, 1, 2, 1] - -Before: [2, 1, 2, 1] -3 0 3 0 -After: [1, 1, 2, 1] - -Before: [2, 2, 0, 1] -3 0 3 3 -After: [2, 2, 0, 1] - -Before: [0, 3, 3, 2] -8 0 0 0 -After: [0, 3, 3, 2] - -Before: [3, 2, 0, 1] -14 0 2 1 -After: [3, 1, 0, 1] - -Before: [1, 1, 1, 3] -9 1 0 1 -After: [1, 1, 1, 3] - -Before: [0, 1, 0, 1] -13 1 3 0 -After: [1, 1, 0, 1] - -Before: [1, 1, 1, 0] -9 1 0 1 -After: [1, 1, 1, 0] - -Before: [1, 3, 2, 2] -6 0 2 0 -After: [0, 3, 2, 2] - -Before: [2, 1, 1, 1] -14 3 1 0 -After: [0, 1, 1, 1] - -Before: [1, 1, 3, 0] -9 1 0 0 -After: [1, 1, 3, 0] - -Before: [2, 1, 3, 1] -3 0 3 2 -After: [2, 1, 1, 1] - -Before: [2, 1, 1, 1] -3 0 3 1 -After: [2, 1, 1, 1] - -Before: [3, 2, 1, 3] -7 1 3 3 -After: [3, 2, 1, 0] - -Before: [2, 0, 3, 3] -15 0 0 2 -After: [2, 0, 1, 3] - -Before: [3, 0, 2, 1] -10 3 2 2 -After: [3, 0, 1, 1] - -Before: [1, 1, 2, 3] -9 1 0 0 -After: [1, 1, 2, 3] - -Before: [1, 2, 1, 1] -5 2 1 0 -After: [2, 2, 1, 1] - -Before: [0, 1, 2, 3] -12 1 2 1 -After: [0, 0, 2, 3] - -Before: [1, 3, 0, 1] -1 0 2 3 -After: [1, 3, 0, 0] - -Before: [2, 1, 0, 1] -2 0 1 0 -After: [1, 1, 0, 1] - -Before: [3, 2, 2, 3] -2 0 2 1 -After: [3, 1, 2, 3] - -Before: [1, 2, 0, 1] -1 0 2 1 -After: [1, 0, 0, 1] - -Before: [1, 2, 2, 0] -6 0 2 0 -After: [0, 2, 2, 0] - -Before: [2, 1, 1, 2] -11 2 1 0 -After: [2, 1, 1, 2] - -Before: [3, 1, 1, 3] -7 1 3 2 -After: [3, 1, 0, 3] - -Before: [2, 2, 1, 3] -5 2 1 2 -After: [2, 2, 2, 3] - -Before: [3, 1, 1, 1] -11 2 1 1 -After: [3, 2, 1, 1] - -Before: [2, 1, 2, 2] -4 1 3 1 -After: [2, 0, 2, 2] - -Before: [1, 1, 2, 1] -12 1 2 0 -After: [0, 1, 2, 1] - -Before: [1, 1, 0, 2] -9 1 0 3 -After: [1, 1, 0, 1] - -Before: [3, 3, 2, 3] -2 0 2 0 -After: [1, 3, 2, 3] - -Before: [1, 1, 2, 3] -9 1 0 3 -After: [1, 1, 2, 1] - -Before: [2, 1, 2, 1] -12 1 2 0 -After: [0, 1, 2, 1] - -Before: [1, 1, 0, 2] -4 1 3 1 -After: [1, 0, 0, 2] - -Before: [1, 2, 2, 0] -6 0 2 3 -After: [1, 2, 2, 0] - -Before: [2, 1, 1, 0] -11 2 1 3 -After: [2, 1, 1, 2] - -Before: [1, 1, 0, 1] -13 1 3 3 -After: [1, 1, 0, 1] - -Before: [3, 1, 2, 3] -7 1 3 3 -After: [3, 1, 2, 0] - -Before: [0, 2, 1, 3] -8 0 0 0 -After: [0, 2, 1, 3] - -Before: [3, 2, 1, 3] -7 1 3 0 -After: [0, 2, 1, 3] - -Before: [1, 2, 2, 2] -6 0 2 3 -After: [1, 2, 2, 0] - -Before: [1, 1, 1, 1] -13 1 3 3 -After: [1, 1, 1, 1] - -Before: [2, 1, 3, 2] -15 2 2 1 -After: [2, 1, 3, 2] - -Before: [2, 1, 0, 3] -2 0 1 0 -After: [1, 1, 0, 3] - -Before: [1, 1, 2, 1] -12 1 2 2 -After: [1, 1, 0, 1] - -Before: [1, 1, 3, 2] -4 1 3 0 -After: [0, 1, 3, 2] - -Before: [2, 3, 2, 3] -7 2 3 2 -After: [2, 3, 0, 3] - -Before: [2, 2, 1, 1] -5 2 1 3 -After: [2, 2, 1, 2] - -Before: [0, 0, 2, 1] -10 3 2 0 -After: [1, 0, 2, 1] - -Before: [3, 1, 0, 3] -7 1 3 2 -After: [3, 1, 0, 3] - -Before: [2, 1, 3, 2] -2 0 1 1 -After: [2, 1, 3, 2] - -Before: [2, 3, 1, 1] -3 0 3 1 -After: [2, 1, 1, 1] - -Before: [2, 2, 1, 3] -7 1 3 3 -After: [2, 2, 1, 0] - -Before: [3, 3, 3, 1] -15 0 2 1 -After: [3, 1, 3, 1] - -Before: [0, 1, 1, 0] -11 2 1 1 -After: [0, 2, 1, 0] - -Before: [1, 1, 1, 0] -11 2 1 0 -After: [2, 1, 1, 0] - -Before: [3, 1, 3, 1] -13 1 3 3 -After: [3, 1, 3, 1] - -Before: [0, 1, 3, 2] -8 0 0 1 -After: [0, 0, 3, 2] - -Before: [2, 2, 0, 3] -7 1 3 3 -After: [2, 2, 0, 0] - -Before: [1, 0, 2, 1] -6 0 2 2 -After: [1, 0, 0, 1] - -Before: [1, 3, 0, 2] -0 3 3 3 -After: [1, 3, 0, 0] - -Before: [1, 1, 0, 1] -9 1 0 3 -After: [1, 1, 0, 1] - -Before: [1, 2, 2, 3] -7 1 3 1 -After: [1, 0, 2, 3] - -Before: [1, 1, 2, 2] -12 1 2 3 -After: [1, 1, 2, 0] - -Before: [1, 1, 2, 0] -12 1 2 3 -After: [1, 1, 2, 0] - -Before: [0, 1, 0, 2] -4 1 3 1 -After: [0, 0, 0, 2] - -Before: [1, 1, 1, 0] -9 1 0 0 -After: [1, 1, 1, 0] - -Before: [1, 1, 2, 0] -9 1 0 0 -After: [1, 1, 2, 0] - -Before: [1, 2, 1, 1] -5 2 1 3 -After: [1, 2, 1, 2] - -Before: [3, 0, 3, 2] -15 2 2 0 -After: [1, 0, 3, 2] - -Before: [2, 2, 1, 3] -7 2 3 3 -After: [2, 2, 1, 0] - -Before: [3, 1, 2, 2] -4 1 3 3 -After: [3, 1, 2, 0] - -Before: [3, 1, 2, 1] -15 0 0 1 -After: [3, 1, 2, 1] - -Before: [2, 3, 2, 1] -10 3 2 0 -After: [1, 3, 2, 1] - -Before: [2, 1, 2, 2] -0 3 3 1 -After: [2, 0, 2, 2] - -Before: [1, 2, 0, 2] -1 0 2 1 -After: [1, 0, 0, 2] - -Before: [3, 3, 2, 0] -2 0 2 0 -After: [1, 3, 2, 0] - -Before: [0, 1, 1, 2] -11 2 1 1 -After: [0, 2, 1, 2] - -Before: [3, 1, 2, 1] -13 1 3 1 -After: [3, 1, 2, 1] - -Before: [3, 1, 3, 3] -15 2 0 3 -After: [3, 1, 3, 1] - -Before: [0, 1, 0, 1] -8 0 0 3 -After: [0, 1, 0, 0] - -Before: [2, 3, 2, 1] -0 3 3 3 -After: [2, 3, 2, 0] - -Before: [2, 1, 1, 2] -4 1 3 2 -After: [2, 1, 0, 2] - -Before: [0, 1, 3, 1] -13 1 3 0 -After: [1, 1, 3, 1] - -Before: [2, 2, 1, 1] -5 2 1 0 -After: [2, 2, 1, 1] - -Before: [3, 1, 2, 0] -15 0 0 0 -After: [1, 1, 2, 0] - -Before: [1, 1, 1, 1] -9 1 0 0 -After: [1, 1, 1, 1] - -Before: [1, 1, 2, 2] -12 1 2 2 -After: [1, 1, 0, 2] - -Before: [1, 1, 2, 1] -10 3 2 0 -After: [1, 1, 2, 1] - -Before: [2, 0, 1, 1] -3 0 3 3 -After: [2, 0, 1, 1] diff --git a/2018/inputs/16_2.txt b/2018/inputs/16_2.txt deleted file mode 100644 index 6f6f812..0000000 --- a/2018/inputs/16_2.txt +++ /dev/null @@ -1,1014 +0,0 @@ -8 0 0 2 -5 2 2 2 -6 3 1 1 -8 0 0 3 -5 3 0 3 -9 2 3 1 -8 1 3 1 -8 1 2 1 -11 0 1 0 -10 0 0 1 -8 0 0 2 -5 2 3 2 -6 3 0 3 -8 2 0 0 -5 0 1 0 -12 3 2 0 -8 0 3 0 -11 1 0 1 -10 1 1 3 -6 1 2 0 -8 1 0 1 -5 1 0 1 -6 0 0 2 -5 0 1 1 -8 1 3 1 -11 3 1 3 -10 3 3 2 -6 3 0 3 -6 2 1 1 -4 3 1 0 -8 0 3 0 -11 0 2 2 -10 2 0 1 -8 1 0 0 -5 0 1 0 -8 3 0 2 -5 2 0 2 -6 2 1 3 -8 0 2 3 -8 3 3 3 -8 3 3 3 -11 3 1 1 -10 1 1 3 -6 3 3 2 -6 0 0 1 -8 0 2 0 -8 0 1 0 -8 0 1 0 -11 3 0 3 -10 3 0 0 -6 2 2 1 -6 1 0 3 -13 1 2 1 -8 1 2 1 -11 1 0 0 -10 0 3 2 -6 2 0 0 -6 3 1 1 -6 2 0 3 -9 0 3 1 -8 1 1 1 -8 1 3 1 -11 1 2 2 -10 2 0 0 -6 3 1 1 -6 2 1 2 -6 0 2 3 -7 3 2 1 -8 1 2 1 -8 1 2 1 -11 1 0 0 -10 0 3 3 -6 3 1 2 -6 1 2 0 -6 0 1 1 -6 2 1 1 -8 1 1 1 -11 3 1 3 -10 3 3 1 -6 2 0 3 -8 0 0 2 -5 2 0 2 -6 2 2 0 -15 0 3 0 -8 0 1 0 -8 0 2 0 -11 0 1 1 -10 1 0 0 -6 3 1 1 -6 0 0 3 -6 2 1 2 -7 3 2 2 -8 2 2 2 -11 2 0 0 -10 0 1 1 -6 1 0 3 -8 0 0 0 -5 0 2 0 -8 0 0 2 -5 2 0 2 -3 0 3 2 -8 2 3 2 -8 2 2 2 -11 1 2 1 -10 1 1 3 -8 2 0 2 -5 2 3 2 -6 3 2 0 -6 1 3 1 -8 1 2 2 -8 2 1 2 -11 2 3 3 -6 1 1 0 -8 1 0 2 -5 2 0 2 -6 2 0 0 -8 0 3 0 -11 3 0 3 -10 3 3 2 -6 2 1 0 -6 2 2 3 -6 0 1 1 -9 0 3 0 -8 0 1 0 -8 0 1 0 -11 0 2 2 -10 2 3 3 -6 3 1 1 -8 3 0 2 -5 2 1 2 -6 1 3 0 -5 0 1 0 -8 0 2 0 -11 0 3 3 -10 3 0 0 -6 1 3 3 -8 0 0 2 -5 2 0 2 -6 0 1 1 -5 3 1 2 -8 2 2 2 -11 0 2 0 -10 0 2 3 -6 2 1 1 -6 2 0 2 -6 3 3 0 -13 1 0 1 -8 1 2 1 -11 1 3 3 -10 3 2 2 -6 1 1 3 -6 0 2 1 -6 0 2 0 -5 3 1 3 -8 3 2 3 -11 2 3 2 -10 2 3 3 -6 1 3 0 -6 0 0 2 -6 3 1 1 -8 0 2 1 -8 1 3 1 -11 3 1 3 -10 3 0 1 -6 2 2 0 -6 2 1 3 -6 3 3 2 -9 0 3 2 -8 2 2 2 -8 2 3 2 -11 2 1 1 -10 1 3 3 -6 0 3 2 -8 2 0 1 -5 1 3 1 -2 0 1 1 -8 1 1 1 -11 1 3 3 -10 3 3 2 -6 3 0 1 -6 1 1 3 -3 0 3 1 -8 1 3 1 -11 2 1 2 -10 2 1 0 -6 2 1 1 -6 1 3 2 -6 2 0 3 -9 1 3 3 -8 3 3 3 -11 3 0 0 -10 0 3 2 -6 2 3 0 -6 1 0 3 -3 0 3 3 -8 3 2 3 -11 2 3 2 -10 2 2 1 -6 1 2 3 -6 2 3 2 -3 0 3 2 -8 2 1 2 -8 2 2 2 -11 2 1 1 -10 1 0 2 -6 3 2 1 -6 3 3 0 -11 3 3 1 -8 1 2 1 -8 1 2 1 -11 2 1 2 -6 2 1 1 -13 1 0 0 -8 0 3 0 -8 0 1 0 -11 0 2 2 -10 2 1 3 -8 1 0 0 -5 0 1 0 -6 0 0 2 -8 0 2 0 -8 0 3 0 -8 0 2 0 -11 3 0 3 -10 3 3 1 -6 3 3 2 -6 2 1 0 -6 2 2 3 -15 0 3 3 -8 3 2 3 -11 3 1 1 -10 1 3 2 -6 3 1 1 -8 2 0 3 -5 3 0 3 -4 1 0 1 -8 1 2 1 -11 2 1 2 -10 2 0 1 -6 3 1 2 -6 1 1 3 -6 1 0 0 -8 3 2 3 -8 3 2 3 -11 1 3 1 -10 1 2 3 -6 2 1 1 -6 2 1 2 -10 0 2 2 -8 2 1 2 -11 3 2 3 -6 0 0 1 -6 2 1 2 -10 0 2 0 -8 0 3 0 -11 3 0 3 -10 3 1 2 -8 2 0 3 -5 3 0 3 -6 1 1 0 -11 0 0 3 -8 3 2 3 -11 3 2 2 -10 2 3 3 -6 2 1 1 -6 3 2 2 -6 2 2 0 -0 0 2 0 -8 0 1 0 -11 0 3 3 -10 3 3 2 -6 2 1 3 -6 2 0 0 -6 3 0 1 -15 0 3 3 -8 3 1 3 -8 3 3 3 -11 3 2 2 -10 2 3 1 -8 1 0 0 -5 0 1 0 -6 3 3 2 -8 0 0 3 -5 3 1 3 -8 0 2 3 -8 3 1 3 -11 3 1 1 -10 1 1 3 -6 0 0 1 -6 2 1 2 -10 0 2 1 -8 1 2 1 -11 1 3 3 -10 3 2 0 -8 0 0 2 -5 2 0 2 -6 3 2 3 -6 3 3 1 -12 3 2 1 -8 1 1 1 -11 1 0 0 -10 0 0 3 -6 3 2 1 -6 2 2 0 -6 3 3 2 -0 0 2 0 -8 0 3 0 -8 0 1 0 -11 0 3 3 -10 3 3 2 -6 1 3 1 -8 1 0 3 -5 3 2 3 -8 0 0 0 -5 0 2 0 -1 1 3 0 -8 0 1 0 -11 2 0 2 -6 3 1 1 -6 2 0 0 -4 1 0 1 -8 1 2 1 -11 2 1 2 -10 2 1 1 -6 3 0 2 -6 1 2 3 -3 0 3 0 -8 0 1 0 -11 0 1 1 -8 3 0 2 -5 2 2 2 -6 2 0 3 -8 2 0 0 -5 0 3 0 -2 2 0 2 -8 2 1 2 -11 1 2 1 -10 1 2 0 -6 3 0 1 -8 0 0 2 -5 2 0 2 -14 2 3 1 -8 1 2 1 -11 1 0 0 -10 0 2 3 -6 3 3 2 -6 1 3 0 -8 3 0 1 -5 1 1 1 -11 1 0 2 -8 2 3 2 -8 2 3 2 -11 3 2 3 -10 3 3 1 -6 2 2 2 -6 0 2 3 -7 3 2 0 -8 0 2 0 -8 0 2 0 -11 1 0 1 -10 1 2 3 -6 3 2 0 -8 2 0 2 -5 2 0 2 -8 1 0 1 -5 1 3 1 -0 2 0 0 -8 0 3 0 -11 0 3 3 -10 3 2 1 -6 1 1 0 -8 3 0 3 -5 3 0 3 -6 1 1 2 -6 3 0 2 -8 2 2 2 -11 2 1 1 -10 1 3 2 -8 3 0 1 -5 1 1 1 -6 3 1 3 -11 0 0 1 -8 1 1 1 -11 1 2 2 -10 2 1 1 -6 1 2 2 -6 3 2 0 -6 2 1 3 -12 0 2 0 -8 0 3 0 -11 1 0 1 -10 1 1 2 -6 2 3 0 -8 2 0 3 -5 3 1 3 -6 3 1 1 -5 3 1 3 -8 3 2 3 -11 2 3 2 -6 0 3 3 -6 3 0 0 -8 2 0 1 -5 1 2 1 -13 1 0 0 -8 0 1 0 -11 0 2 2 -10 2 3 1 -6 2 1 2 -6 1 2 3 -6 3 0 0 -2 2 0 3 -8 3 3 3 -11 1 3 1 -10 1 2 3 -6 1 3 0 -6 3 0 1 -5 0 1 1 -8 1 2 1 -11 1 3 3 -10 3 3 2 -6 1 3 3 -8 0 0 1 -5 1 0 1 -8 1 0 0 -5 0 2 0 -3 0 3 1 -8 1 2 1 -11 2 1 2 -6 1 1 0 -6 0 2 1 -8 3 0 3 -5 3 2 3 -5 0 1 0 -8 0 3 0 -8 0 2 0 -11 0 2 2 -6 1 0 1 -6 2 1 0 -15 0 3 3 -8 3 3 3 -11 3 2 2 -6 0 2 1 -6 2 3 3 -6 3 3 0 -4 0 3 1 -8 1 2 1 -11 2 1 2 -6 0 1 3 -8 0 0 0 -5 0 2 0 -8 3 0 1 -5 1 2 1 -6 3 0 0 -8 0 2 0 -8 0 3 0 -11 0 2 2 -10 2 1 3 -8 2 0 2 -5 2 3 2 -6 1 1 1 -6 2 3 0 -1 1 0 2 -8 2 3 2 -11 3 2 3 -10 3 0 0 -6 0 3 3 -8 3 0 1 -5 1 0 1 -6 2 0 2 -7 3 2 2 -8 2 2 2 -11 0 2 0 -10 0 0 3 -6 2 3 1 -8 3 0 2 -5 2 0 2 -6 3 3 0 -13 1 0 2 -8 2 3 2 -8 2 3 2 -11 3 2 3 -8 3 0 2 -5 2 2 2 -2 2 0 1 -8 1 3 1 -11 3 1 3 -10 3 2 2 -6 1 3 3 -6 3 3 1 -6 2 0 0 -3 0 3 3 -8 3 3 3 -11 3 2 2 -10 2 2 0 -6 1 1 1 -6 2 1 3 -8 2 0 2 -5 2 0 2 -14 2 3 2 -8 2 2 2 -8 2 3 2 -11 2 0 0 -10 0 1 3 -6 3 0 1 -6 3 2 2 -6 2 0 0 -6 2 1 0 -8 0 2 0 -11 3 0 3 -10 3 0 1 -6 0 1 3 -6 2 3 2 -8 3 0 0 -5 0 0 0 -7 3 2 3 -8 3 3 3 -8 3 2 3 -11 1 3 1 -10 1 1 2 -6 2 0 0 -8 0 0 3 -5 3 1 3 -6 1 1 1 -1 3 0 1 -8 1 2 1 -11 1 2 2 -10 2 2 3 -6 0 2 1 -6 3 1 0 -6 2 2 2 -2 2 0 1 -8 1 3 1 -8 1 1 1 -11 1 3 3 -10 3 1 2 -6 1 0 1 -6 2 2 3 -1 1 3 0 -8 0 2 0 -8 0 3 0 -11 2 0 2 -10 2 3 1 -6 2 0 0 -6 2 0 2 -15 0 3 3 -8 3 1 3 -11 3 1 1 -10 1 0 3 -6 3 0 2 -6 1 3 1 -0 0 2 2 -8 2 3 2 -11 3 2 3 -10 3 3 0 -6 1 2 3 -6 3 1 1 -6 0 0 2 -12 1 2 3 -8 3 3 3 -8 3 3 3 -11 3 0 0 -10 0 3 1 -8 1 0 0 -5 0 2 0 -8 1 0 2 -5 2 2 2 -6 0 2 3 -7 3 2 2 -8 2 2 2 -11 2 1 1 -10 1 2 3 -6 2 3 1 -6 3 1 2 -13 1 2 0 -8 0 3 0 -11 0 3 3 -10 3 1 1 -6 1 2 3 -6 3 1 0 -8 3 2 0 -8 0 1 0 -11 1 0 1 -6 1 3 0 -6 2 2 2 -6 3 0 3 -10 0 2 0 -8 0 1 0 -11 0 1 1 -6 3 0 0 -2 2 0 3 -8 3 1 3 -11 3 1 1 -10 1 2 3 -6 1 2 2 -8 1 0 1 -5 1 1 1 -6 2 2 0 -1 1 0 0 -8 0 3 0 -11 3 0 3 -10 3 1 0 -6 2 0 3 -6 2 0 2 -1 1 3 3 -8 3 1 3 -11 3 0 0 -10 0 0 3 -6 3 2 1 -8 3 0 0 -5 0 2 0 -6 3 2 2 -0 0 2 2 -8 2 1 2 -11 3 2 3 -10 3 3 0 -8 0 0 3 -5 3 0 3 -6 1 3 1 -6 2 2 2 -7 3 2 3 -8 3 1 3 -8 3 3 3 -11 0 3 0 -10 0 0 3 -6 3 2 2 -6 2 1 0 -0 0 2 1 -8 1 3 1 -8 1 2 1 -11 1 3 3 -8 1 0 2 -5 2 2 2 -6 3 1 0 -6 3 3 1 -2 2 1 1 -8 1 1 1 -11 3 1 3 -10 3 1 1 -6 3 2 3 -6 2 0 0 -6 3 0 2 -13 0 2 3 -8 3 3 3 -8 3 1 3 -11 3 1 1 -10 1 2 3 -8 2 0 0 -5 0 1 0 -8 3 0 2 -5 2 2 2 -8 0 0 1 -5 1 0 1 -11 0 0 1 -8 1 2 1 -11 3 1 3 -10 3 3 0 -6 0 1 3 -6 3 3 1 -6 3 1 2 -14 3 2 3 -8 3 3 3 -11 0 3 0 -10 0 2 3 -6 1 0 1 -6 1 0 0 -6 2 3 2 -10 0 2 1 -8 1 1 1 -8 1 2 1 -11 1 3 3 -6 1 1 2 -6 0 3 1 -5 0 1 2 -8 2 3 2 -11 3 2 3 -10 3 2 1 -8 3 0 3 -5 3 2 3 -8 1 0 0 -5 0 2 0 -6 3 3 2 -0 0 2 3 -8 3 2 3 -8 3 1 3 -11 3 1 1 -10 1 2 0 -6 1 3 3 -8 3 0 2 -5 2 1 2 -6 0 1 1 -5 3 1 3 -8 3 1 3 -11 0 3 0 -10 0 3 1 -6 1 3 0 -6 0 3 3 -8 1 0 2 -5 2 2 2 -7 3 2 3 -8 3 2 3 -11 3 1 1 -6 0 0 2 -6 2 3 3 -6 0 3 0 -14 2 3 0 -8 0 1 0 -8 0 1 0 -11 0 1 1 -10 1 0 3 -6 3 0 2 -6 2 2 0 -6 2 0 1 -13 0 2 1 -8 1 3 1 -8 1 1 1 -11 3 1 3 -10 3 2 1 -6 3 1 3 -6 1 2 0 -8 0 2 2 -8 2 3 2 -11 1 2 1 -6 1 0 3 -6 3 3 2 -11 0 0 2 -8 2 2 2 -11 1 2 1 -10 1 2 3 -6 0 3 0 -8 1 0 2 -5 2 2 2 -6 3 2 1 -2 2 1 2 -8 2 1 2 -11 3 2 3 -6 0 0 2 -6 1 3 1 -8 1 2 0 -8 0 3 0 -8 0 2 0 -11 0 3 3 -10 3 2 2 -6 2 2 0 -6 1 2 3 -3 0 3 0 -8 0 2 0 -11 2 0 2 -10 2 3 3 -6 0 0 1 -6 2 0 0 -6 3 3 2 -0 0 2 2 -8 2 1 2 -8 2 1 2 -11 2 3 3 -10 3 1 0 -6 2 3 1 -6 2 3 3 -8 3 0 2 -5 2 0 2 -14 2 3 2 -8 2 3 2 -11 2 0 0 -10 0 0 1 -8 2 0 2 -5 2 0 2 -6 1 0 0 -1 0 3 3 -8 3 2 3 -8 3 2 3 -11 1 3 1 -6 2 2 0 -6 2 0 3 -6 1 3 2 -15 0 3 0 -8 0 2 0 -11 1 0 1 -10 1 2 0 -6 3 0 1 -6 0 3 2 -6 1 1 3 -12 1 2 1 -8 1 1 1 -11 1 0 0 -10 0 1 2 -6 3 1 1 -6 3 1 0 -5 3 1 3 -8 3 3 3 -11 2 3 2 -10 2 1 0 -6 0 2 3 -6 2 3 2 -8 1 0 1 -5 1 0 1 -7 3 2 3 -8 3 1 3 -8 3 1 3 -11 3 0 0 -6 2 1 1 -6 3 0 2 -6 0 1 3 -14 3 2 2 -8 2 2 2 -11 2 0 0 -8 2 0 2 -5 2 0 2 -6 1 1 3 -6 2 3 1 -8 1 3 1 -11 0 1 0 -10 0 0 1 -6 2 1 0 -6 3 1 2 -1 3 0 0 -8 0 2 0 -11 0 1 1 -10 1 3 0 -6 0 3 3 -6 1 1 1 -14 3 2 1 -8 1 2 1 -11 0 1 0 -10 0 3 2 -6 2 3 1 -6 2 0 0 -6 1 1 3 -1 3 0 0 -8 0 1 0 -11 0 2 2 -10 2 0 1 -6 0 2 2 -6 2 0 3 -6 2 1 0 -15 0 3 3 -8 3 2 3 -8 3 3 3 -11 1 3 1 -6 3 0 0 -8 0 0 3 -5 3 1 3 -11 3 3 3 -8 3 1 3 -8 3 1 3 -11 3 1 1 -10 1 3 3 -6 2 0 0 -6 3 0 2 -8 0 0 1 -5 1 2 1 -0 0 2 1 -8 1 1 1 -8 1 1 1 -11 1 3 3 -10 3 1 2 -6 2 0 1 -6 2 3 3 -15 0 3 1 -8 1 1 1 -8 1 1 1 -11 1 2 2 -10 2 1 0 -6 0 2 3 -6 3 3 1 -6 2 1 2 -7 3 2 3 -8 3 3 3 -11 3 0 0 -10 0 0 2 -6 2 3 0 -6 0 0 3 -2 0 1 3 -8 3 3 3 -11 2 3 2 -10 2 2 3 -6 1 0 2 -6 1 0 1 -1 1 0 1 -8 1 1 1 -11 3 1 3 -8 1 0 1 -5 1 3 1 -2 0 1 1 -8 1 3 1 -11 3 1 3 -10 3 0 2 -6 2 2 3 -8 2 0 1 -5 1 3 1 -15 0 3 1 -8 1 1 1 -8 1 1 1 -11 2 1 2 -10 2 3 0 -6 3 0 1 -6 1 0 3 -6 2 1 2 -2 2 1 2 -8 2 2 2 -8 2 3 2 -11 0 2 0 -10 0 0 1 -6 1 0 0 -6 2 2 2 -10 0 2 2 -8 2 1 2 -11 1 2 1 -10 1 2 0 -6 3 1 1 -6 2 0 3 -6 2 0 2 -9 2 3 2 -8 2 1 2 -11 0 2 0 -10 0 2 2 -6 1 1 3 -6 0 2 1 -8 0 0 0 -5 0 1 0 -5 3 1 3 -8 3 2 3 -11 3 2 2 -10 2 0 1 -6 1 2 2 -6 2 1 3 -1 0 3 2 -8 2 2 2 -11 2 1 1 -6 3 3 2 -6 2 3 0 -15 0 3 2 -8 2 2 2 -11 2 1 1 -10 1 2 0 -6 2 1 1 -6 3 3 2 -9 1 3 3 -8 3 3 3 -11 0 3 0 -10 0 2 1 -6 0 0 2 -6 2 0 0 -6 1 1 3 -1 3 0 2 -8 2 1 2 -8 2 1 2 -11 2 1 1 -10 1 0 0 -6 2 2 1 -6 0 0 3 -6 3 2 2 -13 1 2 2 -8 2 3 2 -11 0 2 0 -10 0 0 2 -6 2 2 3 -8 2 0 0 -5 0 0 0 -6 3 1 1 -6 3 0 0 -8 0 3 0 -11 0 2 2 -10 2 0 1 -6 0 1 2 -6 3 2 0 -6 0 1 3 -12 0 2 3 -8 3 1 3 -8 3 2 3 -11 3 1 1 -10 1 3 2 -6 2 2 1 -6 2 3 0 -6 3 2 3 -4 3 1 1 -8 1 2 1 -11 2 1 2 -10 2 0 0 -8 3 0 3 -5 3 1 3 -6 1 1 1 -6 3 3 2 -8 3 2 3 -8 3 2 3 -11 0 3 0 -6 2 3 2 -6 2 0 1 -6 2 0 3 -9 1 3 3 -8 3 1 3 -11 0 3 0 -10 0 1 2 -6 1 3 3 -6 2 2 0 -11 3 3 3 -8 3 2 3 -11 2 3 2 -6 2 0 3 -6 3 1 1 -15 0 3 0 -8 0 2 0 -8 0 2 0 -11 2 0 2 -10 2 2 3 -8 2 0 0 -5 0 1 0 -8 3 0 1 -5 1 1 1 -6 0 0 2 -8 1 2 2 -8 2 2 2 -8 2 1 2 -11 3 2 3 -10 3 2 0 diff --git a/2018/inputs/17.txt b/2018/inputs/17.txt deleted file mode 100644 index 1e2ccdd..0000000 --- a/2018/inputs/17.txt +++ /dev/null @@ -1,1713 +0,0 @@ -y=1181, x=576..579 -y=434, x=498..503 -x=647, y=653..675 -y=1204, x=593..595 -y=268, x=475..498 -x=599, y=619..638 -y=1130, x=452..478 -x=439, y=1365..1377 -y=652, x=589..595 -y=1552, x=560..577 -x=439, y=852..867 -x=605, y=292..298 -x=489, y=709..718 -x=567, y=1087..1097 -y=1774, x=631..634 -x=649, y=592..612 -x=610, y=533..555 -x=564, y=996..1008 -x=651, y=416..441 -y=1106, x=502..519 -y=1015, x=479..487 -x=572, y=25..35 -x=630, y=849..865 -x=573, y=884..897 -x=614, y=667..688 -x=464, y=1542..1567 -x=645, y=258..270 -y=1029, x=656..662 -y=1502, x=483..511 -x=589, y=1553..1555 -x=535, y=1792..1795 -x=469, y=166..193 -x=484, y=1117..1142 -x=655, y=1277..1295 -x=598, y=162..170 -y=620, x=430..455 -x=665, y=1205..1212 -x=501, y=1347..1364 -x=661, y=664..684 -x=583, y=131..142 -x=542, y=722..727 -x=475, y=748..761 -x=602, y=1386..1393 -x=578, y=1651..1662 -y=1711, x=598..603 -y=164, x=642..660 -x=488, y=1176..1183 -x=644, y=207..221 -x=654, y=1678..1691 -y=1673, x=448..454 -x=630, y=1299..1312 -y=695, x=472..474 -x=465, y=1022..1045 -x=645, y=1216..1243 -x=623, y=423..437 -x=625, y=200..219 -x=565, y=1153..1166 -x=490, y=1510..1519 -x=553, y=941..947 -x=634, y=1101..1126 -x=515, y=111..113 -y=1146, x=427..438 -y=1096, x=451..460 -x=464, y=1339..1346 -x=612, y=1383..1396 -y=500, x=516..532 -x=555, y=941..947 -x=528, y=1243..1270 -x=646, y=1136..1146 -y=887, x=470..484 -x=617, y=316..343 -x=575, y=1060..1069 -y=1047, x=443..455 -y=1120, x=527..580 -x=514, y=126..135 -y=292, x=484..500 -x=556, y=75..91 -y=646, x=494..518 -x=644, y=552..568 -x=509, y=8..17 -y=735, x=591..614 -x=586, y=1215..1228 -y=1335, x=443..465 -y=495, x=522..526 -x=610, y=864..867 -y=221, x=639..644 -y=1346, x=464..469 -x=489, y=967..983 -x=602, y=1277..1289 -x=620, y=1348..1375 -x=575, y=1736..1744 -x=629, y=462..466 -y=270, x=645..652 -x=518, y=1244..1270 -x=576, y=1151..1162 -x=483, y=970..973 -y=1349, x=606..610 -y=1335, x=634..655 -y=1671, x=650..657 -x=619, y=243..265 -x=585, y=558..563 -x=536, y=1876..1887 -x=652, y=551..559 -x=593, y=1256..1268 -x=440, y=1480..1496 -y=1401, x=520..541 -x=624, y=1297..1306 -x=501, y=1510..1528 -x=587, y=567..575 -y=1470, x=560..580 -y=776, x=519..523 -x=601, y=981..983 -x=516, y=655..666 -y=1803, x=573..578 -x=504, y=1654..1677 -y=1931, x=537..667 -x=540, y=145..163 -x=616, y=204..210 -x=473, y=1856..1859 -x=547, y=241..259 -x=664, y=932..939 -x=475, y=306..316 -y=1572, x=622..628 -x=641, y=985..1001 -x=527, y=1572..1575 -x=447, y=1116..1124 -x=595, y=650..652 -y=1326, x=616..619 -x=626, y=822..835 -x=583, y=1063..1075 -x=576, y=1212..1222 -y=1206, x=486..495 -x=602, y=1885..1910 -x=460, y=1781..1805 -y=996, x=521..527 -x=591, y=1083..1103 -x=569, y=1563..1574 -y=785, x=560..579 -y=857, x=522..524 -x=599, y=804..805 -x=651, y=1724..1736 -y=637, x=449..467 -x=455, y=815..842 -x=476, y=1327..1345 -y=1533, x=615..624 -y=1268, x=633..655 -x=653, y=295..299 -x=522, y=388..415 -y=1365, x=462..487 -y=1430, x=428..438 -x=487, y=488..499 -y=1150, x=599..608 -x=559, y=1922..1927 -x=664, y=170..193 -y=1531, x=441..444 -y=1315, x=600..604 -x=603, y=1541..1543 -x=664, y=1401..1420 -x=580, y=322..345 -x=449, y=627..637 -y=1749, x=497..511 -x=577, y=1060..1069 -y=289, x=492..494 -x=443, y=1330..1335 -x=487, y=405..416 -x=603, y=18..33 -y=1312, x=612..630 -x=605, y=625..633 -x=546, y=1230..1232 -x=553, y=1126..1142 -x=441, y=936..943 -y=1715, x=544..641 -y=1693, x=594..596 -x=649, y=1151..1170 -x=490, y=405..416 -x=602, y=1602..1623 -y=142, x=580..583 -x=574, y=646..660 -y=789, x=479..485 -y=1093, x=640..655 -y=1200, x=501..508 -y=225, x=557..572 -x=591, y=727..735 -x=515, y=1653..1665 -x=467, y=489..499 -y=193, x=459..469 -x=593, y=1143..1162 -x=461, y=489..493 -x=547, y=198..217 -x=522, y=61..73 -x=626, y=1767..1779 -y=446, x=437..448 -y=840, x=443..451 -x=496, y=597..601 -x=650, y=1004..1013 -x=429, y=936..943 -x=557, y=812..822 -x=542, y=1633..1635 -x=469, y=1607..1615 -y=1654, x=624..626 -x=504, y=787..798 -x=569, y=1868..1875 -y=902, x=641..644 -y=1170, x=649..651 -x=606, y=532..555 -x=493, y=1509..1528 -x=452, y=1410..1425 -x=535, y=468..480 -x=599, y=1150..1158 -y=1486, x=429..437 -y=415, x=518..522 -x=511, y=1490..1502 -x=634, y=1765..1774 -x=539, y=869..879 -x=470, y=1413..1418 -x=516, y=1641..1648 -y=598, x=432..434 -x=494, y=807..818 -x=477, y=1875..1898 -x=577, y=77..98 -x=477, y=324..337 -x=451, y=1510..1535 -x=590, y=838..849 -x=565, y=1872..1898 -x=516, y=825..831 -x=541, y=869..879 -y=695, x=427..444 -x=437, y=1166..1194 -x=593, y=1279..1292 -x=518, y=469..480 -x=532, y=1851..1861 -y=1861, x=532..536 -y=1485, x=636..652 -y=1887, x=493..496 -x=436, y=749..766 -y=1268, x=593..610 -y=1145, x=512..520 -y=334, x=482..485 -y=1351, x=553..565 -x=491, y=1547..1556 -y=1908, x=530..549 -y=521, x=607..634 -x=602, y=1687..1698 -x=631, y=1725..1736 -y=1792, x=432..456 -x=530, y=1572..1575 -x=584, y=1154..1166 -x=620, y=1286..1292 -x=537, y=1918..1931 -x=608, y=1474..1489 -x=461, y=989..1006 -x=477, y=1672..1678 -y=1287, x=492..495 -y=1318, x=532..554 -x=463, y=12..30 -x=628, y=595..608 -x=560, y=778..785 -y=1624, x=472..480 -y=673, x=486..489 -x=475, y=1241..1254 -y=1479, x=472..485 -x=458, y=468..477 -y=1298, x=494..497 -x=641, y=1437..1447 -y=973, x=464..483 -y=1695, x=594..596 -x=460, y=1084..1096 -x=613, y=293..298 -x=503, y=1548..1556 -x=574, y=915..931 -y=25, x=482..501 -x=637, y=529..549 -x=441, y=1440..1453 -y=91, x=556..567 -x=432, y=1695..1711 -y=1375, x=620..644 -y=1912, x=553..556 -y=413, x=595..598 -x=584, y=1257..1281 -y=131, x=551..556 -x=493, y=573..576 -x=551, y=860..864 -x=469, y=79..91 -x=462, y=1144..1150 -x=513, y=812..814 -y=1789, x=582..607 -y=1246, x=590..592 -x=544, y=1703..1715 -y=677, x=480..496 -x=432, y=588..598 -x=566, y=556..559 -y=1926, x=511..515 -y=592, x=455..478 -x=610, y=1647..1659 -x=651, y=213..238 -y=1622, x=543..565 -x=451, y=90..104 -x=576, y=1174..1181 -y=1243, x=645..651 -x=553, y=1343..1351 -x=572, y=201..225 -x=648, y=947..970 -x=581, y=444..462 -x=459, y=36..59 -x=642, y=147..164 -x=561, y=1634..1635 -x=593, y=697..707 -x=557, y=200..225 -y=1077, x=457..461 -y=1429, x=600..626 -x=631, y=781..785 -x=565, y=1343..1351 -x=651, y=891..905 -x=445, y=1827..1843 -y=1711, x=432..460 -x=491, y=1819..1821 -x=558, y=725..730 -x=434, y=991..1012 -x=634, y=434..442 -x=452, y=527..540 -x=618, y=1479..1484 -x=644, y=621..626 -x=533, y=1526..1544 -y=831, x=490..516 -y=466, x=629..649 -y=1228, x=568..586 -x=567, y=1062..1075 -x=640, y=1747..1758 -x=579, y=777..785 -x=549, y=812..822 -y=1732, x=638..640 -y=490, x=576..594 -x=516, y=1495..1518 -x=620, y=1297..1306 -y=254, x=460..468 -x=475, y=254..268 -x=482, y=12..25 -y=1183, x=468..488 -x=587, y=666..675 -y=68, x=479..500 -x=524, y=1789..1801 -x=613, y=1046..1058 -x=580, y=567..575 -y=879, x=539..541 -x=448, y=533..537 -x=658, y=1363..1375 -y=410, x=427..438 -y=176, x=501..504 -x=491, y=783..794 -x=570, y=351..373 -y=259, x=521..547 -y=480, x=518..535 -y=633, x=605..607 -x=523, y=767..776 -y=898, x=552..556 -x=606, y=1340..1349 -x=494, y=631..646 -x=496, y=1688..1695 -y=821, x=634..642 -y=1393, x=602..605 -x=443, y=1175..1177 -x=531, y=851..861 -y=582, x=442..546 -y=864, x=551..570 -x=562, y=996..1008 -y=575, x=580..587 -x=529, y=1763..1775 -y=40, x=502..506 -y=73, x=522..529 -y=798, x=504..526 -y=628, x=513..529 -x=520, y=1657..1662 -y=1648, x=516..536 -y=1142, x=484..495 -x=492, y=302..315 -x=586, y=1176..1187 -y=512, x=516..518 -y=218, x=502..504 -y=515, x=516..518 -x=516, y=512..515 -x=444, y=690..695 -y=626, x=624..644 -x=637, y=1276..1295 -y=1370, x=592..595 -y=1860, x=609..620 -x=620, y=900..915 -x=614, y=727..735 -x=437, y=1464..1486 -y=1254, x=457..475 -y=910, x=583..585 -y=294, x=429..436 -y=398, x=481..501 -x=642, y=1768..1779 -y=1845, x=500..524 -y=1898, x=561..565 -y=712, x=571..573 -y=735, x=489..491 -y=887, x=586..589 -y=1518, x=516..521 -x=466, y=551..560 -x=472, y=1613..1624 -x=561, y=701..715 -y=33, x=599..603 -x=538, y=896..908 -x=568, y=1456..1464 -y=559, x=566..568 -x=515, y=328..356 -x=662, y=1020..1029 -x=624, y=355..377 -x=480, y=1612..1624 -y=1139, x=570..574 -y=1795, x=530..535 -x=516, y=490..500 -x=462, y=1830..1837 -x=437, y=202..223 -x=661, y=1504..1509 -x=451, y=470..481 -x=515, y=1836..1840 -x=633, y=189..191 -x=467, y=708..718 -x=528, y=900..902 -x=497, y=232..241 -x=588, y=1686..1698 -y=1306, x=620..624 -x=480, y=667..677 -x=493, y=9..21 -y=1416, x=490..515 -x=624, y=1507..1533 -x=436, y=290..294 -y=708, x=571..573 -x=462, y=601..615 -y=595, x=628..638 -y=1205, x=621..626 -x=582, y=1130..1142 -x=487, y=1000..1015 -x=651, y=1695..1703 -x=544, y=891..902 -x=459, y=165..193 -x=549, y=1897..1908 -y=1484, x=616..618 -x=556, y=1887..1912 -y=1868, x=462..480 -x=621, y=1177..1205 -x=561, y=1873..1898 -x=624, y=1475..1489 -y=1377, x=439..451 -y=943, x=429..441 -y=1553, x=610..615 -x=509, y=1048..1074 -x=483, y=915..928 -x=480, y=606..608 -x=580, y=1027..1043 -x=630, y=978..996 -x=516, y=1875..1887 -x=501, y=1190..1200 -y=377, x=624..632 -y=481, x=451..470 -y=555, x=606..610 -x=445, y=1542..1567 -x=514, y=1231..1233 -x=572, y=62..72 -y=1097, x=548..567 -x=593, y=1784..1786 -x=556, y=29..31 -x=514, y=34..44 -x=651, y=29..31 -x=601, y=1342..1352 -x=439, y=177..182 -x=522, y=853..857 -x=638, y=110..114 -y=1166, x=565..584 -x=549, y=447..457 -x=508, y=1896..1898 -x=525, y=1763..1775 -x=572, y=350..373 -x=583, y=273..301 -x=496, y=148..158 -x=427, y=690..695 -x=506, y=449..461 -x=622, y=592..612 -x=492, y=497..521 -x=554, y=962..972 -x=543, y=827..840 -y=91, x=469..487 -x=446, y=614..616 -x=477, y=453..456 -x=501, y=366..376 -y=487, x=564..568 -x=495, y=1188..1206 -x=530, y=1896..1908 -x=436, y=123..147 -x=471, y=1856..1859 -x=486, y=664..673 -y=770, x=573..583 -x=565, y=1403..1411 -x=599, y=18..33 -y=1599, x=556..577 -y=1411, x=565..567 -x=541, y=986..1012 -x=601, y=1083..1103 -y=1825, x=486..502 -y=1695, x=480..496 -x=440, y=122..147 -x=476, y=364..376 -y=409, x=449..463 -x=446, y=1143..1150 -x=536, y=1614..1619 -y=290, x=510..514 -y=600, x=454..459 -y=1837, x=562..579 -x=462, y=1851..1868 -x=544, y=278..297 -y=902, x=544..563 -x=580, y=1438..1447 -x=546, y=570..582 -x=644, y=1874..1875 -x=447, y=306..316 -x=556, y=277..297 -x=626, y=424..437 -y=806, x=549..557 -x=596, y=1693..1695 -y=936, x=444..451 -y=1156, x=486..510 -y=1567, x=445..464 -y=779, x=514..530 -x=536, y=1851..1861 -y=992, x=504..509 -x=535, y=329..356 -y=814, x=513..519 -y=210, x=604..616 -x=491, y=731..735 -x=558, y=1084..1093 -y=352, x=642..648 -x=425, y=591..601 -x=634, y=1586..1603 -x=554, y=599..608 -x=605, y=397..419 -x=514, y=267..290 -y=263, x=554..568 -x=473, y=911..937 -y=897, x=573..579 -x=595, y=1401..1409 -x=613, y=367..370 -y=1535, x=433..451 -x=573, y=767..770 -x=665, y=41..45 -y=1093, x=558..561 -x=454, y=1666..1673 -x=495, y=1662..1672 -x=566, y=220..222 -x=492, y=1268..1287 -x=534, y=808..818 -x=480, y=1852..1868 -y=282, x=590..616 -x=502, y=218..221 -y=1187, x=566..586 -x=598, y=317..343 -x=562, y=1833..1837 -x=499, y=470..481 -y=113, x=456..478 -y=1703, x=649..651 -x=454, y=598..600 -x=474, y=1058..1074 -x=498, y=434..436 -y=1680, x=481..483 -x=662, y=851..868 -y=987, x=563..565 -y=299, x=653..660 -y=1590, x=617..625 -y=608, x=476..480 -x=538, y=527..540 -y=246, x=488..504 -x=455, y=611..620 -x=490, y=345..356 -x=566, y=602..604 -y=1603, x=634..650 -x=608, y=1150..1158 -x=454, y=363..376 -y=1679, x=596..623 -x=483, y=1569..1571 -x=554, y=1309..1318 -x=660, y=146..164 -x=442, y=752..755 -x=514, y=850..861 -y=1142, x=531..553 -y=1509, x=653..661 -x=509, y=1836..1840 -x=604, y=1301..1315 -x=488, y=426..440 -x=475, y=1733..1758 -x=543, y=41..67 -x=527, y=1107..1120 -y=660, x=574..577 -x=502, y=1081..1106 -x=469, y=1428..1434 -y=564, x=488..492 -x=430, y=1435..1455 -x=547, y=919..929 -x=641, y=1560..1563 -x=480, y=646..657 -y=715, x=478..480 -x=622, y=193..215 -x=445, y=271..274 -x=612, y=1280..1292 -y=938, x=608..621 -x=526, y=1897..1898 -x=610, y=441..443 -x=610, y=666..688 -y=1887, x=516..536 -x=625, y=1287..1292 -x=512, y=1204..1207 -x=505, y=1292..1303 -y=1045, x=465..485 -x=485, y=327..334 -x=574, y=570..587 -x=463, y=394..409 -x=485, y=1460..1479 -y=457, x=549..552 -y=456, x=477..479 -x=453, y=758..770 -x=660, y=360..381 -y=1895, x=616..620 -x=530, y=93..101 -x=589, y=861..887 -x=657, y=41..45 -y=31, x=556..564 -y=1823, x=512..656 -x=542, y=381..398 -y=1897, x=616..620 -x=610, y=1922..1927 -y=675, x=635..647 -x=535, y=938..950 -x=525, y=180..188 -x=635, y=654..675 -y=356, x=515..535 -x=520, y=1525..1544 -x=469, y=1799..1801 -x=478, y=1780..1805 -x=604, y=204..210 -x=456, y=490..493 -x=504, y=1875..1898 -x=527, y=1013..1027 -x=521, y=974..996 -x=583, y=737..760 -x=598, y=410..413 -x=476, y=493..496 -x=478, y=588..592 -x=438, y=1134..1146 -x=639, y=172..182 -x=471, y=1826..1843 -x=489, y=731..735 -x=427, y=888..914 -x=490, y=215..224 -y=1287, x=644..649 -x=655, y=729..747 -x=493, y=1788..1792 -x=596, y=763..765 -y=1236, x=446..456 -x=442, y=590..601 -x=600, y=1277..1289 -y=1224, x=590..608 -x=452, y=1102..1130 -x=504, y=165..176 -x=494, y=1296..1298 -x=615, y=511..516 -x=512, y=1465..1469 -x=649, y=1280..1287 -x=656, y=1811..1823 -x=567, y=76..91 -y=111, x=502..510 -y=867, x=439..444 -x=638, y=595..608 -y=87, x=531..549 -x=484, y=278..292 -y=1364, x=501..511 -x=454, y=1848..1872 -x=607, y=821..835 -x=504, y=218..221 -y=1402, x=626..640 -x=468, y=244..254 -x=554, y=1735..1744 -y=540, x=452..538 -x=472, y=493..496 -x=434, y=1757..1760 -x=502, y=97..111 -x=630, y=1250..1254 -y=1479, x=616..618 -x=549, y=788..806 -x=522, y=198..217 -x=577, y=1539..1552 -x=639, y=206..221 -x=591, y=697..707 -x=514, y=1554..1581 -x=647, y=1325..1330 -x=597, y=192..215 -x=461, y=1058..1077 -y=1528, x=493..501 -x=503, y=191..203 -y=1348, x=431..435 -y=1898, x=477..504 -x=487, y=79..91 -y=1074, x=509..519 -x=601, y=1361..1373 -x=579, y=499..504 -x=640, y=243..265 -y=1922, x=435..438 -y=1267, x=429..448 -x=650, y=156..158 -x=449, y=1439..1453 -x=545, y=417..419 -y=521, x=492..504 -x=517, y=895..908 -y=315, x=492..510 -x=644, y=1280..1287 -y=666, x=512..516 -y=395, x=490..494 -x=433, y=1434..1455 -x=510, y=1595..1617 -x=588, y=763..765 -x=631, y=1550..1552 -x=612, y=1102..1126 -y=1635, x=542..561 -x=526, y=787..798 -x=580, y=1497..1511 -x=603, y=1709..1711 -x=471, y=947..963 -y=730, x=558..564 -x=496, y=168..180 -x=435, y=1331..1348 -y=983, x=489..501 -y=257, x=597..613 -x=617, y=1343..1352 -x=598, y=498..504 -x=580, y=78..98 -y=104, x=441..451 -x=500, y=279..292 -x=626, y=1419..1429 -x=613, y=254..257 -x=610, y=1552..1553 -y=1418, x=470..472 -x=470, y=1038..1041 -y=1375, x=652..658 -y=230, x=457..467 -x=547, y=1370..1395 -x=597, y=1324..1349 -x=504, y=235..246 -x=499, y=728..739 -y=1910, x=602..627 -y=1830, x=456..462 -x=487, y=445..459 -x=525, y=590..610 -y=238, x=651..654 -x=587, y=367..370 -y=1336, x=554..575 -y=462, x=566..581 -x=452, y=1167..1194 -y=798, x=626..643 -x=507, y=507..518 -x=554, y=1523..1525 -x=536, y=1766..1778 -x=539, y=1465..1469 -x=465, y=1329..1335 -x=516, y=1697..1722 -y=970, x=644..648 -y=739, x=483..499 -x=625, y=1584..1590 -x=631, y=1765..1774 -x=598, y=1709..1711 -y=1330, x=645..647 -y=914, x=427..455 -y=1177, x=443..445 -x=618, y=1142..1162 -x=434, y=588..598 -y=560, x=450..466 -x=621, y=921..938 -y=481, x=478..499 -x=620, y=1857..1860 -x=577, y=843..845 -x=486, y=1647..1649 -x=589, y=534..537 -x=576, y=216..223 -y=606, x=476..480 -x=500, y=1831..1845 -x=450, y=644..650 -x=490, y=1401..1416 -x=581, y=63..72 -x=547, y=543..563 -x=605, y=1386..1393 -y=1249, x=575..599 -x=518, y=632..646 -y=563, x=581..585 -y=1805, x=460..478 -x=551, y=125..131 -x=483, y=366..376 -y=1013, x=645..650 -y=1560, x=641..649 -x=664, y=1267..1295 -y=462, x=543..560 -y=221, x=502..504 -x=604, y=101..107 -y=1263, x=602..604 -x=624, y=621..626 -y=996, x=630..632 -y=1659, x=567..571 -y=851, x=606..608 -y=928, x=483..486 -y=840, x=523..543 -y=1649, x=463..486 -x=592, y=1358..1370 -y=1615, x=457..469 -y=1295, x=546..550 -x=581, y=855..868 -y=698, x=462..480 -x=594, y=864..867 -x=593, y=216..223 -x=552, y=723..727 -y=707, x=591..593 -y=1142, x=565..582 -x=496, y=127..135 -x=637, y=1197..1223 -x=608, y=839..851 -x=641, y=1703..1715 -y=745, x=506..518 -x=536, y=1205..1207 -y=1233, x=502..514 -x=447, y=1732..1758 -x=627, y=529..549 -y=1008, x=562..564 -y=1784, x=593..598 -x=496, y=407..421 -x=583, y=163..170 -x=595, y=1193..1204 -x=519, y=1049..1074 -x=509, y=971..992 -y=785, x=631..634 -x=495, y=1117..1142 -y=1563, x=641..649 -x=540, y=591..603 -x=572, y=838..849 -y=1898, x=508..526 -y=568, x=642..644 -y=1571, x=576..585 -y=1001, x=453..455 -x=448, y=1702..1704 -x=553, y=141..164 -y=559, x=647..652 -y=297, x=544..556 -x=451, y=925..936 -x=626, y=1400..1402 -x=467, y=1058..1074 -x=502, y=1230..1233 -y=376, x=454..476 -x=487, y=1354..1365 -x=537, y=1554..1581 -x=495, y=1269..1287 -y=1212, x=656..665 -x=519, y=1082..1106 -x=628, y=728..747 -x=552, y=1652..1662 -x=510, y=98..111 -x=640, y=1730..1732 -y=1035, x=539..558 -x=616, y=1479..1484 -x=472, y=1460..1479 -x=626, y=771..798 -x=520, y=1395..1401 -y=163, x=533..540 -y=931, x=574..578 -y=1455, x=430..433 -x=552, y=674..689 -x=579, y=1832..1837 -x=467, y=208..230 -x=650, y=1587..1603 -x=464, y=969..973 -x=565, y=1129..1142 -x=660, y=294..299 -y=180, x=496..513 -x=622, y=1566..1572 -y=1556, x=491..503 -y=516, x=612..615 -y=1006, x=445..461 -x=574, y=404..411 -x=485, y=787..789 -x=548, y=1086..1097 -x=538, y=7..25 -x=504, y=971..992 -x=517, y=9..17 -x=615, y=803..805 -x=570, y=998..1012 -x=519, y=767..776 -x=571, y=708..712 -y=1295, x=637..655 -y=215, x=597..622 -x=569, y=737..760 -y=1779, x=626..642 -x=549, y=81..87 -y=135, x=496..514 -x=644, y=848..865 -x=543, y=417..419 -x=551, y=591..603 -y=939, x=585..591 -x=498, y=947..963 -x=568, y=1214..1228 -x=588, y=1477..1489 -x=586, y=1196..1207 -x=514, y=749..761 -x=455, y=548..557 -y=1162, x=576..578 -x=481, y=1326..1345 -y=1069, x=575..577 -x=573, y=1777..1803 -x=483, y=1490..1502 -x=595, y=410..413 -x=636, y=1463..1485 -y=1001, x=641..655 -x=486, y=1189..1206 -x=488, y=190..203 -x=493, y=1883..1887 -x=560, y=1539..1552 -x=455, y=992..1001 -x=564, y=482..487 -y=1292, x=593..612 -y=587, x=559..574 -x=436, y=37..59 -x=549, y=872..885 -x=456, y=177..182 -y=991, x=552..572 -y=812, x=513..519 -x=469, y=1338..1346 -x=500, y=1570..1571 -x=518, y=721..745 -y=1821, x=491..493 -x=429, y=1239..1267 -x=430, y=749..766 -x=470, y=471..481 -x=532, y=491..500 -x=612, y=1796..1805 -x=478, y=1103..1130 -x=478, y=471..481 -x=647, y=931..939 -y=983, x=601..622 -x=628, y=1565..1572 -x=631, y=1197..1223 -y=1489, x=570..588 -x=460, y=926..934 -x=542, y=112..113 -x=444, y=482..503 -x=557, y=789..806 -x=446, y=12..30 -x=635, y=1557..1567 -x=660, y=1197..1200 -x=565, y=977..987 -y=549, x=627..637 -x=654, y=213..238 -y=504, x=579..598 -x=565, y=1627..1640 -y=885, x=531..549 -x=474, y=683..695 -x=531, y=380..398 -x=445, y=1175..1177 -y=1455, x=548..550 -y=1235, x=536..556 -x=627, y=1249..1254 -x=595, y=1358..1370 -x=459, y=598..600 -x=496, y=910..937 -x=580, y=1108..1120 -y=1840, x=509..515 -x=499, y=324..337 -x=575, y=1893..1914 -x=593, y=1892..1914 -x=599, y=1239..1249 -x=520, y=1137..1145 -y=343, x=598..617 -x=575, y=1238..1249 -y=947, x=553..555 -x=568, y=482..487 -x=556, y=1224..1235 -y=241, x=495..497 -x=454, y=124..138 -x=550, y=1438..1455 -x=645, y=1004..1013 -y=1722, x=514..516 -x=486, y=915..928 -y=768, x=547..561 -x=499, y=1789..1792 -x=531, y=871..885 -y=1805, x=606..612 -x=437, y=1757..1760 -y=1158, x=599..608 -x=480, y=713..715 -x=541, y=1396..1401 -x=441, y=89..104 -y=493, x=456..461 -x=648, y=359..381 -x=552, y=1043..1053 -x=634, y=1318..1335 -y=1345, x=476..481 -x=620, y=1895..1897 -y=223, x=437..442 -x=432, y=271..274 -x=429, y=1463..1486 -x=579, y=884..897 -x=577, y=1585..1599 -y=141, x=610..633 -y=1075, x=567..583 -y=1270, x=518..528 -x=572, y=980..991 -y=35, x=551..572 -x=656, y=1205..1212 -y=1914, x=575..593 -x=441, y=1516..1531 -y=1801, x=524..550 -x=439, y=614..616 -y=604, x=566..572 -y=222, x=563..566 -x=531, y=674..689 -y=1281, x=559..584 -x=590, y=1222..1224 -x=633, y=120..141 -x=451, y=1365..1377 -x=595, y=534..537 -y=219, x=625..635 -y=1413, x=588..608 -x=470, y=445..459 -y=615, x=462..486 -y=1659, x=610..632 -x=585, y=950..974 -x=603, y=1583..1596 -y=747, x=628..655 -y=1519, x=472..490 -x=643, y=771..798 -x=578, y=914..931 -y=1678, x=461..477 -x=498, y=1531..1542 -y=101, x=627..641 -x=667, y=1918..1931 -x=455, y=587..592 -x=632, y=979..996 -y=1331, x=603..625 -x=519, y=792..794 -y=1223, x=631..637 -x=560, y=1458..1470 -y=1511, x=556..580 -x=610, y=998..1020 -x=441, y=532..537 -y=608, x=628..638 -y=158, x=650..653 -x=568, y=253..263 -y=608, x=554..578 -x=488, y=552..564 -y=1778, x=520..536 -x=430, y=610..620 -x=493, y=1532..1542 -x=497, y=1743..1749 -y=223, x=576..593 -x=500, y=878..881 -x=512, y=427..440 -y=822, x=549..557 -x=551, y=181..188 -y=1640, x=565..618 -x=432, y=1788..1792 -y=437, x=623..626 -x=608, y=1403..1413 -y=1786, x=593..598 -y=1289, x=600..602 -x=477, y=1590..1599 -x=467, y=628..637 -x=513, y=627..628 -y=164, x=553..565 -x=658, y=1400..1420 -x=438, y=645..650 -x=554, y=1422..1437 -x=514, y=1696..1722 -x=492, y=553..564 -x=632, y=1136..1146 -x=648, y=1679..1691 -x=472, y=1412..1418 -y=421, x=479..496 -x=444, y=1745..1773 -x=454, y=645..657 -x=479, y=1000..1015 -x=493, y=1819..1821 -x=490, y=382..395 -x=472, y=683..695 -x=543, y=1609..1622 -x=616, y=1895..1897 -y=881, x=500..515 -y=557, x=455..459 -x=657, y=1656..1671 -y=356, x=468..490 -x=584, y=1028..1043 -y=537, x=589..595 -x=580, y=702..715 -y=657, x=454..480 -x=642, y=810..821 -x=572, y=602..604 -x=474, y=1038..1041 -x=655, y=985..1001 -x=563, y=890..902 -y=107, x=604..614 -x=571, y=1654..1659 -x=609, y=947..963 -x=526, y=488..495 -x=612, y=511..516 -x=466, y=925..934 -x=575, y=542..563 -x=456, y=1224..1236 -y=1927, x=559..610 -y=1124, x=428..447 -x=641, y=899..902 -x=490, y=824..831 -x=600, y=1302..1315 -x=616, y=172..182 -y=527, x=565..567 -y=1596, x=581..603 -y=21, x=491..493 -x=566, y=443..462 -y=1792, x=493..499 -x=607, y=493..521 -y=381, x=648..660 -x=545, y=1519..1530 -y=67, x=535..543 -x=506, y=37..40 -x=529, y=626..628 -y=1043, x=580..584 -x=464, y=784..794 -x=500, y=54..68 -y=934, x=460..466 -y=477, x=458..464 -x=550, y=1789..1801 -x=460, y=245..254 -y=274, x=432..445 -y=204, x=604..616 -x=591, y=919..939 -x=438, y=1915..1922 -x=592, y=1563..1574 -y=1623, x=592..602 -x=445, y=989..1006 -y=1150, x=446..462 -x=567, y=501..527 -x=474, y=125..138 -x=501, y=11..25 -y=1396, x=590..612 -x=652, y=1463..1485 -x=478, y=102..113 -x=479, y=408..421 -x=578, y=1151..1162 -x=461, y=122..135 -x=640, y=111..114 -x=461, y=1671..1678 -x=489, y=1654..1677 -y=135, x=461..466 -x=536, y=1225..1235 -x=579, y=843..845 -y=170, x=583..598 -x=524, y=1832..1845 -x=501, y=165..176 -x=457, y=1059..1077 -x=466, y=122..135 -x=652, y=1442..1456 -x=565, y=500..527 -y=1792, x=530..535 -y=1295, x=659..664 -x=427, y=386..410 -y=31, x=648..651 -x=509, y=597..601 -x=585, y=1324..1349 -x=623, y=1668..1679 -x=435, y=1849..1872 -x=445, y=147..158 -y=1544, x=520..533 -x=592, y=1243..1246 -x=556, y=1585..1599 -x=624, y=947..963 -y=781, x=631..634 -x=626, y=1654..1656 -x=527, y=973..996 -x=442, y=1340..1350 -y=1662, x=520..530 -x=602, y=1260..1263 -x=606, y=1796..1805 -x=633, y=890..905 -x=494, y=35..44 -x=456, y=1788..1792 -x=498, y=255..268 -y=1656, x=624..626 -y=1162, x=593..618 -x=510, y=1154..1156 -x=633, y=1258..1268 -x=547, y=765..768 -y=217, x=522..547 -x=444, y=926..936 -x=581, y=1582..1596 -x=593, y=1193..1204 -x=471, y=1799..1801 -x=483, y=1589..1599 -y=849, x=572..590 -y=1837, x=456..462 -x=496, y=666..677 -x=458, y=753..755 -x=468, y=345..356 -x=511, y=214..224 -x=444, y=853..867 -y=1469, x=512..539 -x=523, y=589..610 -y=761, x=475..514 -x=439, y=326..335 -x=597, y=255..257 -x=579, y=1212..1222 -x=426, y=954..975 -x=489, y=1293..1303 -x=615, y=1551..1553 -x=582, y=1541..1543 -x=650, y=1656..1671 -x=575, y=1324..1336 -x=568, y=1519..1530 -y=147, x=436..440 -x=638, y=189..191 -x=627, y=77..101 -x=518, y=512..515 -x=515, y=1400..1416 -y=684, x=657..661 -y=1654, x=567..571 -y=1856, x=471..473 -y=1875, x=631..644 -x=494, y=382..395 -x=524, y=853..857 -x=645, y=1478..1480 -x=552, y=447..457 -y=612, x=622..649 -x=645, y=169..193 -x=462, y=1354..1365 -y=1555, x=589..606 -x=428, y=1746..1773 -x=590, y=1383..1396 -x=647, y=552..559 -y=503, x=444..446 -y=25, x=523..538 -y=1672, x=495..498 -y=794, x=511..519 -x=663, y=1557..1567 -y=1012, x=425..434 -x=495, y=232..241 -x=478, y=713..715 -x=484, y=861..887 -y=1464, x=568..571 -x=655, y=1319..1335 -y=1373, x=584..601 -y=576, x=493..532 -x=574, y=1127..1139 -y=1456, x=652..665 -x=455, y=888..914 -y=1859, x=471..473 -x=649, y=461..466 -x=579, y=1174..1181 -y=1425, x=445..452 -y=1194, x=437..452 -x=556, y=124..131 -y=496, x=472..476 -y=718, x=467..489 -x=652, y=1363..1375 -x=627, y=1884..1910 -y=794, x=464..491 -y=1437, x=554..561 -x=550, y=999..1012 -x=578, y=598..608 -x=446, y=481..503 -x=581, y=558..563 -x=481, y=384..398 -x=559, y=1256..1281 -y=937, x=473..496 -x=585, y=1568..1571 -x=465, y=758..770 -y=867, x=594..610 -y=805, x=599..615 -y=1395, x=547..575 -x=511, y=792..794 -y=675, x=568..587 -y=1207, x=512..536 -y=845, x=577..579 -x=470, y=860..887 -x=481, y=1675..1680 -x=642, y=553..568 -y=974, x=585..599 -x=479, y=55..68 -x=583, y=768..770 -x=518, y=387..415 -x=443, y=1020..1047 -x=480, y=686..698 -x=616, y=620..638 -x=592, y=1602..1623 -x=612, y=1300..1312 -x=550, y=1273..1295 -y=461, x=506..525 -y=316, x=447..475 -x=638, y=1730..1732 -x=634, y=781..785 -x=521, y=1496..1518 -x=563, y=977..987 -y=1496, x=440..465 -x=510, y=266..290 -x=519, y=812..814 -x=497, y=1595..1618 -x=438, y=387..410 -x=448, y=436..446 -x=658, y=224..247 -x=455, y=1021..1047 -y=459, x=470..487 -x=479, y=453..456 -x=443, y=833..840 -x=528, y=1614..1619 -x=448, y=1240..1267 -x=542, y=1230..1232 -x=632, y=354..377 -x=511, y=1743..1749 -y=1027, x=513..527 -y=963, x=471..498 -x=464, y=468..477 -y=939, x=647..664 -x=433, y=1510..1535 -x=511, y=1346..1364 -x=553, y=1886..1912 -x=602, y=441..443 -x=551, y=26..35 -y=376, x=483..501 -y=1698, x=588..602 -x=640, y=1400..1402 -x=536, y=414..424 -x=506, y=722..745 -x=502, y=1809..1825 -y=1691, x=648..654 -x=449, y=395..409 -x=643, y=1478..1480 -x=600, y=1418..1429 -x=502, y=37..40 -y=908, x=517..538 -y=1074, x=467..474 -y=1662, x=552..578 -x=514, y=1596..1617 -y=441, x=651..663 -x=445, y=1411..1425 -y=894, x=552..556 -y=1058, x=613..628 -x=645, y=1325..1330 -y=1568, x=576..585 -y=370, x=587..613 -x=515, y=878..881 -x=442, y=203..223 -x=435, y=1914..1922 -y=1420, x=658..664 -x=530, y=1792..1795 -y=443, x=602..610 -x=598, y=1784..1786 -x=607, y=625..633 -x=537, y=1653..1665 -x=524, y=900..902 -x=561, y=1084..1093 -x=468, y=1175..1183 -y=766, x=430..436 -x=645, y=1891..1908 -x=663, y=416..441 -x=425, y=992..1012 -x=457, y=1608..1615 -y=1349, x=585..597 -y=1760, x=434..437 -y=1200, x=656..660 -x=513, y=1013..1027 -y=688, x=610..614 -x=523, y=828..840 -y=59, x=436..459 -y=715, x=561..580 -x=570, y=1127..1139 -x=585, y=998..1020 -x=501, y=385..398 -x=590, y=1243..1246 -x=536, y=1747..1758 -y=835, x=607..626 -y=424, x=536..552 -x=622, y=980..983 -x=604, y=1260..1263 -x=648, y=343..352 -x=645, y=435..442 -x=536, y=1640..1648 -y=770, x=453..465 -x=552, y=894..898 -x=606, y=839..851 -y=1736, x=631..651 -x=564, y=29..31 -y=1434, x=469..490 -x=521, y=242..259 -y=114, x=638..640 -y=765, x=588..596 -x=577, y=647..660 -x=606, y=1552..1555 -x=653, y=1505..1509 -y=1617, x=510..514 -y=499, x=467..487 -y=915, x=607..620 -y=1908, x=637..645 -x=463, y=1646..1649 -x=483, y=1674..1680 -y=1677, x=489..504 -y=373, x=570..572 -x=624, y=1654..1656 -x=453, y=1897..1912 -x=585, y=919..939 -x=626, y=1177..1205 -x=529, y=61..73 -x=531, y=1125..1142 -x=450, y=550..560 -y=1012, x=550..570 -x=583, y=906..910 -x=592, y=1869..1875 -y=865, x=630..644 -x=490, y=1428..1434 -x=582, y=1773..1789 -x=655, y=1258..1268 -x=608, y=1223..1224 -x=558, y=1023..1035 -x=486, y=601..615 -x=635, y=201..219 -x=659, y=1267..1295 -x=576, y=1568..1571 -y=1704, x=448..453 -x=503, y=434..436 -y=72, x=572..581 -x=657, y=663..684 -x=665, y=1443..1456 -x=453, y=1702..1704 -x=580, y=1459..1470 -x=588, y=1404..1413 -x=524, y=1854..1867 -y=905, x=633..651 -x=567, y=1044..1053 -x=499, y=701..713 -y=601, x=425..442 -y=1883, x=493..496 -x=492, y=276..289 -y=193, x=645..664 -y=442, x=634..645 -x=610, y=121..141 -x=570, y=1478..1489 -x=427, y=1133..1146 -x=652, y=257..270 -y=1126, x=612..634 -x=568, y=667..675 -x=559, y=403..411 -y=224, x=490..511 -y=537, x=441..448 -x=642, y=343..352 -y=518, x=507..529 -x=561, y=765..768 -x=586, y=862..887 -x=614, y=102..107 -x=451, y=1083..1096 -x=533, y=144..163 -x=522, y=488..495 -x=557, y=322..345 -y=1775, x=525..529 -x=585, y=906..910 -x=644, y=899..902 -y=610, x=523..525 -x=476, y=606..608 -y=1041, x=470..474 -y=603, x=540..551 -y=1574, x=569..592 -x=594, y=476..490 -y=1254, x=627..630 -x=610, y=1340..1349 -x=510, y=301..315 -x=535, y=40..67 -x=485, y=1023..1045 -x=644, y=948..970 -x=459, y=548..557 -y=1409, x=595..599 -y=1665, x=515..537 -x=653, y=156..158 -y=247, x=658..662 -x=483, y=728..739 -y=861, x=514..531 -y=1801, x=469..471 -y=17, x=509..517 -y=818, x=494..534 -x=610, y=1257..1268 -y=1489, x=608..624 -x=649, y=1560..1563 -y=950, x=535..561 -y=713, x=499..511 -y=301, x=570..583 -x=463, y=816..842 -x=573, y=961..972 -y=335, x=439..453 -x=496, y=1883..1887 -x=556, y=1523..1525 -x=515, y=1904..1926 -x=656, y=1197..1200 -x=456, y=103..113 -x=617, y=1583..1590 -y=1543, x=582..603 -x=570, y=274..301 -x=460, y=1696..1711 -y=1758, x=536..640 -x=437, y=435..446 -x=465, y=1479..1496 -y=1020, x=585..610 -x=641, y=77..101 -y=929, x=527..547 -x=618, y=1627..1640 -y=601, x=496..509 -x=651, y=1217..1243 -x=494, y=276..289 -x=656, y=1021..1029 -x=616, y=266..282 -x=619, y=1324..1326 -y=616, x=439..446 -x=514, y=770..779 -x=616, y=1324..1326 -y=899, x=641..644 -y=1103, x=591..601 -y=1710, x=659..663 -x=542, y=1853..1867 -x=488, y=234..246 -y=1352, x=601..617 -x=523, y=6..25 -x=630, y=1231..1233 -x=444, y=1339..1350 -y=975, x=426..434 -x=438, y=1412..1430 -x=546, y=1272..1295 -y=1530, x=545..568 -x=590, y=266..282 -y=868, x=656..662 -x=603, y=1320..1331 -x=457, y=1241..1254 -x=498, y=1662..1672 -x=573, y=856..868 -x=634, y=494..521 -x=552, y=979..991 -x=532, y=573..576 -x=428, y=1412..1430 -y=158, x=445..496 -x=644, y=1347..1375 -y=182, x=616..639 -x=491, y=9..21 -x=532, y=1309..1318 -x=442, y=1896..1912 -x=520, y=1765..1778 -x=497, y=1296..1298 -y=1233, x=620..630 -y=1296, x=494..497 -y=1447, x=580..641 -x=659, y=1709..1710 -x=615, y=1507..1533 -x=564, y=726..730 -x=462, y=685..698 -x=640, y=1075..1093 -x=632, y=1647..1659 -x=576, y=476..490 -x=482, y=327..334 -x=559, y=569..587 -y=345, x=557..580 -x=656, y=851..868 -x=456, y=1830..1837 -x=607, y=1773..1789 -y=755, x=442..458 -y=101, x=530..550 -x=561, y=939..950 -y=1744, x=554..575 -y=1567, x=635..663 -x=556, y=894..898 -y=1525, x=554..556 -x=655, y=1076..1093 -y=1618, x=490..497 -x=442, y=571..582 -x=649, y=1694..1703 -y=1453, x=441..449 -y=1575, x=527..530 -y=1843, x=445..471 -x=512, y=1811..1823 -y=650, x=438..450 -x=434, y=954..975 -x=662, y=223..247 -x=472, y=1511..1519 -x=568, y=556..559 -x=453, y=992..1001 -y=398, x=531..542 -x=619, y=1550..1552 -x=561, y=1421..1437 -y=337, x=477..499 -y=44, x=494..514 -x=457, y=208..230 -x=511, y=701..713 -x=620, y=1232..1233 -y=1146, x=632..646 -y=1872, x=435..454 -x=451, y=834..840 -x=565, y=142..164 -y=419, x=543..545 -y=1875, x=569..592 -y=1552, x=619..631 -x=490, y=1595..1618 -x=578, y=1777..1803 -x=543, y=434..462 -y=113, x=515..542 -y=1350, x=442..444 -y=963, x=609..624 -x=587, y=398..419 -y=1572, x=527..530 -x=501, y=966..983 -x=563, y=220..222 -x=566, y=1177..1187 -x=429, y=289..294 -y=972, x=554..573 -x=554, y=1323..1336 -x=584, y=1360..1373 -y=419, x=587..605 -x=565, y=1610..1622 -x=486, y=1810..1825 -y=1571, x=483..500 -y=30, x=446..463 -x=512, y=656..666 -y=1599, x=477..483 -x=530, y=1657..1662 -y=138, x=454..474 -y=1773, x=428..444 -y=1619, x=528..536 -x=486, y=1154..1156 -x=550, y=92..101 -y=1581, x=514..537 -y=440, x=488..512 -x=634, y=809..821 -x=599, y=1401..1409 -y=1222, x=576..579 -x=552, y=413..424 -y=265, x=619..640 -x=599, y=951..974 -x=504, y=496..521 -x=532, y=985..1012 -x=508, y=1189..1200 -y=188, x=525..551 -y=727, x=542..552 -x=631, y=1873..1875 -y=638, x=599..616 -x=556, y=1498..1511 -y=1292, x=620..625 -x=513, y=167..180 -y=1912, x=442..453 -x=531, y=82..87 -x=589, y=651..652 -x=637, y=1892..1908 -x=560, y=435..462 -y=411, x=559..574 -y=416, x=487..490 -y=1542, x=493..498 -x=602, y=1195..1207 -x=573, y=708..712 -x=575, y=1370..1395 -y=1480, x=643..645 -x=489, y=664..673 -x=428, y=1116..1124 -x=651, y=1152..1170 -x=625, y=1319..1331 -y=45, x=657..665 -x=453, y=325..335 -y=760, x=569..583 -x=628, y=1047..1058 -x=530, y=769..779 -y=842, x=455..463 -x=596, y=1669..1679 -x=571, y=1456..1464 -x=448, y=1667..1673 -x=648, y=29..31 -y=868, x=573..581 -y=1207, x=586..602 -y=1758, x=447..475 -x=444, y=1516..1531 -y=1303, x=489..505 -x=567, y=1404..1411 -y=689, x=531..552 -y=182, x=439..456 -x=570, y=861..864 -y=1012, x=532..541 -x=608, y=920..938 -y=563, x=547..575 -x=525, y=450..461 -y=1232, x=542..546 -x=539, y=1023..1035 -x=480, y=1689..1695 -y=191, x=633..638 -x=548, y=1437..1455 -y=1243, x=590..592 -x=431, y=1330..1348 -y=1053, x=552..567 -x=594, y=1693..1695 -x=479, y=787..789 -x=567, y=1654..1659 -y=902, x=524..528 -y=98, x=577..580 -x=554, y=253..263 -x=609, y=1856..1860 -y=203, x=488..503 -x=527, y=918..929 -x=607, y=901..915 -x=511, y=1905..1926 -y=436, x=498..503 -x=446, y=1224..1236 -x=580, y=131..142 -x=663, y=1708..1710 -x=512, y=1138..1145 -x=529, y=508..518 -y=298, x=605..613 -y=1867, x=524..542 diff --git a/2018/inputs/18.txt b/2018/inputs/18.txt deleted file mode 100644 index 9e354bc..0000000 --- a/2018/inputs/18.txt +++ /dev/null @@ -1,50 +0,0 @@ -#.#.|..#|.||.#...|...#.|.......##|##..#..||.||.... -#.......#.....|##..#|..#.##..##|.|.#..|.#...|....# -.|..........#.|..|.....|..|#.#...##|#|.|#|##|...#| -#|....#|##..#|.|||.#.|.#...#.##.......#||..#...... -.#|....|.|..#..||...#||...|......###.#.#...##..#.. -..||#...|.#.|||||.....|.......##...#.#....|..#.... -###|..##...|.#|..|.#|#...|.#.|....||.|...#|.|#...# -|.#.|#.#.|###.|..#..|....#....#|.#..||.||.....#..# -.#..|.#..#|##..|.....|.#.|.#.#|.......#..|...#..|. -...|||##...|..#.#|#|..#.#..#|.|.|#..##........##.# -|#.#..||....|...|#..|....|#|...#.#.#.##|.|.#...... -|..|...|.|#.........|..#|...|.#.|##....|..|..|#.|| -|....#..||..|...#|......|||||.|#....||....|.#|.#.. -......#||.#.#.||..|.......|....||#||#.|.#.|.##||#| -.##.#....##.#.|....|...###..#...|.#....|.#...|..## -.##..#|#.#.##.||..|.#|..|.|.##|....|...#||||.|..#. -|.|..|#|....|.#.#..||.....|.....##....||....|.||.. -#|.|.##...||...........|..#.||.|.#..##..|#||...... -||..||.||..#.##.#...|.#|.....|###....#.....#...|.. -|.#.##|.|...||#.#...||....|.|#..|.#....##........# -..|....|.#.##|....|||#....#.|.|.##....|##|.|#..... -.|.....#|.#....|###|..#|||........||#.#..||..|..#. -#..#...|#|.#...|.||##..#.|..|.|.#.|..#.#.|.....#.# -|#||.##..#..|||.......#|..#...#..##....#||.#|..... -.|.#.....|..#...#...##...|.#...|.#|.......|..#...| -.||.......|..##..##.#|.|..|...#.|.#..#.|....#.|#.| -....#..#|##|....#..|.#..|||..#....#.#|...||.#..|.. -#......#|.##..|..|....|.##.#|...#..#.|..|..|..|##. -...|||.#|#.#.|..|||.#.#.#...||...||..##..#.....|.. -..#..|.|#.#..|..##|..#....#.|..|.......|||#.|.|.|# -.##|..#...#..||..|.........|#.|#.....|...##.|..||# -#.....||....#.....|#.||......|.#|.#|....||.||.#.#. -#..|#..|......|.#.#.#.##..||.|.#.|......#|#||#.|.# -..||..||.....|.#..###.#.|#..|.......|....#||.|..#. -.#...###|#|#|||...|...#.#|.#|..|...#..#.|#|.#...|. -...|..#||....##|..#...#....#||#.......|....#.|###. -..#....|#..#|.....|.#|..#..|#....||......|.|.#.|#. -..|##....#.|..#..#.|.#..||....#...|.....|..#.....| -.......#||..#||...|.#.|#...#....|.|.||.#.|...#.##| -.|.|||.....#............#..#..|..|..#.|.#..|...... -|...|.|####..#.....#..#..|#|#..#..|......|...|.#|# -|.|...#..#..|....|.....#|#||..#.||..|#|..|||.|.|.| -..#...|#.......||.#.#.#....#.........##|.|..#.##|| -#|#..|..|#|.##.|.|#......||......|.....#||###.|### -....#..#.|..|...#|#|..|#..|.#|....||#|.||.|#|..... -|..#.|..#.|#......#...#|.#|#|.....|#...###....##.. -...##..#..|..#..#.#...|.#..#|...|#.##|.#|..##..#.# -|.|.|...#.|..##.|.|....|..#..|...|..##|...|..|.... -.#|..|..|..|.|..#...|.||#...#......||.#.#......... -.#.##..|............|.||.....#||..|##.|..|.....#.| diff --git a/2018/inputs/19.txt b/2018/inputs/19.txt deleted file mode 100644 index 1207b7b..0000000 --- a/2018/inputs/19.txt +++ /dev/null @@ -1,37 +0,0 @@ -#ip 4 -addi 4 16 4 -seti 1 7 2 -seti 1 1 5 -mulr 2 5 3 -eqrr 3 1 3 -addr 3 4 4 -addi 4 1 4 -addr 2 0 0 -addi 5 1 5 -gtrr 5 1 3 -addr 4 3 4 -seti 2 7 4 -addi 2 1 2 -gtrr 2 1 3 -addr 3 4 4 -seti 1 3 4 -mulr 4 4 4 -addi 1 2 1 -mulr 1 1 1 -mulr 4 1 1 -muli 1 11 1 -addi 3 3 3 -mulr 3 4 3 -addi 3 9 3 -addr 1 3 1 -addr 4 0 4 -seti 0 1 4 -setr 4 9 3 -mulr 3 4 3 -addr 4 3 3 -mulr 4 3 3 -muli 3 14 3 -mulr 3 4 3 -addr 1 3 1 -seti 0 6 0 -seti 0 7 4 diff --git a/2018/inputs/2.txt b/2018/inputs/2.txt deleted file mode 100644 index 1edb865..0000000 --- a/2018/inputs/2.txt +++ /dev/null @@ -1,250 +0,0 @@ -krdmtuqjmwfoevnadixyclzspv -yrdmtuqjiwfoevnabfxyclzsph -kqjvtuqjgwfoevnabixyclzsph -krdmtuqjgwjoevnaolxyclzsph -krdmtnqjgwfoevnabiiyxlzsph -lrymtuqjgwhoevnabixyclzsph -krdmguqjgwfoevnabixkclzsah -krdmtuqjgwfoevnibinyclzdph -krdmtucjgwfoevnabhxyclzspv -krdmtuqjgwfoevtabixyulzsuh -krdmtuqqgwfoevnabixdblzsph -krdmtuqjawfsevnabiyyclzsph -krdmtuqjgwfoevnabzxccldsph -krdmtcqegwfhevnabixyclzsph -krdmtuqjgwforvnaxixycgzsph -krdmtuqjgwfoqvnaxixyclzskh -krdmtutjgwfoevyajixyclzsph -krdmtuqmgwfoevnabixycxzspc -krdptuqjgwhoevkabixyclzsph -krdttuqjhwfoevnabixyclzspa -krdmtuqjgwfoevnabibyhnzsph -krdmtuqjywfoevntbidyclzsph -krdmtojdgwfoevnabixyclzsph -krdmtuqjgpfuevnauixyclzsph -krdmtoqjgwfrevjabixyclzsph -krdmtuqjgwfoyvndbixyclzyph -krdmtxqjgwfomvnayixyclzsph -crdmtuqjgwfoevnabixyoxzsph -krdmtpqjgwfdevnabixycqzsph -krdmtuqjgwfoevuabfxsclzsph -krdmtuqjgwfoevnybixycdzskh -krdmtusjgwfoevnabixxclzdph -krdmtuqjgwfoevnaboxyglzjph -zrdmtuqjgrfoevnalixyclzsph -krdmtuqjclfoevnabixyclzsih -kqdmtlqjgwfoevnabtxyclzsph -krdmtuqggwpoevnabixyclzlph -krdmtuqjgwfobwnrbixyclzsph -krdmtuqjgwfoevwabkxycnzsph -kldmtuqjgwfogvyabixyclzsph -krdmtuqvgwfoevnabixtcrzsph -krdmtuqjgwroevnabixyrlzspw -krdmtuqjgjfoevnabixyelzrph -krdmtuqjgffoevnaaixyclzspa -krdmtuqjgwfoevxabifywlzsph -krdmtuqjgwfoevlabixycrzsrh -krdmtuqjgwfpevnabixocqzsph -krdmtuqjgwfoevdabixycnhsph -krdmtmqjgwfoevnajixyclvsph -krdmtuqjjvfoevnabgxyclzsph -krzmtuqjgwfoevnabioyckzsph -kodmtwqjgwfoevnabieyclzsph -ehdmthqjgwfoevnabixyclzsph -krdmtuqjxwioevnabixyclbsph -grdmkutjgwfoevnabixyclzsph -krdutuqjgwfoebnabixaclzsph -krdmtuqjgwfoebnabixyclcjph -krdmteqjgwfoevnlbixycizsph -krdmtegjgwhoevnabixyclzsph -krdmtuqjgwfdrvnabixbclzsph -krdmtuqjgyfoevidbixyclzsph -krdmtubjawfoevnabixyclzuph -krdmtuqjgwfoavjabixyclzssh -krdmtuqjgwfoeonabixyclzsvo -vrdmtuqjgwffevnabixpclzsph -krdmtuqonwfoevnabixycfzsph -krdmtumjgwfpevnubixyclzsph -krdmtutjgwfoevnaciyyclzsph -krdrtuqjgwfoevnwbixyglzsph -krdmtuqjgwfoevbabixyclesdh -krdmtuqcgwfoevnabixyqdzsph -krdmtuqjgwfogvnabrxycezsph -krdmujqkgwfoevnabixyclzsph -krdmtuqjgtooevnabixyclzzph -jrdntuqjgwfoevnabixyclrsph -krdmtuqjgzfoevkebixyclzsph -krdmtuqjgwfosvnaeixyclztph -krdmtuqjgwfoevzabixydlzaph -krdmtuqzgwfoavnabiqyclzsph -krdmtuqvgwfoevnabixycwzspv -krdmvuqjgwteevnabixyclzsph -krdmtujjgwfoevgybixyclzsph -kydmtuqjgwfoeunacixyclzsph -krdmtuqjgifoqvnabicyclzsph -krnltiqjgwfoevnabixyclzsph -krdmtuqjgwfoevnabhxyclzsgi -kfdmtuqjnwfowvnabixyclzsph -kmdmtuljgwfoevnabixycvzsph -krdmtxqjgwaoevvabixyclzsph -kramduqjgwfoevnabixyclzwph -krdutuqjgwfoennabixyclziph -krdmvuqfgwfoevnacixyclzsph -krdmtuqogwfoevnabmvyclzsph -krdmfuqjgwfoyvnabixyclzseh -krdmtuqjgweoelnabixyclzspd -krdmtumjgwfoevnabixyclzypo -krdmtuqjgkfoevhabixyclzsqh -kjdmtuqjgwfoevgabixyclzsah -krdmtuqjgwfoevnlbixyclzsbw -mrdmtxqjgwfoevnabgxyclzsph -krdmtuqpgwfoevnhbixycltsph -krdmtuqjgwfmqvnabixyclzslh -krqmtuqogwfoevnaqixyclzsph -krdmtusjggfoevnabicyclzsph -krcmtuljgwfoevlabixyclzsph -krdmtuojgwfoeknabixyclzsrh -krdmtuqjtwfoevnabiypclzsph -krvmtupjgwfoevnabixycldsph -krdmtuxjgwfoevaabxxyclzsph -krdmtvqlgwfoehnabixyclzsph -wrdmtuqjgwfoevnabixyclzdpy -krdatuqlgwfoevnabixyclzsjh -krdmtuqjgwfoevpabkxyclzsjh -krdmtuqjgwqvsvnabixyclzsph -krdmtwqjgwfoevnobixyclzspm -krdmtuqjgssoevnabixyclgsph -krdmtuqjgwfoevnafixyclzbpp -krdmtuqjowfoevxabiuyclzsph -krdmtuqrgwfoevntbixyclzspu -krdmtucjgwfoevnabixcnlzsph -krddtuojgwfoevnabixyclzzph -krdmtuqjgwuoevnabiqycldsph -kpdmpuqjgwfoevnabixyclzslh -krdmtuqjgwfoewnabixyzxzsph -krdmtuejswfoevhabixyclzsph -krdmtuqggwfoevntbikyclzsph -krdmtuqjgwfoevnabixydlhnph -krdmtcqjglfoevnaxixyclzsph -krumyuqjgwfoevnrbixyclzsph -kgdmmuqjgwooevnabixyclzsph -krdmteqjgwfqevwabixyclzsph -krdmfuqjgwfpevnabixyclzspq -erdmtycjgwfoevnabixyclzsph -krdmcuqjgwfoevnabixjglzsph -krdmtuqjgtfoeunabixiclzsph -krdmtuqjgwfoevmqbixyclzspu -krlmtuqjvwfoevnabikyclzsph -krdotuqjgwfoevnagrxyclzsph -krdmtuqbgwfoefnabixyclasph -kwdmtuqjgwfosjnabixyclzsph -kydmtuqjgwfoevcabixycezsph -crdmtuqjgwloevnabixkclzsph -krimtuqhgwfoevnbbixyclzsph -krdmjuqagwfoevnabicyclzsph -krdmtuqdgzfoevnabixydlzsph -krdmtuqjgwwoevnaqixyclzspf -krdmtuqjgwfoevnabdxyzvzsph -krdmtuqjgwaofvnabixyclzsnh -krdmturjgwfmevnabixyclzspn -krdmvuqjgwboevnabixyolzsph -krdmtuqjgwfomvnabijyclzspx -bedmtuqjgwfoevnabixyslzsph -krdmtenjgwfoevnabixyclzsqh -krdmtuqugwfoevnabixpcdzsph -krdmtuqjgiloevnabrxyclzsph -krdmtupjcwfoevnabixyclwsph -kremtuqjgwfoevnabixyyjzsph -krdmtuqjgwnoovnabixyclzshh -qrdmtuqjgwfoevnabixyciasph -krdituqjgbfoevnagixyclzsph -krdmnoqjgwfoqvnabixyclzsph -krdmtuqegwfoevhkbixyclzsph -krdmkucjgwfoevnabixnclzsph -krdmtuqbnwpoevnabixyclzsph -krdmttqjgwfoevnabixyclbspz -srdmtubjgwfrevnabixyclzsph -krdmruqjzwfoevnabixyclesph -ardmtuqfgwwoevnabixyclzsph -yrumtuqjgwhoevnabixyclzsph -rrdmtuqjgwfoevnabsxycwzsph -krpmtuqjgwfoevdabixyclzzph -krdmuuqjgwfoevnabixyclriph -krdmtuqjgwfobvnabixyvgzsph -krdmbuujgwfoevnabixycczsph -krhmtuwjgwfoeqnabixyclzsph -krdwtuqjgwfoevnkbixyclzzph -krdmtuqjgwkoeqnabixyvlzsph -kadmtuqjgwfoednabcxyclzsph -krdmtyqqgwfoevnabizyclzsph -krdmtuqjgnfoevnabiyycmzsph -krdmtuqjcwfouvnabixyclznph -krdmtuqjjwfcevnqbixyclzsph -krdmtuqfgbfoevgabixyclzsph -kkdmtuqjgwfoevnapixyclzsth -nrdmtuqjgwtoevnakixyclzsph -krdmtuqjglfoevlabixdclzsph -zrdmtuqjgwfoevndbixbclzsph -krdmeuqjgwfoeenabixyclrsph -krdmoaqjzwfoevnabixyclzsph -krsmtuqjgwfoevnwbixyclzsfh -kadmtuqjgwfoqdnabixyclzsph -krsmtuqjgofoevnabixkclzsph -krdmtuqjdwfoevnibixdclzsph -mrdmtuqjgwfouvnabixyclzfph -trdmtlqjgwfoevnabixyclzjph -trdmyuqjgwfozvnabixyclzsph -krdmtiqjgwroevnabixyclzspk -erdmtutjgwftevnabixyclzsph -krdwyuqjgwfoevnaaixyclzsph -krdmthqbgwfoevnabixyclksph -krdmttqjgwfoivnabixyclvsph -krdmtuqjgwfoefnabixyflgsph -khdmtuqjgwfoevnajixyvlzsph -krdmtuqvgwfoevnasixyclzspt -krdmtuqjgkwogvnabixyclzsph -krdmtuqjgwfoevnaboxpglzjph -kadmtuqjgwfoxvnabixyclziph -krdmtuqjfwfoevnabaxycbzsph -krdjtuqjgwfoevnabiryhlzsph -krdvtuqjgpfoevnabcxyclzsph -brdmtuqjgwfoevnafixyqlzsph -krdmtuqjgwfoevnavixxcllsph -krdhtuqjkwfoevfabixyclzsph -krdmtuqjgjfoevnawixyclzsuh -krddtuqjgwfoeqnabiwyclzsph -krhmtuqjgwfnevnabinyclzsph -kedmtuqjgzfmevnabixyclzsph -qrdmtuqjgwfoevntbixyclzxph -krdmtuqsgwfoevnabixvclzrph -scdmtuqjgwfoevnabixtclzsph -krymtuqjgjfolvnabixyclzsph -krdmtuqjgwfkevnablxyclzskh -krymtuqjswfoevnabixyclzvph -krdmtuqjhwfoevnabixycwzspd -krdmtuxjgwfoevnabyxyclzzph -krdmtlqjgwfovvnabilyclzsph -krdmtuqjgwfoevnaaijcclzsph -krdatrqjgwfokvnabixyclzsph -krdmtuqjgwfoevnaxifyclzkph -krddtuqjgwfoevnabixccozsph -krdmtuqngwfoevnabiyycxzsph -krdmtumdgwfoevnqbixyclzsph -krdmtuqjgwfoevnabixyxlmsch -krdmtudzgwfoevnabixtclzsph -krdmtuqjgwfoevnpbixyclhspl -krdmtqqjgwjoevnabexyclzsph -kydmtuqzgwfoevnabixyclwsph -krdmeucjgwqoevnabixyclzsph -krdmtuqjghfoevjabixyclzspp -krdmtuqjgjfwevnabixyclzskh -krdmkuhjgwfoevnabipyclzsph -krdytuqjgwfoevnabibyclztph -krdmtuqjgwfpevnabisyzlzsph -kmdmtgqjgwfsevnabixyclzsph -krdmtuqjgsfoevnabijyclzszh -krdmtuqjgwfoevnabivyclzuuh -krdstuqjgrfoevnabixyclzspu -jrdmtuqjgwfotvnabixyclzspj -krdmrumjgwfoevnabixeclzsph -krpmtusjgwfoevnabioyclzsph diff --git a/2018/inputs/20.txt b/2018/inputs/20.txt deleted file mode 100644 index 620f018..0000000 --- a/2018/inputs/20.txt +++ /dev/null @@ -1 +0,0 @@ -^ESEEEESSWNWSWSEESESENENNNW(SSWENN|)NENWWWWWNWNWWS(SWSEESE(SSWSWNWSSSESWWSSSSEEESWWSESSEENN(WSNE|)NENEEEEESSSEENNNNENEEENNWWS(WWNNNENWW(NENNNNNEEENWNNWWWWWWWSWNNNWNNEES(SENNNWNNWNNNWWNWSWNWNNENNEENNNWSWNNNWWNWWWSWWSEEEE(NWES|)SENESSS(EE|WNWSSSSE(NNESNWSS|)SWWNNNNNWN(E|WWWWNNWSWWSWWWWWNNESEENNEEE(SWWSNEEN|)NWWNWNNWWSESWSE(E|S(WWNNNNWNWWNNENNWNWNNNNWSSWWNENWWWNWSSSWSSENESEEEE(NWWWNWNE(WSESEEWWNWNE|)|SSE(SWSWNNNWSSWSSSWNWSWNNWNNN(NWSWWNENWWNWWNWWNNNESSEEES(W|ENNENNESENNWWNNWWNWNNNWWWSEESSWSSENESESE(N|SSWSWNW(S|NWN(EESEWNWW|)WWNNE(NWWNNE(SEEWWN|)NWWSWWWN(WSWSEEEEESSSE(SSSSWSSWNWSSWNWWWNENEE(SWEN|)ENE(S|NN(ESSNNW|)NWSWNWSWWSW(NNNEN(NNN(WSSSNNNE|)E|ES(SWEN|)EEEN(ESNW|)WW)|SE(SWSSSEEESWSSESSSENNNENEN(WWSWENEE|)EEESSWW(NEWS|)WSWSEENESSEEENNNW(SWSEWNEN|)NNE(SESEE(NWNWESES|)SSSWSW(NNNESNWSSS|)WSWSSWWNENWN(EE|WSSSWSWWNWWNWSW(NNNNNESSE(NNNWWNNE(NWES|)S|EEENE(SSSW(S|WN(W(WW|S)|E))|E))|SESWSSSESESEEEESWWWSSWWNENWNW(N|SSSSSSEEENN(WSWNSENE|)EEENWWNEEESSSSSENENNENNNNWWW(SEESSW(N|SS)|NNNWWSS(ENSW|)WNW(NW(S|WNENNESSE(S|NEEENEEEESWSWNWS(WWW|SSSEENN(WSNE|)EEN(W|NEENENEEEEESSWWN(WWSWSEE(SENEESENNENEESSW(N|SEENNNEEEE(SWWSEESWSWSSSSSSESSENNEESESSWSWWWSWNWSWNWSSWNWWWWWSWWNWNWSWWNNE(NWWW(NENNNENEENNNEE(NWWNWSSSSWNW(NEWS|)SS|ESWWSEESSWNWSSESWWNNWSSW(SEESES(W|EENN(NNEESWSSEEN(W|NEENESENENE(NWWWNWSS(EE|WSWNNWNNESE(NN(E(SEEES(ENN(N(E|NN)|WWW)|W)|NN)|WW(WSSSSE|N))|S))|SSWSSEE(NWES|)S(WWWWNWSW(NNEEES|WS(WNWSW(S|W)|EEE))|EEEN(N|E))))|W(S|W)))|N))|SWSESWSWNNWWSWNWWWN(WWSESWSESESSEEEEENESSWSESWSESSENESENNNNWSW(SEWN|)NNENENENN(W(WS(SW(S|NWWN(WSSWWNENWW(SS|N(WSNE|)E)|N))|E)|NNN)|ESEE(NWES|)SSWW(NEWS|)SESSSWNW(N(N(N|W)|E)|SSESSESSSSSWWNENNNWN(WWWWWSWSESWWWNWWWNNW(NEEEEES(WS(WWNE|ES)|ENN(ESNW|)NNWSWS(WNWSWWNNE(S|EENE(S|N(EESWENWW|)WWSWNW(NN(ESNW|)N|S)))|E))|SSSEESE(ESSWNWWW(NEWS|)SSESEESSENESESWWWWWW(SSSSSSSSEESESSEENESEENENENESSWSESSESWSEENESSWSEENEESENNENWNNENEEEEENWWNWNWWNWNNEENNWSWWWSESSSSSE(SWSWSESSWNW(S|NWNENNNE(NWWWW(NEENWNNWNWSSWNNWSSSES(ENENSWSW|)WWWWWNNNENEE(NWN(ENNW(NNNWS(S|WWN(WWNWESEE|)ENNNESES(W|EEEE(NWWWN(W|NESENNE(NWWSWN|S(ENSW|)S))|ESSESENENN(WSWNSENE|)NNNNESENEENWWNNENEEEENEENNNNESSEESSENNNWWNNWN(WWS(E|WSWSWWSWNWSWSW(SSWSESSENNNEN(W|NESENENES(SWEN|)ENNE(N|SS))|NNENEENESENENWN(EESNWW|)WSWWWSE(WNEEENSWWWSE|)))|EN(ESSSENESENEEEEESESENESENEESSENNNESSSESESWWSSENES(ENNNNENENE(NNNNWNN(WWNWWWSESE(SSEE(NNWSNESS|)ESWWWSSW(SE(ENEN(E|W)|S)|NNWWWSWWWWWNWNENNNNWNWW(NEENWWNEEESEESWS(WNSE|)ESSSW(SSES(EENNNW(S(W|S)|NENEE(N(EEE|NNWSWNNEENWN(WSWWNWN(EE(EE|S)|W(NEWS|)SWS(WNWSWNWWSWNW(NE(EEEEEE|N)|SSES(W|ENE(SE(N|S)|N)))|EESEESSS(S|EE)))|E))|SSW(N|SSENE(SENSWN|)N)))|W)|NN)|SESESSWSSWNNN(WSSSWWWN(WS|EENWW)|N|E)))|N)|EES(SSESWENWNN|)W)|SSWSWSEEE(SESEEN(EN(EES(EENWESWW|)S(SSSS|W(N|W))|W)|W)|N(W|N)))|SSWSWWSWSEEEE(N(NESE(E|N)|WW)|SSSWWNENWWSSSWSSESENN(W|NESSSSWWWNWWSESESSESENNWNEEESWSSESWSWWWSESENEENEN(NNWESS|)EEESSEEEENWWNW(S|NNEEEE(NNWWWS(EE|W)|SS(WNW(S|W)|EEN(EEENWNENN(WSNE|)NESENESEENNNEESWSSEEN(W|NEESENENENWNNWWNWNENESEENNENWWWS(ESNW|)WNWNEEENNESSEENWNENNENESSEESEESWSWSWNN(WSW(NN(N|EE)|SSSW(SSW(SS(WNNWWEESSE|)EEENNN(WSSWENNE|)EENESENNN(WSWWSWNN(SSENEEWWSWNN|)|NESSSEENWNENWNWNNNESSENNNWNWSWSSWNNWW(SEWN|)NNNWWNENNWNENESSEENNNW(SS|NNWWNENEEENNEESSW(SESSWSW(SSESSEENNW(S|N(W|NEES(ENENWNENEENWNWSWWW(NNENNWNWNEENNWSWWWSESSS(E(N|E)|WWWWSS(EENWESWW|)WSWSWWNNNWNNENNWSWWNWWWSWSWSWWSESEEN(NESESSENENE(NNWWNWS(SE(S|E)|W)|SSSE(SSWWWSESSSSSSWWWSEESENESSSENNNNESE(NNWNNNE(SSEWNN|)NENWNW(SWS(SSSW(S(S|E)|NNNN)|E)|NEESEESW(ENWWNWESEESW|))|EESWWSW(SSWWWSWS(E|WWSWWSWNNENWNNWNEENE(ESE(N|SE(ENWESW|)SWWS(E|W(S|NN(WSNE|)(N|E))))|NNWNWNEEENWNNENWNWWSWWSEEE(SWWS(EE|SWSESSE(E|SWWWSW(SSEE(N(N|W)|ESWWSESWSSWNNWSW(SSSEN(N|ESEESENENN(WSW(NNENNSSWSS|)W|ESSEE(SSESSENESSWWWNWN(NWSWS(E|WSS(WNNNEN(ENEEWWSW|)WWSWNW(SWS|NEE)|S))|E)|NENWW(NEWS|)S)))|N))|WNWSWNNEEE(EN(ESNW|)WWNNNEE(SWSEWNEN|)N(ESNW|)NWNNNWWWWWNWNNNEENNENWWSSWWSWWSESSWWWS(ESEEEN(NNN|ESSSEEENWWNEEEESSS(W(NN|WWWWSEEESSWWN(E|W(SSSSES(ENNWNEEENNN(SSSWWWEEENNN|)|WWW)|WNNNW(NEWS|)S)))|E)|WW)|W(W|NNEE(E|NNNNNEENESS(WWSEWNEE|)ENNNWWNWWSS(ENSW|)WNW(SSEWNN|)NWNNNEENNESESSS(WW(S|N(EN|WS))|ENNEENNWNWNWS(SESEWNWN|)WNNENNWNNESEENWNEESSESEENWNNNW(SS|WWWNNESEEEEEENNNEENNNNWWWN(EEEESSSSSENNENWNEN(EEESESSWWN(E|W(NEWS|)SSSSSSSENESSWWWWWSEEESESWSESENENWNEN(NEEESENNWWWNW(NWNENWW(NEEESESEEENWNNENESESW(W|SEEEEENNNENESSSSENENNESEESESESSENNNESESWSSWSEEENWNEESENNWWNEENNNESESWSSSESENNWNEESE(SWSESWWWSESWSESSSSWNNNWNNNN(WSSWN(N|WSSEESSSSSWSSEEN(N(NNN|ESENESE(NNWNENNW(NNNESS|S)|SSSSSSSWNNWSSSEESSSSSWNWSWWNENWWSWWNNWWNWNENWNWSSSWSWNNW(NNENNNWS(S|WNNEENENESENENESE(SSESSEEE(ENE(NWW(NEE|SWNWS)|S)|SSSSSES(SENNSSWN|)WWNNNWSSSW(NNNNEENWWWNWWWS(EES(SE(SSWNSENN|)N|W)|WNNN(WSSSSS(W|S)|EEE(NWES|)S(E|WW)))|S))|NNENWWNWNWSWSES(WS(WWWS(E|WWS(EE|WWNENEENNENENE(ENNWSWWSWWNWWWSWWWWWWSEEESWWWWSEEESENENEESS(W(N|WSEESWWWSWWWSESSWS(WWNEN(E|WWWWWSS(ENESE(S|N)|WNNWSSWS(SWWWWNENNNWSWNNWNNNESSEENWNNNNNWWSSWNN(NEENNNN(WWWSSENESSW(ENNWSWENESSW|)|NES(ENNN(WSWNSENE|)ESSSENNNNN(SSSSSWENNNNN|)|SSSSEESWSSESEESSWNW(WNSE|)SSS(WW|SES(WSESWENWNE|)ENNN(WSNE|)EES(EENNNENNWSWSWW(SEESNWWN|)NEN(WWNW(NNNWWEESSS|)(S|W)|ENEEESE(SWSESWWSSENESENNENE(SENE|NWWS)|NNWWWNNNESSEEE(N(ENWNENWNN(ENESENESEESWWSWSW(SSENESENN(W|EEENESENNESENNEE(NWNWNWSWSWS(EENEWSWW|)WW(N(WW|NNN|E)|S(SWWEEN|)EE)|SESWW(N|S(EEESEE(NWES|)S(SESENSWNWN|)WW|SWW(NEWS|)(S|WWWWWS)))))|NN(E|W))|WSWWN(WNSE|)E)|WW)|S)))|W))))|WWSWWS(WNNE(NWWSSNNEES|)E|SEESEN(N(WW|N)|E(EENNSSWW|)SSWWSW(SWSS(WNNSSE|)ESENENN(WSWENE|)E(NWES|)SESWSEE(E|SSSESWSWSWNN(WSSSES(EEESES(WSNE|)ENENEN(WWSWNN(E|W(WS(W|E)|NENNEE))|ESE(NN|EEE(N|S(WWS(WNWWEESE|)SSESW(W|SESWS(E|WW))|E))))|WWNWNE)|NNE(NWW(WW|N)|SS)))|NN))))|E)))|SENENNEN(W|ENESENESEE(NWES|)SWWS(WWN(WSWSESE(N|SS(ENSW|)WNWSWN(NEWS|)WWSS(SE(ENWN|SWS)|W))|E)|E))))|ENEENN(WNWS(SEWN|)WWW|E))|SSSW(N|W))))|E)|E(E|N))))|SSS(SWEN|)EEESESESESENN(WNWN(WNWESE|)E|ESE(N|SWSWSSWSSSWSWWNNE(S|NWNW(NENN(WSNE|)E(ESWSSE(NENSWS|)SS|N)|WSWWSESSSWSW(WWWSWNW(S|NNWNEESE(NN|S(W|ENEE(SW|EN))))|SESSSESWS(W|SSSENEESESESESSWSSESSENNN(W|NENNESESEEESWSWWWN(N|WSSEEESSSWWNENWWSSWWN(E|WNWWNWSSSSSWNWNNE(NNWSWSSWWSEESWSEE(N|SSSWSEESENNESEESENNWNEENENNESENN(WWWSWNWNWW(NEWS|)SSE(N|SE(N|E(E|SWWS(S|WNNWSW(N|S(E|S))))))|EEENWNNEN(W|ESE(NNNW(SWEN|)NNWNENE(SSS|NWWSWSSWNNNENNNENESE(NNWWNNWWSSS(ENNSSW|)SWSWWSWSW(SE(ENEE(S(S|W)|N(ENSW|)W)|SS)|WNNW(S|NEEE(SWSNEN|)NWNWWS(WSSWWNENNENENENEEENENNNEESEESESS(SE(SWEN|)NNNNNNNWNENNWWS(SSWWS(EES(E(S|N)|W)|WNNW(SWS(SSWS(E|SWWN(E|WSWS(WN(NENNW(NENSWS|)S|WSSSENE(WSWNNNSSSENE|))|E)))|E)|NEEE(SWEN|)NNEN(WWSSW|EESW)))|E)|WWWNN(ESEWNW|)W(SSSSSSWNW(SSEWNN|)WNEN(WWSWENEE|)E(S|N)|N))|E)))|SWWSEE))|SSSW(NNWESS|)SESSWWN(E|NWWSESSSSWSWNWNN(ESENNWW(EESSWNSENNWW|)|WSSSESEEESWWSWWWWWNWSSSWNNNWN(ENESEESEN(ESEWNW|)NNN|WSWWWSWNWNWSWSESSEN(N|EEESEEE(SEESENESSSENESESEESESESWSSWWSESESEENE(NNWSW(S|W|NNEENNW(S|NENNNNNWSSWNNWNNN(ESSENE(S|NWNWNN(ENE(NNWSW(S|N)|SS(S|W))|W))|WSWWSSEE(NWES|)SESWW(WN(E|WNW(S|NENWWWSE(WNEEESNWWWSE|)))|SEEEESW(W|S)))))|SSSSSWSSWSESE(SSSWNNWWSESWWWS(WNNNENWNNNESSES(SSWENN|)E(E|NNWNNENWNEN(WWSWSS(ENSW|)WNNNWWSSE(SSWSWWWNENWWWSSWSESEESESENESSS(ENNE(SS|NWNWWN(EEE(N(W|N)|S)|W(WWNNSSEE|)S))|WNWWS(E|WNN(NWSWNWN(WSSWSES(WWWWNEENNENWNNWSWWNNE(NNWWWNENENNNWSWWWNEENNWNENNNNEEESSEEESEENNW(NENNWWS(E|WNWN(EENESEESE(N|EESESSSESWWSEESWWSESSWNWWSESESESS(WWN(WSWNNWWNWNWWSSS(W(NNNNEEENNEN(WWSSWWNENN(WWW(NNESNWSS|)SE(SSWNSENN|)E|E)|ESSWSSEE(S(ESEWNW|)W|N(NNNEE(SWSEWNEN|)NNNN(ESSNNW|)NWWSSE(SSWNSENN|)N|W)))|W)|SSEENWNE(NWNSES|)ESSE(ESWWSW(NWW|SEEN)|NN))|E)|E(S(E|S)|NNN(W|NNESSEENE(NWNW(NNW(SSWENN|)NEESES(S|W|EENWN(E|NW(WNWSWNWNN(SSESENSWNWNN|)|S)))|SS)|ES(WSNE|)E)))))|WWNENWNNWWNNENNNNWNENESSEENEE(SSW(N|WWWSEESWS(EEESEN(EESWENWW|)NN(NNES|WWSE)|SW(W|NN)))|NWWW(S|NEENNENE(NNNWSSWNWSS(SWS(WNWNEENNW(WS(E|WSSWNW(NNE(S|E)|SSESWWNW(NENSWS|)SWWSWSSWSESWSSESSSESSSSESSEENWNNNEESENNN(EESWSSE(SWS(WSSSSWNN(NNN(WNSE|)E|WSSSSWWSESWSWWNWNENNNES(EENWNENWWSWNNWSSWSESSWNWNWWNEENWNNNNESSSE(S|NNEE(NWWNEENWNWWWNEEN(ESNW|)NWSWWWWNEENE(S|EENWNWNNWSWSS(E(E|N)|WNNW(SWSSSSE(NN(EE|N)|SESWWSSWNNWWWNWNN(EEENWN(WSWNSENE|)EE(NWES|)SSSWW(SEEEWWWN|)W|WSWSWWWNWSWSEEEEESSSENNE(NWNSES|)SSSSSWNNWSSWNNWSWWSSSWWWWSESWSESEEEENWWNW(NEESEENWNEESSSEESWSEESESESEENWNEEENNNENE(NWNWSWWSSWWNWSS(EEEE(NNEWSS|)SWWW(W|S)|WNNNWNN(W(WWWNE|SSSE)|ESENENNENN(ESSSWSS(ENE(ENESE(ENWNNWSWW(NNE(EENWN(WSNE|)ENE(NWES|)SES(WSSS|ENE)|S)|S)|S)|S)|WS(ESNW|)W)|NWN(WSSS(ENSW|)SS|E))))|SENESSSEN(ESSWWWNWSW(NNEEWWSS|)SWWSESESWSESENENWNN(NEESS(WNSE|)EESSEEEENWWWNNEN(W(WSWNSENE|)N|ESS(ENEESWSESWSEESWWWWN(E|WSWSWWNEN(E|WW(NNESNWSS|)WSSSSEESENN(WWNNSSEE|)ESSENNNESSENEN(ESESENEE(SSW(N|WSS(EEEN(WW|NEENNWSWN(SENESSNNWSWN|))|WWWWNN(ENESESWW(EENWNWESESWW|)|WSSWNWSWNWSWWWWWWWNENENESS(W|EN(ESENSWNW|)NNNWWWWSWNWSWWNENEENEE(NWWNN(ESENSWNW|)WSSSWWWNNESENNWWNE(NWNWWSWWNWWWWSSWWSWWWNNESENEENWNE(EEEEEE(ENWNSESW|)S|NWNNWWSESWSWWS(EEENSWWW|)WSSWSWSSESWSESESWWWSSWWNWWNNWSSSWWNNNE(SS|NWNENENNWWS(E|WS(E|SWWWWSSSESWSSES(ENN(ENWNENN(WSWNSENE|)ESSSSSEEES(WWWWNSEEEE|)EEEN(WWNEWSEE|)EEEES(EENENNW(SW(S|WN(WSNE|)E)|NEESSSS(W|ENESEEENEENWWNWNNEENWNEENNWNNW(NEESSENESSSW(SSWSEEESSEE(SEEN(W|ESE(EN(ENEEWWSW|)W|SSWNWSWWN(E|WSWNN(E|WW(SS(ENSW|)WW|NN(ESNW|)WW(SEWN|)W)))))|NWNN(E(E|S)|WN(WSNE|)ENNW(NNE(N|S)|S)))|N)|SSS(WSSWSWNWS(WWNENEENWWN(EEE(ENWESW|)SS|WSSWS(WNNN(W|NE(SS|NN))|S))|SEESWWSEESEN(SWNWWNSEESEN|))|E))))|WWW)|W)|WWWNENNNWWSS(ENSW|)WWNNWSSWSES(WWWWNENE(S|NWWSWSSWNWSWNNWSWNWNEENWWWWWSESSS(WNWWW(SEEWWN|)NNNENWNEENNNENNWNNWSW(SSSE(SSWNSENN|)N(E|N)|NNENNW(S|NENESSSSENENENNNWSW(S(S|E)|NWNWNW(NNNEESWSEES(W|ES(EEEEESWWWSESEEN(W|ESSSWWWSWW(SSESSENEENNW(W(SEWN|)W|NEESSSEESSSWSEESENEESWSE(S(S|WWWN(WSSWNNN(WWNWNEE(S|NENWWWS(E|WWSESSWS(EE(N|ESSE(SEWN|)NN)|WWNEN(E|WW(SSWSSS(WNSE|)E|NENE(NWN(E|NN(WSNE|)N)|S))))))|E)|E))|EEE(SS|ENWNENNNEEESWS(EENENWNEENNWWWNWNNNNNNWNENESSESENNWNNENNWWS(WWS(W(NNENN(WSWENE|)EES(WSNE|)ENESEESWSSS(SSSSSSESWWNWW(SESEEEENNESSSSENNNNNNNESENEEENENNNNNWWNWWSESWSSWWNNWSSWNW(SSEEES(WWWSSEE(SWW|NW)|ENEEE(SWWEEN|)ENWN(WS|ENW))|NENNNEESS(WNSE|)E(SS|NNENNEEEESWS(WWNEWSEE|)SEESESSSSW(NNN|SSWSSWWSWSWNW(NEENEE|SSESWSS(SSEESESSE(NNNWNNNW(NEN(NESESE(NNE(EENWNENENNNNNENWWNW(NEENWWW(W(NNNNNEENE(SSWWSSSEENN(WSNE|)ESES(W|SEEEE(SWSEESWWSEE(EENNW(N(EESE(SWEN|)N|W)|S)|SSWWWN(EE|NNNW(SSSSW(SE(SWSEWNEN|)EEEE|N)|N(WSWENE|)E)))|NWNW(SWNSEN|)NEENEE(NWES|)S(WSWENE|)EEE(SWEN|)E))|E(NWNNWNWWWWWWNNNESSENNEEE(SSWWNE|NWNNWSSWNNNENENEENNE(ENNWSWWWNNNWSWWNENEENN(WWNWNWSSES(WS(SWSSSEEEN(WWNSEE|)ESSS(ENESNWSW|)SWSWWNENENWWWWNWSWSWNNENEENNNWNW(NEN(W|EE(SWSES|NW))|SSWWWW(NENWESWS|)WSSWWSESSWWSSWSWNWN(WWSSE(N|ESESWSSSWNNNW(NEWS|)SSW(SESESS(ENNESENNWNEENEENWNEESESESEESENNEEE(SWSSW(WSWSWWSSESSEEESWSEE(NNESENNESSES(ENNWNNNN(EESWSEE(ENWN|SWW)|WSWS(WNN(E|N(WSSSS(WWNW(N(EE(S|N(N|W))|W)|S)|E)|NN))|E))|WWW)|SWWWNNWWNWSS(WWNENWW(NW(SWNWESEN|)NNNNEESSW(SEES(E(NNWNENENWN(EES(S|E)|WN(E|WWSS(WNSE|)E(ESNW|)N|N))|E)|W)|N)|S)|ESWSESEN(NN|EEEE)))|NN)|EENNWSWNWWS(E|WWNNNEEENN(WSWWWSWWWN(NENN(WSNE|)NNESE(SWSS(EN|SW)|EN(EENSWW|)W)|WWSES(WWSWS(SWEN|)E|EEEESS(SE|WNW)))|E(SSS(WWWSNEEE|)EE|E))))|WWN(NWWS(WNWSWWNNE(S|NEN(NNWSWNWSSE(E|S)|ESEESWWW(EEENWWEESWWW|)))|SE(SES(SSENSWNN|)W|N))|E))|N))|NESENNNE(SEWN|)NWW(W|NEEEEN)))|E)|EE)|EESE(NN|EE(E|SWSWWN(E|W(N|SSSENEEE(SSENEWSWNN|)N)))))|SSSWWS(ESWSEE(SWSEWNEN|)NEN(W|N)|W)))|EE))|W)|S)|SSESWSSS(ENNSSW|)W(S(SW(N|S(W(S|W)|E))|E)|N))|S)|SWSW(NN|S))|W)|SW(SEWN|)N)|S(WS(WNNW(SS|WN(NESE|WS))|S)|E))|WWWW(SWSSW|NENW))))))|NEENWWN(SEESWWEENWWN|))|W)|WSE(SSWNWSWNW(N|WSWSEE(N|SSWNWSSSESESSSENNNNWN(EENNN(WSSNNE|)ESESE(NNWESS|)SSWNW(N|SWSSEESES(EN(NWNWWEESES|)E(EE|S)|WWW(NEWS|)SESWS(E|SSWNNNWSWWWNENNW(S|NWNEE(NWWNW(SSS|NNESE(NNWNNE(S|N(WWSS(WNNWWWNEENNWSWWWW(SESENSWNWN|)WNENNWSWWNEN(EEESESWSEENNN(ESES(E(NNWNSESS|)SSES(ENSW|)W|W)|W)|NNWW(NEWS|)SESWSS)|S)|E))|S))|SE(N|SS(EE|S)))))))|W)))|E))|EE)|E)|SW(SESWENWN|)NN))))|NEN(EEE|N)))|W))|SS(S|E)))))|EE(NWNNSSES|)EE))|EEENWW))))))|E)|ES(WW|EE))))))|NWW(W|NNESENN(E|WWWNNNE(EN(E|WWWW(NENNE(E|NN)|W))|SS))))|W)))|W))|W)|N))|S)))|NENN(WSNE|)ES(ENEES(W|ENE(SSWS(WNSE|)S|EN(EE|N)))|S))))|S(ESNW|)W))|SSS))|EEE(NWES|)ESEESWW(EENWWNSEESWW|))|N)|WWS(WNW(NENWNNEEESSS(WNNWESSE|)ENNNNWWNNWNEESE(NN(ENNESE|WWWWSSW(N|SS(EENWESWW|)S(SSS|W)))|S(ESSNNW|)W)|SSS)|E))))|NNNEEEES(WSWNWS|EESS(EEEEE(SEWN|)NWNEN(WN(NW(SSSWW(SEEWWN|)NWN(W(S|W)|EE(NWES|)S)|N)|E)|E)|S)))|E)|E)|S)))))|S)|S)|EN(EESWENWW|)N)|E)|E)))|N)|ESE(SWSSWENNEN|)N))|EEEEE)|NNN))|NNWW(SEWN|)W)))))))))|S))|EE))))))))|W)))|W))|N)|NNNNWNN(ESNW|)WWS(ES(SSENSWNN|)W|WWWSWSW(SEENSWWN|)WNWNWSS(E|WNWNN(E(S|EEEES(ENEEEWWWSW|)(S|W))|WS(WNWW(S(SS|E)|WWWSWWSESSWNW(S|NNW(S|WN(WSWSWSW(SESNWN|)NW(S|NN(ESENEWSWNW|)W)|EEEE))))|S))|S))))|SS)|S)|WW))|W)|WWSWNWSSSWWNNN(ESSNNW|)WWSESSWWN(NNWSWWSEESSSEEEN(WW|ESS(WWWWSSESENN(ESSSWWSWNNWSSWNWWNNENENWNNN(ESE(S(W|SSSWSW)|N)|NWNWWSWNN(EEEE(EE|S)|WWWWSWNWSSWSEEEN(W|ENESE(SWWSSEEN(W|EESSSWWSESWWNWSWSWSESENESEENESSENESEN(NWWNW(NNE(NNE(S|NNNW(N|SS|WW))|S)|WW(WW|S))|EEESE(S(E|WWNWSSESWWSWNNENWWWWWWN(EE|WWSWNNWWSWSWNWNNWNEENNENNEENN(WSWNWNWSSWSWWNWNEE(S|ENNNN(WWSSS(ENNSSW|)WNWNWN(EESNWW|)WSWSEESWWWSWSWNNWSWNW(WWNNESEEEEE(ENN(E|WSWWN(WSWNWWWSS(NNEEESNWWWSS|)|E))|S)|SSEESSENESS(EENENEE(ESESES(ENN(W|E(SS|EN(W|N)))|SSWNW(SSSEEN(ESSSE(N|SENEEE(ESSSWSW(SEESW(W|SEEENNNW(NEENNN(EEEESSSSESWWWWSSSE(EEEEE(SEWN|)NNNNW(N(W|ENEE(SWSE|ENNWS))|SSWS(WWN(WSNE|)E|E))|SWW(N(WWSEWNEE|)NNNNENESENNWWNEE(WWSEESNWWNEE|)|SS))|W(WSSENSWNNE|)N)|SS|W))|WNENN(ESNW|)WSWWWW(S(ESENES|W)|N(NNWESS|)E))|N(W|N)))|W)|N(NWSWW(NENEWSWS|)WW|E)))|NWN(ENSW|)WWS(WS(S|E)|E))|WWSWWSSW(S(ESENNENW(ESWSSWENNENW|)|W)|N)))|EEES(ENSW|)S(WNWSNESE|)S))|EESWSSWWSSE(EN(ENEN(E(EENSWW|)S|W)|W)|SSWW(WSEWNE|)N(N|E)))))|N)))|N))))|W)|EESEENNEE(SWSEWNEN|)NNEE(SWEN|)NWWW(N|WWSES(ENSW|)WWWSEES(NWWNEEWWSEES|))))|E)))))))|S))|N))|N)))|N))|NN))|W))|SE(SWSEWNEN|)E)|W)))|NN(E|NW(W|SS)))|N)))|NN)|NN))|E))|W)))))))|W)))))|S)|WWS(E|SWNWN(WWSESESESSWS(WWNEN(WN(E|N)|E)|ES(W|S(EEN(EE(SWSNEN|)E|W)|S)))|E)))|SSW(WSEEWWNE|)N)|SSEE(NWES|)SWWSES)|SS))|EN(WN|ESE))|NN(EESWENWW|)N)|N))|N)))|EEENWNEESS(NNWWSEWNEESS|)))|S)|NNWNWWSS(E(E|N)|WWWWW(N(EENN(N|ESE(NEN|SW))|WWWNWWNNW(SWSES(EE|WSWW(SEWN|)N(ENW|WS))|NNESE(SSEWNN|)N))|S))))|N)|E)))))|S)))))|NWWNW(SWWEEN|)NENNNE)|EEEN(WW|E))))|N)|EE)|S))))|ESSEE(SWEN|)NN(WS|ES))|E|N))|S))))|W)|SWSESSWNWWSWSWS(WW(S|WWWNEEEENWNNEES(S|W|EN(EE|NWNWSW(W(SSSWWEENNN|)W|N))))|EEEEE(SSS|N(WW(W|N)|E))))|E)|E)|E)$ diff --git a/2018/inputs/21.txt b/2018/inputs/21.txt deleted file mode 100644 index aaebbac..0000000 --- a/2018/inputs/21.txt +++ /dev/null @@ -1,32 +0,0 @@ -#ip 2 -seti 123 0 4 -bani 4 456 4 -eqri 4 72 4 -addr 4 2 2 -seti 0 0 2 -seti 0 1 4 -bori 4 65536 1 -seti 16031208 7 4 -bani 1 255 3 -addr 4 3 4 -bani 4 16777215 4 -muli 4 65899 4 -bani 4 16777215 4 -gtir 256 1 3 -addr 3 2 2 -addi 2 1 2 -seti 27 3 2 -seti 0 9 3 -addi 3 1 5 -muli 5 256 5 -gtrr 5 1 5 -addr 5 2 2 -addi 2 1 2 -seti 25 7 2 -addi 3 1 3 -seti 17 4 2 -setr 3 1 1 -seti 7 5 2 -eqrr 4 0 3 -addr 3 2 2 -seti 5 1 2 diff --git a/2018/inputs/22.txt b/2018/inputs/22.txt deleted file mode 100644 index e2e94a0..0000000 --- a/2018/inputs/22.txt +++ /dev/null @@ -1,2 +0,0 @@ -depth: 7863 -target: 14,760 diff --git a/2018/inputs/23.txt b/2018/inputs/23.txt deleted file mode 100644 index 306c4ad..0000000 --- a/2018/inputs/23.txt +++ /dev/null @@ -1,1000 +0,0 @@ -pos=<61981295,70302690,50074583>, r=86817788 -pos=<-39574082,11593440,52034024>, r=86226353 -pos=<-22613800,41560771,22762338>, r=83067593 -pos=<-12414843,51978293,68300191>, r=85018769 -pos=<-12727191,34870716,52975971>, r=52899633 -pos=<-32063168,40924402,49558575>, r=74871596 -pos=<18752046,16372097,-9651854>, r=70068867 -pos=<3474631,29804741,98417262>, r=77072884 -pos=<18354169,57026789,74027645>, r=65025959 -pos=<22104105,74882695,61927007>, r=67031041 -pos=<-42133805,38530007,57591711>, r=90581205 -pos=<-47869746,22599340,42855147>, r=77956291 -pos=<-27020782,-4791281,34203354>, r=93149809 -pos=<-18487970,40655084,49627122>, r=61095611 -pos=<10137288,54171533,97007570>, r=93367254 -pos=<21836035,43430190,47217893>, r=78376026 -pos=<8216569,21003453,101684850>, r=78676489 -pos=<-40466865,34952266,70038151>, r=97782720 -pos=<72670731,-8427298,58419388>, r=97862747 -pos=<-26904810,19437248,39548346>, r=63460381 -pos=<-14862223,38537164,6158587>, r=88895667 -pos=<-4093645,28809183,65079634>, r=50307904 -pos=<-13276886,43613687,45971502>, r=55187766 -pos=<49089034,29003918,14560017>, r=57321614 -pos=<-13807521,-29104885,50131321>, r=99255387 -pos=<48476757,37188242,72540714>, r=62665037 -pos=<7140081,51751715,-8561127>, r=94827577 -pos=<-43249072,32737116,53752441>, r=82064216 -pos=<6641528,98591490,47271959>, r=91547386 -pos=<-23305462,10475650,56073326>, r=75115096 -pos=<6053316,21990329,84119652>, r=62287689 -pos=<7023331,60698763,57949984>, r=63950985 -pos=<-36608889,31399128,35446137>, r=74217136 -pos=<6817093,34966536,98116734>, r=78591704 -pos=<4957605,61740316,52702032>, r=61810336 -pos=<-2269508,-8851147,43341014>, r=63321024 -pos=<12839874,52090204,58609561>, r=50185956 -pos=<-24117273,33915884,49793440>, r=60152075 -pos=<74759590,28034712,42456610>, r=54126256 -pos=<-48197949,37668470,48713802>, r=86905688 -pos=<-465248,41562365,60498029>, r=54851108 -pos=<10694430,32208520,48027772>, r=61692668 -pos=<-8548512,14246214,83247198>, r=83761331 -pos=<43950964,33755026,90173201>, r=72338199 -pos=<-14628694,43441676,58236468>, r=68632319 -pos=<106381567,34503222,46141825>, r=91485627 -pos=<-42403687,53189612,46049581>, r=93968393 -pos=<3940021,35797440,82233626>, r=66416478 -pos=<-12215361,4082478,43661351>, r=60012674 -pos=<19860123,68466722,60165468>, r=61097501 -pos=<70777186,32758921,32118468>, r=65206073 -pos=<-38591125,46522298,54596946>, r=92035892 -pos=<22636563,105345403,45688673>, r=80723037 -pos=<-3951303,29434316,22353040>, r=52688125 -pos=<-176419819,31194464,52039201>, r=76587195 -pos=<-3596358,48726226,78390625>, r=83038642 -pos=<7182613,37282188,20126279>, r=51628082 -pos=<-25240363,51483969,55323702>, r=84373768 -pos=<21428319,64401806,57994375>, r=53293330 -pos=<-5939048,7790261,21935573>, r=71754303 -pos=<-14391272,30291007,70042112>, r=67049881 -pos=<-22323827,29920141,55916312>, r=60485891 -pos=<13475129,52193445,63897921>, r=54942071 -pos=<-3994272,15505795,89454649>, r=84155011 -pos=<475865,1537450,69193888>, r=73392255 -pos=<-10815135,44879964,69035166>, r=77056155 -pos=<11306358,28884419,64442081>, r=91273574 -pos=<14678811,33694651,48185622>, r=71901550 -pos=<3756099,71276526,21743645>, r=87431573 -pos=<40262582,59466852,61256380>, r=65445301 -pos=<11616060,70966185,64722364>, r=76397938 -pos=<3872060,39650278,107716165>, r=95819913 -pos=<9586133,45083261,78735554>, r=66558242 -pos=<77865670,42917012,73695024>, r=98936729 -pos=<-1745961,55327607,42088395>, r=56640112 -pos=<26855240,67981174,26878283>, r=61746856 -pos=<-14224458,28877026,31495228>, r=53261041 -pos=<15850501,66941649,70246547>, r=73663230 -pos=<-22483771,25856673,49504583>, r=52343508 -pos=<9442908,53159770,55875115>, r=51917541 -pos=<1959101,903989,50510107>, r=53859027 -pos=<7569188,-24881655,45995388>, r=69519533 -pos=<1336123,50534199,50773018>, r=52296589 -pos=<-6780305,30188574,97998637>, r=87293233 -pos=<-27347231,32710526,48539527>, r=60922750 -pos=<-54109318,45563567,46755290>, r=98753653 -pos=<-23931716,34591305,51177382>, r=62025865 -pos=<1842700,54313361,57870403>, r=62666497 -pos=<9906862,47176518,46588813>, r=49926624 -pos=<-5650338,36212767,99081721>, r=93270578 -pos=<-9210222,73861103,51071528>, r=86469031 -pos=<-48605170,28058111,39410284>, r=78908074 -pos=<6277738,31698726,83207681>, r=60954109 -pos=<5935953,25376812,52194560>, r=66482724 -pos=<-33349449,32090950,46515684>, r=64281651 -pos=<-1144497,68829923,72349587>, r=94649606 -pos=<68150356,106204720,129297951>, r=83514523 -pos=<8426203,98908672,49758875>, r=92566786 -pos=<16538168,48418035,65737293>, r=49942650 -pos=<19573131,82515397,58801909>, r=74069662 -pos=<98906639,46422007,45986912>, r=95774562 -pos=<12340098,62609442,59505078>, r=62099865 -pos=<-28251146,31055125,25461712>, r=75499853 -pos=<19758085,59632651,60443124>, r=52643379 -pos=<-63046046,25663836,40121278>, r=92801960 -pos=<-37359413,31532323,71313730>, r=92530910 -pos=<53387378,31226416,70902974>, r=59975761 -pos=<-111343725,90010574,65438544>, r=96905196 -pos=<39565178,36023094,48981621>, r=96285986 -pos=<-18425354,35959496,54078093>, r=60788536 -pos=<4117058,66844365,17924670>, r=86457430 -pos=<4823188,-14314294,64385895>, r=80088678 -pos=<20323219,61060408,10757887>, r=71634602 -pos=<89860271,38268711,51332073>, r=83920073 -pos=<6829746,30401653,100430131>, r=76327501 -pos=<-18163621,73955629,42658058>, r=91116552 -pos=<-9868198,28983545,82688052>, r=73865474 -pos=<-3955635,32776886,7789254>, r=70598099 -pos=<22115720,88382733,50485824>, r=69078561 -pos=<-25241164,31938266,56917737>, r=66422608 -pos=<14985873,-15753032,55823238>, r=62802267 -pos=<16643466,61628684,29386869>, r=57253552 -pos=<21580242,42328478,123256438>, r=96330398 -pos=<-25199672,13587085,61865724>, r=79689986 -pos=<25598120,-21677261,57401363>, r=63021973 -pos=<20683805,43416073,80207144>, r=55264851 -pos=<-12206963,28525784,76317729>, r=69375956 -pos=<66517337,40023722,63765750>, r=74765959 -pos=<21046583,32632182,66997632>, r=92540759 -pos=<-13138431,65411819,48286547>, r=79162230 -pos=<-33524737,76477821,155964131>, r=73103463 -pos=<-33331228,9961241,69359006>, r=98940886 -pos=<39564979,28572472,53811503>, r=61407169 -pos=<-48869811,21665479,51245298>, r=84661484 -pos=<-8710194,53780076,47547665>, r=62363657 -pos=<-7314943,55087956,46146524>, r=60875047 -pos=<-61837954,25859003,56641091>, r=98831768 -pos=<-5695240,58983811,70577156>, r=87581649 -pos=<-25981379,35101300,31842886>, r=70894580 -pos=<3669996,59130810,1907555>, r=95208068 -pos=<34776272,-4188188,70499131>, r=67808809 -pos=<-35530241,30475154,50076449>, r=68407314 -pos=<-8155622,43149031,72681791>, r=76311918 -pos=<6666752,64359993,46401448>, r=56420132 -pos=<14935236,11018971,47709423>, r=95072999 -pos=<-31457362,28416643,49636691>, r=61836519 -pos=<-16109927,48371152,51014763>, r=67821289 -pos=<42694611,33011663,86560963>, r=66726260 -pos=<10684191,49511278,21069239>, r=59412987 -pos=<-423180,40569321,15553431>, r=67093941 -pos=<-32350990,31916431,66781337>, r=83374335 -pos=<-40417062,33333028,20729982>, r=94675000 -pos=<-5784232,29640751,62496121>, r=50246685 -pos=<-15428974,17471422,52568175>, r=56737766 -pos=<-2932788,33823267,68046768>, r=57128261 -pos=<63579456,43455645,46047101>, r=57541191 -pos=<15403015,31974701,112979009>, r=81876224 -pos=<-24087841,19769551,56050682>, r=66580826 -pos=<-11649390,82772147,39945831>, r=96130620 -pos=<20266288,41030544,49627298>, r=52471876 -pos=<15271488,104802139,55747920>, r=97604129 -pos=<-17294454,29095937,38121063>, r=49924113 -pos=<-28047432,15028531,34900811>, r=73659132 -pos=<63036558,50019938,71871561>, r=89387198 -pos=<-34801957,36642230,53036734>, r=76806612 -pos=<-38144076,30407351,68440798>, r=89317810 -pos=<3512495,54767308,49076598>, r=52656960 -pos=<14274088,34274498,46377106>, r=89548213 -pos=<39329258,25136254,46456590>, r=73770931 -pos=<-43496380,31317940,30852295>, r=85616814 -pos=<14184631,31298574,54769039>, r=52386260 -pos=<80496193,20583845,74488856>, r=92746549 -pos=<-23389071,63823214,32693625>, r=96173548 -pos=<-25690209,44737890,68493032>, r=91246752 -pos=<-27606431,29594954,78055471>, r=87582356 -pos=<72441600,37663099,5449732>, r=98443349 -pos=<64033149,70075201,56633740>, r=95201164 -pos=<-41252112,41584295,58764742>, r=93926622 -pos=<-12824950,60182885,70449830>, r=95783330 -pos=<63858499,1902299,56897189>, r=77198605 -pos=<-35302433,28371559,42263514>, r=63065421 -pos=<-50193553,13029004,178032706>, r=87155339 -pos=<-10241339,30475433,65035094>, r=58077303 -pos=<27176667,88255399,39199151>, r=70021298 -pos=<3789738,63200642,58556644>, r=70293009 -pos=<-29026962,17065408,63626804>, r=81800634 -pos=<-15528112,28599049,55171449>, r=51624044 -pos=<67553889,-12734884,46684710>, r=85318716 -pos=<-22058789,25579659,47800035>, r=50491043 -pos=<65502868,77153034,48367762>, r=95482653 -pos=<52012555,29111973,69892338>, r=55475892 -pos=<7094796,39275693,83735416>, r=68242166 -pos=<1860284,40455320,92877446>, r=83797940 -pos=<11928924,-2446863,70048662>, r=66778312 -pos=<7667696,94196419,41409153>, r=86774357 -pos=<-47571004,37469854,46817463>, r=84183789 -pos=<-4156736,84010739,52365610>, r=92858630 -pos=<6056924,12888978,84519517>, r=71785287 -pos=<-47345906,30387796,45986301>, r=76045882 -pos=<-14305750,38815805,53464135>, r=58911123 -pos=<-5509681,53176769,46879448>, r=57891332 -pos=<-12499446,35923605,56390435>, r=57139055 -pos=<-52764985,37485922,49356853>, r=91933283 -pos=<-995676,157395073,-3073485>, r=52828911 -pos=<20007537,18034710,53163539>, r=53689323 -pos=<14489164,16396768,90904833>, r=66230860 -pos=<-56656961,29846250,59765242>, r=98593988 -pos=<12580077,72518760,77049199>, r=89313340 -pos=<100504676,32770164,49001641>, r=86735485 -pos=<56363428,40982042,51325603>, r=53130348 -pos=<67579027,45292106,26873551>, r=79786057 -pos=<26991023,51464352,68172728>, r=51087111 -pos=<-2477721,38040811,90549029>, r=83393046 -pos=<39812282,49420172,27946843>, r=55074069 -pos=<-7592987,58715561,48320434>, r=66954427 -pos=<7777052,28459937,51985707>, r=53419415 -pos=<-34825568,30793001,25736210>, r=81537269 -pos=<-24303136,54965408,48394944>, r=79988927 -pos=<-23117889,8738217,68644161>, r=89235517 -pos=<-25024083,8306905,47947646>, r=70876621 -pos=<2007442,56985136,59636415>, r=66939562 -pos=<-13687550,71578246,57121637>, r=94712935 -pos=<-16345760,32983233,89061217>, r=90715694 -pos=<86368374,35824210,61445425>, r=88097056 -pos=<-35743614,53334234,57645839>, r=99049305 -pos=<-15191744,62377081,28606960>, r=90616727 -pos=<15180924,74088799,62177344>, r=73410680 -pos=<87747671,31399471,31905651>, r=81030076 -pos=<490300,35168974,87629502>, r=74633619 -pos=<-7639730,47107985,53037366>, r=60110529 -pos=<-15154000,47565888,46724248>, r=61769578 -pos=<-15930553,8949295,49890450>, r=63083820 -pos=<-2085646,59550216,190147611>, r=69262241 -pos=<7225777,50890764,62861738>, r=58852281 -pos=<90275849,20142660,46920592>, r=75399045 -pos=<-26764544,42182428,46746825>, r=68019674 -pos=<76321467,29233298,55996378>, r=66010239 -pos=<-72399950,54572749,137176788>, r=75623903 -pos=<20511710,69381130,54777605>, r=55972482 -pos=<11171812,-1838585,60251989>, r=57130513 -pos=<-15322219,34977106,95397324>, r=98022178 -pos=<45186029,75515109,54316351>, r=79476635 -pos=<-33243023,32685580,54621141>, r=72875433 -pos=<-61584462,35077699,48778369>, r=97765970 -pos=<-2080973,32701858,77315532>, r=64423903 -pos=<-28378799,39591108,22227847>, r=87396852 -pos=<-8099746,62641467,55946146>, r=79012806 -pos=<-24720179,45274695,48132554>, r=70452861 -pos=<20784250,45013508,95099754>, r=71654519 -pos=<-30064753,33988072,46097252>, r=62475758 -pos=<34563348,30488217,55672227>, r=86287854 -pos=<-16742541,7677207,74209817>, r=89487059 -pos=<48717911,60141573,64839376>, r=78157946 -pos=<11980231,77201897,12503508>, r=94373076 -pos=<-35767666,29757894,59267775>, r=77118779 -pos=<-22126819,32362172,682297>, r=95461509 -pos=<-20183006,18654168,80542091>, r=88282618 -pos=<29158741,90530365,43109268>, r=70368234 -pos=<78589607,47357015,57145573>, r=87551217 -pos=<53822697,51713673,83991488>, r=93986944 -pos=<-37287747,28688663,72807970>, r=91110215 -pos=<13542941,37989744,51992083>, r=61754737 -pos=<14525371,30291586,55624740>, r=74352172 -pos=<65594982,25847880,72811378>, r=70903881 -pos=<85028254,32319009,59775298>, r=81581589 -pos=<-47952231,24568531,49936283>, r=79531659 -pos=<-21321958,21913518,49475661>, r=55095834 -pos=<-48453939,34233126,49830769>, r=84843339 -pos=<99391685,35202974,43142729>, r=85240537 -pos=<22710331,34170304,55092906>, r=91207796 -pos=<-12135705,32243191,63938331>, r=60642766 -pos=<-12338157,43480193,54115729>, r=62259632 -pos=<8622864,24881999,3805702>, r=58230495 -pos=<34000374,4364405,71395390>, r=59376643 -pos=<-19712623,50327429,47038637>, r=69404671 -pos=<-8596487,17062414,87164926>, r=84910663 -pos=<-18913938,45008114,51843283>, r=68090880 -pos=<19472967,181579393,106030809>, r=56142937 -pos=<-17173370,-3226764,55066991>, r=81678816 -pos=<63850431,62835473,23871657>, r=96602589 -pos=<-3798894,30299579,101412001>, r=87836232 -pos=<9068586,62089120,57368844>, r=62714847 -pos=<-22474207,29499886,47923819>, r=52223751 -pos=<-45651602,35036414,46323892>, r=79337438 -pos=<-12419250,32111741,56514558>, r=53370983 -pos=<12664542,52854651,103268523>, r=95784065 -pos=<22357114,12328694,108875611>, r=80401468 -pos=<-6746842,50055566,49180574>, r=58308458 -pos=<-27320265,33686937,48286622>, r=61619350 -pos=<-5359976,29458721,92619986>, r=79764181 -pos=<10052919,30248699,46342959>, r=64500134 -pos=<31603672,24458394,109318746>, r=74809324 -pos=<15363324,39635782,101274262>, r=77872183 -pos=<13846270,53578231,29556061>, r=51830690 -pos=<-15354477,46149883,46658194>, r=60488156 -pos=<-569362,85626876,46006904>, r=84528844 -pos=<10749296,42284246,82711135>, r=66571646 -pos=<-14856420,53289609,77345425>, r=97817094 -pos=<-23825436,15929136,64937891>, r=79045870 -pos=<89568342,30383137,46009564>, r=70420359 -pos=<13145554,32649278,85217834>, r=57047183 -pos=<554467,16643477,85598183>, r=74612189 -pos=<36666635,41828463,88364574>, r=71318747 -pos=<12602990,89529451,67821002>, r=97072935 -pos=<-33112360,18329619,59694200>, r=80688742 -pos=<-15561603,38236853,67667639>, r=73791835 -pos=<3519076,58523179,5256274>, r=91402635 -pos=<37058015,73816180,6497217>, r=98165326 -pos=<-485820,34664283,76480969>, r=63956703 -pos=<8046540,50222182,60417372>, r=54918488 -pos=<6698732,2095928,57478145>, r=54895175 -pos=<-110267625,103715108,49404770>, r=83596582 -pos=<14488717,37517183,47868787>, r=90880734 -pos=<11594929,31481958,92334208>, r=64546675 -pos=<13142664,33433973,51871828>, r=78783673 -pos=<14725843,21079396,84588725>, r=54995145 -pos=<17991922,28746415,53178977>, r=62665596 -pos=<21345476,109893878,54658351>, r=95532225 -pos=<99514509,32213492,45962288>, r=82149323 -pos=<37772543,40405568,108402968>, r=91040181 -pos=<16477866,1889108,-9755558>, r=86930037 -pos=<6066766,45074819,93307079>, r=84640752 -pos=<63259627,39790194,63298460>, r=70807277 -pos=<85870661,25697065,48142683>, r=66661876 -pos=<-20063299,13270466,81943036>, r=94947530 -pos=<9219021,14187810,110350611>, r=93155487 -pos=<11396690,79601451,29059476>, r=80800086 -pos=<-5992626,63895408,63403216>, r=85617223 -pos=<13745746,56178190,15154849>, r=68932414 -pos=<-19200598,41415603,54301128>, r=67242872 -pos=<66801369,67709049,33790327>, r=94508881 -pos=<-58054899,31429373,50412427>, r=92222250 -pos=<17725131,19747008,101361033>, r=70100661 -pos=<16315702,21937157,109577476>, r=77536345 -pos=<-21450279,31429149,47689387>, r=52894343 -pos=<16503867,46780903,71008828>, r=53611297 -pos=<-10617311,71781674,53581209>, r=88305651 -pos=<-18369624,34464166,58808640>, r=63968022 -pos=<-44338154,47516775,49329347>, r=93509756 -pos=<7546939,23561808,74615854>, r=49718921 -pos=<-23553075,43233473,30179868>, r=78262286 -pos=<-33728549,33419608,75400040>, r=94873708 -pos=<4130401,-415851,60422323>, r=62919529 -pos=<12199308,42656684,46658363>, r=62914010 -pos=<-10823045,40017720,87358982>, r=90525236 -pos=<54855928,43498518,54679995>, r=57493498 -pos=<12261573,29515175,45893575>, r=97366173 -pos=<15817533,48376146,72425161>, r=57309456 -pos=<22499943,43484899,49303866>, r=84870164 -pos=<15087449,40820405,15442472>, r=51945357 -pos=<2380830,39189079,87564730>, r=76698440 -pos=<10292232,61644825,58639264>, r=62317309 -pos=<-25063352,29824290,49726684>, r=56939825 -pos=<9247300,60592893,82851862>, r=86522910 -pos=<34974237,51631378,71206261>, r=62271044 -pos=<11115341,39008866,88216499>, r=68435471 -pos=<-47347839,33255463,54507917>, r=87436830 -pos=<-12385471,35476634,66586332>, r=66774052 -pos=<40297014,43609070,76102045>, r=64467152 -pos=<-25028316,48459326,70188306>, r=96001387 -pos=<29716238,95743100,36047260>, r=83200834 -pos=<-2195894,57161709,59974579>, r=71657615 -pos=<-34897564,36092514,37195303>, r=75449626 -pos=<-34350080,30930206,62762967>, r=80368703 -pos=<-13299160,-1305686,52546724>, r=73363335 -pos=<74203994,40071747,39943051>, r=68121068 -pos=<-30255218,53252625,55149209>, r=90982504 -pos=<-23708755,36047177,30518158>, r=70892646 -pos=<-42225041,28551593,47086408>, r=70188476 -pos=<45093813,91953991,40089158>, r=90747011 -pos=<20989497,-9578662,65146013>, r=59947021 -pos=<-9469151,9360043,19787978>, r=75862353 -pos=<-10455182,76182076,47046337>, r=86009032 -pos=<1489674,30920418,49075947>, r=50871653 -pos=<-1805815,40895592,59548754>, r=54575822 -pos=<22434664,50411195,76723826>, r=57025799 -pos=<1351173,-35240030,57415985>, r=97516622 -pos=<-32995557,45695405,31582059>, r=88763841 -pos=<96147879,48598772,48672050>, r=97877850 -pos=<71556712,165083816,80525352>, r=61212474 -pos=<-26738516,51821211,51973287>, r=82858872 -pos=<-45126452,24625563,45768892>, r=72481504 -pos=<-1724534,91435747,47738636>, r=93224354 -pos=<-42642617,17009143,50075464>, r=81920769 -pos=<52222152,55156460,54199932>, r=66037534 -pos=<8639285,85433958,47459393>, r=76579513 -pos=<10141717,61817092,48597374>, r=52598556 -pos=<47916267,47143215,50290112>, r=49808644 -pos=<-1999143,50275699,76700962>, r=81301257 -pos=<-41681257,20679616,56340422>, r=83553725 -pos=<35884408,41646080,79776061>, r=61765620 -pos=<4301038,52856724,21630776>, r=68579717 -pos=<-40960612,30439627,37255922>, r=75799466 -pos=<35444048,43762938,84706440>, r=68372926 -pos=<79975658,29137911,50197120>, r=63769730 -pos=<93007,44307904,61961116>, r=58501565 -pos=<-32671755,39076539,66101849>, r=90175907 -pos=<-19991034,51969552,46041742>, r=70328104 -pos=<-35314188,37602800,46861313>, r=72103772 -pos=<37201145,71666894,82972323>, r=96299533 -pos=<-49234235,28079826,57132180>, r=86771712 -pos=<8312877,40022919,72604965>, r=56640475 -pos=<39181205,52790049,92153926>, r=88584204 -pos=<7068698,47606987,62510305>, r=55374127 -pos=<30603349,56814294,106942634>, r=98819430 -pos=<16115552,28332758,35601360>, r=54887656 -pos=<10074393,95989908,47950308>, r=86191298 -pos=<-5591354,49710053,47446079>, r=55073040 -pos=<-16059874,70092354,52417407>, r=90895487 -pos=<-3286599,20110685,83441267>, r=72828890 -pos=<-6936335,22574502,22140566>, r=57762340 -pos=<32992478,36116750,76761537>, r=50329801 -pos=<-89483882,3641127,125934475>, r=84985845 -pos=<45083402,48971622,84039680>, r=82553733 -pos=<16543763,-12232511,59927146>, r=61828172 -pos=<-128930120,71482570,52773218>, r=59057806 -pos=<-3321066,36249470,10553454>, r=70672189 -pos=<11035114,-4452527,60224262>, r=59853336 -pos=<-26291008,49849603,66835908>, r=95302073 -pos=<7937807,81400916,47819246>, r=73607886 -pos=<16576233,48187487,42040402>, r=56973312 -pos=<4344158,75290424,35788694>, r=76812485 -pos=<32189900,-55403075,49857150>, r=95795351 -pos=<17696418,36185949,87820170>, r=58635317 -pos=<777488,12020182,61326632>, r=54740630 -pos=<33863194,35023084,109647702>, r=82992971 -pos=<27201238,50703815,113905343>, r=96269385 -pos=<13342983,51362786,14113529>, r=65561106 -pos=<-3406344,1514525,71500197>, r=79603699 -pos=<-4003952,88211664,52599168>, r=97140440 -pos=<7364870,66805533,30929588>, r=70166122 -pos=<4337235,69741240,49137686>, r=66867686 -pos=<39289283,41543331,80086140>, r=65377837 -pos=<31061019,37187231,96617615>, r=69325024 -pos=<12227872,90873558,49623164>, r=80594302 -pos=<-29205869,34879980,48574906>, r=64986227 -pos=<-23428908,25034353,70988758>, r=75595080 -pos=<31236415,75651801,72043812>, r=83391270 -pos=<-35663336,33550704,50545521>, r=72085007 -pos=<-25373194,33271630,48939058>, r=59909386 -pos=<81186014,21770112,48774152>, r=66535373 -pos=<-36266473,21205391,64408172>, r=85681063 -pos=<46509791,41930052,-8736829>, r=90965014 -pos=<-22028107,15234691,51487555>, r=64492638 -pos=<-20542339,31539802,48757530>, r=53165383 -pos=<13662571,56928981,15523678>, r=69397563 -pos=<-12746344,18867316,85938166>, r=86028894 -pos=<-301007,47558794,60352290>, r=60537813 -pos=<32207624,60299805,78729522>, r=75695968 -pos=<100081770,31328053,46754080>, r=82623316 -pos=<-48070787,30652729,47098499>, r=78147703 -pos=<3499835,47702960,54008261>, r=50536940 -pos=<-30212070,27990135,63986849>, r=74514607 -pos=<-15832151,28224015,56445561>, r=52827166 -pos=<-67978767,28737500,46365512>, r=95407212 -pos=<-30015019,22627881,66498575>, r=80097431 -pos=<-3376964,87518399,46889764>, r=90110663 -pos=<-12133745,41888151,15297059>, r=80379652 -pos=<-3430750,43859378,-4475364>, r=93420295 -pos=<10612582,58698878,71450281>, r=71862044 -pos=<-16853417,30239412,55512427>, r=54930714 -pos=<9856655,-15034177,76105296>, r=87495006 -pos=<19700487,14896792,94233323>, r=65848189 -pos=<90908533,40366432,47407308>, r=83141710 -pos=<53053613,45815347,47231085>, r=50559042 -pos=<91606120,30241005,62870344>, r=89176478 -pos=<6549177,28253488,45947118>, r=89716871 -pos=<-54966251,31984766,51327953>, r=90604410 -pos=<11739879,47302011,70593259>, r=58480946 -pos=<17782015,-43385757,45900297>, r=77715722 -pos=<-22321136,33175591,26785779>, r=70365922 -pos=<7447288,64317364,46803776>, r=55999602 -pos=<7212096,101522192,49782085>, r=96417911 -pos=<9756698,57513943,50726200>, r=50809212 -pos=<53938302,42703477,85380074>, r=86480889 -pos=<6127018,32634301,81765609>, r=60598446 -pos=<16024259,75089269,42148970>, r=58570841 -pos=<-14467950,30833664,53148474>, r=50775521 -pos=<1055620,-8213227,49647151>, r=63016576 -pos=<20109959,34289334,98011242>, r=64516119 -pos=<-51406886,30261849,39781808>, r=83541835 -pos=<21609187,48166640,103039225>, r=81922186 -pos=<-37318020,42076555,46223326>, r=77943551 -pos=<-9802864,50149053,57309602>, r=69587023 -pos=<8892924,30956296,4508427>, r=59209772 -pos=<17951962,38815438,50096954>, r=68485096 -pos=<12306030,97501425,46533603>, r=84054466 -pos=<-37463875,31083117,49553934>, r=70426366 -pos=<92230728,52683980,47015111>, r=96388808 -pos=<9364608,56647782,54993450>, r=54602057 -pos=<8684942,36838535,105538060>, r=86017275 -pos=<-35827611,42789189,57956518>, r=88898907 -pos=<5807845,31720781,7757680>, r=59810369 -pos=<-25365859,48253374,51239130>, r=77183993 -pos=<-13706311,23188045,2328735>, r=83730603 -pos=<-1053434,40958215,58697392>, r=53034540 -pos=<16686564,43884661,76779893>, r=56303739 -pos=<94046858,44171067,48044994>, r=90722205 -pos=<-59177933,25088148,47504944>, r=87806389 -pos=<-18654288,54793837,56331529>, r=82105172 -pos=<113519092,134203172,41554166>, r=95154840 -pos=<9436438,34715386,46078979>, r=73810378 -pos=<49732913,61362619,75247356>, r=90801939 -pos=<-54495041,22320842,50939618>, r=89325794 -pos=<12427539,17900057,11259909>, r=53954136 -pos=<16888421,45562882,95425764>, r=76425888 -pos=<-13394846,17877372,48322242>, r=50051600 -pos=<-20925432,28703245,52084455>, r=54038872 -pos=<8561924,38380609,101695915>, r=83840427 -pos=<76633366,35686884,48280680>, r=65060182 -pos=<15355031,32838431,53406732>, r=83822095 -pos=<-22241568,21612015,21308708>, r=74861862 -pos=<-45540364,39478825,56854957>, r=94199599 -pos=<-130761639,-7225545,18556230>, r=71625415 -pos=<12371981,60358241,50483820>, r=50795545 -pos=<-52881118,38556375,50525246>, r=94288177 -pos=<-5508845,44982595,39309821>, r=52836406 -pos=<-12223578,42705080,48054452>, r=55308618 -pos=<19782229,-391087,65138940>, r=51959480 -pos=<11688897,65712575,56641017>, r=62990663 -pos=<26728983,4877916,77607591>, r=57803924 -pos=<-66749809,31885857,41453884>, r=98836603 -pos=<12947494,40474371,72186292>, r=52038612 -pos=<22710949,73206326,90156950>, r=92977765 -pos=<21418285,58754538,74497516>, r=64159328 -pos=<-14006029,39388620,45791459>, r=51511854 -pos=<32331392,-9548718,53912995>, r=54138363 -pos=<-11103143,48665873,60597818>, r=72692378 -pos=<8404016,40264319,-15387292>, r=88902405 -pos=<-60697351,19761606,51535474>, r=98682907 -pos=<113332017,31654847,49314512>, r=98760760 -pos=<-17968649,23774520,26514627>, r=63220547 -pos=<-7891448,38548696,51246202>, r=50011819 -pos=<-36243928,28580831,31232834>, r=75246710 -pos=<2236746,78152395,33336820>, r=84233689 -pos=<-42646767,27988371,50996303>, r=73957310 -pos=<-12975938,19343337,62716304>, r=62560618 -pos=<-6698310,59281250,50138827>, r=68443906 -pos=<-29169469,6610144,55165008>, r=83936144 -pos=<-859099,48228088,68790664>, r=70203324 -pos=<-53259426,43091307,49454062>, r=98130240 -pos=<40051035,15273208,52961854>, r=55405641 -pos=<8599969,22173989,57555102>, r=96158345 -pos=<11561358,34996323,107452493>, r=83213190 -pos=<12971841,75769901,53455514>, r=68579059 -pos=<-24609077,31137632,12599716>, r=84801836 -pos=<39964941,58818274,67271078>, r=70513393 -pos=<11590874,44091058,16246818>, r=57908243 -pos=<11534010,42492557,73281128>, r=56565109 -pos=<46029692,44356665,33034407>, r=51140346 -pos=<230818789,28332006,48666836>, r=77009932 -pos=<-49307134,28877489,51162598>, r=81672730 -pos=<-24858611,61344602,49583599>, r=88112245 -pos=<-33971422,31026034,46645662>, r=63968617 -pos=<-14920621,60364341,48024490>, r=75635084 -pos=<-18886432,44383739,46645651>, r=62241356 -pos=<63367787,57050728,56716295>, r=81594314 -pos=<-29235501,30020585,46865414>, r=58446946 -pos=<-1116549,51739608,46803263>, r=51985095 -pos=<-12898335,8922965,49532990>, r=59720175 -pos=<11377440,35121435,54012286>, r=63237886 -pos=<-28362629,38084006,47961632>, r=66733755 -pos=<-32732759,53759806,34185847>, r=93961530 -pos=<-2049132,35100887,26872869>, r=51932182 -pos=<10307391,63192491,78308824>, r=83519668 -pos=<-11173886,50879581,47031969>, r=61411041 -pos=<-6714487,69428860,48945046>, r=77413940 -pos=<-35145310,126288277,94537390>, r=86514887 -pos=<15372059,77344628,57152598>, r=71450857 -pos=<-5534049,28501573,47802916>, r=70800310 -pos=<30282369,-27855631,57777471>, r=74260879 -pos=<27578388,34577846,94631718>, r=61246950 -pos=<5377307,28529784,46392652>, r=82994735 -pos=<-9288964,40034367,85892017>, r=87541479 -pos=<32663376,50111633,96347262>, r=83581281 -pos=<64590061,24883190,74402048>, r=72454312 -pos=<6011059,52895297,-9651139>, r=98190405 -pos=<-40075559,29164760,46796031>, r=68361786 -pos=<-27324257,33280398,58797836>, r=71727947 -pos=<65478625,51242475,73962244>, r=95142344 -pos=<-8161052,44514515,51881665>, r=56882708 -pos=<37117480,70516429,65453164>, r=77546136 -pos=<-66556175,24793456,46807708>, r=94782274 -pos=<6745175,-9697218,46249405>, r=55413236 -pos=<-15842202,54067556,49741202>, r=71976478 -pos=<-26234670,32761687,62384539>, r=73706383 -pos=<27047080,45210798,96262259>, r=72979567 -pos=<-54875381,19475504,41999639>, r=88941400 -pos=<15588049,51830394,45712337>, r=63164637 -pos=<78521098,9084198,53510654>, r=81292772 -pos=<-35117158,30884180,40930824>, r=66725315 -pos=<38517388,31310367,53377273>, r=93263507 -pos=<-34824848,35863485,57039123>, r=80052924 -pos=<87999262,21593229,36952685>, r=77127999 -pos=<-14970039,39281480,31602555>, r=64303877 -pos=<30996868,32710257,-7944148>, r=65439616 -pos=<-46544578,32730823,48455778>, r=80056612 -pos=<-25655223,54235827,24268664>, r=97277174 -pos=<-31661104,34739101,46810221>, r=65535871 -pos=<-15725105,33623089,58648908>, r=60322582 -pos=<30366481,48524611,105759957>, r=89110268 -pos=<7896511,67058144,60224279>, r=71711348 -pos=<8886133,36820409,69879921>, r=50139913 -pos=<-35009499,24967338,48346229>, r=64600051 -pos=<12236743,61232811,36406256>, r=54244674 -pos=<32133015,71147471,65672434>, r=73411928 -pos=<-4312430,48491142,58819757>, r=63948774 -pos=<-11255504,48618070,49019953>, r=61218979 -pos=<-36126448,28661597,45905741>, r=63019487 -pos=<6995492,-14641677,39110487>, r=64076982 -pos=<-494882,62507397,74981307>, r=90309172 -pos=<21658971,20515757,32538766>, r=68078733 -pos=<-42721200,2165630,50987236>, r=97754561 -pos=<-46441522,14810192,60365689>, r=98209160 -pos=<48051150,31166319,50307623>, r=70921992 -pos=<28821739,29694631,-1122960>, r=53427671 -pos=<-54273229,34572094,50463893>, r=91634895 -pos=<14673784,34863932,82993530>, r=55509157 -pos=<-32934723,17649588,51138183>, r=72635067 -pos=<-50994378,41060824,52259311>, r=96639953 -pos=<-13412903,29052830,62027839>, r=56819094 -pos=<16028543,72922360,86313287>, r=95532757 -pos=<-29190239,30088199,43593943>, r=57339282 -pos=<-67676350,28809916,49909454>, r=98721154 -pos=<-43374507,39597274,53913745>, r=89211024 -pos=<-27366900,30364601,50115222>, r=60172177 -pos=<16917628,52399768,64291470>, r=52099066 -pos=<41279617,21014635,54307699>, r=93725431 -pos=<1365818,19740622,70504983>, r=55610202 -pos=<-54647289,29012271,49857475>, r=85842468 -pos=<44221414,66917783,53886884>, r=69485079 -pos=<-9940873,70529264,26788845>, r=95336159 -pos=<-2891536,43027095,81243592>, r=79487809 -pos=<16856578,70770998,65638794>, r=71878974 -pos=<48647431,57474901,3221288>, r=96689472 -pos=<18398962,37387340,106423442>, r=77737407 -pos=<6875506,40281303,93455690>, r=79187050 -pos=<2454291,28249463,81600089>, r=59720809 -pos=<-1468549,29220087,631469>, r=71712205 -pos=<1576323,77863026,52114347>, r=80726896 -pos=<11328724,-1103809,57250256>, r=53237238 -pos=<14166873,32412130,88906135>, r=59476952 -pos=<68172516,66679724,50794113>, r=90105431 -pos=<-4882904,63239852,64521058>, r=84969357 -pos=<-39573626,43281992,58908860>, r=94089955 -pos=<47082853,25450033,45728957>, r=77686997 -pos=<30259034,36081601,79825507>, r=50625134 -pos=<13485963,34007713,111156423>, r=84003646 -pos=<-103414983,93539548,30098680>, r=85922019 -pos=<-6802701,-3790574,59234245>, r=76039201 -pos=<82390172,51540341,50478214>, r=88867872 -pos=<5396715,-12159909,37977747>, r=64326869 -pos=<60082922,38998779,61741375>, r=65282109 -pos=<-16364819,10714145,61687053>, r=73549544 -pos=<-58301485,30719708,55794510>, r=97141432 -pos=<16352057,56953747,89166657>, r=82093799 -pos=<-34630538,59464956,51639108>, r=98060041 -pos=<490228,30703545,109025168>, r=91563918 -pos=<-6013632,8426824,52874814>, r=56673453 -pos=<-36209880,25159205,51113229>, r=68375671 -pos=<17796723,1411910,80111570>, r=67114697 -pos=<-31889116,28510083,45862954>, r=58587653 -pos=<19168448,33254095,39684567>, r=98395168 -pos=<-6095859,46062067,73594989>, r=78078378 -pos=<-304797,59105732,57302395>, r=69038374 -pos=<55099745,36449947,86305322>, r=82314003 -pos=<33473188,6098096,-4438050>, r=79487709 -pos=<-31472777,36089404,51315048>, r=71202749 -pos=<15962314,28423814,-7317040>, r=61433573 -pos=<7998189,2801039,69890583>, r=65303215 -pos=<130870385,104831832,11196492>, r=68126888 -pos=<-5327566,58947831,12940865>, r=92989660 -pos=<3824920,57094208,49926985>, r=55521839 -pos=<-1717656,36673098,102114555>, r=92830763 -pos=<-6542148,37528701,53564176>, r=49960544 -pos=<-14811298,29054822,83783336>, r=79975290 -pos=<-37201984,61523961,41570442>, r=98810391 -pos=<20636169,30198837,103026121>, r=64914223 -pos=<10371395,31519349,55590694>, r=62337567 -pos=<31884149,40789942,72870652>, r=50003827 -pos=<-30398435,29198407,42512686>, r=58738952 -pos=<43939568,28346223,78157090>, r=54901870 -pos=<9128846,67552702,83250788>, r=94000232 -pos=<-2588856,30760371,91977867>, r=77653177 -pos=<15962420,82995471,76760935>, r=96119428 -pos=<-33661280,31365698,48813484>, r=66166075 -pos=<-16115499,43852463,46308402>, r=58601848 -pos=<-6987272,33841983,84781289>, r=77936013 -pos=<-485860,34594456,81980122>, r=69386193 -pos=<-15363694,37898885,53146470>, r=58734501 -pos=<-17124380,71830052,45774058>, r=87053925 -pos=<8219084,70226598,55923252>, r=70256199 -pos=<-3903209,29453615,46544603>, r=75288840 -pos=<-9159457,25097083,71581481>, r=61856037 -pos=<-6436575,16618931,70357346>, r=66386656 -pos=<-8806699,29246129,72352585>, r=62730916 -pos=<68862343,36688765,49225208>, r=59235344 -pos=<-79171684,112113447,67348279>, r=92995215 -pos=<2638935,25190324,85791990>, r=64174419 -pos=<14827988,29466545,48474491>, r=98818958 -pos=<-14381380,32037768,62743833>, r=61488450 -pos=<3154619,88011848,41382872>, r=85129150 -pos=<51747013,31306559,79606148>, r=67118845 -pos=<4782291,34063349,70169217>, r=51776099 -pos=<-39091050,45657329,51675336>, r=88749304 -pos=<-26634338,29826468,49344705>, r=58131168 -pos=<28955639,11886714,83389681>, r=58803847 -pos=<-13895377,39956378,49929456>, r=56106810 -pos=<-20174467,38776446,18529455>, r=82076331 -pos=<11908029,50316295,76200518>, r=66934331 -pos=<79036827,16924288,76062556>, r=96520365 -pos=<9584540,67893747,64596741>, r=75231780 -pos=<1999297,28072699,90660851>, r=69059706 -pos=<-4999516,1406744,49697518>, r=59502059 -pos=<-12138046,52832626,53760320>, r=71057036 -pos=<14911107,50532270,74102432>, r=62049081 -pos=<-28076669,-5209886,42939079>, r=85888492 -pos=<-1381979,35962916,89448258>, r=79118686 -pos=<-27555180,38443112,78090455>, r=96414564 -pos=<-45684157,22499678,51249216>, r=80645467 -pos=<-33262343,42412693,21018032>, r=96311801 -pos=<-24933943,30266769,36206604>, r=60648927 -pos=<47087640,55749463,76069992>, r=83366515 -pos=<40948562,39725308,77828570>, r=62961879 -pos=<-21047756,32265813,60780681>, r=66419686 -pos=<37924327,42452651,67877724>, r=52713763 -pos=<-58689938,30781189,50489915>, r=92286565 -pos=<13216582,64885410,61404468>, r=65398749 -pos=<-43382614,29830485,70345833>, r=95884395 -pos=<-20520219,36470699,75190567>, r=84507131 -pos=<14237854,59338973,85949685>, r=83376237 -pos=<-450228,37867875,64907958>, r=55551952 -pos=<17760677,61033651,84995936>, r=80594372 -pos=<22176975,82022403,46533128>, r=58704060 -pos=<22779974,94329178,17857701>, r=95346900 -pos=<-38001053,34049218,49600706>, r=73976424 -pos=<16848379,29946291,48116237>, r=55533891 -pos=<-42631692,35454176,53098888>, r=83510344 -pos=<4649340,48178580,58429391>, r=54284128 -pos=<847183,51607513,81674534>, r=84760407 -pos=<-21437870,4973092,57201053>, r=79877495 -pos=<-31919810,30134447,55487065>, r=69866771 -pos=<-27341158,67125553,48484104>, r=95276520 -pos=<34772295,-8690710,66519732>, r=68327958 -pos=<-31969415,39408252,48343122>, r=72046242 -pos=<102875003,13271850,46851582>, r=94799961 -pos=<-12487583,35034265,55339911>, r=55187220 -pos=<9093156,39769707,84017977>, r=67020115 -pos=<-16380910,41574541,66165228>, r=76446125 -pos=<78145797,37164108,49128463>, r=68897409 -pos=<12696275,29248422,93349910>, r=62227566 -pos=<3806267,80300805,32983373>, r=85166064 -pos=<96882526,36942217,48757938>, r=87041670 -pos=<-171249798,39499790,57712028>, r=97294519 -pos=<-2013420,51530722,55656270>, r=61525906 -pos=<10506453,22608309,43074519>, r=92987198 -pos=<-12980027,57643628,73634339>, r=96583452 -pos=<9759074,34807718,46383535>, r=76510831 -pos=<-46481921,33185083,62928260>, r=94920705 -pos=<-41982125,32478135,69194276>, r=95980083 -pos=<6066850,16557724,-23317282>, r=96233732 -pos=<-27420476,39804614,13027130>, r=95852751 -pos=<-35598484,27994414,43416148>, r=61831662 -pos=<53497255,74968025,34467126>, r=87786515 -pos=<5629165,76030721,52476464>, r=75203884 -pos=<-52112524,15110086,40185629>, r=92357875 -pos=<-23905340,18683396,67786661>, r=79220265 -pos=<1204692,65009004,78621903>, r=94751674 -pos=<-10066560,46695198,48547405>, r=57634798 -pos=<10289802,-10697128,21104545>, r=74844012 -pos=<-40310292,28833507,46959457>, r=68428878 -pos=<-13764816,49841026,61895287>, r=77826610 -pos=<-19679027,58605601,66152788>, r=96763074 -pos=<8809311,33356810,46152100>, r=63432984 -pos=<-29709153,29461995,49058531>, r=60555118 -pos=<-13129092,-9705209,46828679>, r=75874660 -pos=<102118197,31480871,42422516>, r=84965146 -pos=<-32517383,30565130,33503263>, r=71234788 -pos=<9534874,52896280,70697014>, r=66384094 -pos=<16880678,65311318,51702479>, r=52458646 -pos=<-36132788,43209378,55775064>, r=87442665 -pos=<22744530,34380596,134099136>, r=98061118 -pos=<-26547963,41862023,60462772>, r=81198255 -pos=<-545734,40978449,60677738>, r=54527403 -pos=<16538063,68562231,28273188>, r=65405796 -pos=<14494679,58745235,31512009>, r=54393346 -pos=<7791169,67262375,35493930>, r=65632071 -pos=<8485973,48520508,103076567>, r=95436538 -pos=<8214274,28745216,50655896>, r=92680074 -pos=<-6937397,27971689,49092605>, r=65350532 -pos=<-22481435,9380958,40012423>, r=68629066 -pos=<62129884,16597211,12546768>, r=80660497 -pos=<6258688,62081024,87730516>, r=95878363 -pos=<-32278381,28495170,53585234>, r=66684251 -pos=<8040391,72063718,51083757>, r=67432585 -pos=<-5673174,25046673,73686241>, r=60524423 -pos=<-8001243,63756911,61002978>, r=85086692 -pos=<-26577068,41949907,46813510>, r=67665926 -pos=<27314118,87945331,52949180>, r=72667621 -pos=<-20191543,30416348,7242015>, r=85020749 -pos=<-40509210,25805511,61018374>, r=81933846 -pos=<-27572422,16102428,56368833>, r=74050704 -pos=<-11240828,50248391,27895560>, r=75248609 -pos=<34613570,41153477,100115019>, r=80341645 -pos=<15579024,9723842,69284527>, r=50193328 -pos=<-46066212,37488646,47288596>, r=83168980 -pos=<16651399,81480864,60218612>, r=77373965 -pos=<-4490123,12256693,29836426>, r=57938091 -pos=<-9722027,38414943,53203837>, r=53666284 -pos=<-17608773,53047624,65044179>, r=88026024 -pos=<-46201175,24018662,58511638>, r=86905837 -pos=<83707615,22862590,47033198>, r=66223477 -pos=<75278564,31837146,46877582>, r=58452382 -pos=<66228245,28297748,1246309>, r=87068293 -pos=<-41563889,138361221,22834552>, r=92320836 -pos=<-15149458,41692211,57568440>, r=66735557 -pos=<-29959760,29199939,50714596>, r=62199729 -pos=<42142694,49570710,97616140>, r=93788536 -pos=<61202922,61131481,71470186>, r=98263590 -pos=<29827492,38051686,24415070>, r=56692483 -pos=<17592777,73628928,77556835>, r=85918423 -pos=<-20783874,35242533,54629155>, r=62981079 -pos=<64237574,1302210,73405037>, r=94685683 -pos=<-21188594,47968883,69462691>, r=90945802 -pos=<30657831,49880981,-20723938>, r=95051093 -pos=<22864844,93114017,56937539>, r=79512153 -pos=<36531726,66041045,59031978>, r=66063917 -pos=<19846259,-13074428,65015549>, r=64455431 -pos=<-7113733,38738967,15168250>, r=72339348 -pos=<-25341686,54431754,46334838>, r=78433824 -pos=<20656999,57196763,75771625>, r=64636928 -pos=<-22838713,34493030,27829494>, r=71157081 -pos=<-27835555,38366205,61876949>, r=80404149 -pos=<79754868,48144480,60613367>, r=92971746 -pos=<20721233,45043536,93948762>, r=70596524 -pos=<-46680111,37879564,53763782>, r=90648947 -pos=<16009840,86125003,58588086>, r=81028766 -pos=<20025736,5391570,85015946>, r=65810395 -pos=<33720066,104264468,55486952>, r=97930498 -pos=<-63554526,31193768,49947114>, r=97020908 -pos=<-55699886,23371204,32454537>, r=95415201 -pos=<73230725,36900143,48087090>, r=62677110 -pos=<-32963671,28309367,52478944>, r=66077418 -pos=<5939165,55024902,62755578>, r=64166779 -pos=<-24917309,29082130,46444648>, r=52769524 -pos=<7735621,49034186,60918429>, r=54542530 -pos=<4877732,8430499,59198278>, r=52101779 -pos=<83731770,35839732,49766995>, r=73797528 -pos=<-11074931,33743791,62322816>, r=59467077 -pos=<47699715,55835903,55060273>, r=63055430 -pos=<37657191,-9104085,74776203>, r=79882754 -pos=<-46744861,30151111,64292721>, r=93514232 -pos=<-13186319,46003906,17086538>, r=83758581 -pos=<32840031,56015193,64841941>, r=58156157 -pos=<6062205,42632964,47615029>, r=73781872 -pos=<-19799971,51835559,58790016>, r=82751306 -pos=<-30893469,30656893,46300617>, r=60176438 -pos=<-55830501,22240501,57274377>, r=97076042 -pos=<15868849,46019629,96676898>, r=79153313 -pos=<-16265649,52075245,75590161>, r=96256506 -pos=<14624864,56207969,57618910>, r=51527552 -pos=<318934,59504614,60032696>, r=71543938 -pos=<-23487442,41093331,19776590>, r=86459237 -pos=<67237678,41609284,51037661>, r=64343635 -pos=<-19179700,33732993,56360250>, r=61598596 -pos=<-34730837,5580174,61364913>, r=96727618 -pos=<53061020,1668645,85754857>, r=95492537 -pos=<3877306,43959248,85023639>, r=77431037 -pos=<-10413451,33996655,77197477>, r=73933065 -pos=<-15270541,18375898,55749133>, r=58855471 -pos=<37599773,64150517,58789624>, r=64998919 -pos=<6641382,32884368,86779494>, r=65348099 -pos=<-28989825,39572241,63995218>, r=84883334 -pos=<12972158,71582537,87975353>, r=98911274 -pos=<41852603,48069590,65721204>, r=60103061 -pos=<-12895423,34234299,51393776>, r=50848940 -pos=<76683281,42692313,48821155>, r=72655746 -pos=<9795431,-286238,55311954>, r=52014423 -pos=<-12408641,28693619,67844073>, r=61271790 -pos=<18776047,80030396,38475557>, r=64433947 -pos=<75995398,33442514,24888484>, r=78338116 -pos=<-22764877,22172460,58097441>, r=64901579 -pos=<10239772,40250323,68821851>, r=51158213 -pos=<-6984206,11263546,-3408779>, r=94670545 -pos=<-25723496,46861709,48289286>, r=73199930 -pos=<5729735,28403922,117678625>, r=92678286 -pos=<11079147,38654325,86908021>, r=66808654 -pos=<19012903,51490161,13432661>, r=60699507 -pos=<-19708767,24665073,51422478>, r=52677853 -pos=<2549542,80274103,46746108>, r=76796138 -pos=<-48466554,29995042,56395431>, r=87182744 -pos=<86083343,46696534,52688635>, r=89927531 -pos=<19978558,94248897,26059694>, r=89865438 -pos=<21928133,43444423,89266701>, r=63108468 -pos=<-32662150,34466095,53616954>, r=73070642 -pos=<-4767571,24202491,48306992>, r=52750940 -pos=<-6049891,44411137,66256832>, r=69043725 -pos=<14845730,-1633797,-11680131>, r=94009220 -pos=<65363,73430740,49753549>, r=75444608 -pos=<10919543,55374161,60523054>, r=57303105 -pos=<-33344704,36874381,61740346>, r=84284898 -pos=<90823294,32581102,47524970>, r=75388376 -pos=<56762466,39329407,28284461>, r=61595785 -pos=<14326905,38412743,-13806339>, r=79547110 -pos=<-27408929,29564102,49418580>, r=58717093 -pos=<72828690,34540465,56644790>, r=68473289 -pos=<-23879984,-80533415,-13926388>, r=52569551 -pos=<623363,23117915,46129959>, r=71699945 -pos=<-21310687,28343530,48201114>, r=50180986 -pos=<-11268087,54197123,60947343>, r=78738009 -pos=<62637156,43374891,28845119>, r=70955785 -pos=<101486863,29252465,58609523>, r=93807860 -pos=<-7121743,-17618647,50972485>, r=81924604 -pos=<33712412,33093334,104500328>, r=75765083 -pos=<70057598,30520257,59928664>, r=64965508 -pos=<13577885,32272356,41344051>, r=98076208 -pos=<8955771,46905424,22660149>, r=56944295 -pos=<-31671198,35282234,47777117>, r=67056086 -pos=<-28701991,29968381,30147369>, r=70177802 -pos=<46883174,34145057,15459578>, r=59357035 -pos=<-21541824,-3738229,54506228>, r=85997940 -pos=<-7165905,-13698956,55634555>, r=82711088 -pos=<-42136026,37824576,54914702>, r=87201260 -pos=<75444044,34090961,64356096>, r=78350113 -pos=<27070208,76993574,17498441>, r=80354253 -pos=<-24556265,40605071,29335340>, r=77481284 -pos=<7679148,40322729,74549753>, r=59518815 -pos=<64743952,34069862,51081505>, r=54354571 -pos=<7888777,51012156,-6093924>, r=90872090 -pos=<-38312643,6053130,45786004>, r=84257215 -pos=<-10907447,30880694,71717384>, r=65831363 -pos=<-21415341,33770607,55616361>, r=63127773 -pos=<-9268341,12931923,58776983>, r=61325095 -pos=<53680780,36878021,92991425>, r=88009224 -pos=<16325289,32873290,52486621>, r=50056228 -pos=<2379678,52409295,64101601>, r=66456683 -pos=<12407570,48986679,9677595>, r=68556317 -pos=<-23196672,47847216,47491952>, r=70861580 -pos=<17092834,24513176,91350037>, r=55955816 -pos=<8752629,37508985,49239757>, r=72585978 -pos=<52794942,76928483,47757542>, r=81940023 -pos=<12527582,-6613411,50632808>, r=50930382 -pos=<-70810892,45621857,-48305364>, r=62008194 -pos=<-18412210,36869794,57144258>, r=64752285 -pos=<87656632,20763685,66883781>, r=92122439 -pos=<61764769,33809145,-512978>, r=89875236 -pos=<-21591807,57503330,27237264>, r=93512809 -pos=<-8980322,48822102,24813214>, r=74644293 -pos=<-13586166,29673545,54387395>, r=49972553 -pos=<-21336027,12684379,50240160>, r=65103467 -pos=<15312696,61249932,61078049>, r=59340843 -pos=<3820682,55264026,85971673>, r=89740512 -pos=<-8720944,7901096,48785694>, r=55817204 -pos=<46676113,42744663,57067759>, r=50947525 -pos=<63180707,54936070,46238435>, r=68814227 -pos=<-59988823,31676130,52904181>, r=96894648 -pos=<-55767575,34582277,42911408>, r=89093361 -pos=<-24727493,22617024,22771261>, r=74880311 -pos=<30402823,52581940,78464394>, r=65908330 -pos=<-12446120,14245346,47969322>, r=52381926 -pos=<13932111,12087077,52306416>, r=71083363 -pos=<12361114,5008235,62369519>, r=51211858 -pos=<62655763,37235551,16180822>, r=77498932 -pos=<5158458,57101119,21414371>, r=72183092 -pos=<2908218,33006742,52557556>, r=82743046 -pos=<57439166,18173939,101222852>, r=98833513 -pos=<52238468,31780002,45678724>, r=78491149 -pos=<-45793920,10537217,50965371>, r=92433881 -pos=<-13743952,64107054,54632417>, r=84808943 -pos=<-170006460,33686904,57787874>, r=58950081 -pos=<-26862218,29083237,47085032>, r=55356188 -pos=<794530,52505491,57994889>, r=62031400 -pos=<62469765,31544111,56755533>, r=55228669 -pos=<33597386,32945456,56175425>, r=60893404 -pos=<67662625,38142990,51575060>, r=61839764 -pos=<-48808932,29332298,47264670>, r=77731645 -pos=<-13897506,80448804,52473065>, r=99144940 -pos=<-41499426,33500208,34694650>, r=81959864 -pos=<21500730,1820261,108639134>, r=91529831 -pos=<37273144,59821099,54577329>, r=56130643 -pos=<-21429926,6902774,61057229>, r=81796239 -pos=<3340434,50630706,26961101>, r=61983979 -pos=<20112657,-7766263,32920789>, r=50273913 -pos=<66869619,52342243,67598868>, r=91270061 -pos=<6129880,42603189,67116575>, r=55915349 -pos=<6398878,1688559,79467734>, r=77591971 -pos=<14501207,33194081,103787164>, r=74805573 -pos=<-41363813,41379031,51239687>, r=86308022 -pos=<-5072359,37511009,73502277>, r=68411104 -pos=<9979161,47203323,76860857>, r=66410591 -pos=<8272810,70008182,48415971>, r=62477175 -pos=<16131738,39072448,57020881>, r=66650334 -pos=<-18513223,15536711,73318828>, r=82507011 -pos=<-53344764,29150642,46822282>, r=81643567 -pos=<-19488382,39476575,49309757>, r=60600153 -pos=<17795545,86761153,34350936>, r=76269651 -pos=<-39860391,37740470,42830687>, r=76425286 -pos=<75357927,42659157,48122833>, r=70599033 -pos=<67060727,20786860,43203283>, r=50745152 -pos=<11307310,64243278,77782998>, r=83044472 diff --git a/2018/inputs/24.txt b/2018/inputs/24.txt deleted file mode 100644 index 0c90bb1..0000000 --- a/2018/inputs/24.txt +++ /dev/null @@ -1,23 +0,0 @@ -Immune System: -2991 units each with 8084 hit points (weak to fire) with an attack that does 19 radiation damage at initiative 11 -4513 units each with 3901 hit points (weak to slashing; immune to bludgeoning, radiation) with an attack that does 7 bludgeoning damage at initiative 12 -5007 units each with 9502 hit points (immune to bludgeoning; weak to fire) with an attack that does 16 fire damage at initiative 2 -2007 units each with 5188 hit points (weak to radiation) with an attack that does 23 cold damage at initiative 9 -1680 units each with 1873 hit points (immune to bludgeoning; weak to radiation) with an attack that does 10 bludgeoning damage at initiative 10 -1344 units each with 9093 hit points (immune to bludgeoning, cold; weak to radiation) with an attack that does 63 cold damage at initiative 16 -498 units each with 2425 hit points (immune to fire, bludgeoning, cold) with an attack that does 44 slashing damage at initiative 3 -1166 units each with 7295 hit points with an attack that does 56 bludgeoning damage at initiative 8 -613 units each with 13254 hit points (immune to radiation, cold, fire) with an attack that does 162 radiation damage at initiative 15 -1431 units each with 2848 hit points (weak to radiation) with an attack that does 19 cold damage at initiative 1 - -Infection: -700 units each with 47055 hit points (weak to fire; immune to slashing) with an attack that does 116 fire damage at initiative 14 -2654 units each with 13093 hit points (weak to radiation) with an attack that does 8 radiation damage at initiative 19 -5513 units each with 18026 hit points (immune to radiation; weak to slashing) with an attack that does 6 slashing damage at initiative 20 -89 units each with 48412 hit points (weak to cold) with an attack that does 815 radiation damage at initiative 17 -2995 units each with 51205 hit points (weak to cold) with an attack that does 28 slashing damage at initiative 7 -495 units each with 21912 hit points with an attack that does 82 cold damage at initiative 13 -2911 units each with 13547 hit points with an attack that does 7 slashing damage at initiative 18 -1017 units each with 28427 hit points (immune to fire) with an attack that does 52 fire damage at initiative 4 -2048 units each with 29191 hit points (weak to bludgeoning) with an attack that does 22 bludgeoning damage at initiative 6 -1718 units each with 15725 hit points (immune to cold) with an attack that does 18 slashing damage at initiative 5 diff --git a/2018/inputs/25.txt b/2018/inputs/25.txt deleted file mode 100644 index d359c48..0000000 --- a/2018/inputs/25.txt +++ /dev/null @@ -1,1248 +0,0 @@ --6,2,-8,3 -7,8,-1,-8 -7,-2,-4,-2 -4,-4,2,7 -5,8,-1,6 --1,6,-4,-5 --2,-6,-6,-6 -1,4,7,0 --1,-3,-8,2 -5,-6,-5,-2 --5,7,4,-2 --2,6,-1,6 -5,4,0,-7 -1,5,-8,-3 --3,3,8,2 -4,0,0,6 -4,-8,-3,3 -0,0,-7,-5 --2,0,5,-3 -2,1,7,-1 -1,6,2,2 -4,4,7,-6 --1,0,-1,1 -2,4,4,6 --4,3,-7,2 --5,-2,8,-7 -6,-8,-1,3 --8,-6,-7,-3 -4,1,-7,-1 --7,-5,-4,4 -5,-2,8,-5 --5,-1,4,-4 -3,-3,8,4 -3,8,-8,-7 --3,7,7,0 --7,-5,-3,5 --4,-5,-3,-2 -6,-8,3,8 --2,0,8,7 --4,3,5,7 --6,3,5,0 -5,2,-3,-3 -0,8,0,5 --5,-8,-1,-8 -2,6,0,6 -5,-4,0,0 -3,-2,-8,-5 -8,-4,-7,-7 --3,-7,-8,-2 -6,7,-2,3 -5,0,-6,0 -0,-6,0,2 -8,-4,6,-3 --5,-4,4,-4 -2,0,3,-1 -3,-5,8,5 -6,-1,5,5 --6,-5,-4,8 -7,-4,0,5 -5,3,1,6 --7,2,-3,1 --4,1,-6,-7 --4,4,0,8 --6,4,1,-8 -3,-6,-6,5 -2,-4,-3,2 --2,2,-2,1 -2,-4,0,0 -3,1,4,8 --1,3,-7,-5 --3,-7,2,0 --2,-2,-8,0 -1,6,0,7 --6,-3,0,-1 -7,0,-2,-7 -5,-5,-3,0 -7,0,0,5 --6,5,6,2 -0,8,3,-1 -0,-8,-7,-1 -3,6,7,-7 --2,4,-8,-3 -3,-3,-6,-4 --1,-5,0,2 --7,2,4,0 --2,7,4,-2 -2,4,-1,5 --1,-6,-6,4 -4,-6,-7,-2 --6,6,-4,-2 -5,-5,-2,-6 -4,5,4,0 -3,3,0,-5 --5,4,3,-2 --6,1,7,-6 -3,5,-8,5 --2,8,-2,-2 --5,6,-2,-7 --3,-6,7,-4 --8,-6,7,7 --5,-7,4,-4 --8,-8,-6,7 --7,-1,-2,-1 -3,-1,4,0 -3,6,1,-8 -2,6,-4,0 --6,4,4,6 -7,7,6,-5 -4,-3,-2,7 --1,8,2,-2 -3,-1,-4,5 --2,1,-6,-8 --3,1,7,-1 --7,-1,8,6 -4,2,6,-6 -8,-1,8,-8 -4,6,-1,4 -7,-1,6,5 -0,-6,2,3 --2,-8,-8,-6 -0,6,-4,-8 -4,-8,-7,6 --3,-3,2,2 -2,1,4,7 --3,7,-1,-8 -1,1,-2,-5 -3,-6,-4,7 --3,5,0,8 -3,3,1,0 -1,5,4,6 -7,0,-2,-5 -1,5,-3,7 --1,-4,3,4 --4,3,-2,0 --1,-8,2,0 --8,-8,3,-3 --2,-6,5,2 -8,-1,-3,-6 -2,-8,3,-5 --8,-8,3,4 --3,-5,-7,0 -0,3,1,3 --8,5,-6,4 -2,0,4,-2 --5,1,-7,0 --5,0,-2,1 -4,-7,0,3 -7,0,4,-1 -0,-3,5,4 --8,-8,-2,3 -2,5,4,6 -7,0,-8,-7 --1,8,3,-3 -1,-2,2,-4 --1,-3,3,-2 -4,6,7,-1 -3,8,2,-3 --1,-8,8,7 --8,4,7,-2 --8,2,-8,-7 --2,5,0,-5 --1,-2,-5,-5 -4,6,-2,0 -0,8,0,-4 -2,0,-2,-1 --8,0,-5,0 --2,-8,-5,6 -2,0,5,7 -6,0,7,0 --6,-8,3,-1 -2,2,6,-8 --8,7,-8,7 -5,0,7,-6 -0,-3,6,-4 --5,7,-6,-6 -2,5,0,-6 --6,8,-3,3 --8,-7,-1,-8 --1,3,0,0 -1,2,3,-7 --5,-1,7,2 -4,2,0,2 --6,-6,-1,-2 -1,0,8,-1 -0,-1,-8,7 -2,2,-6,-4 --2,3,2,6 --6,-6,-2,-3 --2,6,-2,1 -4,0,-8,7 -4,8,1,-1 -4,2,-2,5 -1,-2,-6,1 -1,5,-5,-4 -0,8,7,-6 -8,8,2,-3 --3,-4,-5,3 --2,6,-8,-1 --2,-2,-4,2 -0,6,-3,7 -8,3,-3,7 -6,0,-1,-6 -8,8,3,0 --7,0,8,7 --5,7,-2,0 -2,-7,7,3 -8,-5,0,0 --6,-8,1,-7 --7,-3,0,5 -5,6,1,-7 --3,8,-3,6 --4,0,-4,-5 -7,4,2,1 --7,-7,-8,6 -7,-7,4,4 --6,-2,-1,1 -5,7,-6,-5 -1,6,-2,5 --6,5,-6,3 --6,-8,0,0 -2,-4,2,8 -0,0,0,-8 --8,0,-2,2 -0,-4,-8,-8 -1,-5,-8,5 -6,-4,-5,6 -8,4,-5,-1 -8,-7,4,-4 --7,-6,-8,0 --2,3,-2,3 --8,-3,-6,-3 -0,5,5,0 -3,7,-8,6 -0,-7,-5,-1 -1,6,-4,-3 --4,5,-3,5 -7,-5,-5,8 --4,4,0,-8 -7,-7,0,2 -6,0,2,-8 --6,-4,1,0 --1,0,-2,4 --4,-8,5,7 --8,4,-5,-2 -2,8,-8,-8 --4,7,1,6 --2,-2,-7,3 -6,4,-1,0 --1,-7,-4,0 --4,0,3,0 -0,3,5,2 --4,-5,-1,0 -8,2,-6,0 --2,5,-3,8 -7,0,3,-2 -6,0,-5,0 -4,-6,-5,6 --7,8,0,-1 -8,-2,3,-4 -7,0,-4,7 --4,-6,-7,-7 -2,8,0,4 -1,-6,5,-6 -4,-7,-2,-2 -4,1,-6,2 -0,7,4,3 -4,1,-1,-5 -1,-4,6,-6 -1,2,-2,-2 -2,-2,6,-5 --8,6,-6,6 -0,6,8,2 --3,-2,0,-8 --6,-5,2,-6 -0,5,-8,-5 -1,-1,7,6 --6,-3,-7,-3 --4,-6,-1,0 -8,-3,-6,-2 --5,-2,6,-1 --1,0,3,1 -0,2,-6,7 -3,3,5,-2 -8,4,5,-1 --5,-1,0,-1 --6,-1,0,6 -2,6,-3,-3 -8,7,-8,4 --6,-8,-3,0 --1,-1,0,7 -6,-2,-8,4 --3,8,3,-1 -6,2,0,4 -0,-3,7,3 --5,3,-2,-1 --6,-7,-2,-3 -4,-5,-3,-6 --7,6,-2,4 --2,-5,7,0 -1,8,-8,7 -8,3,-3,4 --3,3,2,-4 -5,-7,4,1 -8,-3,-5,0 --5,-4,-1,-8 -2,1,-2,-3 --1,-4,-1,-7 --7,-8,-7,-2 -3,0,7,4 -6,3,7,7 -0,-2,-4,2 -0,-1,-6,7 --3,-8,-1,-7 --8,-6,-6,-4 --5,-4,-4,0 -0,7,-7,3 --8,-7,-6,-8 --5,3,0,-3 --7,-6,0,7 --7,6,-6,-2 --2,8,2,-4 -2,0,0,5 -0,5,-2,0 -8,-7,-7,-1 --1,3,2,-7 --3,4,-7,-4 --6,-3,2,-7 --7,5,4,3 -5,-1,-6,-2 -3,-7,1,0 --7,0,-4,-3 --6,8,-1,0 -3,8,4,-2 --1,-4,-8,-7 -3,3,8,1 --5,1,4,5 -8,8,-1,2 --3,-3,7,-4 -8,-3,2,-4 -6,-8,-6,8 -3,6,3,-2 --7,-2,6,-4 --6,-8,-8,5 -6,0,0,7 --6,7,0,7 -8,0,-6,-3 -0,-3,-7,0 --2,6,-7,-7 -5,-1,-3,0 -2,3,4,-5 -1,7,-6,0 -3,3,0,-3 --1,0,-8,-8 --2,5,-7,4 -7,-1,-8,5 --2,-1,-1,6 --2,-6,5,1 -4,-2,5,5 --7,8,4,7 --2,-2,6,5 --6,1,-5,3 --8,4,0,7 -8,-4,5,5 --4,8,-4,1 --8,0,5,4 -8,1,0,0 --6,-8,-6,-2 -2,-5,0,0 -5,-6,5,-4 -1,2,7,2 -8,-4,6,5 --6,0,7,6 -6,5,7,-6 --2,-6,-2,5 --6,-4,3,1 -6,-8,4,-4 -8,6,1,2 -7,5,7,-2 -7,-2,-6,-1 -4,-2,1,2 -1,1,-3,5 -0,-4,8,4 -5,2,-3,-4 -8,4,1,-3 --1,1,-8,1 --1,-1,0,5 --4,4,6,0 -0,6,-2,6 --3,4,5,5 --7,5,4,-4 -2,2,-2,-4 -8,-1,2,-5 --5,-2,6,-2 -7,2,1,6 --3,-2,4,-5 -8,8,-7,-8 -0,1,-8,-4 --3,-6,-3,3 --4,-4,8,4 --3,2,-4,-6 --6,5,-5,-2 --3,-7,-3,8 -0,6,-1,8 -8,0,7,1 -1,1,-8,-2 -6,-6,-7,3 -4,-5,8,-8 --3,-6,6,7 -8,-5,2,4 -2,5,-3,-4 --3,0,-6,7 --1,-7,7,0 -2,-3,-5,5 --7,-7,0,-2 -0,-4,7,8 -5,3,7,2 --2,-7,5,5 --6,-1,0,-8 --3,0,8,-5 --8,-1,1,1 -1,0,-6,8 --1,-5,8,4 --5,-4,4,8 -2,-3,0,-4 --4,-3,0,7 -5,6,5,-5 --3,-8,-3,-2 -5,8,-8,5 --7,-2,-2,-2 -7,6,8,6 -0,-6,4,-7 --1,-4,-7,0 -8,7,-6,6 -6,-5,-1,-3 -5,-2,-2,-3 -6,-3,-5,0 --8,5,6,-5 -3,-7,7,8 -1,3,-8,0 --6,8,-5,6 -6,-5,-5,-2 -3,8,1,-8 --8,5,2,0 -0,5,-3,6 --5,-7,-8,4 -0,7,0,0 --5,6,-5,6 --5,1,6,5 -6,1,-2,-8 -0,-8,3,1 -0,-3,-8,-3 -0,6,0,-2 --8,0,-7,-5 --8,2,0,6 -1,6,3,-4 -8,-5,0,-4 --6,7,0,0 -5,0,1,0 --8,8,2,8 --7,4,2,4 -0,3,-2,-4 --5,5,7,0 -5,0,-1,5 --7,8,-6,8 --8,-1,3,-3 -0,-7,-7,-7 --4,4,8,-2 -1,2,1,-4 -1,-5,-1,8 --3,8,-2,-2 -8,0,4,-4 --8,5,-5,3 --7,-7,-6,-2 -0,-6,-8,-8 --1,-2,-3,0 --4,0,1,7 -1,-6,-8,4 -0,8,6,-1 --8,-5,-7,8 -2,7,-8,4 --8,4,-3,2 -3,-1,-7,3 -4,-2,-6,-6 --1,-4,1,-2 -3,-4,2,-6 -2,4,5,-3 --7,7,1,6 -8,-6,-5,-3 --7,1,-6,0 --3,-6,-6,-8 --8,-5,-6,4 --5,-1,7,8 -0,7,6,2 -6,-2,-1,5 -0,4,-8,8 --3,-5,-8,0 -2,-6,-2,-1 -5,8,-6,4 --5,-1,0,-6 --8,-5,8,2 -5,6,-3,-3 --4,-7,2,6 -0,-3,-6,7 --4,-6,-8,-8 -6,7,1,3 -7,-2,4,-3 -4,2,3,1 -0,8,-3,-8 --8,0,1,0 -4,5,-4,-2 --2,-6,4,2 --4,0,-4,0 -8,-1,2,-2 -5,-7,8,1 --2,5,-6,1 -6,-7,3,-7 -2,1,0,6 --8,-3,-1,0 -8,-1,8,-3 -0,-6,6,0 -7,3,7,3 --8,0,6,-1 --5,-4,-5,0 --2,0,3,-7 -0,2,0,0 --3,6,6,3 --6,-3,-1,-3 -8,0,1,5 --7,4,-8,0 -8,8,-5,4 --2,0,-7,-4 --8,5,-7,-7 -8,0,-1,4 -8,-7,5,0 --6,-1,-4,2 --8,-8,6,-5 -7,2,-3,1 -2,0,2,6 -8,-7,-8,3 --2,-7,-8,0 -0,3,-1,4 --8,7,5,3 -0,-4,0,3 -6,6,-2,-6 --4,8,6,-3 -0,3,0,-4 -6,-2,1,5 -1,4,4,3 -0,-7,4,-1 -1,3,-8,-2 --5,0,4,0 -8,2,-6,-4 --8,8,-2,6 --5,7,-7,-2 -5,0,-4,-4 --1,-5,3,7 --2,-3,7,3 --3,4,2,0 --7,-8,1,3 --8,-8,-3,2 -0,5,-8,7 -1,7,-6,5 -2,-6,-5,0 --8,4,4,2 -7,3,1,-6 --5,-4,8,2 --7,7,0,0 -8,6,-1,6 -2,5,3,-7 --7,3,1,5 --8,-3,-4,3 -0,-2,0,8 --7,-7,-5,8 -3,6,3,0 --4,2,8,-4 --6,2,6,-3 -0,-7,-6,-7 -0,-6,3,-6 --4,-5,-5,-2 -1,-7,-2,-5 -5,7,0,4 -2,-1,3,-3 -7,1,-5,8 -0,3,0,2 -5,0,-5,-3 --2,6,2,5 -6,4,-4,-7 -4,-8,4,8 --5,-2,-6,7 --1,-4,-4,5 --2,-7,3,7 --3,-8,-2,2 -1,-2,-5,-3 -0,-4,-1,3 -4,8,2,-5 -8,6,-6,1 --8,-1,1,-4 -5,6,4,-8 --7,-6,-5,4 --3,-3,5,0 --6,7,2,1 --5,5,-1,0 -1,-8,2,0 -0,-3,-7,6 -4,-4,1,0 --4,-6,0,4 -4,0,4,0 -4,-7,3,-2 -0,-3,0,4 -2,-3,2,2 -2,0,0,-4 --8,6,6,4 -7,7,4,-2 -0,5,0,-1 -5,7,3,6 -5,2,4,-3 -5,4,-7,-6 --8,1,7,2 -0,5,8,-1 -5,-3,-6,0 --6,0,4,6 --2,-2,6,-6 --6,3,5,2 -8,-2,-3,-1 --8,1,3,-4 -1,-6,-5,-6 -8,-4,6,-1 --5,-7,-7,-5 --1,-6,1,-4 -4,2,-3,0 -7,1,-4,4 -2,6,-8,0 -7,7,2,-5 -5,-2,-8,-3 --5,0,3,2 --1,6,-1,-4 -6,4,-3,-4 -4,1,4,-6 -3,5,0,-1 -5,-3,7,2 -3,-3,-7,5 --3,-6,-1,2 --7,-6,5,5 --3,-7,1,-7 -5,5,-4,3 -6,-4,0,-1 --7,-8,-1,7 -6,1,3,8 -8,-3,-5,2 --3,1,-2,7 --3,8,3,-4 -0,-8,7,3 -5,0,-4,-3 -3,-8,2,4 --8,-3,6,-3 -0,6,-5,4 --2,-8,-2,0 --4,-4,-4,8 --6,8,-5,-1 --8,0,1,1 --4,3,1,-2 --1,-7,4,8 -3,0,7,-4 -5,7,3,-1 -7,-8,-3,1 -5,5,0,1 --3,-1,0,8 --6,-8,-4,1 --3,-1,-6,0 -0,-1,0,0 -6,0,0,8 -3,-1,-4,6 --4,4,0,-5 -3,7,1,7 --5,0,6,7 -5,-5,2,3 -5,-7,2,1 --6,1,-3,-6 -7,8,-2,8 -5,4,0,6 --8,-3,4,-3 --3,-6,2,6 -1,4,2,5 -0,7,6,-5 --1,7,5,4 -4,-5,-4,0 --2,1,4,-7 --2,0,0,8 -7,0,1,1 --3,-7,8,6 --2,-8,6,7 -6,3,-4,5 -5,2,-5,8 -4,-2,5,-2 -8,5,-4,-4 -2,6,-7,6 --4,-2,-6,-5 -0,5,-6,-1 -5,3,4,3 -4,2,1,5 -6,-6,-8,3 --7,2,3,-2 -0,2,2,1 -0,1,2,3 --6,4,1,-4 -7,-4,-1,4 --5,3,-3,0 -3,8,-3,-4 --2,-3,4,2 -4,7,-2,4 -4,-4,-3,-8 -1,0,-2,-6 -6,7,-4,0 --2,-7,2,-2 -0,4,2,2 --4,8,-1,0 --4,5,1,1 --2,-8,-1,4 -2,3,-3,4 --8,-4,-5,0 --6,3,0,2 -6,-5,1,0 -4,-2,-8,4 -0,7,-5,-2 --7,-3,5,-1 -5,7,-4,1 --3,-3,3,5 -2,0,-4,-4 --7,0,6,6 -4,-4,-3,-1 --6,6,-1,-6 --1,2,1,-8 --2,3,4,6 -5,8,-4,-8 -0,5,0,-4 --5,-3,7,7 -5,4,5,-2 -4,-2,8,-5 --4,2,-7,4 -1,-8,4,-4 -7,8,-7,3 -2,7,-8,-5 --1,-5,6,-7 -5,-4,7,-2 -0,-3,0,6 -0,-7,-2,2 -4,8,0,-1 -0,-3,5,-3 -5,-6,0,4 -1,-7,2,-2 --1,0,-3,1 --4,0,4,-6 -5,3,7,3 -7,-4,7,-8 --3,-5,3,7 -0,-6,8,2 -4,-6,-1,8 -0,-7,0,-8 --4,5,0,6 -7,6,-6,2 --6,-5,-7,3 -0,-1,4,-8 -4,6,-4,4 --4,-2,5,4 --8,-8,0,4 -2,-8,4,-1 -2,4,0,0 --6,-1,8,7 --6,5,8,-5 --3,-5,-7,-3 -3,-1,-5,-7 -0,4,-4,-7 -2,-4,-1,-6 --6,-6,0,5 -0,6,3,-5 -0,-3,8,2 -7,-6,6,-1 --3,7,-4,-5 --3,1,3,7 -5,-2,-6,-7 --6,3,-1,8 -0,0,-4,-2 --8,2,3,-4 -0,-2,-4,0 -1,8,-3,-7 --2,-4,3,0 -3,-8,7,0 --1,-6,3,-4 -3,0,8,4 -3,3,-5,-6 -5,0,-1,-2 -7,1,-4,8 -4,-5,3,-2 -4,-4,0,8 --4,2,1,-8 --8,0,-7,-2 -4,-2,0,0 --8,3,7,-8 -8,-8,6,-5 --8,0,3,-5 -6,3,-2,-3 -4,0,-5,7 --1,-5,-6,2 -4,-1,-7,2 --8,-1,-2,0 -1,7,-7,-2 -5,0,-5,-7 -8,-3,6,-2 -1,-6,2,-3 -6,-1,6,3 --7,4,3,4 --7,-5,-5,-4 --7,2,-8,-4 --5,8,3,-3 -1,2,-3,4 --6,-5,-4,1 -5,4,5,7 -0,0,-1,-4 -5,-8,3,-1 -5,6,-5,0 --7,-3,-6,0 -2,-8,0,1 -1,4,-7,-8 --4,-7,-6,3 -0,1,-1,0 --6,-1,6,0 -1,6,-4,-2 -8,-3,0,0 --2,0,-3,7 -3,8,-4,3 --8,7,2,0 -1,4,-6,3 -5,-3,4,-4 --3,-5,5,5 --6,4,-2,2 --4,0,2,4 --7,1,6,1 --2,2,4,6 --5,-2,6,0 --1,4,8,0 -0,8,6,-6 --6,6,-4,-7 --6,-7,3,0 -4,-1,3,4 -0,-7,-4,-6 --6,-5,-5,0 --2,-5,-4,0 -2,0,-8,6 --1,1,0,0 --6,-4,-3,-1 -7,5,-7,1 --5,-1,3,3 -6,1,0,1 -6,7,6,7 --3,1,0,-3 --5,-1,-6,4 --5,1,1,8 -8,-1,-2,-6 -3,0,6,7 -0,8,4,0 --8,0,-2,5 --4,-3,-5,5 --5,3,2,5 --2,-3,0,-6 --3,-4,1,-2 -8,-4,-7,-6 -2,8,6,-7 -3,-1,1,-6 -0,-8,1,3 --2,-4,8,0 -7,-7,-3,5 -8,5,6,-5 --3,7,2,8 -6,-1,-7,1 --4,0,-2,-2 -7,8,1,-3 --2,5,8,6 --7,-5,0,3 --7,3,-1,6 -2,-1,-4,0 --8,-6,2,-8 --7,-5,-5,1 -0,-5,-4,4 -5,-2,-3,-8 --5,-8,1,4 -5,0,7,-4 -8,7,1,-1 --4,-1,-5,2 -4,8,-6,1 --3,2,3,4 --5,-2,1,3 --3,5,5,4 --6,4,-1,5 -6,1,3,0 -0,-4,-5,0 --4,4,2,6 --7,-8,-6,7 -8,4,5,1 -0,5,-3,-1 -3,6,5,-8 -1,8,3,-6 -3,-3,-5,-8 --7,5,-5,0 --6,4,0,-6 --7,7,6,-3 --3,-1,7,8 --7,-7,1,-4 --7,-1,-8,6 -6,0,-2,2 --5,-8,0,7 --5,-4,8,4 -1,5,4,2 -8,8,-2,6 --3,2,-2,1 --5,-2,1,-2 -8,8,-8,-4 --7,-8,8,-4 -0,-6,8,-2 --6,8,1,0 --8,0,8,-4 --6,5,1,2 -1,7,5,-2 --4,1,0,-7 -2,-8,3,7 --1,-6,-2,-1 -3,-5,-1,7 -0,-7,2,1 -0,8,2,0 --1,-2,-8,-2 -6,2,5,0 -7,-8,-8,0 --2,1,2,6 --3,-7,-4,2 -7,1,4,-3 -5,4,-1,1 -8,-8,8,-7 -3,7,7,-1 -0,-7,0,-4 --4,2,7,-7 --7,2,-5,7 -7,-3,2,0 --8,1,2,0 -5,8,8,-3 -0,7,-2,7 --3,0,0,-1 -6,8,3,-1 -1,0,-8,0 -8,-5,6,6 -3,0,0,3 -1,4,-4,4 --2,-5,-3,3 -7,3,-1,-1 -2,-5,1,-5 --3,-2,6,6 -0,7,-2,-2 -0,0,3,-7 --1,-7,2,-2 --6,-1,0,1 --4,1,1,8 --4,-6,1,1 -5,7,3,-3 -8,-2,4,2 -0,-6,5,-8 -4,5,0,-6 -1,0,-2,-1 --6,0,0,-6 --5,-7,-4,-6 --8,8,-5,-2 -1,-7,0,4 -4,6,8,1 --2,-6,6,6 -7,1,-6,0 --5,6,-4,0 --4,1,1,4 -8,-7,-1,4 --7,8,4,-2 -8,5,-7,3 -2,-5,5,-1 --5,-5,3,8 --5,-3,-7,6 -5,2,2,1 --1,-7,-5,2 -0,7,8,-5 -6,-4,5,0 --1,5,-2,8 --8,7,0,7 --4,8,-1,1 -5,-1,1,-2 -2,-3,8,0 -0,6,-1,1 --2,7,-7,8 --6,1,-1,6 -5,7,-6,0 --5,-1,-6,-6 --2,3,-8,-5 -1,5,-7,-8 -7,-5,-2,5 --5,7,5,-2 --5,0,0,7 --4,-4,0,0 --3,0,2,-7 -5,4,3,-1 --5,-7,7,5 --2,-3,4,5 --5,-3,4,2 --7,0,-5,3 -0,0,-8,8 -0,5,-7,4 --8,-3,8,-2 --5,8,-2,-5 --8,8,0,0 --8,-3,5,-1 --6,1,8,-3 -3,7,-6,3 --6,6,2,5 -1,-4,-3,0 --8,-8,5,3 -1,-4,8,-2 -4,7,3,1 -7,0,4,0 -0,3,-4,-2 --7,3,7,4 --4,-7,-1,3 -1,-7,2,1 -3,3,-5,-1 -5,-7,2,2 -1,-4,-4,0 --8,5,-3,-1 -3,-3,4,0 -7,0,4,-5 -0,1,1,2 -1,-5,6,-5 --3,2,7,7 --3,-3,6,2 -2,-2,0,-3 -3,8,-3,2 --1,1,3,-4 -2,7,4,8 -7,6,-1,6 -8,8,6,5 -2,8,-6,-7 --1,-3,-3,3 -4,0,-5,-1 --4,-4,-1,2 -2,-1,-2,-3 -3,3,-3,1 --1,3,2,2 -4,1,4,7 --1,-6,-4,2 --5,-5,2,-1 --2,2,0,-5 --1,-8,5,-2 --6,1,-1,-1 --8,-8,0,2 -7,8,-7,-1 --6,7,0,-6 --4,4,8,-7 -7,1,5,7 --5,2,2,-5 -1,-2,-3,0 -0,7,-8,-5 --1,0,-5,6 --6,1,-4,-3 -8,2,4,-7 -0,-3,0,-7 -6,-5,-8,-4 --3,4,-3,7 -0,-1,-8,2 -3,1,-8,0 --8,1,3,7 --7,1,8,6 -7,7,-3,7 -4,0,2,-3 -0,-2,1,-7 --7,6,-3,7 --3,8,-7,4 -6,4,2,5 -3,-3,6,-7 -6,-8,-3,-1 --2,-8,-8,4 --3,-2,1,6 -3,1,-1,-1 -8,6,7,5 -5,7,7,-8 --7,3,3,4 -8,6,-5,-4 -1,-4,-5,-3 -4,6,-6,-6 --3,4,0,7 -1,-4,-3,8 -3,-7,-2,1 -2,-4,4,8 --5,1,-7,5 -0,-5,0,3 -0,7,-8,5 --8,-2,1,3 --5,8,8,6 -0,5,4,-1 -0,-8,-7,8 -3,2,1,-7 -2,-3,4,1 -5,4,7,-3 --8,-3,7,-3 --2,5,6,-5 -5,0,0,-3 --4,6,6,1 -8,-2,-5,2 -0,4,-2,3 --8,-5,-8,6 --5,0,5,7 --7,1,-8,4 -7,2,6,-2 --2,-7,-2,6 --7,7,0,5 --5,-3,1,4 --4,8,2,3 --7,0,0,-6 -2,4,0,8 -2,7,7,0 -7,4,-4,-3 -2,7,5,7 --3,4,1,3 --2,-3,-3,1 -2,8,-1,8 -0,-7,6,8 -1,6,5,5 --8,-6,-6,-5 -6,-8,-8,-1 --8,3,3,3 -5,-7,7,-2 -5,8,1,6 -0,2,3,5 --2,7,-7,-3 --5,6,1,-5 -6,7,-1,4 -8,-3,6,-7 -5,0,-8,3 -0,6,2,0 --8,-6,-6,5 -0,7,2,-3 -1,-4,6,-7 --6,7,0,4 -4,-4,0,4 -6,3,7,-2 -3,-8,2,3 -0,5,3,-8 -2,6,7,4 -2,-7,-5,1 --8,-3,-2,4 --7,-7,0,4 --4,-5,-6,1 --6,-6,0,-3 --8,8,-3,-4 --6,7,1,-6 --5,4,0,7 --4,-1,5,3 -5,-7,3,1 -0,-4,-6,-3 -6,-6,-1,-5 -3,1,5,-3 --1,1,2,-3 -0,7,-1,-7 --8,0,8,0 -0,8,0,-6 -2,-7,2,0 -0,-1,-2,-7 --2,0,1,1 -1,-7,8,4 -3,-6,0,7 -0,0,-5,4 -2,-7,0,6 --6,4,5,-7 --3,5,7,4 --2,-1,7,8 --7,0,-2,-4 -3,-6,6,0 -5,-4,-4,4 -6,8,8,-3 -6,-6,-6,3 -2,-3,-3,-3 -8,-5,-2,0 --3,5,7,-4 --7,-8,1,5 -0,-1,-1,-1 -8,1,7,-8 -4,4,2,4 -6,2,-1,2 --5,6,-6,5 --2,-5,-3,4 -6,-3,-4,0 -8,8,-5,-7 -2,2,0,-3 --5,-8,1,2 -7,-6,-2,8 --5,0,-3,3 --2,7,-4,-5 -8,-1,-6,1 -7,6,-1,-4 --3,0,2,1 -0,0,5,0 --1,8,-2,3 --3,2,1,-8 -1,7,-7,0 -1,4,-1,0 -6,-4,3,-2 --1,-6,-2,2 --2,2,2,2 -2,0,-3,5 --4,1,-8,-3 --4,1,5,-7 --6,8,1,4 -5,3,0,1 --8,-7,7,-1 --8,-3,1,-7 -0,2,4,7 -6,7,2,-8 -4,1,2,8 -3,-2,1,-5 -8,2,-7,6 -8,0,5,3 --7,4,8,-7 -3,8,-1,-7 --1,-5,-2,0 --3,0,6,3 -6,5,-3,-2 -1,8,7,-2 --4,-1,-7,-2 --6,-1,8,3 -8,-1,5,-6 -5,0,5,2 --4,8,0,-1 --5,2,7,-3 -5,-2,-6,5 -4,-4,4,0 --7,-1,-5,-5 --8,-5,4,5 -4,-6,-8,3 -7,2,7,-5 -1,6,2,-3 --3,3,-8,0 -1,-6,7,-3 --5,8,6,-3 --3,-2,-4,-6 -7,-7,-2,1 -5,4,-7,-1 -3,-4,-5,-1 --1,-5,6,-1 --8,4,-5,1 diff --git a/2018/inputs/3.txt b/2018/inputs/3.txt deleted file mode 100644 index 4701818..0000000 --- a/2018/inputs/3.txt +++ /dev/null @@ -1,1385 +0,0 @@ -#1 @ 342,645: 25x20 -#2 @ 124,968: 28x19 -#3 @ 680,765: 26x20 -#4 @ 832,699: 12x15 -#5 @ 4,746: 29x14 -#6 @ 926,115: 19x17 -#7 @ 662,587: 28x12 -#8 @ 532,568: 27x23 -#9 @ 860,23: 16x21 -#10 @ 530,562: 12x27 -#11 @ 15,254: 10x27 -#12 @ 375,611: 18x10 -#13 @ 357,389: 22x23 -#14 @ 483,392: 14x16 -#15 @ 426,705: 17x13 -#16 @ 273,918: 23x28 -#17 @ 873,722: 13x13 -#18 @ 429,749: 12x25 -#19 @ 701,937: 14x11 -#20 @ 89,231: 23x26 -#21 @ 704,220: 10x27 -#22 @ 481,847: 21x24 -#23 @ 9,378: 14x19 -#24 @ 682,442: 10x21 -#25 @ 242,63: 21x23 -#26 @ 748,871: 20x13 -#27 @ 784,338: 25x25 -#28 @ 966,669: 20x20 -#29 @ 589,833: 22x25 -#30 @ 489,489: 16x24 -#31 @ 976,478: 4x4 -#32 @ 739,826: 13x15 -#33 @ 783,753: 21x17 -#34 @ 433,367: 22x11 -#35 @ 32,841: 10x20 -#36 @ 258,497: 26x28 -#37 @ 632,776: 18x25 -#38 @ 517,389: 20x14 -#39 @ 446,740: 19x26 -#40 @ 667,455: 15x14 -#41 @ 664,252: 25x26 -#42 @ 227,45: 29x21 -#43 @ 127,138: 29x27 -#44 @ 466,308: 19x17 -#45 @ 356,134: 12x19 -#46 @ 609,640: 28x24 -#47 @ 677,228: 16x27 -#48 @ 149,610: 10x28 -#49 @ 863,498: 21x28 -#50 @ 913,511: 12x27 -#51 @ 748,761: 24x11 -#52 @ 802,288: 10x22 -#53 @ 26,442: 29x20 -#54 @ 85,464: 20x21 -#55 @ 262,944: 21x18 -#56 @ 876,753: 15x10 -#57 @ 105,199: 23x19 -#58 @ 335,848: 23x24 -#59 @ 467,537: 24x22 -#60 @ 552,217: 14x13 -#61 @ 534,820: 10x19 -#62 @ 261,579: 25x13 -#63 @ 541,445: 19x17 -#64 @ 869,769: 28x11 -#65 @ 447,668: 25x26 -#66 @ 42,734: 18x16 -#67 @ 553,233: 13x13 -#68 @ 47,861: 12x16 -#69 @ 33,834: 21x14 -#70 @ 240,174: 29x13 -#71 @ 611,362: 24x14 -#72 @ 899,371: 21x21 -#73 @ 340,5: 23x23 -#74 @ 69,246: 14x18 -#75 @ 432,558: 11x10 -#76 @ 737,175: 27x20 -#77 @ 623,365: 15x22 -#78 @ 666,453: 26x28 -#79 @ 368,774: 25x10 -#80 @ 923,879: 18x16 -#81 @ 37,315: 16x23 -#82 @ 119,279: 18x26 -#83 @ 928,850: 20x18 -#84 @ 896,902: 18x16 -#85 @ 332,590: 28x13 -#86 @ 902,815: 27x21 -#87 @ 215,508: 19x12 -#88 @ 981,57: 10x15 -#89 @ 706,393: 21x24 -#90 @ 975,369: 10x11 -#91 @ 635,845: 29x18 -#92 @ 831,543: 15x16 -#93 @ 296,865: 19x10 -#94 @ 889,189: 24x19 -#95 @ 59,749: 11x22 -#96 @ 739,946: 24x27 -#97 @ 536,759: 27x29 -#98 @ 982,234: 17x11 -#99 @ 639,615: 26x25 -#100 @ 867,397: 26x29 -#101 @ 881,784: 19x19 -#102 @ 215,912: 22x28 -#103 @ 127,336: 10x15 -#104 @ 313,729: 15x12 -#105 @ 695,74: 17x28 -#106 @ 748,187: 11x16 -#107 @ 809,2: 16x27 -#108 @ 891,192: 17x18 -#109 @ 72,920: 16x20 -#110 @ 41,967: 22x28 -#111 @ 91,733: 22x20 -#112 @ 464,641: 13x13 -#113 @ 464,860: 17x10 -#114 @ 623,106: 13x28 -#115 @ 358,85: 24x21 -#116 @ 774,944: 19x28 -#117 @ 752,587: 11x20 -#118 @ 635,103: 25x11 -#119 @ 498,36: 17x11 -#120 @ 227,659: 15x13 -#121 @ 924,553: 13x13 -#122 @ 775,297: 23x24 -#123 @ 479,866: 10x11 -#124 @ 387,798: 11x28 -#125 @ 526,847: 19x27 -#126 @ 747,861: 11x25 -#127 @ 789,652: 14x10 -#128 @ 419,7: 17x13 -#129 @ 356,142: 26x10 -#130 @ 436,239: 14x27 -#131 @ 555,710: 14x23 -#132 @ 871,447: 13x27 -#133 @ 473,730: 14x14 -#134 @ 558,170: 16x18 -#135 @ 888,882: 29x25 -#136 @ 834,147: 24x18 -#137 @ 721,467: 28x12 -#138 @ 223,105: 28x26 -#139 @ 285,326: 28x23 -#140 @ 584,300: 3x6 -#141 @ 710,754: 23x21 -#142 @ 283,892: 21x14 -#143 @ 448,894: 18x3 -#144 @ 380,479: 16x15 -#145 @ 703,57: 16x20 -#146 @ 692,448: 24x11 -#147 @ 926,350: 20x26 -#148 @ 167,528: 25x12 -#149 @ 444,722: 28x21 -#150 @ 166,183: 15x18 -#151 @ 546,472: 29x18 -#152 @ 532,900: 12x22 -#153 @ 215,490: 29x20 -#154 @ 678,458: 25x23 -#155 @ 601,462: 24x11 -#156 @ 484,514: 12x11 -#157 @ 863,763: 10x18 -#158 @ 653,452: 16x23 -#159 @ 464,302: 13x21 -#160 @ 868,65: 21x18 -#161 @ 227,824: 20x11 -#162 @ 111,629: 29x19 -#163 @ 55,554: 27x21 -#164 @ 0,757: 21x17 -#165 @ 418,861: 13x16 -#166 @ 932,903: 12x16 -#167 @ 429,772: 11x14 -#168 @ 706,805: 11x23 -#169 @ 487,24: 26x15 -#170 @ 806,900: 16x16 -#171 @ 580,719: 24x22 -#172 @ 458,481: 20x17 -#173 @ 343,488: 18x11 -#174 @ 734,342: 12x27 -#175 @ 320,439: 4x3 -#176 @ 446,635: 26x25 -#177 @ 552,683: 11x23 -#178 @ 181,168: 26x24 -#179 @ 851,583: 27x28 -#180 @ 879,363: 10x11 -#181 @ 884,139: 11x21 -#182 @ 912,88: 24x27 -#183 @ 52,35: 22x18 -#184 @ 657,705: 11x14 -#185 @ 370,777: 11x17 -#186 @ 801,354: 21x24 -#187 @ 773,546: 16x20 -#188 @ 888,322: 19x11 -#189 @ 807,788: 27x13 -#190 @ 465,956: 19x29 -#191 @ 369,770: 13x21 -#192 @ 311,137: 12x14 -#193 @ 148,150: 19x29 -#194 @ 389,613: 28x25 -#195 @ 429,373: 10x25 -#196 @ 892,148: 20x15 -#197 @ 890,271: 11x19 -#198 @ 58,861: 18x19 -#199 @ 449,255: 9x5 -#200 @ 257,887: 27x15 -#201 @ 383,616: 20x18 -#202 @ 663,657: 18x21 -#203 @ 331,648: 25x13 -#204 @ 509,53: 10x28 -#205 @ 86,287: 15x20 -#206 @ 753,190: 20x20 -#207 @ 922,527: 19x12 -#208 @ 132,948: 20x26 -#209 @ 883,786: 15x21 -#210 @ 117,592: 27x15 -#211 @ 960,611: 13x22 -#212 @ 829,769: 14x19 -#213 @ 669,686: 17x13 -#214 @ 276,787: 27x10 -#215 @ 619,909: 18x22 -#216 @ 418,209: 21x25 -#217 @ 231,831: 27x18 -#218 @ 336,538: 22x18 -#219 @ 180,783: 14x23 -#220 @ 609,263: 22x10 -#221 @ 360,982: 21x16 -#222 @ 775,813: 14x26 -#223 @ 906,198: 10x24 -#224 @ 937,144: 28x28 -#225 @ 475,903: 24x12 -#226 @ 887,149: 11x16 -#227 @ 927,259: 20x25 -#228 @ 71,862: 29x26 -#229 @ 136,954: 26x17 -#230 @ 721,827: 15x13 -#231 @ 769,931: 21x25 -#232 @ 728,119: 13x28 -#233 @ 654,942: 13x27 -#234 @ 434,737: 18x13 -#235 @ 672,331: 27x20 -#236 @ 816,17: 25x21 -#237 @ 251,781: 28x20 -#238 @ 342,209: 16x10 -#239 @ 581,434: 23x22 -#240 @ 782,100: 14x11 -#241 @ 878,831: 14x12 -#242 @ 667,233: 19x28 -#243 @ 237,650: 28x24 -#244 @ 425,738: 11x15 -#245 @ 936,470: 23x23 -#246 @ 68,321: 21x19 -#247 @ 356,539: 27x29 -#248 @ 945,353: 18x23 -#249 @ 906,933: 22x28 -#250 @ 360,812: 10x29 -#251 @ 884,774: 17x27 -#252 @ 413,769: 23x20 -#253 @ 594,75: 21x15 -#254 @ 676,702: 15x11 -#255 @ 233,529: 27x25 -#256 @ 173,236: 15x17 -#257 @ 907,949: 16x13 -#258 @ 809,570: 24x10 -#259 @ 67,678: 29x22 -#260 @ 176,951: 25x18 -#261 @ 754,625: 10x18 -#262 @ 142,270: 26x29 -#263 @ 558,673: 24x19 -#264 @ 224,27: 24x14 -#265 @ 725,829: 7x6 -#266 @ 703,941: 9x3 -#267 @ 880,864: 28x27 -#268 @ 727,445: 25x24 -#269 @ 747,520: 17x15 -#270 @ 850,410: 26x21 -#271 @ 363,964: 10x16 -#272 @ 752,721: 23x16 -#273 @ 295,351: 26x20 -#274 @ 899,877: 26x16 -#275 @ 95,804: 20x28 -#276 @ 543,866: 20x16 -#277 @ 917,887: 19x27 -#278 @ 449,474: 16x22 -#279 @ 673,459: 28x23 -#280 @ 971,786: 13x17 -#281 @ 42,176: 21x18 -#282 @ 531,886: 15x13 -#283 @ 679,438: 15x22 -#284 @ 161,659: 19x25 -#285 @ 838,148: 15x23 -#286 @ 496,732: 26x14 -#287 @ 482,256: 19x26 -#288 @ 389,941: 27x25 -#289 @ 352,255: 23x15 -#290 @ 825,688: 25x24 -#291 @ 894,313: 23x20 -#292 @ 906,553: 21x17 -#293 @ 293,130: 21x13 -#294 @ 549,80: 25x18 -#295 @ 85,871: 20x10 -#296 @ 876,734: 20x24 -#297 @ 831,935: 14x17 -#298 @ 618,819: 23x20 -#299 @ 750,70: 24x14 -#300 @ 749,711: 22x17 -#301 @ 555,801: 17x12 -#302 @ 544,64: 28x21 -#303 @ 114,413: 21x22 -#304 @ 215,526: 13x21 -#305 @ 147,31: 25x12 -#306 @ 679,427: 18x17 -#307 @ 634,930: 23x24 -#308 @ 41,419: 21x28 -#309 @ 892,162: 18x24 -#310 @ 812,886: 19x14 -#311 @ 440,700: 28x13 -#312 @ 586,832: 28x21 -#313 @ 255,687: 13x22 -#314 @ 945,879: 22x16 -#315 @ 480,731: 18x11 -#316 @ 738,731: 15x10 -#317 @ 528,621: 11x16 -#318 @ 243,787: 28x26 -#319 @ 512,493: 22x13 -#320 @ 762,692: 27x11 -#321 @ 316,57: 12x14 -#322 @ 410,860: 17x12 -#323 @ 772,591: 14x24 -#324 @ 813,221: 13x11 -#325 @ 161,271: 12x14 -#326 @ 520,597: 26x19 -#327 @ 577,129: 25x20 -#328 @ 448,31: 10x15 -#329 @ 594,33: 16x27 -#330 @ 170,498: 25x19 -#331 @ 882,833: 6x4 -#332 @ 190,548: 12x26 -#333 @ 639,879: 28x25 -#334 @ 473,817: 19x26 -#335 @ 543,458: 11x23 -#336 @ 676,657: 26x25 -#337 @ 786,353: 28x17 -#338 @ 873,508: 14x17 -#339 @ 208,782: 17x27 -#340 @ 392,542: 10x26 -#341 @ 672,650: 29x23 -#342 @ 446,637: 20x18 -#343 @ 534,58: 16x15 -#344 @ 696,760: 23x17 -#345 @ 265,767: 18x15 -#346 @ 105,750: 12x16 -#347 @ 731,438: 28x10 -#348 @ 535,833: 24x21 -#349 @ 72,531: 18x28 -#350 @ 640,734: 27x21 -#351 @ 156,265: 15x16 -#352 @ 227,299: 24x22 -#353 @ 552,492: 11x29 -#354 @ 605,95: 14x20 -#355 @ 665,490: 11x25 -#356 @ 456,289: 25x12 -#357 @ 876,516: 13x18 -#358 @ 26,163: 20x28 -#359 @ 228,769: 19x11 -#360 @ 766,766: 16x12 -#361 @ 167,654: 13x28 -#362 @ 728,185: 20x25 -#363 @ 321,340: 23x20 -#364 @ 327,175: 18x14 -#365 @ 83,860: 10x19 -#366 @ 361,177: 20x24 -#367 @ 282,505: 18x16 -#368 @ 780,44: 29x28 -#369 @ 854,406: 15x25 -#370 @ 142,928: 10x19 -#371 @ 114,594: 11x20 -#372 @ 775,78: 26x24 -#373 @ 264,791: 28x12 -#374 @ 789,217: 24x20 -#375 @ 931,559: 19x22 -#376 @ 523,549: 22x20 -#377 @ 744,356: 23x24 -#378 @ 630,746: 25x11 -#379 @ 339,201: 11x28 -#380 @ 777,698: 25x14 -#381 @ 198,933: 29x21 -#382 @ 222,919: 27x25 -#383 @ 356,648: 16x19 -#384 @ 237,915: 10x12 -#385 @ 10,864: 17x26 -#386 @ 494,808: 29x23 -#387 @ 440,547: 24x25 -#388 @ 688,247: 10x16 -#389 @ 95,580: 16x19 -#390 @ 374,8: 12x27 -#391 @ 287,332: 20x26 -#392 @ 453,940: 24x22 -#393 @ 344,878: 10x22 -#394 @ 541,277: 16x18 -#395 @ 965,360: 24x12 -#396 @ 280,878: 21x20 -#397 @ 680,384: 25x19 -#398 @ 670,76: 12x12 -#399 @ 540,457: 18x20 -#400 @ 524,406: 17x16 -#401 @ 625,272: 25x22 -#402 @ 100,906: 26x12 -#403 @ 281,871: 7x10 -#404 @ 275,849: 21x26 -#405 @ 357,559: 13x13 -#406 @ 918,753: 25x21 -#407 @ 270,837: 25x17 -#408 @ 780,84: 20x20 -#409 @ 503,893: 11x13 -#410 @ 154,609: 12x23 -#411 @ 871,739: 21x22 -#412 @ 529,698: 27x27 -#413 @ 376,844: 14x23 -#414 @ 498,876: 13x21 -#415 @ 893,958: 15x27 -#416 @ 635,498: 20x20 -#417 @ 571,884: 24x21 -#418 @ 336,586: 24x24 -#419 @ 0,206: 29x16 -#420 @ 655,64: 24x11 -#421 @ 436,648: 28x16 -#422 @ 952,593: 17x11 -#423 @ 643,6: 17x18 -#424 @ 224,166: 29x11 -#425 @ 818,905: 15x14 -#426 @ 18,863: 18x11 -#427 @ 497,902: 15x10 -#428 @ 564,545: 16x29 -#429 @ 657,446: 18x20 -#430 @ 245,25: 17x11 -#431 @ 936,346: 23x24 -#432 @ 127,152: 24x19 -#433 @ 563,928: 19x27 -#434 @ 684,407: 27x13 -#435 @ 737,584: 15x15 -#436 @ 644,837: 16x14 -#437 @ 702,978: 20x15 -#438 @ 422,65: 11x16 -#439 @ 121,142: 13x20 -#440 @ 68,437: 19x16 -#441 @ 121,382: 24x28 -#442 @ 805,910: 29x14 -#443 @ 795,432: 21x20 -#444 @ 269,735: 25x22 -#445 @ 226,877: 11x17 -#446 @ 550,450: 29x18 -#447 @ 606,726: 14x25 -#448 @ 46,546: 10x19 -#449 @ 320,95: 11x25 -#450 @ 935,419: 12x15 -#451 @ 453,862: 13x16 -#452 @ 315,500: 23x12 -#453 @ 181,127: 17x18 -#454 @ 243,907: 19x13 -#455 @ 263,960: 29x22 -#456 @ 509,159: 14x17 -#457 @ 486,810: 23x21 -#458 @ 560,945: 25x13 -#459 @ 6,400: 24x28 -#460 @ 368,783: 17x23 -#461 @ 75,792: 26x29 -#462 @ 543,395: 22x23 -#463 @ 47,464: 19x10 -#464 @ 342,494: 27x24 -#465 @ 911,861: 19x25 -#466 @ 94,272: 23x23 -#467 @ 420,516: 15x26 -#468 @ 146,233: 20x27 -#469 @ 201,907: 10x23 -#470 @ 446,887: 23x16 -#471 @ 468,702: 14x27 -#472 @ 799,865: 23x25 -#473 @ 451,242: 27x20 -#474 @ 915,801: 28x27 -#475 @ 471,445: 23x16 -#476 @ 381,751: 26x28 -#477 @ 903,539: 23x21 -#478 @ 621,280: 13x26 -#479 @ 658,132: 27x19 -#480 @ 136,639: 22x26 -#481 @ 24,185: 22x23 -#482 @ 732,779: 25x25 -#483 @ 760,858: 20x22 -#484 @ 24,408: 26x19 -#485 @ 457,627: 20x16 -#486 @ 353,284: 20x10 -#487 @ 920,899: 10x3 -#488 @ 436,694: 11x17 -#489 @ 849,162: 17x16 -#490 @ 786,236: 27x20 -#491 @ 709,245: 11x28 -#492 @ 462,389: 13x17 -#493 @ 738,88: 27x21 -#494 @ 111,617: 24x24 -#495 @ 896,764: 11x23 -#496 @ 473,321: 23x16 -#497 @ 589,67: 17x16 -#498 @ 183,298: 18x17 -#499 @ 557,675: 10x11 -#500 @ 875,298: 21x17 -#501 @ 128,420: 18x25 -#502 @ 158,17: 27x26 -#503 @ 966,380: 13x29 -#504 @ 571,449: 15x28 -#505 @ 968,404: 12x27 -#506 @ 722,350: 10x24 -#507 @ 247,595: 17x25 -#508 @ 65,734: 22x21 -#509 @ 411,715: 25x12 -#510 @ 123,742: 15x12 -#511 @ 439,687: 19x12 -#512 @ 829,932: 12x13 -#513 @ 893,146: 23x19 -#514 @ 861,131: 15x23 -#515 @ 551,85: 20x7 -#516 @ 957,437: 22x17 -#517 @ 777,65: 22x24 -#518 @ 638,851: 24x21 -#519 @ 116,492: 12x29 -#520 @ 187,785: 3x18 -#521 @ 791,56: 17x27 -#522 @ 406,108: 28x28 -#523 @ 695,252: 21x16 -#524 @ 498,247: 24x17 -#525 @ 301,235: 19x27 -#526 @ 14,173: 13x10 -#527 @ 116,587: 11x29 -#528 @ 170,247: 18x22 -#529 @ 714,745: 20x23 -#530 @ 682,474: 27x19 -#531 @ 838,605: 23x22 -#532 @ 684,330: 20x18 -#533 @ 754,852: 27x25 -#534 @ 885,197: 24x26 -#535 @ 97,256: 16x18 -#536 @ 604,669: 20x19 -#537 @ 612,14: 18x29 -#538 @ 278,738: 8x14 -#539 @ 102,976: 13x15 -#540 @ 50,860: 16x12 -#541 @ 574,411: 16x22 -#542 @ 124,894: 26x20 -#543 @ 848,521: 25x25 -#544 @ 271,287: 25x27 -#545 @ 253,656: 21x16 -#546 @ 547,979: 18x11 -#547 @ 444,332: 12x26 -#548 @ 106,753: 15x16 -#549 @ 886,615: 14x15 -#550 @ 549,216: 27x24 -#551 @ 481,720: 23x13 -#552 @ 505,7: 17x22 -#553 @ 539,106: 28x27 -#554 @ 395,174: 24x12 -#555 @ 547,490: 10x22 -#556 @ 950,79: 21x12 -#557 @ 529,817: 12x23 -#558 @ 40,270: 19x24 -#559 @ 556,127: 25x14 -#560 @ 407,39: 16x26 -#561 @ 130,852: 29x14 -#562 @ 144,368: 27x22 -#563 @ 980,174: 18x22 -#564 @ 285,98: 16x24 -#565 @ 648,686: 16x26 -#566 @ 361,487: 21x16 -#567 @ 471,380: 23x14 -#568 @ 167,331: 23x25 -#569 @ 768,773: 14x16 -#570 @ 328,13: 29x15 -#571 @ 444,697: 14x17 -#572 @ 215,301: 27x27 -#573 @ 238,207: 23x14 -#574 @ 252,346: 21x20 -#575 @ 910,272: 11x18 -#576 @ 751,833: 18x13 -#577 @ 781,221: 10x17 -#578 @ 538,775: 14x26 -#579 @ 982,705: 11x21 -#580 @ 205,805: 25x27 -#581 @ 948,713: 21x12 -#582 @ 647,249: 11x20 -#583 @ 841,156: 19x21 -#584 @ 401,835: 13x28 -#585 @ 637,819: 24x12 -#586 @ 286,241: 19x23 -#587 @ 661,878: 15x24 -#588 @ 115,774: 19x14 -#589 @ 353,655: 22x14 -#590 @ 838,616: 25x23 -#591 @ 573,395: 28x27 -#592 @ 321,67: 26x13 -#593 @ 371,931: 17x19 -#594 @ 765,719: 24x10 -#595 @ 595,574: 21x21 -#596 @ 346,497: 10x16 -#597 @ 67,869: 16x19 -#598 @ 133,284: 10x25 -#599 @ 464,174: 20x25 -#600 @ 613,82: 29x28 -#601 @ 98,519: 27x12 -#602 @ 896,934: 14x17 -#603 @ 645,205: 23x23 -#604 @ 810,96: 9x15 -#605 @ 91,464: 14x23 -#606 @ 798,67: 18x21 -#607 @ 560,243: 27x20 -#608 @ 486,52: 14x12 -#609 @ 623,174: 11x20 -#610 @ 203,404: 10x14 -#611 @ 927,293: 12x10 -#612 @ 457,860: 26x14 -#613 @ 690,648: 13x15 -#614 @ 673,615: 23x22 -#615 @ 399,718: 16x14 -#616 @ 309,695: 23x17 -#617 @ 881,450: 10x24 -#618 @ 879,295: 12x29 -#619 @ 914,865: 5x4 -#620 @ 692,653: 28x26 -#621 @ 468,183: 19x11 -#622 @ 487,258: 13x25 -#623 @ 458,724: 13x16 -#624 @ 793,416: 28x23 -#625 @ 804,843: 28x13 -#626 @ 345,711: 15x20 -#627 @ 679,461: 28x23 -#628 @ 652,655: 20x20 -#629 @ 330,343: 12x13 -#630 @ 919,801: 16x11 -#631 @ 974,473: 10x28 -#632 @ 112,537: 11x18 -#633 @ 680,494: 23x25 -#634 @ 307,283: 16x28 -#635 @ 904,314: 11x25 -#636 @ 718,778: 12x22 -#637 @ 30,550: 23x25 -#638 @ 146,964: 14x18 -#639 @ 167,242: 28x19 -#640 @ 228,443: 17x15 -#641 @ 914,547: 10x15 -#642 @ 931,708: 23x23 -#643 @ 105,180: 16x10 -#644 @ 455,283: 14x16 -#645 @ 491,723: 28x17 -#646 @ 618,6: 17x27 -#647 @ 635,361: 24x25 -#648 @ 883,585: 26x16 -#649 @ 131,346: 17x26 -#650 @ 78,25: 22x12 -#651 @ 611,643: 28x22 -#652 @ 647,114: 15x23 -#653 @ 229,550: 21x28 -#654 @ 190,124: 15x14 -#655 @ 903,330: 13x16 -#656 @ 750,722: 20x19 -#657 @ 26,456: 25x13 -#658 @ 414,283: 16x16 -#659 @ 940,221: 28x25 -#660 @ 585,932: 20x18 -#661 @ 96,398: 20x17 -#662 @ 371,915: 12x19 -#663 @ 819,706: 22x25 -#664 @ 347,500: 15x9 -#665 @ 275,85: 24x10 -#666 @ 435,743: 26x26 -#667 @ 535,568: 22x20 -#668 @ 46,389: 17x25 -#669 @ 584,880: 24x18 -#670 @ 630,266: 18x18 -#671 @ 431,377: 26x14 -#672 @ 559,677: 4x3 -#673 @ 701,439: 16x14 -#674 @ 829,446: 20x11 -#675 @ 555,565: 20x13 -#676 @ 917,846: 14x17 -#677 @ 593,676: 18x16 -#678 @ 542,798: 20x19 -#679 @ 6,372: 24x29 -#680 @ 578,809: 24x24 -#681 @ 64,522: 11x4 -#682 @ 591,896: 13x26 -#683 @ 932,572: 11x25 -#684 @ 867,131: 27x19 -#685 @ 495,889: 23x22 -#686 @ 367,827: 21x13 -#687 @ 232,45: 18x28 -#688 @ 704,711: 11x27 -#689 @ 309,517: 23x13 -#690 @ 429,199: 17x11 -#691 @ 717,52: 20x15 -#692 @ 912,877: 27x25 -#693 @ 447,764: 16x11 -#694 @ 799,769: 28x22 -#695 @ 361,912: 27x26 -#696 @ 891,829: 10x28 -#697 @ 233,895: 20x23 -#698 @ 806,276: 16x13 -#699 @ 377,966: 21x18 -#700 @ 792,875: 20x22 -#701 @ 255,807: 18x19 -#702 @ 634,238: 15x26 -#703 @ 492,519: 13x24 -#704 @ 953,632: 19x26 -#705 @ 684,587: 10x17 -#706 @ 391,424: 16x17 -#707 @ 654,158: 14x27 -#708 @ 118,638: 23x11 -#709 @ 302,282: 17x13 -#710 @ 662,54: 14x19 -#711 @ 909,835: 14x23 -#712 @ 558,971: 18x11 -#713 @ 90,774: 11x28 -#714 @ 745,346: 15x11 -#715 @ 488,860: 22x14 -#716 @ 848,568: 26x23 -#717 @ 6,625: 28x25 -#718 @ 34,388: 15x18 -#719 @ 965,778: 23x24 -#720 @ 103,500: 20x18 -#721 @ 506,222: 29x17 -#722 @ 226,197: 24x25 -#723 @ 129,939: 15x25 -#724 @ 140,644: 11x18 -#725 @ 905,904: 20x25 -#726 @ 423,276: 13x12 -#727 @ 62,511: 17x24 -#728 @ 932,814: 19x26 -#729 @ 9,810: 11x26 -#730 @ 32,624: 16x20 -#731 @ 967,236: 28x18 -#732 @ 616,948: 27x12 -#733 @ 714,733: 15x17 -#734 @ 277,783: 25x24 -#735 @ 482,675: 16x12 -#736 @ 862,11: 19x26 -#737 @ 667,668: 27x15 -#738 @ 131,406: 13x28 -#739 @ 707,788: 26x27 -#740 @ 859,505: 21x21 -#741 @ 968,785: 4x6 -#742 @ 813,939: 11x27 -#743 @ 611,781: 28x17 -#744 @ 298,82: 28x27 -#745 @ 352,828: 16x27 -#746 @ 920,831: 20x23 -#747 @ 967,694: 19x29 -#748 @ 370,50: 25x18 -#749 @ 545,724: 13x16 -#750 @ 102,391: 13x22 -#751 @ 904,122: 22x19 -#752 @ 118,439: 23x10 -#753 @ 793,859: 23x27 -#754 @ 722,798: 27x29 -#755 @ 97,774: 24x10 -#756 @ 326,707: 26x14 -#757 @ 559,909: 28x14 -#758 @ 33,822: 29x21 -#759 @ 508,227: 24x7 -#760 @ 115,427: 26x16 -#761 @ 665,766: 27x25 -#762 @ 303,847: 19x28 -#763 @ 157,535: 19x12 -#764 @ 968,680: 18x10 -#765 @ 668,464: 20x9 -#766 @ 114,534: 27x10 -#767 @ 841,609: 17x21 -#768 @ 972,671: 20x13 -#769 @ 490,506: 27x18 -#770 @ 0,407: 13x26 -#771 @ 626,219: 11x14 -#772 @ 174,512: 12x24 -#773 @ 162,251: 10x18 -#774 @ 612,206: 11x25 -#775 @ 97,517: 11x10 -#776 @ 31,916: 11x17 -#777 @ 261,148: 17x16 -#778 @ 815,577: 26x24 -#779 @ 545,521: 29x23 -#780 @ 842,800: 25x23 -#781 @ 391,437: 23x20 -#782 @ 333,886: 20x14 -#783 @ 109,171: 11x14 -#784 @ 344,483: 28x16 -#785 @ 581,195: 15x24 -#786 @ 608,372: 12x13 -#787 @ 740,279: 14x18 -#788 @ 653,626: 27x22 -#789 @ 308,182: 24x20 -#790 @ 899,219: 16x12 -#791 @ 515,556: 21x11 -#792 @ 171,0: 18x29 -#793 @ 204,304: 27x14 -#794 @ 488,289: 25x25 -#795 @ 479,382: 14x18 -#796 @ 626,889: 25x11 -#797 @ 604,948: 16x10 -#798 @ 182,277: 21x18 -#799 @ 623,205: 24x20 -#800 @ 720,654: 11x25 -#801 @ 731,103: 26x17 -#802 @ 829,581: 14x25 -#803 @ 431,738: 17x29 -#804 @ 524,620: 15x12 -#805 @ 512,539: 23x23 -#806 @ 829,943: 29x18 -#807 @ 93,176: 13x26 -#808 @ 883,796: 12x12 -#809 @ 214,543: 28x16 -#810 @ 518,231: 15x14 -#811 @ 213,502: 21x20 -#812 @ 255,598: 10x22 -#813 @ 352,477: 24x16 -#814 @ 664,653: 15x20 -#815 @ 741,338: 28x26 -#816 @ 361,174: 25x22 -#817 @ 101,582: 14x27 -#818 @ 237,103: 13x12 -#819 @ 814,157: 20x17 -#820 @ 182,216: 28x21 -#821 @ 194,282: 17x18 -#822 @ 247,657: 20x14 -#823 @ 0,647: 14x29 -#824 @ 899,959: 12x23 -#825 @ 151,90: 20x20 -#826 @ 341,562: 25x22 -#827 @ 895,137: 28x18 -#828 @ 853,703: 16x11 -#829 @ 8,934: 11x17 -#830 @ 395,528: 28x13 -#831 @ 874,122: 13x28 -#832 @ 605,187: 19x17 -#833 @ 684,219: 24x24 -#834 @ 382,885: 13x21 -#835 @ 751,858: 19x21 -#836 @ 518,38: 11x27 -#837 @ 812,383: 21x28 -#838 @ 904,886: 21x19 -#839 @ 356,751: 25x24 -#840 @ 586,554: 28x20 -#841 @ 98,582: 10x25 -#842 @ 438,552: 11x21 -#843 @ 231,601: 20x20 -#844 @ 906,176: 11x21 -#845 @ 237,52: 12x23 -#846 @ 81,19: 15x21 -#847 @ 600,731: 19x14 -#848 @ 553,43: 10x22 -#849 @ 703,825: 14x21 -#850 @ 193,283: 10x26 -#851 @ 73,407: 22x26 -#852 @ 226,602: 25x21 -#853 @ 515,223: 26x15 -#854 @ 95,363: 28x13 -#855 @ 927,2: 28x22 -#856 @ 457,470: 16x13 -#857 @ 67,23: 24x14 -#858 @ 435,244: 10x16 -#859 @ 640,450: 29x22 -#860 @ 385,778: 16x23 -#861 @ 734,157: 23x25 -#862 @ 516,727: 11x15 -#863 @ 488,733: 16x12 -#864 @ 83,719: 19x21 -#865 @ 530,287: 15x15 -#866 @ 729,671: 24x16 -#867 @ 240,320: 26x18 -#868 @ 311,583: 13x24 -#869 @ 224,956: 10x13 -#870 @ 662,482: 17x14 -#871 @ 533,896: 12x17 -#872 @ 844,440: 10x26 -#873 @ 104,625: 16x11 -#874 @ 632,431: 25x17 -#875 @ 735,292: 22x24 -#876 @ 74,625: 22x24 -#877 @ 752,738: 24x25 -#878 @ 599,594: 18x10 -#879 @ 220,951: 15x26 -#880 @ 339,67: 14x19 -#881 @ 856,704: 15x22 -#882 @ 829,158: 10x13 -#883 @ 823,838: 27x11 -#884 @ 368,952: 10x15 -#885 @ 32,281: 23x28 -#886 @ 700,84: 11x26 -#887 @ 800,342: 23x9 -#888 @ 392,728: 18x10 -#889 @ 488,802: 22x26 -#890 @ 206,785: 18x25 -#891 @ 411,294: 24x11 -#892 @ 566,932: 24x10 -#893 @ 529,409: 15x17 -#894 @ 477,549: 24x24 -#895 @ 816,957: 14x22 -#896 @ 256,719: 23x20 -#897 @ 860,304: 15x16 -#898 @ 881,268: 27x10 -#899 @ 470,387: 17x10 -#900 @ 173,25: 24x13 -#901 @ 144,28: 26x16 -#902 @ 685,372: 14x23 -#903 @ 695,681: 22x14 -#904 @ 748,874: 29x22 -#905 @ 897,765: 18x17 -#906 @ 880,756: 24x12 -#907 @ 627,112: 24x18 -#908 @ 655,479: 16x11 -#909 @ 392,560: 15x16 -#910 @ 61,740: 23x20 -#911 @ 696,232: 11x20 -#912 @ 452,30: 11x24 -#913 @ 581,289: 16x23 -#914 @ 786,561: 16x19 -#915 @ 774,346: 23x28 -#916 @ 537,171: 25x11 -#917 @ 326,723: 11x27 -#918 @ 224,914: 17x16 -#919 @ 906,176: 25x18 -#920 @ 878,572: 27x25 -#921 @ 391,561: 19x27 -#922 @ 715,976: 19x12 -#923 @ 275,748: 23x19 -#924 @ 381,802: 10x14 -#925 @ 940,217: 24x23 -#926 @ 741,53: 27x15 -#927 @ 104,445: 16x18 -#928 @ 519,127: 27x20 -#929 @ 445,598: 23x21 -#930 @ 126,601: 29x13 -#931 @ 658,225: 24x19 -#932 @ 920,952: 26x23 -#933 @ 110,776: 16x14 -#934 @ 896,945: 24x14 -#935 @ 733,125: 11x17 -#936 @ 849,555: 23x17 -#937 @ 376,546: 24x18 -#938 @ 153,930: 24x24 -#939 @ 470,855: 22x21 -#940 @ 45,321: 27x10 -#941 @ 773,553: 26x14 -#942 @ 749,180: 12x14 -#943 @ 736,631: 28x26 -#944 @ 737,871: 11x14 -#945 @ 447,253: 14x11 -#946 @ 825,628: 27x26 -#947 @ 749,435: 11x20 -#948 @ 919,271: 10x14 -#949 @ 556,558: 10x14 -#950 @ 258,595: 14x28 -#951 @ 324,858: 12x15 -#952 @ 54,735: 24x20 -#953 @ 718,354: 25x10 -#954 @ 954,20: 22x17 -#955 @ 625,176: 15x28 -#956 @ 828,374: 26x14 -#957 @ 946,677: 29x25 -#958 @ 94,678: 12x26 -#959 @ 657,251: 16x22 -#960 @ 537,124: 26x14 -#961 @ 893,609: 14x11 -#962 @ 131,596: 12x13 -#963 @ 436,44: 18x17 -#964 @ 359,651: 18x21 -#965 @ 427,288: 29x14 -#966 @ 521,545: 13x22 -#967 @ 558,231: 17x28 -#968 @ 179,334: 26x28 -#969 @ 801,166: 20x29 -#970 @ 542,41: 25x27 -#971 @ 545,606: 24x29 -#972 @ 278,868: 20x17 -#973 @ 46,956: 16x25 -#974 @ 62,784: 26x15 -#975 @ 346,55: 13x26 -#976 @ 772,213: 22x28 -#977 @ 581,146: 29x17 -#978 @ 283,845: 16x13 -#979 @ 961,683: 19x13 -#980 @ 968,686: 25x17 -#981 @ 637,18: 29x22 -#982 @ 558,932: 24x10 -#983 @ 376,193: 26x10 -#984 @ 884,430: 15x10 -#985 @ 317,13: 21x18 -#986 @ 568,56: 28x13 -#987 @ 661,718: 25x15 -#988 @ 715,672: 20x20 -#989 @ 861,782: 17x26 -#990 @ 455,852: 12x25 -#991 @ 889,802: 17x11 -#992 @ 879,106: 25x23 -#993 @ 867,347: 15x21 -#994 @ 924,422: 18x10 -#995 @ 814,942: 18x29 -#996 @ 84,858: 12x22 -#997 @ 581,427: 28x24 -#998 @ 247,182: 27x21 -#999 @ 971,182: 23x21 -#1000 @ 978,776: 11x17 -#1001 @ 1,786: 13x26 -#1002 @ 977,224: 20x25 -#1003 @ 576,413: 12x12 -#1004 @ 892,182: 23x11 -#1005 @ 680,350: 26x15 -#1006 @ 489,881: 21x15 -#1007 @ 900,891: 21x17 -#1008 @ 591,883: 12x22 -#1009 @ 826,602: 14x24 -#1010 @ 366,486: 23x22 -#1011 @ 711,115: 19x19 -#1012 @ 707,116: 27x10 -#1013 @ 826,817: 27x19 -#1014 @ 315,770: 14x11 -#1015 @ 296,676: 21x26 -#1016 @ 713,373: 19x18 -#1017 @ 7,925: 28x26 -#1018 @ 821,893: 26x19 -#1019 @ 679,85: 28x11 -#1020 @ 2,802: 27x12 -#1021 @ 335,491: 27x22 -#1022 @ 299,337: 12x21 -#1023 @ 804,708: 20x18 -#1024 @ 903,888: 26x19 -#1025 @ 264,744: 29x26 -#1026 @ 813,823: 18x29 -#1027 @ 757,36: 12x18 -#1028 @ 589,217: 14x29 -#1029 @ 761,553: 16x15 -#1030 @ 632,430: 10x13 -#1031 @ 855,795: 28x27 -#1032 @ 93,625: 15x26 -#1033 @ 139,934: 19x20 -#1034 @ 561,850: 12x17 -#1035 @ 834,159: 23x13 -#1036 @ 479,845: 29x16 -#1037 @ 767,935: 10x29 -#1038 @ 506,816: 18x17 -#1039 @ 670,548: 25x22 -#1040 @ 415,58: 14x27 -#1041 @ 943,188: 12x26 -#1042 @ 7,381: 22x17 -#1043 @ 674,568: 12x17 -#1044 @ 410,2: 12x10 -#1045 @ 685,688: 13x23 -#1046 @ 609,566: 18x10 -#1047 @ 484,48: 29x22 -#1048 @ 676,659: 27x14 -#1049 @ 0,812: 12x28 -#1050 @ 282,572: 20x23 -#1051 @ 898,860: 17x25 -#1052 @ 892,949: 14x20 -#1053 @ 580,906: 14x16 -#1054 @ 65,234: 20x19 -#1055 @ 856,479: 10x24 -#1056 @ 475,143: 13x13 -#1057 @ 822,556: 14x27 -#1058 @ 970,678: 22x16 -#1059 @ 488,191: 19x10 -#1060 @ 843,298: 23x10 -#1061 @ 686,225: 17x12 -#1062 @ 224,784: 24x19 -#1063 @ 104,978: 6x10 -#1064 @ 809,756: 29x23 -#1065 @ 851,756: 28x21 -#1066 @ 144,943: 13x26 -#1067 @ 491,667: 10x27 -#1068 @ 383,574: 29x19 -#1069 @ 525,485: 13x11 -#1070 @ 494,721: 21x14 -#1071 @ 670,473: 16x16 -#1072 @ 923,103: 20x23 -#1073 @ 425,367: 27x11 -#1074 @ 975,667: 18x23 -#1075 @ 607,94: 16x25 -#1076 @ 29,617: 10x14 -#1077 @ 741,763: 27x15 -#1078 @ 907,281: 24x21 -#1079 @ 527,545: 21x24 -#1080 @ 751,599: 26x28 -#1081 @ 129,945: 10x28 -#1082 @ 545,718: 17x21 -#1083 @ 833,143: 14x23 -#1084 @ 678,337: 13x22 -#1085 @ 450,473: 10x20 -#1086 @ 883,388: 17x28 -#1087 @ 865,314: 16x21 -#1088 @ 861,408: 20x22 -#1089 @ 582,264: 15x26 -#1090 @ 612,913: 10x11 -#1091 @ 868,575: 11x15 -#1092 @ 854,596: 14x18 -#1093 @ 551,232: 22x24 -#1094 @ 675,898: 24x10 -#1095 @ 70,425: 12x16 -#1096 @ 325,763: 29x19 -#1097 @ 907,855: 16x21 -#1098 @ 770,817: 11x25 -#1099 @ 370,788: 20x22 -#1100 @ 883,426: 22x13 -#1101 @ 718,42: 10x23 -#1102 @ 670,568: 19x28 -#1103 @ 556,702: 23x27 -#1104 @ 224,245: 17x19 -#1105 @ 861,50: 18x25 -#1106 @ 840,622: 21x16 -#1107 @ 827,711: 13x21 -#1108 @ 211,46: 12x16 -#1109 @ 243,918: 19x19 -#1110 @ 855,323: 17x14 -#1111 @ 409,758: 27x24 -#1112 @ 337,193: 26x24 -#1113 @ 272,288: 12x26 -#1114 @ 197,340: 22x21 -#1115 @ 950,574: 16x21 -#1116 @ 311,508: 27x13 -#1117 @ 798,339: 29x17 -#1118 @ 892,173: 10x15 -#1119 @ 779,604: 11x12 -#1120 @ 225,818: 13x15 -#1121 @ 784,25: 19x11 -#1122 @ 88,25: 25x27 -#1123 @ 246,755: 25x28 -#1124 @ 239,175: 26x24 -#1125 @ 398,547: 18x23 -#1126 @ 756,193: 29x25 -#1127 @ 96,680: 4x20 -#1128 @ 916,826: 20x12 -#1129 @ 457,578: 29x29 -#1130 @ 91,576: 23x27 -#1131 @ 618,39: 29x18 -#1132 @ 621,960: 25x21 -#1133 @ 275,936: 14x27 -#1134 @ 130,144: 29x16 -#1135 @ 400,747: 15x29 -#1136 @ 619,221: 20x15 -#1137 @ 734,169: 17x11 -#1138 @ 359,635: 18x16 -#1139 @ 244,349: 29x22 -#1140 @ 202,270: 14x29 -#1141 @ 461,556: 29x28 -#1142 @ 503,155: 24x21 -#1143 @ 857,610: 18x15 -#1144 @ 660,592: 29x27 -#1145 @ 218,446: 12x13 -#1146 @ 149,850: 28x14 -#1147 @ 564,679: 16x11 -#1148 @ 709,112: 28x22 -#1149 @ 465,713: 17x19 -#1150 @ 36,827: 17x21 -#1151 @ 755,284: 14x29 -#1152 @ 313,74: 12x28 -#1153 @ 371,863: 25x26 -#1154 @ 908,817: 10x28 -#1155 @ 561,136: 17x13 -#1156 @ 449,55: 25x14 -#1157 @ 229,617: 18x11 -#1158 @ 841,529: 23x27 -#1159 @ 946,219: 4x17 -#1160 @ 255,612: 15x28 -#1161 @ 617,908: 28x23 -#1162 @ 830,821: 10x15 -#1163 @ 936,168: 15x27 -#1164 @ 275,84: 11x24 -#1165 @ 182,337: 22x18 -#1166 @ 722,642: 17x19 -#1167 @ 120,542: 20x22 -#1168 @ 377,916: 20x26 -#1169 @ 407,724: 25x10 -#1170 @ 380,470: 23x27 -#1171 @ 235,732: 28x15 -#1172 @ 485,445: 19x21 -#1173 @ 8,248: 11x10 -#1174 @ 96,594: 28x10 -#1175 @ 417,110: 13x17 -#1176 @ 316,128: 15x28 -#1177 @ 895,164: 11x10 -#1178 @ 720,148: 28x22 -#1179 @ 932,807: 13x25 -#1180 @ 615,487: 23x12 -#1181 @ 291,846: 21x21 -#1182 @ 931,467: 13x21 -#1183 @ 766,736: 27x13 -#1184 @ 345,728: 19x12 -#1185 @ 781,161: 17x27 -#1186 @ 262,891: 15x25 -#1187 @ 219,755: 12x20 -#1188 @ 681,109: 23x11 -#1189 @ 941,959: 29x16 -#1190 @ 800,13: 23x25 -#1191 @ 51,902: 28x24 -#1192 @ 261,704: 18x12 -#1193 @ 63,438: 20x17 -#1194 @ 428,339: 22x23 -#1195 @ 732,860: 18x25 -#1196 @ 132,750: 23x12 -#1197 @ 771,59: 26x18 -#1198 @ 19,322: 24x17 -#1199 @ 558,119: 11x22 -#1200 @ 213,33: 13x14 -#1201 @ 746,843: 13x12 -#1202 @ 607,223: 15x25 -#1203 @ 744,185: 13x16 -#1204 @ 896,863: 14x11 -#1205 @ 781,653: 20x16 -#1206 @ 519,411: 14x10 -#1207 @ 587,708: 27x14 -#1208 @ 353,41: 29x16 -#1209 @ 555,555: 14x11 -#1210 @ 408,553: 25x22 -#1211 @ 639,190: 27x29 -#1212 @ 149,88: 12x27 -#1213 @ 988,44: 10x20 -#1214 @ 617,812: 26x19 -#1215 @ 308,435: 25x12 -#1216 @ 629,405: 11x29 -#1217 @ 732,761: 11x25 -#1218 @ 802,229: 16x17 -#1219 @ 302,310: 28x26 -#1220 @ 918,368: 16x10 -#1221 @ 66,423: 12x16 -#1222 @ 917,267: 23x28 -#1223 @ 601,956: 3x10 -#1224 @ 653,919: 14x24 -#1225 @ 144,271: 20x16 -#1226 @ 508,421: 27x15 -#1227 @ 519,505: 18x11 -#1228 @ 530,385: 12x13 -#1229 @ 665,446: 18x16 -#1230 @ 520,399: 19x25 -#1231 @ 637,653: 22x29 -#1232 @ 583,956: 14x11 -#1233 @ 484,567: 23x21 -#1234 @ 216,301: 17x12 -#1235 @ 691,507: 12x17 -#1236 @ 854,476: 12x11 -#1237 @ 64,49: 11x16 -#1238 @ 863,564: 16x10 -#1239 @ 360,381: 16x17 -#1240 @ 925,888: 10x18 -#1241 @ 665,330: 12x18 -#1242 @ 228,601: 16x13 -#1243 @ 574,908: 17x13 -#1244 @ 597,953: 14x20 -#1245 @ 954,866: 17x19 -#1246 @ 791,870: 14x12 -#1247 @ 667,476: 13x28 -#1248 @ 662,488: 10x12 -#1249 @ 497,34: 10x27 -#1250 @ 110,132: 22x24 -#1251 @ 177,93: 4x11 -#1252 @ 721,114: 10x20 -#1253 @ 476,376: 21x27 -#1254 @ 384,888: 6x14 -#1255 @ 698,514: 16x26 -#1256 @ 779,308: 16x11 -#1257 @ 701,777: 26x22 -#1258 @ 933,733: 15x26 -#1259 @ 934,70: 24x26 -#1260 @ 72,787: 22x27 -#1261 @ 449,652: 18x15 -#1262 @ 425,558: 16x22 -#1263 @ 622,445: 15x16 -#1264 @ 157,175: 20x23 -#1265 @ 887,212: 21x21 -#1266 @ 514,490: 16x20 -#1267 @ 368,488: 4x6 -#1268 @ 797,41: 18x27 -#1269 @ 91,685: 22x23 -#1270 @ 277,115: 27x28 -#1271 @ 297,360: 27x20 -#1272 @ 195,559: 3x11 -#1273 @ 719,686: 23x10 -#1274 @ 397,818: 29x15 -#1275 @ 487,267: 27x10 -#1276 @ 711,388: 20x18 -#1277 @ 309,496: 27x27 -#1278 @ 414,173: 29x11 -#1279 @ 857,568: 12x18 -#1280 @ 165,155: 19x28 -#1281 @ 656,714: 12x26 -#1282 @ 255,921: 3x12 -#1283 @ 276,163: 12x14 -#1284 @ 634,812: 16x29 -#1285 @ 340,248: 23x23 -#1286 @ 193,268: 12x10 -#1287 @ 383,629: 21x26 -#1288 @ 933,297: 8x16 -#1289 @ 613,167: 13x25 -#1290 @ 852,118: 15x25 -#1291 @ 661,343: 11x20 -#1292 @ 827,119: 14x28 -#1293 @ 636,46: 27x11 -#1294 @ 629,202: 11x15 -#1295 @ 361,286: 18x23 -#1296 @ 539,925: 10x26 -#1297 @ 489,869: 15x18 -#1298 @ 415,45: 26x17 -#1299 @ 94,358: 20x17 -#1300 @ 413,552: 13x17 -#1301 @ 529,918: 16x24 -#1302 @ 400,808: 10x21 -#1303 @ 940,370: 21x27 -#1304 @ 813,185: 29x14 -#1305 @ 95,28: 24x11 -#1306 @ 249,327: 24x16 -#1307 @ 760,926: 26x12 -#1308 @ 732,957: 13x12 -#1309 @ 582,910: 13x13 -#1310 @ 0,162: 17x20 -#1311 @ 747,594: 10x11 -#1312 @ 712,513: 20x23 -#1313 @ 489,795: 26x29 -#1314 @ 474,335: 11x11 -#1315 @ 928,854: 27x16 -#1316 @ 7,377: 14x23 -#1317 @ 923,373: 20x22 -#1318 @ 411,954: 16x11 -#1319 @ 9,935: 20x14 -#1320 @ 887,848: 26x10 -#1321 @ 404,860: 11x11 -#1322 @ 475,281: 24x22 -#1323 @ 710,774: 21x22 -#1324 @ 794,158: 17x24 -#1325 @ 513,797: 25x28 -#1326 @ 707,755: 26x26 -#1327 @ 53,33: 29x24 -#1328 @ 506,184: 13x26 -#1329 @ 829,145: 20x10 -#1330 @ 891,774: 16x12 -#1331 @ 807,597: 26x27 -#1332 @ 375,313: 16x25 -#1333 @ 918,895: 16x11 -#1334 @ 884,128: 24x23 -#1335 @ 340,833: 25x24 -#1336 @ 202,485: 26x10 -#1337 @ 279,681: 21x10 -#1338 @ 199,913: 19x14 -#1339 @ 537,813: 26x29 -#1340 @ 89,723: 10x24 -#1341 @ 286,935: 22x27 -#1342 @ 347,72: 22x25 -#1343 @ 805,893: 11x28 -#1344 @ 917,81: 18x11 -#1345 @ 630,949: 21x16 -#1346 @ 526,905: 22x17 -#1347 @ 908,578: 17x15 -#1348 @ 235,237: 10x25 -#1349 @ 224,798: 20x23 -#1350 @ 759,525: 24x27 -#1351 @ 738,299: 25x16 -#1352 @ 224,888: 25x14 -#1353 @ 319,601: 28x26 -#1354 @ 212,397: 11x25 -#1355 @ 102,538: 21x28 -#1356 @ 457,251: 14x17 -#1357 @ 931,293: 13x24 -#1358 @ 808,93: 14x22 -#1359 @ 593,814: 12x23 -#1360 @ 468,131: 10x21 -#1361 @ 593,251: 15x15 -#1362 @ 362,16: 20x19 -#1363 @ 862,511: 14x11 -#1364 @ 671,626: 17x16 -#1365 @ 473,697: 16x14 -#1366 @ 368,329: 28x18 -#1367 @ 925,194: 24x29 -#1368 @ 875,511: 12x12 -#1369 @ 967,411: 25x27 -#1370 @ 89,411: 15x18 -#1371 @ 307,943: 12x28 -#1372 @ 119,13: 29x16 -#1373 @ 806,710: 15x11 -#1374 @ 544,534: 13x18 -#1375 @ 672,698: 14x17 -#1376 @ 645,848: 23x20 -#1377 @ 889,954: 25x13 -#1378 @ 378,24: 12x14 -#1379 @ 542,442: 22x15 -#1380 @ 42,454: 18x28 -#1381 @ 175,91: 11x22 -#1382 @ 840,533: 12x21 -#1383 @ 792,736: 24x27 -#1384 @ 731,713: 17x27 -#1385 @ 614,449: 22x20 diff --git a/2018/inputs/4.txt b/2018/inputs/4.txt deleted file mode 100644 index 4a0ff6e..0000000 --- a/2018/inputs/4.txt +++ /dev/null @@ -1,1088 +0,0 @@ -[1518-09-17 23:48] Guard #1307 begins shift -[1518-06-03 00:00] Guard #3217 begins shift -[1518-07-28 00:49] falls asleep -[1518-03-30 00:57] falls asleep -[1518-07-01 23:58] Guard #409 begins shift -[1518-04-13 00:25] wakes up -[1518-04-09 00:22] wakes up -[1518-11-02 00:41] falls asleep -[1518-11-21 00:23] falls asleep -[1518-05-03 00:59] wakes up -[1518-11-21 00:02] Guard #1459 begins shift -[1518-08-18 00:27] wakes up -[1518-08-09 00:48] falls asleep -[1518-09-23 00:23] falls asleep -[1518-03-29 23:57] Guard #113 begins shift -[1518-04-16 00:43] wakes up -[1518-05-13 00:33] falls asleep -[1518-05-19 00:58] wakes up -[1518-07-09 00:44] wakes up -[1518-04-26 00:03] falls asleep -[1518-08-24 00:55] falls asleep -[1518-06-30 00:51] falls asleep -[1518-10-14 00:06] falls asleep -[1518-04-28 00:23] falls asleep -[1518-10-05 00:57] wakes up -[1518-09-02 00:56] wakes up -[1518-03-11 00:38] falls asleep -[1518-07-30 00:54] wakes up -[1518-09-15 23:58] Guard #1811 begins shift -[1518-08-08 23:58] Guard #1033 begins shift -[1518-08-07 00:08] falls asleep -[1518-06-13 00:46] wakes up -[1518-10-08 00:54] falls asleep -[1518-06-08 23:46] Guard #557 begins shift -[1518-06-01 00:22] wakes up -[1518-08-05 00:59] wakes up -[1518-03-08 00:03] Guard #3271 begins shift -[1518-07-18 23:59] Guard #449 begins shift -[1518-09-24 00:00] Guard #389 begins shift -[1518-04-22 00:45] wakes up -[1518-07-31 00:41] falls asleep -[1518-03-24 00:02] falls asleep -[1518-05-21 00:29] falls asleep -[1518-05-27 23:59] Guard #449 begins shift -[1518-10-30 00:52] wakes up -[1518-08-09 00:51] wakes up -[1518-03-16 00:54] wakes up -[1518-04-11 00:28] falls asleep -[1518-04-25 00:58] wakes up -[1518-10-06 00:07] falls asleep -[1518-08-15 23:49] Guard #557 begins shift -[1518-10-17 23:51] Guard #739 begins shift -[1518-06-27 00:00] Guard #3217 begins shift -[1518-06-30 00:01] Guard #1237 begins shift -[1518-04-29 00:01] Guard #3271 begins shift -[1518-11-12 00:19] falls asleep -[1518-07-27 00:50] wakes up -[1518-03-06 00:42] falls asleep -[1518-11-17 00:57] wakes up -[1518-07-21 00:48] wakes up -[1518-03-04 00:28] falls asleep -[1518-08-24 00:37] falls asleep -[1518-09-19 00:21] wakes up -[1518-11-05 00:24] wakes up -[1518-06-24 00:02] falls asleep -[1518-10-24 00:55] falls asleep -[1518-06-14 00:56] wakes up -[1518-06-29 00:47] wakes up -[1518-04-15 00:14] wakes up -[1518-08-21 00:08] falls asleep -[1518-09-16 00:48] falls asleep -[1518-10-11 00:42] wakes up -[1518-03-04 00:09] wakes up -[1518-03-13 00:18] falls asleep -[1518-10-28 00:56] wakes up -[1518-03-27 00:20] wakes up -[1518-05-24 00:03] Guard #739 begins shift -[1518-08-31 00:54] wakes up -[1518-06-22 00:50] falls asleep -[1518-06-15 00:45] wakes up -[1518-07-22 23:47] Guard #2647 begins shift -[1518-09-02 00:00] falls asleep -[1518-05-04 00:14] falls asleep -[1518-03-06 00:51] wakes up -[1518-10-02 00:35] wakes up -[1518-10-05 00:20] falls asleep -[1518-05-06 00:53] falls asleep -[1518-10-12 00:47] wakes up -[1518-04-08 00:30] wakes up -[1518-11-19 00:40] falls asleep -[1518-11-13 00:32] falls asleep -[1518-08-21 23:46] Guard #3271 begins shift -[1518-05-31 00:56] falls asleep -[1518-05-18 00:57] wakes up -[1518-05-17 00:56] wakes up -[1518-05-24 23:51] Guard #601 begins shift -[1518-10-30 00:32] wakes up -[1518-10-05 00:13] wakes up -[1518-11-02 00:03] Guard #2647 begins shift -[1518-05-02 00:36] wakes up -[1518-07-29 00:40] wakes up -[1518-07-16 00:53] wakes up -[1518-09-04 00:18] wakes up -[1518-05-11 00:33] falls asleep -[1518-03-09 00:00] Guard #1811 begins shift -[1518-10-24 23:57] Guard #827 begins shift -[1518-11-18 00:46] wakes up -[1518-08-14 00:27] falls asleep -[1518-05-25 00:17] wakes up -[1518-03-03 00:02] Guard #947 begins shift -[1518-05-29 00:00] falls asleep -[1518-06-05 00:04] wakes up -[1518-07-26 00:42] wakes up -[1518-10-01 00:39] falls asleep -[1518-06-22 00:54] wakes up -[1518-09-06 00:24] wakes up -[1518-08-04 00:24] falls asleep -[1518-04-25 00:35] wakes up -[1518-11-11 00:11] falls asleep -[1518-09-27 00:58] wakes up -[1518-09-16 00:15] falls asleep -[1518-07-25 00:55] wakes up -[1518-08-28 00:27] falls asleep -[1518-08-12 00:39] falls asleep -[1518-11-05 00:32] falls asleep -[1518-05-29 23:52] Guard #3209 begins shift -[1518-04-27 00:35] wakes up -[1518-04-20 00:06] falls asleep -[1518-03-21 00:47] falls asleep -[1518-10-18 00:55] wakes up -[1518-09-29 00:31] falls asleep -[1518-09-17 00:40] wakes up -[1518-04-22 00:19] falls asleep -[1518-06-14 00:32] falls asleep -[1518-10-07 23:59] Guard #1307 begins shift -[1518-04-25 00:55] falls asleep -[1518-08-27 00:24] falls asleep -[1518-08-01 23:56] Guard #389 begins shift -[1518-09-04 23:56] Guard #409 begins shift -[1518-09-29 23:56] Guard #449 begins shift -[1518-10-05 00:23] wakes up -[1518-04-04 00:58] wakes up -[1518-08-05 00:54] falls asleep -[1518-07-20 00:46] wakes up -[1518-04-08 00:46] wakes up -[1518-06-18 00:52] wakes up -[1518-05-03 23:59] Guard #1033 begins shift -[1518-11-01 00:37] wakes up -[1518-03-11 00:30] wakes up -[1518-06-06 00:42] wakes up -[1518-06-20 00:06] falls asleep -[1518-04-05 00:55] wakes up -[1518-09-13 23:57] Guard #3217 begins shift -[1518-04-21 00:00] Guard #1459 begins shift -[1518-03-18 00:00] Guard #1307 begins shift -[1518-09-13 00:03] Guard #557 begins shift -[1518-05-28 23:51] Guard #3217 begins shift -[1518-10-23 23:49] Guard #113 begins shift -[1518-03-11 23:59] Guard #113 begins shift -[1518-09-06 00:07] falls asleep -[1518-03-03 00:42] falls asleep -[1518-07-21 00:57] falls asleep -[1518-06-12 00:08] falls asleep -[1518-10-04 23:59] Guard #1237 begins shift -[1518-08-19 00:36] falls asleep -[1518-10-13 00:09] falls asleep -[1518-08-18 00:57] wakes up -[1518-08-28 23:52] Guard #1307 begins shift -[1518-09-09 00:58] wakes up -[1518-10-11 00:14] falls asleep -[1518-07-25 23:50] Guard #1559 begins shift -[1518-07-14 23:59] Guard #1237 begins shift -[1518-09-26 00:58] wakes up -[1518-05-22 23:59] Guard #3067 begins shift -[1518-05-22 00:57] falls asleep -[1518-05-02 00:58] wakes up -[1518-05-14 00:52] wakes up -[1518-04-18 00:51] wakes up -[1518-06-17 00:35] wakes up -[1518-05-18 23:59] Guard #389 begins shift -[1518-08-16 00:12] wakes up -[1518-11-08 00:49] wakes up -[1518-08-18 00:04] Guard #1307 begins shift -[1518-07-13 00:48] wakes up -[1518-08-18 23:58] Guard #1459 begins shift -[1518-03-09 00:52] wakes up -[1518-03-16 00:00] Guard #1237 begins shift -[1518-06-13 00:24] falls asleep -[1518-08-16 00:04] falls asleep -[1518-09-19 00:55] wakes up -[1518-10-04 00:47] wakes up -[1518-05-04 23:50] Guard #389 begins shift -[1518-07-03 00:57] wakes up -[1518-04-24 00:14] falls asleep -[1518-09-03 00:22] wakes up -[1518-11-09 00:54] falls asleep -[1518-09-02 00:36] wakes up -[1518-06-30 00:56] wakes up -[1518-08-26 00:51] wakes up -[1518-04-27 23:56] Guard #1307 begins shift -[1518-11-02 00:10] falls asleep -[1518-09-20 23:57] Guard #1811 begins shift -[1518-03-14 00:48] wakes up -[1518-05-31 00:30] wakes up -[1518-08-07 00:03] Guard #3209 begins shift -[1518-08-07 00:50] falls asleep -[1518-09-25 00:57] wakes up -[1518-10-18 00:08] wakes up -[1518-10-03 00:56] wakes up -[1518-05-27 00:46] wakes up -[1518-06-07 00:18] falls asleep -[1518-06-06 00:55] wakes up -[1518-03-18 00:56] wakes up -[1518-04-04 23:59] Guard #449 begins shift -[1518-09-28 00:59] wakes up -[1518-08-10 00:12] wakes up -[1518-05-30 00:21] wakes up -[1518-11-09 00:57] wakes up -[1518-11-15 00:13] falls asleep -[1518-06-10 23:57] Guard #1811 begins shift -[1518-11-04 00:01] falls asleep -[1518-05-21 00:47] falls asleep -[1518-10-07 00:05] falls asleep -[1518-03-12 00:36] wakes up -[1518-08-09 00:37] wakes up -[1518-09-23 00:58] wakes up -[1518-04-14 00:22] falls asleep -[1518-07-07 00:35] falls asleep -[1518-03-15 00:59] wakes up -[1518-03-14 00:44] falls asleep -[1518-11-06 00:04] Guard #3067 begins shift -[1518-07-14 00:01] Guard #3217 begins shift -[1518-10-23 00:09] falls asleep -[1518-07-01 00:38] wakes up -[1518-11-05 00:51] wakes up -[1518-04-08 00:52] falls asleep -[1518-09-22 00:40] falls asleep -[1518-09-08 00:20] falls asleep -[1518-05-09 00:49] falls asleep -[1518-10-17 00:02] Guard #3067 begins shift -[1518-10-01 23:56] Guard #3217 begins shift -[1518-05-10 00:58] wakes up -[1518-11-11 23:57] Guard #3271 begins shift -[1518-09-27 00:49] falls asleep -[1518-09-30 00:48] wakes up -[1518-06-06 00:01] Guard #601 begins shift -[1518-03-18 23:59] Guard #3217 begins shift -[1518-03-20 23:57] Guard #2647 begins shift -[1518-07-29 00:52] falls asleep -[1518-04-01 23:51] Guard #1459 begins shift -[1518-03-23 00:14] falls asleep -[1518-07-28 00:38] wakes up -[1518-09-04 00:49] wakes up -[1518-06-10 00:57] wakes up -[1518-10-26 00:57] wakes up -[1518-04-01 00:52] wakes up -[1518-07-10 00:47] wakes up -[1518-03-24 23:56] Guard #3217 begins shift -[1518-07-07 00:58] wakes up -[1518-08-10 00:11] falls asleep -[1518-08-22 00:56] falls asleep -[1518-11-03 00:21] wakes up -[1518-03-28 23:59] Guard #947 begins shift -[1518-07-29 00:35] falls asleep -[1518-09-09 00:05] falls asleep -[1518-04-11 00:58] wakes up -[1518-10-12 00:55] wakes up -[1518-11-14 00:44] wakes up -[1518-03-17 00:47] wakes up -[1518-03-29 00:13] falls asleep -[1518-06-04 00:40] falls asleep -[1518-11-16 00:14] falls asleep -[1518-05-11 00:04] Guard #1459 begins shift -[1518-06-03 00:11] falls asleep -[1518-10-22 00:58] wakes up -[1518-04-15 00:57] falls asleep -[1518-07-12 00:59] wakes up -[1518-05-21 00:31] wakes up -[1518-06-27 00:09] falls asleep -[1518-08-07 00:41] wakes up -[1518-10-22 00:11] falls asleep -[1518-09-02 00:43] falls asleep -[1518-05-31 00:28] falls asleep -[1518-05-25 00:07] falls asleep -[1518-07-25 00:13] wakes up -[1518-06-13 00:35] wakes up -[1518-08-17 00:40] falls asleep -[1518-08-02 00:58] wakes up -[1518-03-26 00:23] falls asleep -[1518-11-04 00:59] wakes up -[1518-03-28 00:38] falls asleep -[1518-10-29 23:57] Guard #113 begins shift -[1518-09-11 23:59] Guard #2647 begins shift -[1518-03-09 00:48] falls asleep -[1518-08-18 00:53] wakes up -[1518-09-02 00:46] wakes up -[1518-06-18 00:02] Guard #739 begins shift -[1518-10-22 00:00] Guard #1811 begins shift -[1518-09-23 00:27] wakes up -[1518-08-31 00:38] falls asleep -[1518-09-25 00:39] falls asleep -[1518-08-08 00:03] Guard #2647 begins shift -[1518-09-14 00:23] falls asleep -[1518-08-21 00:04] Guard #877 begins shift -[1518-10-09 00:31] wakes up -[1518-06-20 00:51] wakes up -[1518-06-06 00:17] falls asleep -[1518-08-10 00:17] falls asleep -[1518-05-08 00:57] wakes up -[1518-11-10 00:06] falls asleep -[1518-05-30 23:58] Guard #1559 begins shift -[1518-10-12 00:44] falls asleep -[1518-09-08 00:53] wakes up -[1518-04-08 00:28] falls asleep -[1518-08-17 00:52] wakes up -[1518-05-02 00:57] falls asleep -[1518-05-06 00:56] wakes up -[1518-03-23 00:00] Guard #1811 begins shift -[1518-04-27 00:10] falls asleep -[1518-06-09 00:04] falls asleep -[1518-08-18 00:10] falls asleep -[1518-07-25 00:46] falls asleep -[1518-10-10 00:43] wakes up -[1518-04-19 00:48] wakes up -[1518-10-20 00:49] wakes up -[1518-04-17 00:01] Guard #1237 begins shift -[1518-05-21 00:06] falls asleep -[1518-11-15 00:37] wakes up -[1518-05-04 00:24] wakes up -[1518-10-04 00:01] Guard #2647 begins shift -[1518-03-26 00:00] Guard #389 begins shift -[1518-08-29 00:23] wakes up -[1518-04-02 00:03] falls asleep -[1518-05-14 00:12] falls asleep -[1518-04-14 00:57] wakes up -[1518-06-01 23:56] Guard #449 begins shift -[1518-08-11 23:56] Guard #1811 begins shift -[1518-07-04 00:01] Guard #3271 begins shift -[1518-07-22 00:38] falls asleep -[1518-11-13 23:58] Guard #2647 begins shift -[1518-05-07 00:59] wakes up -[1518-06-22 00:26] falls asleep -[1518-08-28 00:01] Guard #3067 begins shift -[1518-10-31 00:03] Guard #113 begins shift -[1518-06-24 00:48] wakes up -[1518-03-18 00:28] falls asleep -[1518-03-16 00:13] falls asleep -[1518-04-27 00:57] falls asleep -[1518-07-14 00:24] wakes up -[1518-11-18 00:59] wakes up -[1518-05-01 00:00] Guard #739 begins shift -[1518-11-08 23:56] Guard #3209 begins shift -[1518-06-20 00:36] falls asleep -[1518-09-21 00:20] falls asleep -[1518-05-28 00:21] wakes up -[1518-03-05 00:23] falls asleep -[1518-03-30 00:38] wakes up -[1518-07-12 00:56] falls asleep -[1518-04-03 00:25] wakes up -[1518-03-21 00:58] wakes up -[1518-08-11 00:17] falls asleep -[1518-08-12 23:59] Guard #947 begins shift -[1518-04-29 23:53] Guard #947 begins shift -[1518-05-10 00:03] Guard #3209 begins shift -[1518-03-04 00:38] wakes up -[1518-05-14 00:03] Guard #947 begins shift -[1518-03-22 00:57] wakes up -[1518-07-15 00:37] falls asleep -[1518-06-11 00:48] wakes up -[1518-04-14 00:01] Guard #557 begins shift -[1518-07-24 00:49] wakes up -[1518-09-01 00:56] wakes up -[1518-08-26 00:59] wakes up -[1518-08-25 00:15] falls asleep -[1518-07-06 00:04] falls asleep -[1518-07-03 00:03] Guard #557 begins shift -[1518-10-20 00:45] falls asleep -[1518-10-18 00:53] falls asleep -[1518-06-19 00:53] wakes up -[1518-03-27 00:51] falls asleep -[1518-07-11 00:43] falls asleep -[1518-05-03 00:55] falls asleep -[1518-09-21 00:49] falls asleep -[1518-09-20 00:54] wakes up -[1518-06-01 00:04] falls asleep -[1518-05-13 00:37] wakes up -[1518-06-27 00:46] wakes up -[1518-04-03 00:01] Guard #601 begins shift -[1518-03-13 00:55] falls asleep -[1518-10-10 00:13] falls asleep -[1518-10-31 00:21] falls asleep -[1518-03-14 00:54] falls asleep -[1518-04-06 00:02] Guard #1237 begins shift -[1518-10-15 00:48] wakes up -[1518-03-27 00:02] Guard #1559 begins shift -[1518-10-12 00:14] falls asleep -[1518-07-11 00:25] falls asleep -[1518-03-04 00:43] falls asleep -[1518-04-16 00:53] falls asleep -[1518-06-11 00:54] falls asleep -[1518-06-16 00:15] falls asleep -[1518-10-18 00:46] falls asleep -[1518-07-24 00:02] Guard #389 begins shift -[1518-04-04 00:26] wakes up -[1518-04-07 00:21] falls asleep -[1518-04-12 23:56] Guard #2647 begins shift -[1518-07-18 00:49] wakes up -[1518-05-07 00:04] falls asleep -[1518-10-06 00:04] Guard #947 begins shift -[1518-09-18 00:43] wakes up -[1518-04-29 00:33] wakes up -[1518-07-29 00:57] falls asleep -[1518-08-27 00:42] wakes up -[1518-03-16 23:46] Guard #739 begins shift -[1518-05-20 00:23] falls asleep -[1518-07-27 00:09] falls asleep -[1518-08-18 00:37] falls asleep -[1518-06-26 00:01] Guard #1307 begins shift -[1518-09-30 00:20] falls asleep -[1518-04-11 00:44] falls asleep -[1518-04-09 00:12] falls asleep -[1518-03-31 00:03] Guard #1559 begins shift -[1518-06-08 00:00] Guard #449 begins shift -[1518-11-07 00:46] wakes up -[1518-04-11 00:04] Guard #409 begins shift -[1518-03-04 00:56] wakes up -[1518-07-24 00:47] falls asleep -[1518-08-25 00:21] wakes up -[1518-05-24 00:06] falls asleep -[1518-05-08 00:52] falls asleep -[1518-08-29 23:57] Guard #3067 begins shift -[1518-05-18 00:00] falls asleep -[1518-08-19 23:59] Guard #1459 begins shift -[1518-05-31 00:58] wakes up -[1518-06-13 00:00] Guard #947 begins shift -[1518-10-28 00:48] falls asleep -[1518-05-20 23:58] Guard #877 begins shift -[1518-08-20 00:28] falls asleep -[1518-06-17 00:12] falls asleep -[1518-08-19 00:51] falls asleep -[1518-03-03 23:48] Guard #557 begins shift -[1518-10-28 00:30] falls asleep -[1518-03-30 00:11] falls asleep -[1518-06-07 00:53] wakes up -[1518-07-22 00:01] Guard #557 begins shift -[1518-11-11 00:58] wakes up -[1518-08-27 00:00] Guard #3067 begins shift -[1518-06-06 00:19] wakes up -[1518-10-24 00:59] wakes up -[1518-11-03 00:26] falls asleep -[1518-08-19 00:41] wakes up -[1518-03-19 00:33] falls asleep -[1518-10-02 00:53] wakes up -[1518-07-31 23:58] Guard #1723 begins shift -[1518-08-23 00:53] wakes up -[1518-03-13 00:59] wakes up -[1518-10-20 23:59] Guard #449 begins shift -[1518-05-12 00:09] falls asleep -[1518-05-17 23:54] Guard #1811 begins shift -[1518-06-25 00:53] wakes up -[1518-06-17 00:55] wakes up -[1518-05-09 00:24] falls asleep -[1518-08-14 00:01] Guard #739 begins shift -[1518-03-20 00:06] falls asleep -[1518-11-20 00:28] falls asleep -[1518-04-15 00:58] wakes up -[1518-05-22 00:36] wakes up -[1518-04-12 00:04] Guard #877 begins shift -[1518-06-04 23:52] Guard #877 begins shift -[1518-10-09 00:07] falls asleep -[1518-06-05 00:15] falls asleep -[1518-06-28 00:34] wakes up -[1518-11-13 00:37] wakes up -[1518-09-24 00:48] wakes up -[1518-05-15 00:02] Guard #557 begins shift -[1518-05-27 00:21] falls asleep -[1518-11-12 00:34] wakes up -[1518-06-06 00:51] falls asleep -[1518-11-21 00:43] wakes up -[1518-09-01 00:28] falls asleep -[1518-10-13 00:00] Guard #947 begins shift -[1518-11-20 00:46] wakes up -[1518-05-22 00:01] Guard #1559 begins shift -[1518-04-05 00:07] falls asleep -[1518-06-11 23:56] Guard #3209 begins shift -[1518-07-11 00:51] wakes up -[1518-08-30 00:17] falls asleep -[1518-05-12 23:57] Guard #3271 begins shift -[1518-03-15 00:24] falls asleep -[1518-04-26 23:59] Guard #3067 begins shift -[1518-03-09 00:06] falls asleep -[1518-03-09 00:57] wakes up -[1518-03-08 00:58] wakes up -[1518-04-13 00:22] falls asleep -[1518-04-14 23:46] Guard #1033 begins shift -[1518-07-28 00:54] falls asleep -[1518-09-20 00:00] Guard #3067 begins shift -[1518-05-09 00:43] wakes up -[1518-11-01 00:03] Guard #3067 begins shift -[1518-05-12 00:55] wakes up -[1518-03-08 00:09] falls asleep -[1518-03-10 00:40] wakes up -[1518-03-28 00:00] Guard #1459 begins shift -[1518-10-14 00:34] falls asleep -[1518-09-22 00:26] falls asleep -[1518-10-30 00:26] falls asleep -[1518-09-12 00:07] falls asleep -[1518-03-26 00:58] wakes up -[1518-07-20 00:20] falls asleep -[1518-06-28 00:25] falls asleep -[1518-09-12 00:24] wakes up -[1518-05-22 00:13] falls asleep -[1518-08-13 00:42] wakes up -[1518-08-22 00:04] falls asleep -[1518-07-28 23:59] Guard #1559 begins shift -[1518-08-24 23:59] Guard #2647 begins shift -[1518-10-24 00:05] falls asleep -[1518-06-22 00:47] wakes up -[1518-10-26 00:35] falls asleep -[1518-08-10 00:58] wakes up -[1518-03-14 00:57] wakes up -[1518-07-09 00:32] falls asleep -[1518-04-28 00:55] falls asleep -[1518-10-13 00:41] wakes up -[1518-07-02 00:17] falls asleep -[1518-04-17 00:58] wakes up -[1518-05-22 00:58] wakes up -[1518-09-01 00:48] wakes up -[1518-04-01 00:48] falls asleep -[1518-07-01 00:00] Guard #557 begins shift -[1518-04-18 00:40] falls asleep -[1518-03-13 23:57] Guard #449 begins shift -[1518-04-08 00:00] Guard #877 begins shift -[1518-09-16 23:57] Guard #1459 begins shift -[1518-11-06 00:57] wakes up -[1518-07-19 23:56] Guard #1459 begins shift -[1518-03-07 00:42] falls asleep -[1518-06-10 00:02] Guard #1559 begins shift -[1518-06-20 00:25] wakes up -[1518-04-08 00:44] falls asleep -[1518-06-22 00:01] Guard #113 begins shift -[1518-07-08 23:46] Guard #1811 begins shift -[1518-07-23 00:03] falls asleep -[1518-04-23 00:31] falls asleep -[1518-08-20 00:58] wakes up -[1518-09-30 23:57] Guard #3217 begins shift -[1518-10-28 00:00] Guard #449 begins shift -[1518-06-02 00:30] falls asleep -[1518-09-04 00:36] falls asleep -[1518-07-24 00:56] falls asleep -[1518-04-16 00:04] Guard #601 begins shift -[1518-05-20 00:38] wakes up -[1518-10-29 00:33] falls asleep -[1518-07-17 00:42] wakes up -[1518-04-07 00:01] Guard #449 begins shift -[1518-08-29 00:54] wakes up -[1518-04-08 00:54] wakes up -[1518-03-12 00:32] falls asleep -[1518-05-06 00:43] wakes up -[1518-03-05 00:00] Guard #3271 begins shift -[1518-07-30 00:04] Guard #389 begins shift -[1518-07-26 00:00] falls asleep -[1518-10-17 00:23] falls asleep -[1518-09-06 23:53] Guard #389 begins shift -[1518-03-08 00:56] falls asleep -[1518-09-13 00:55] wakes up -[1518-07-20 00:31] wakes up -[1518-10-14 00:02] Guard #557 begins shift -[1518-05-26 00:01] Guard #1811 begins shift -[1518-05-29 00:29] wakes up -[1518-07-08 00:57] falls asleep -[1518-07-10 00:21] falls asleep -[1518-08-24 00:50] wakes up -[1518-03-09 00:09] wakes up -[1518-08-16 00:22] falls asleep -[1518-05-01 00:52] wakes up -[1518-06-01 00:25] falls asleep -[1518-07-01 00:26] wakes up -[1518-09-08 23:52] Guard #389 begins shift -[1518-09-17 00:35] falls asleep -[1518-05-30 00:58] wakes up -[1518-11-11 00:54] wakes up -[1518-04-30 00:37] wakes up -[1518-05-06 23:54] Guard #1033 begins shift -[1518-11-08 00:25] falls asleep -[1518-11-15 23:58] Guard #3217 begins shift -[1518-11-01 00:14] falls asleep -[1518-10-08 00:57] wakes up -[1518-08-18 00:56] falls asleep -[1518-11-10 23:57] Guard #2647 begins shift -[1518-03-21 23:57] Guard #389 begins shift -[1518-09-22 23:59] Guard #3209 begins shift -[1518-08-24 00:58] wakes up -[1518-10-19 23:57] Guard #389 begins shift -[1518-09-07 23:48] Guard #3209 begins shift -[1518-08-10 23:57] Guard #1033 begins shift -[1518-03-13 00:03] Guard #3271 begins shift -[1518-03-19 00:37] wakes up -[1518-06-18 23:59] Guard #877 begins shift -[1518-10-04 00:51] falls asleep -[1518-09-28 00:42] falls asleep -[1518-05-06 00:00] Guard #1459 begins shift -[1518-05-03 00:26] wakes up -[1518-06-26 00:55] wakes up -[1518-09-15 00:59] wakes up -[1518-07-22 00:35] wakes up -[1518-09-03 00:51] wakes up -[1518-07-22 00:58] wakes up -[1518-04-29 00:15] falls asleep -[1518-10-29 00:58] wakes up -[1518-07-27 00:46] falls asleep -[1518-07-29 00:54] wakes up -[1518-11-23 00:54] wakes up -[1518-04-25 23:48] Guard #877 begins shift -[1518-08-16 23:57] Guard #1559 begins shift -[1518-09-25 00:47] falls asleep -[1518-03-06 00:18] wakes up -[1518-10-18 00:00] falls asleep -[1518-10-01 00:48] wakes up -[1518-04-12 00:59] wakes up -[1518-11-13 00:50] falls asleep -[1518-09-10 23:58] Guard #3209 begins shift -[1518-09-27 00:00] Guard #409 begins shift -[1518-09-21 23:51] Guard #3209 begins shift -[1518-11-03 00:11] falls asleep -[1518-11-18 00:06] falls asleep -[1518-03-06 00:56] falls asleep -[1518-07-14 00:17] falls asleep -[1518-08-05 00:40] falls asleep -[1518-04-23 00:43] falls asleep -[1518-09-18 00:00] falls asleep -[1518-08-02 23:56] Guard #2647 begins shift -[1518-09-22 00:34] wakes up -[1518-06-19 00:08] falls asleep -[1518-06-01 00:41] wakes up -[1518-09-08 00:11] wakes up -[1518-04-17 00:54] falls asleep -[1518-05-27 00:02] Guard #3271 begins shift -[1518-08-07 00:53] wakes up -[1518-07-20 00:39] falls asleep -[1518-11-07 23:58] Guard #449 begins shift -[1518-09-24 23:57] Guard #1459 begins shift -[1518-04-28 00:57] wakes up -[1518-08-28 00:53] wakes up -[1518-04-16 00:29] falls asleep -[1518-07-12 00:42] wakes up -[1518-06-22 23:56] Guard #3067 begins shift -[1518-03-20 00:46] wakes up -[1518-05-07 23:50] Guard #409 begins shift -[1518-08-25 00:48] wakes up -[1518-04-06 00:56] falls asleep -[1518-09-03 00:06] falls asleep -[1518-09-10 00:01] falls asleep -[1518-07-17 00:11] falls asleep -[1518-10-23 00:49] wakes up -[1518-05-30 00:03] falls asleep -[1518-10-12 00:51] falls asleep -[1518-11-17 00:00] Guard #1307 begins shift -[1518-03-23 00:28] wakes up -[1518-08-02 00:54] falls asleep -[1518-08-16 00:53] wakes up -[1518-06-09 00:43] wakes up -[1518-04-23 00:50] wakes up -[1518-11-02 00:51] wakes up -[1518-08-25 00:46] falls asleep -[1518-06-27 00:36] wakes up -[1518-04-08 23:57] Guard #1559 begins shift -[1518-07-09 00:58] wakes up -[1518-10-28 23:56] Guard #449 begins shift -[1518-04-02 00:53] wakes up -[1518-05-17 00:45] falls asleep -[1518-03-15 00:04] Guard #601 begins shift -[1518-03-17 00:15] wakes up -[1518-05-05 00:59] wakes up -[1518-05-25 00:03] wakes up -[1518-10-18 23:57] Guard #1559 begins shift -[1518-10-21 00:27] falls asleep -[1518-05-12 00:40] wakes up -[1518-04-06 00:58] wakes up -[1518-05-23 00:20] falls asleep -[1518-07-16 23:56] Guard #1459 begins shift -[1518-06-12 00:51] wakes up -[1518-04-19 00:34] falls asleep -[1518-06-14 00:09] falls asleep -[1518-08-08 00:19] falls asleep -[1518-09-04 00:02] falls asleep -[1518-05-23 00:57] wakes up -[1518-03-27 00:17] falls asleep -[1518-04-15 00:28] falls asleep -[1518-09-23 00:30] falls asleep -[1518-10-08 00:44] wakes up -[1518-08-29 00:29] falls asleep -[1518-08-03 00:52] falls asleep -[1518-10-24 00:45] wakes up -[1518-05-12 00:45] falls asleep -[1518-09-12 00:29] falls asleep -[1518-04-16 00:59] wakes up -[1518-07-11 00:31] wakes up -[1518-07-04 00:39] wakes up -[1518-05-16 00:44] wakes up -[1518-06-21 00:45] wakes up -[1518-07-26 23:58] Guard #3209 begins shift -[1518-05-08 23:58] Guard #877 begins shift -[1518-11-07 00:20] falls asleep -[1518-08-26 00:04] Guard #389 begins shift -[1518-03-11 00:16] falls asleep -[1518-11-17 00:20] falls asleep -[1518-09-10 00:49] wakes up -[1518-05-10 00:36] falls asleep -[1518-05-16 00:55] wakes up -[1518-08-04 00:01] Guard #409 begins shift -[1518-04-26 00:45] wakes up -[1518-09-07 00:46] wakes up -[1518-10-21 00:47] wakes up -[1518-05-15 00:46] wakes up -[1518-08-21 00:50] wakes up -[1518-08-08 00:58] wakes up -[1518-08-26 00:57] falls asleep -[1518-07-02 00:51] wakes up -[1518-03-25 00:16] falls asleep -[1518-08-11 00:59] wakes up -[1518-04-19 00:58] wakes up -[1518-10-15 00:56] falls asleep -[1518-06-15 00:14] falls asleep -[1518-04-03 00:42] wakes up -[1518-11-14 00:18] falls asleep -[1518-05-12 00:02] Guard #947 begins shift -[1518-04-15 00:05] falls asleep -[1518-04-23 00:39] wakes up -[1518-07-22 00:19] falls asleep -[1518-07-31 00:44] wakes up -[1518-10-27 00:43] wakes up -[1518-09-22 00:03] falls asleep -[1518-03-07 00:02] Guard #3067 begins shift -[1518-03-03 00:55] wakes up -[1518-06-02 00:56] wakes up -[1518-03-04 00:23] wakes up -[1518-08-06 00:37] falls asleep -[1518-06-23 23:50] Guard #1559 begins shift -[1518-09-27 00:50] wakes up -[1518-07-08 00:19] falls asleep -[1518-05-09 00:52] wakes up -[1518-03-06 00:02] falls asleep -[1518-06-05 00:01] falls asleep -[1518-05-03 00:47] wakes up -[1518-05-29 00:41] falls asleep -[1518-10-25 23:58] Guard #947 begins shift -[1518-10-14 23:59] Guard #3209 begins shift -[1518-03-04 00:02] falls asleep -[1518-07-28 00:03] Guard #3217 begins shift -[1518-09-12 00:09] wakes up -[1518-03-09 00:35] wakes up -[1518-10-27 00:00] Guard #739 begins shift -[1518-07-29 00:59] wakes up -[1518-11-10 00:34] wakes up -[1518-05-25 00:02] falls asleep -[1518-03-10 00:30] falls asleep -[1518-07-08 00:48] wakes up -[1518-05-19 23:57] Guard #3217 begins shift -[1518-03-31 00:40] wakes up -[1518-08-02 00:28] falls asleep -[1518-11-11 00:57] falls asleep -[1518-06-27 00:45] falls asleep -[1518-07-05 23:53] Guard #1559 begins shift -[1518-10-02 00:17] falls asleep -[1518-06-13 00:45] falls asleep -[1518-10-04 00:18] falls asleep -[1518-06-03 00:59] wakes up -[1518-06-11 00:57] wakes up -[1518-04-04 00:02] Guard #947 begins shift -[1518-04-24 00:45] falls asleep -[1518-03-20 00:00] Guard #1307 begins shift -[1518-11-16 00:58] wakes up -[1518-05-01 23:58] Guard #389 begins shift -[1518-08-06 00:00] Guard #1559 begins shift -[1518-03-05 23:49] Guard #113 begins shift -[1518-06-23 00:56] wakes up -[1518-09-28 00:48] wakes up -[1518-07-19 00:49] wakes up -[1518-07-08 00:58] wakes up -[1518-04-03 00:41] falls asleep -[1518-09-14 00:57] wakes up -[1518-07-25 00:05] falls asleep -[1518-11-12 23:57] Guard #1811 begins shift -[1518-06-10 00:29] falls asleep -[1518-08-21 00:58] wakes up -[1518-03-17 00:43] falls asleep -[1518-03-06 00:59] wakes up -[1518-08-06 00:44] wakes up -[1518-07-04 23:56] Guard #2389 begins shift -[1518-06-21 00:03] falls asleep -[1518-04-10 00:27] falls asleep -[1518-03-30 00:59] wakes up -[1518-03-31 23:57] Guard #449 begins shift -[1518-09-08 00:01] falls asleep -[1518-04-10 00:58] wakes up -[1518-05-30 00:45] falls asleep -[1518-09-26 00:51] falls asleep -[1518-09-20 00:16] falls asleep -[1518-05-08 00:05] falls asleep -[1518-09-13 00:23] falls asleep -[1518-09-12 00:23] falls asleep -[1518-03-31 00:39] falls asleep -[1518-06-08 00:40] falls asleep -[1518-08-23 23:59] Guard #409 begins shift -[1518-09-03 00:35] falls asleep -[1518-06-04 00:00] Guard #1237 begins shift -[1518-11-05 00:01] Guard #3209 begins shift -[1518-07-21 00:36] falls asleep -[1518-10-11 23:59] Guard #601 begins shift -[1518-11-19 00:59] wakes up -[1518-11-17 23:57] Guard #1559 begins shift -[1518-06-07 00:04] Guard #3209 begins shift -[1518-10-15 00:21] falls asleep -[1518-04-07 00:58] wakes up -[1518-07-09 00:19] wakes up -[1518-08-05 00:51] wakes up -[1518-05-01 00:22] wakes up -[1518-03-07 00:59] wakes up -[1518-08-12 00:33] wakes up -[1518-05-03 00:18] falls asleep -[1518-03-10 00:04] Guard #3271 begins shift -[1518-10-31 00:55] wakes up -[1518-07-03 00:48] falls asleep -[1518-05-31 23:52] Guard #3271 begins shift -[1518-05-23 00:37] wakes up -[1518-06-13 00:59] wakes up -[1518-11-06 00:29] falls asleep -[1518-10-27 00:09] falls asleep -[1518-05-07 00:50] falls asleep -[1518-06-28 23:53] Guard #1459 begins shift -[1518-04-04 00:37] falls asleep -[1518-10-09 23:56] Guard #3209 begins shift -[1518-06-29 00:02] falls asleep -[1518-09-16 00:56] wakes up -[1518-05-08 00:31] wakes up -[1518-10-08 00:20] falls asleep -[1518-04-21 00:58] wakes up -[1518-03-09 00:56] falls asleep -[1518-06-13 23:58] Guard #1033 begins shift -[1518-07-22 00:42] wakes up -[1518-05-28 00:11] falls asleep -[1518-06-17 00:00] Guard #3271 begins shift -[1518-09-27 00:56] falls asleep -[1518-04-18 00:00] Guard #947 begins shift -[1518-09-19 00:04] Guard #3209 begins shift -[1518-11-18 00:49] falls asleep -[1518-08-25 00:42] wakes up -[1518-04-20 00:56] wakes up -[1518-08-22 00:47] wakes up -[1518-10-07 00:59] wakes up -[1518-04-18 23:59] Guard #389 begins shift -[1518-07-16 00:23] falls asleep -[1518-07-30 00:17] falls asleep -[1518-04-24 00:03] Guard #877 begins shift -[1518-05-06 00:38] falls asleep -[1518-05-28 00:44] falls asleep -[1518-05-02 23:56] Guard #557 begins shift -[1518-11-17 00:47] falls asleep -[1518-06-18 00:44] falls asleep -[1518-11-04 00:14] wakes up -[1518-06-16 00:30] wakes up -[1518-11-02 00:22] wakes up -[1518-04-22 23:57] Guard #601 begins shift -[1518-06-20 23:50] Guard #3067 begins shift -[1518-07-28 00:06] falls asleep -[1518-08-25 00:28] falls asleep -[1518-11-06 00:47] falls asleep -[1518-05-16 00:49] falls asleep -[1518-09-15 00:40] falls asleep -[1518-09-25 00:44] wakes up -[1518-06-04 00:58] wakes up -[1518-03-08 00:50] wakes up -[1518-10-30 00:58] wakes up -[1518-05-01 00:25] falls asleep -[1518-11-13 00:51] wakes up -[1518-10-06 00:54] wakes up -[1518-04-28 00:51] wakes up -[1518-04-24 00:33] wakes up -[1518-03-25 00:51] wakes up -[1518-11-02 23:58] Guard #877 begins shift -[1518-07-12 00:00] Guard #1459 begins shift -[1518-09-12 00:45] wakes up -[1518-11-11 00:47] falls asleep -[1518-10-08 23:57] Guard #947 begins shift -[1518-06-08 00:59] wakes up -[1518-07-10 00:04] Guard #3217 begins shift -[1518-09-03 23:50] Guard #1459 begins shift -[1518-09-01 23:50] Guard #3271 begins shift -[1518-11-19 23:56] Guard #113 begins shift -[1518-04-22 00:00] Guard #3217 begins shift -[1518-07-20 23:58] Guard #877 begins shift -[1518-09-28 00:03] Guard #3217 begins shift -[1518-03-04 00:18] falls asleep -[1518-09-03 00:03] Guard #1307 begins shift -[1518-09-14 00:48] falls asleep -[1518-09-02 00:49] falls asleep -[1518-03-24 00:46] wakes up -[1518-07-24 00:59] wakes up -[1518-09-01 00:02] Guard #449 begins shift -[1518-04-25 00:24] falls asleep -[1518-06-11 00:28] falls asleep -[1518-07-09 00:49] falls asleep -[1518-08-31 00:02] Guard #409 begins shift -[1518-08-05 00:02] Guard #389 begins shift -[1518-08-22 00:58] wakes up -[1518-09-29 00:52] wakes up -[1518-09-07 00:01] falls asleep -[1518-10-19 00:15] falls asleep -[1518-07-18 00:39] falls asleep -[1518-07-06 23:58] Guard #113 begins shift -[1518-11-10 00:04] Guard #1033 begins shift -[1518-08-15 00:01] Guard #1559 begins shift -[1518-04-12 00:13] falls asleep -[1518-06-05 00:56] wakes up -[1518-10-17 00:54] falls asleep -[1518-10-10 23:58] Guard #1459 begins shift -[1518-08-13 00:14] falls asleep -[1518-10-16 00:02] Guard #2389 begins shift -[1518-07-11 00:01] Guard #557 begins shift -[1518-10-02 00:42] falls asleep -[1518-07-15 23:57] Guard #449 begins shift -[1518-03-07 00:45] wakes up -[1518-11-19 00:02] Guard #389 begins shift -[1518-11-03 00:51] wakes up -[1518-10-22 23:59] Guard #1459 begins shift -[1518-07-08 00:02] Guard #3271 begins shift -[1518-09-16 00:18] wakes up -[1518-05-05 00:00] falls asleep -[1518-09-15 00:01] Guard #2647 begins shift -[1518-05-19 00:46] falls asleep -[1518-10-17 00:48] wakes up -[1518-03-07 00:57] falls asleep -[1518-09-11 00:52] wakes up -[1518-10-13 00:53] falls asleep -[1518-07-13 00:43] falls asleep -[1518-06-26 00:30] falls asleep -[1518-07-28 00:59] wakes up -[1518-08-12 00:15] falls asleep -[1518-06-25 00:21] falls asleep -[1518-05-26 00:38] falls asleep -[1518-07-12 23:59] Guard #1811 begins shift -[1518-05-28 00:47] wakes up -[1518-10-02 23:56] Guard #1307 begins shift -[1518-09-22 00:47] wakes up -[1518-05-07 00:35] wakes up -[1518-08-09 00:17] falls asleep -[1518-10-30 00:42] falls asleep -[1518-04-04 00:18] falls asleep -[1518-03-22 00:44] falls asleep -[1518-06-13 00:57] falls asleep -[1518-05-02 00:29] falls asleep -[1518-08-15 00:55] wakes up -[1518-04-19 00:57] falls asleep -[1518-04-19 23:59] Guard #947 begins shift -[1518-05-02 00:46] falls asleep -[1518-11-15 00:00] Guard #3209 begins shift -[1518-10-13 00:57] wakes up -[1518-04-03 00:07] falls asleep -[1518-08-15 00:20] falls asleep -[1518-03-13 00:47] wakes up -[1518-09-19 00:09] falls asleep -[1518-11-17 00:21] wakes up -[1518-10-19 00:35] wakes up -[1518-05-15 00:40] falls asleep -[1518-11-03 23:48] Guard #1307 begins shift -[1518-04-10 00:04] Guard #1307 begins shift -[1518-06-20 00:04] Guard #3217 begins shift -[1518-05-16 00:04] falls asleep -[1518-07-19 00:12] falls asleep -[1518-10-12 00:23] wakes up -[1518-03-11 00:56] wakes up -[1518-05-23 00:56] falls asleep -[1518-06-28 00:32] falls asleep -[1518-05-11 00:45] wakes up -[1518-04-09 00:33] falls asleep -[1518-10-05 00:10] falls asleep -[1518-06-30 00:37] wakes up -[1518-07-04 00:06] falls asleep -[1518-05-02 00:53] wakes up -[1518-10-06 23:54] Guard #557 begins shift -[1518-08-23 00:17] falls asleep -[1518-09-11 00:19] falls asleep -[1518-03-27 00:58] wakes up -[1518-09-06 00:01] Guard #1237 begins shift -[1518-07-06 00:45] wakes up -[1518-08-04 00:48] wakes up -[1518-09-19 00:25] falls asleep -[1518-04-11 00:31] wakes up -[1518-04-21 00:20] falls asleep -[1518-10-30 00:57] falls asleep -[1518-08-03 00:58] wakes up -[1518-04-27 00:58] wakes up -[1518-10-15 00:58] wakes up -[1518-11-23 00:42] falls asleep -[1518-06-15 00:01] Guard #1559 begins shift -[1518-04-24 00:49] wakes up -[1518-09-21 00:31] wakes up -[1518-05-26 00:41] wakes up -[1518-07-28 00:51] wakes up -[1518-11-22 23:58] Guard #2647 begins shift -[1518-10-28 00:39] wakes up -[1518-09-14 00:37] wakes up -[1518-05-15 23:51] Guard #3217 begins shift -[1518-07-01 00:33] falls asleep -[1518-03-29 00:44] wakes up -[1518-05-22 00:51] wakes up -[1518-10-14 00:54] wakes up -[1518-07-15 00:45] wakes up -[1518-06-14 00:27] wakes up -[1518-07-13 00:55] wakes up -[1518-09-28 00:54] falls asleep -[1518-10-18 00:50] wakes up -[1518-08-26 00:27] falls asleep -[1518-11-04 00:53] falls asleep -[1518-05-01 00:10] falls asleep -[1518-08-02 00:47] wakes up -[1518-04-30 00:05] falls asleep -[1518-09-05 00:56] wakes up -[1518-09-01 00:55] falls asleep -[1518-06-15 23:56] Guard #1559 begins shift -[1518-09-09 23:46] Guard #947 begins shift -[1518-06-06 00:36] falls asleep -[1518-07-24 23:48] Guard #1237 begins shift -[1518-07-01 00:08] falls asleep -[1518-07-12 00:37] falls asleep -[1518-03-30 00:54] wakes up -[1518-06-17 00:48] falls asleep -[1518-11-07 00:03] Guard #1459 begins shift -[1518-03-28 00:58] wakes up -[1518-08-03 00:48] wakes up -[1518-06-09 00:32] falls asleep -[1518-11-05 00:11] falls asleep -[1518-11-21 23:52] Guard #409 begins shift -[1518-11-22 00:04] falls asleep -[1518-08-22 23:59] Guard #113 begins shift -[1518-11-06 00:41] wakes up -[1518-10-03 00:40] falls asleep -[1518-06-25 00:00] Guard #877 begins shift -[1518-05-17 00:00] Guard #449 begins shift -[1518-06-28 00:03] Guard #3271 begins shift -[1518-09-29 00:03] Guard #2647 begins shift -[1518-05-21 00:19] wakes up -[1518-03-30 00:53] falls asleep -[1518-08-14 00:49] wakes up -[1518-06-23 00:37] falls asleep -[1518-07-31 00:00] Guard #3217 begins shift -[1518-06-09 00:29] wakes up -[1518-03-11 00:00] Guard #389 begins shift -[1518-11-11 00:27] wakes up -[1518-08-21 00:57] falls asleep -[1518-08-09 23:56] Guard #1811 begins shift -[1518-04-25 00:04] Guard #2647 begins shift -[1518-07-09 00:03] falls asleep -[1518-09-25 23:58] Guard #1033 begins shift -[1518-07-17 23:58] Guard #409 begins shift -[1518-05-22 00:47] falls asleep -[1518-08-30 00:32] wakes up -[1518-10-14 00:23] wakes up -[1518-10-17 00:56] wakes up -[1518-08-12 00:59] wakes up -[1518-09-21 00:58] wakes up -[1518-09-22 00:22] wakes up -[1518-05-29 00:52] wakes up -[1518-09-05 00:51] falls asleep -[1518-10-05 00:52] falls asleep -[1518-03-09 00:29] falls asleep -[1518-04-09 00:50] wakes up -[1518-10-04 00:59] wakes up -[1518-07-27 00:33] wakes up -[1518-07-13 00:51] falls asleep -[1518-06-28 00:29] wakes up -[1518-07-23 00:44] wakes up -[1518-05-24 00:58] wakes up -[1518-09-24 00:07] falls asleep -[1518-08-19 00:55] wakes up -[1518-04-15 00:53] wakes up -[1518-08-29 00:04] falls asleep -[1518-07-21 00:59] wakes up -[1518-05-03 00:45] falls asleep -[1518-03-17 00:01] falls asleep -[1518-03-05 00:51] wakes up -[1518-07-22 00:46] falls asleep -[1518-06-30 00:14] falls asleep -[1518-08-03 00:32] falls asleep -[1518-11-22 00:08] wakes up -[1518-05-21 00:58] wakes up -[1518-03-23 23:46] Guard #3209 begins shift diff --git a/2018/inputs/5.txt b/2018/inputs/5.txt deleted file mode 100644 index 4d4b703..0000000 --- a/2018/inputs/5.txt +++ /dev/null @@ -1 +0,0 @@ -XxSsdDIijNnJACszZScZfFhHQyYrRqzdXTtxDEeNnGgOaAcCMcCLlMmogQeEqGgFfGyYuUOIiYyhHlLmUulAUKkudDOoDdaLGRrgoDdDdGgRruUhJLljQqdwWDZzHXxppPTwWCcZzDmfFlLPpdDSsgGtFfTEeTOotyYMOGgkJjKZUuQdNnDhHvVntKkTNqTjJeEVkZzttTYyTDdIiRrqQyYYyxbBXLlKHhvtYyzoKMmiIkaAUvVuvEejoOJUuQoOLlLloOxoOXaAqYYXxyzMmZyoOVhHIiIKfFkiIKAaUukRrKQqASsakLgGlGgLxXhHmcCzZxXMWdUulLJjDwnNYkKFfZzpPVuUvHhbQqIiLRrlEeVvBQJjlLGgjYyJoAalxXuUqgGQLQqOqNJjzZnyOusSUeEFfodcLuUlCcCIiNnGgaADVwWGgvZtTewWENnSszBKkDdeEYytTzpPsSjJpPZkNnIiPpDIideEcCKCcNABbKnpPGgtTNqQGgklLtTuUgGQqaNnnVveEgjJJEejGkKziIAaZmMbopPOgDdGubBIiUZGgzuUoOkMYymvBbVPpmMqQKDdCiDdIcpDjHhIiqQJLlFCcfqxXwWQdsSKkPgdqQDGjcFfCCceEsSkKjJkKKlcuUCsaUuASLAaEekmYqyXxkKYBbeEQuUZzpPeEdeEDKkNnuUQsSTtqufFUNIGginpAXZiJjJjhOWwkKBbogGHsSRNnqQrIzZxXhEeHKlLtTrpPsbBSbBDdlkSsKZXxnwTtWCrRcNfMmPpFzNbBneFfVYyvuUBjJbEzKkZuUkCcKTPptehHfJjEeBbuUioOIIiqQFDdFfvLUVDZaAkKHhEeAaHRrOohVxXHhvNnzQqdoOaAOxsSXogiEeIGvhWwHROoruVtTvaAUDdPpuImMVePCcpEUuFfptFMmfTVvhaAHUuoQwWlLqmMKkONnhNnIisSgGHPwWQVvroDOodgGORqvGgZRrEeMeEkKBbRyYrrzZREepPCcmJSstTNntTjvOoyyxXYzZIiYVUuUunzZBbNWvVPwnNWeVvLnNlpxvVXjJPDdZOozItTiYzRrKkZngGNiIyXiIxYyCcSsEOmMUeEqQAaINCcxXniuOeAamMmMmMRFfoOHhaArMmpPRGgrVVvvIiUudwPpWDuVvspPSbBUzrJmMjjJnNRAamVvfFMaCTTVYyvXxGRrgttkJjYmkKPpMyTtkKHoOhJnNjifFIKTmMuLFftTlwWUtAyYajJyZzmMhHhrRsSHGtTiIgBmEeXxMnNpKkSsDdbBpPPZJjHRrhKQquUkzvQdDVaAWwveEqAaVSAasBbFftQqCcTuuUOVvoUccAaIiCnNCHhXxpPWfybBYOoFwarPptTRRrArRrRusScOoCUMqpPLlfFMmjJHhDdpDOpPoAabBwWdQqfFPDdeCHSHRrhlLszqQZhVvnNodDQqOPVvpcAnNLlfFSoOsiIOoSsJvOoNnVJjxXjkKuEsSEeWbBnNEewpPbBANnakKkKHhMNnrXxjJREyYemoOqQeTbgGBtIWwiIFfHhiCcEKkeHZzhhHRshzkAajlLJKZVvEeCgGdDhHSPpEQqOoescCuUcPYypJaQqFfGgPpAPpeEjZzXxbBNqQfFRPTIRraAFJjsSfibBZztJjrRprlLiIycCBbYKknrvVHNmMneEhSshHGgSbnNgGBqQDwWdUutxXxFfXGNngaYyGgHSshfFrRjAaJAVTKktzMuviJjIVUmbTtgGBzZmMFfwlwWtHhTLfFWYycXxCrEeNsHhSrECceRTJjtyYRrGgrRZsSiIzpjJgGPeEhHWNnwSsZmOoRrMzxSsQqaAzZKtTkWsSyuvVbBVvUYChHOCcoeEciIwZzWlqQLnNpnNmMPwIiTbNnBLaAlJPpSaAsjGTtyYMZzfFmiaOBboAOAalLEejIikKqQSsXxAaJJpzZwBbBbnEearRAmMNDSsdyxqJjlLQHhpSsPEqQeAauUJKkmkKLlMjvVoOPpPpCBbGgoORrtTXuUxfaIwWiAsIKkpPifFSQqZpPAXxazEpKkPtTqQeaAnLdKOokLlDlpNngGcCmhHMrRiIqWwqQVabBARrcCUuviIvpPbBwnNWHONnIioGgOoIiVvAuUaoMrZzRugGUmMmxXMmaANLAalnOhbZBbzMmZzmMuWwnNUJjdDBqQHjJqQaAbBhNdDnzZZztThHeTtDUTtQquaAkCcGgKkjdDJKZzbcCBwWjBacCAYygGiILtTfdDEeLlFkKiQqItkKDAaKkaloOLARraApFfzZtTYkKcJjdDGgDdfFCPpQzZqvVcCgGfTtJjbBCLlAgGacYyFFfyqQYyPVvvCcrRQqVwWkEeFfpPKBcEeCnBbAarRNnNnCcTtNbYyhHGgPOGZzgopHMmNnIdDihyYHhEeLplLPieENnfFXxAavVIJjJLlAavVJjBHqQmMhbiImMbBEejrRQBbjJKkwiIWqKnpYyPVvNbCcZzBrGgRPpiISszZAazZBbzGgZUuyYbBKkoQXxIiTtOolLfFNnUuqjKRLlbBrNnMmkyOoyYWgOozZlLBbYyOojJDaAkKmMtOoXxqQAaTncCBCcaAevVEeMIQqiQqXxsSmEDdWIiwWIiqYyQwhHXJjxxMmXNwWFfnxRrXXtoOTxzZpPrmMsSRpPbefFEkBbKtTMmYyXgGVvWOowRWwreExUuyYFpPfztTGgNoOFfMmnXoEeOBbxRrUuZzxZCczrdDRxMmZzWOowTtJjanfkZzwWoOfFKuoOUFUuHhFfKLlkyHOovVrvVRHhRrSsJTAPiIpjJoSsOQnNqaQxXLlfnNhHnNlLFiIsSqtVvltcPOozSsjJHhLbBlZrLifFIhBbkKHldDsvVcCSMmtTlLBbumMOovVUWyYcCNnRQqrKkwRpmMBUuASsoOqQabAayuUFfEeVvUuTtJjxXmcYyFfCEeUuPzdDZDdpOWwZyVvQqYfWwNnFzWVvwaAARrkKaoiIcCsWFfbQqBGgnNZzyYcjGgJCrkKFfRZFfzZHhzvVUbBumEkaAlLKsEeVvSIiezZhHisSsSeLlEIxXcLlCMFQqfGgmsLlaAMmaACctTAaYySENoODdEeutHhTKFfTtkkgVvWfiIDdLllSSssLbIhHmMeEgRrGiiIufCZzcFUBFMmdDHhqpOoNnWWwKYySseEKkxZKkzXiIdGgzZMmDhyYHsMmIiCcnbHSXxsTTtthRjJhXxJXxjBbUuPQqUTtupLNnVvtTlHjJqQrBJhHHbBkKhyuUYKknNoOcvVTtyYeESsCqQQKkqQqQRrqHmMZfFnNXVvCcXxgGxzmaAMjJvVTtTtRzZjJrPVpPkaAzZnCtTLlTMmtuUAazXJtgGTjRrSsrRqQqWJnQuUjfGHbBRQqhrRHrtTdyAaKkOoSsYQarRxVqkKngQqGpPHfYyPoOvJvVjVrRpMmFcCkwWaAYfQqtDdNMbBmVvqQpSMdDmgGsPEeyHgBbPZDdGgrPsSsGgrRCcSequTtUQoOKkSsfFflPpLFILliWwEkKcCxnNXYeErRyZztTpHhSBbsmMgXxGRrmMReNnEHheGWwgvVgGEzhHRrlHhhRrhHqQHLwtYwQqWbBjJeQqRZzrEfMmKoOXXxxkYObBoqaAQRrCcLlyhNnEOoebNnKrRTaAtuUkbBbBNuAaoOUnbDdGgZzYyKkbBuCXrRxcAaPfFpGFNZznkBboOsSggGiItXxEeTgGGKsSfrRvbcqQCBVbBqWvVbBIiAaRryYTOotHhwMmSqQjaJVJjvcaACrTjJcCSsQqDUTtucCdtIiHhQVxXdDvVkKvLlqPgYdmMDKrRjrRTKktQqOoAawBbDivVIdWnqFBbfZoOzQOoDRrdYLlhHxNhHnGghsSHVUuvsvuUuoOlEefNnFfWwCclLYyYyZzRroOTtFNnhkKiIHKkqMmwWYyMmPGTpIiwWzZTtpPhnNHmToOTttfFYKkPplPpOoLVUBbuRrVfFFJjffSTtsVvJjFcCgCUueEcoQqyYNnqIeEiTtQpCcWtTpPYyycaACYSyYsJiGgrRIGGgDNGgxyuUYXXxhvVHqQnDDsSukKiIEeUeJjmMGgLlGgtTKwWkxXxEeXEHNTtnhSXDbLlBddLlDzZNyYKYDRrXxGgzZdVvSgaAGsWwlbBIWwzZiiIXxLYyuUllLlXxSsvVLVvQqIgOoGeehzwWdDyiICpPIgGNnanNJjWDdwOoiIAicCxXWYEDbBavuUQQqUbBuuiIUHhWzZZzmMwKkqiiIIhYTtyvwPpTtKksSmMnGgDdNRrHhKhxXOXxpIiPzTteEZVWwvRaArCSIixXFfTtQqsclLmMPpCmxmMBbXMQYfYyPCczpPZqvFlLlyHhYHhjlLlLJOkKdsSDXxovMCcmmCcMqQLlVHLlFfhwWADdREerBbpVmlLMJjIiqQvPbeEBqQJjNnvdDVxZzXYVOFTiImkJjKNnDdMkKqQFfUueWwEhHSsxXKkmnVoOrWAawRvglLPpZCcpPYASstTGyLlSsYCcqQeEgIiVvauZzUnZcCzKkNFfTtWstTSWwzZlrRLMmEwWBRrPpbsSCgcWwJcCIAaijCRrmMdBLlrffFFBbdaAkpPKDRPpBwWbuUGgMmpsSPCcQKvVyYwCcSsuIiLlUHHhDTtlLvVkKIidYyhiIXxxXuLlUzwWiITteEmMiINFfnNnZNDnNcGgdDCveEVdjJnYyBbVvhHyYrRwAKkaChHIiMmcCcICcuKkUjNnJyZzYyYoOrRrRWwefFaAHhPpNvfdeEgGdDbFfBbmMJEejAwWaDnNvVdpPRrMrmIBvVbSsiaJjqmCcMQudDfxXPpIihrRkYylLRruRrUaAKoOyYbvVHuuxXUUxGgXSAPpNnKicCXWuUYyweEuaAUlLOgaAGXxtOoTgBbGCczIiZUuXKkXClLeErUVaAvwWlLXcCxnoQPpqFfOecCjJLlEoOzDdZSzZiuUFUuIifbBiISSlLsQoOqEeBqQbrRxXaAIiOojjJJVzqSsrRwWBqQYybQUCeFfclLCspPSEPGgYyfFpGgnNNtTnQqeKkUuMxXvVmRrhQDdCZzcCCUuccoOeEJjxXMmqHDtnNAvVEezfFAaZUuLlDdcIiZzZzCrTtdDRVdDvLsSlTmMGnNfFeEvVqyfaAFQqBbehHELyjFfJGgNyYTtxSsXkKOoSsJjKkQEebsSGQqNnFfYygmMUbBKggOohHWhHXzburReEUyYRroOnNpPBtfRZzrMEemWwFTklLZzZOozSseESYysszZSqHhQRrnNKpPfFDqBCxXcmMgGbQdsSAadDEAoOoOGeObBoLlEgaUDdVvOooOrUaAOouXhHRrdDUHhudDLlPpsVvSxRrUrNBbTtTwWtCyYcqQrRJTtJjWwXxFfHhseEzEemEkKxXtTerRiIHhamaAbcCTtBteETzZINXxniiRrIMYaAyxKkWwzbcCwuUWBMfRruUFVvvVXxmBbCcpfFOoPQcMmMmBbLljJwWVcCSsPpsSvCMoODdYDeEdyPqQplLlFfxXLmJSsVnNvTtIiUuOoFRHRrhwAXxukCcwWfFQuUcgpPGCqWTkYyjWwJKmMAZvVzaBbaQqACmMcnIiNweEWSoOstTBvcCVouqQUkKdzZNqQnHDwnNNnhHuVvJoOcCskKSPpXWVvxyYXwCBPpIibcesSExqbBqmFRxXrhZYCckUAaaXUrlnNLJxXUUvUMmPiQqZkZztTJWwyMmKkSMSaJjNnpPAQfWTtKKkoOBWwbhDDddQAaqHWwBbhrYyRNnAaNRIireEoObBWUuwnoOBbPlLpwyRrYDdTthHNrRnUTEetWwSbBnMmNgHhGsKkdDErRHbBoraAROpvVVvPGEegrRrdDNRrNndLywWYpTtKkPpTILliAatPlDLvVlFsSfKYTcCIxXVvnfFRrWwWwmmMMmMbRrBVvDdRrsSeiIEUpGtVvTCXxcbPpBjbBJBAVvaDqPpcgGCQOoPjJXxpftNXxVvRAaeEKkpPMHhdDbBiImkKKcCsFVvfvVkKSDdQqAafFAaZxXwWNnzlLnMbBmmMqAaQwTKnkMdDdlLzZDCcmuIcCGgzZiWwGRCcrgUiILUAWwaeEXxFfCciXeEfbBlqaAEBbVQqIYyifZzsSFItTDdanEeNsSlLldDoOeEHhMqSsQaAsmRrMjCcJXRrxScCkKJjfvFbBfVvVlXlgGLbBiQiEyzZYyYehtrRTHiIGpOaAokKkGgKTtVvCtUuTfFcCcuUEmMixXITsSwWgExXYBbBvVbaAfJjLdDSsKkDdAaVRrvpPBbZzjJQqSAaNnsyHhsdDzZlLSYbBdxXetTEgGSsYymlauUeYyEfFaNnAALiIXlJjLxjwWPCcoEecCOJjhpwWPbWKFfIizTeEMmlLteEtTRrCcGgrWCcYgGTHhtydNgAaGnDwTiItYWwUhHwLFKksSflWnXxNaABLTtAaMmlPaAheEHpnNOAaSRrCGDdxKkXlKknNIDdiqQqQoOuTJjtUTtXxUUumMtNnTYmMoWWGgwCcYUumMmMPpvnXxnJjjJNNDdXiBbIxVwWTtFfWwLIiSslqLQqNnXxwfFWyYGgDdQevVARryVoKWCcNnwkGgOMmvVwOocCXkKEehHtBhHbICsSciYytTZaAUGgbBuZbBzzsSTDdPpJXxlLNnzZwygpzZwWtTsAaQqvUpiIiIiIPRrgFMmJjWESseEbBewTtfWwrjJYVSanNhHAfFsVvzZbFfzZBhFKgGKoOkcBEeWwoeEObCpnNPpPlEOCczMmGgZoewNnJjUPkKpkPpRrZzAQqaumMqrXtOoTcCNoFfOnNTtnAaPUuEeesSEwWVvpAaeENhbBHnJjNnZvaAAaVQqQqPpgbBGlukAiIaRFpPfrxXaMsBcCaAbBIiPpbOojUutTbhHXcCrZzoOZzRJjmgGMeGgeNnyYmyYdwWDMVklLKrRvVvjJrtTuUWbBUcCuDdlLyoOYyYmMjRrsVcCPpjniSsOoCcgXCcfNnwWFFVvfnWzZkLlgGwWKdDSsGEhHWsAaSZEUXxLlyYMmdDMmrRupPeAaCcWwzwDQqiIqQfVvQHhwWbTobBsSZXUuXxbsSyFtTjGgSkBbnNKGgtWyYEwWevAaEeVMmDdQqOUuiIbBhHqvVQHAgJjGaAjJbBonHwYyUpPnNuJgGjSsTmImMZuFfmPpsSTccCCiIpfiIFPHhTtPpKkUTlwWLtnNSsdRrXxKkAMqQoOrZYywWzOoqQNFfYyjJnNjJZYyvEeVzfjJZzVVvFdDYQqysSfNwkKWrRdTiAWwahHqcCQRrrbTtJNXxnZmmMJjJjgwFmRrRrAaquUKkXTUuDdbtTBkKmMqQlLEeSsGtlTtoOHhSdDKMmsLlPpgjJGvVSoOPpGggGwWhJaASszZaAPpUqeEVacCAfQqiqpPSstEDdxkKaAxXXenleGguflLRDdrqQwWDdVdeEjRrqHhQuAaOoUgBzZAFfajyJjJXxvVvKrNnplGgpPXiIHhxBlHhHtThLNnnNzZbLCYycSdDsCceuzEIielLCcZiUuEqQtTqQiIIioODXxxXdUlLUiIPZhXFfqQzTtZaomMeEvVDBboOdOxXaAWzsRkyYgSqatTAQsOoGCQqcEedDKMNtXxmuUMgdDGpPTgGWwuUmMncCmslCaUuAcLSrMSwAakZzpzZMmeXQlLwLlWAaBqQNnhoOrCcxXLlRMRrKOorQiwWIlOAaoBBbsSTtbqnMmYcChHUYlRkKqQHkaxpPriIoOPpXvhiYyRrqQqQIHUxXjMmmMrRxcnNeAXUpNnPIipoQqOZWweEXQqDvVSsdtOZzogaAaAUqjAaJhFFYykeEKXWwxQJjfFWzGgugGTJXGgKkgpPGSWwSsPiFpMmPvVfIwHhWpelXxLdDqQwWxXiIVrqyYLOfYyFtOoWHhwDJjGgqkZzKPpsyIQqHXxhNniQUuqcCzZzyaJjvVqgGnDVvnGgKkEevVIxXNniVvTndDQhHpPqmpPMqdpdDWwRrPeEiEeOBboZzZZiIVvzzzZhHIDAaMmXxNnQNRrhHtiLsSCDMjJqQmfFPplIiRreEMPKkpNnzZGgPRrQqpBbDdWtHdDqQhzSLlsZMffSsFFmukKbsSQRrqadDXUuxAXYiIyWwpuUgGHpGgAaPHhXxKklLhfFKzZIikPLlxXjJHhtjJTHhNnNnxMfexkKqQsStpEehJjhvVIRrTtkKNvqQVfFAKdvkCuUKkcOJmTtUqQlLtRKkrXjJoOxLKaAhHTttTkYgsSGyBbXxQqpjdjxFfYyXJDFfVvadkSuUmqSshHQqAaBbAaUxXuXxtNnEeaoOyXxYbBkCcgGFNnPhnNHTnNYyoOxXFBuOowWUbCaAthxfFXjJhHHCcYdQvVOkCLlLlcoOEpPGgLleqfwWFQTTtNRluULrntNdyYJDdyYDdaYpPjrvMoOpIitTPaAqQssaUuLlAkKCcSRHcefCSsOoevVrREvVcdwWwWabBADkKgdTIgGiteTtWtbBTwCeEJkIQkKlLMIlLiGgpTiInaAvOkLDvAaFAdDaXzZxwWuUOnzZlLEcCemzZwVvyEePpYWuUbIitOoeETyNndDYOoyiIYmMIoOeFfEVviWyYwUutQqQzQYyYypuQqkKrRLlDrZKkXOLsSeMmrRFfipPJjnfFLfFSLqQCcwMmKkWuUmSarRAsruXpSsPJMmDdPTtpTtpcCcZzCmMVbBlLXxAamMmjuABbauUddfFmMWUiIfEhHEeseETjpPOoHJZruAaUtLrRlgMmodLlyYOoVvuUDdnNSkuUgGwIKKkYyjsPpmJKJjCcFHhfUYyFfeyfRrJmMjFTthqvBfFdocCnFfRcCgGYyBbrRrEqaAsUulLSKMRrOokKRrKkKlLJWIjJiwdDWwcCGgIixGJrRRrAGgaqOogghHGrRKIcEegdJjDGVKWwfFkxQqmeEMCcXIivmMtYyTGuWtTlRyJjYrXxRrZtTFfzLKHhCAacgGuRrAajbpPBTBbtQqrTtOoeEJjXLmMyYeElbBZzlMwIAaOoUuKkiXGghHxWUiVuvVUvvVrwVaEeOghHGEeHhoAwBIUpAagUuuUGfFqQRNnjJhPeEjKkGDdgIZzKpLlaoOKgGALlaFfLDCcLeECOUubBotgGiINnTjJcEBbelIiTlLeEXmAaMxuUtMzZmYyuRrpPOojJcPxIiXEeaAYKkyEeeEBjJwWExfFXejtTJNVqQoOtTfFvRSsrQEjCDdgGcSsgGJXUuxhHlqQthxXkuytTYUKVsIiwWSNPpnBbZHhzFQqflzZMmGgkcOcCGYyEeWwhHDdgANVvNnBbVLeEmMiFpPfLlKksIMRrmUIiKQqkIiZzuTXeExQqSrFqQPpFbByYTuUlMmThHrEFLZzlZnNzfIsdYhJjHWcCRxXEeSueXpPjyYmMnrRNxXrZzmMPpIiiInNRIhHDpPQqdVxXutTUJLYOodrRDxXmlLEgGeMyDVvdikGgbBRriRrdOouvVdXxRvIlLPpwKsSMmHlLhfvVJmMOiRxXjJaAjJrxAaYyEezZDznSssSQqjlsSWwCMAamiIcqKzEzZZzeBbTESsTnqfFprRPZnNGuUmSfFIkQPqQHhjJpqqQQRfyoLLllnPkcKkSXxTtsxXCgPPsSppNnPdAeQqBbvVcZDdOiMmyqJBiIQTklLKPpsbBGgMntTLlNfFTtWwtPsSppzZSjJsnNTAZOxHRrkKvHUutIsEeJjSiBETCctyvVrUrRRAUuXxarNnuIQqYJjwVsSIiZzdTsnmCcQNnTAHhatHhnkKcYDdyCKbByYkGgYywWuuUQLlqxmIZziJJjLAlgGLacXxYyCKwfFxXxXWCchHkKkpPdDgaALlOqUuFfLlcSsqUuPTtEeMWwMnNmJjNnvKkAaiIKhtjJIaAFfrjJQqrRtTRxvVxXWuUPIiTtpAwWeEaKkwlgGLuUIuUjMgGlwWtTFCdDcxXIbdFCcIwEeWjJiCxXTNzZvVdbvVbBBkKCWwFgGfcRAarmuUNRrGgfVbmEeMHhyLlsOefFEQDaAxXXZmMztKqQlLktTYyLlnNrlLVvRTuUPiIHhXuUagGulVvoVeZztbBUuAKTzZtjJkgZxqQXOqQoFrRzaAGgBbPpVsScCMDdpPGgmEeGIWKkrRnNXxwVoOvPpCcbBZziaAEFfEuUeERreYqeEYgyYQBbqGKknNLzOopPCtcCRrAulLhTtuqQnNtTaAFkWdDMmEepPdDJjssfXtTzwaAZiIzYnlLZzvHhbBUpOEXxeyYyYvVIiwWITgjLlJNnXxfFdEeKbBUuZztTRAafFrkPtfFcCTtTdDhHNEzxXZeeurDdRMzZQqmrvVLlRvKkQaApPlLWwLDdEeOoEZtKkTWYSsFfypPbBqnNmnnNNUuMeEGaAgKEekFfEBbGZzvVmMEegKPpkYyzJjRsAaSoqFcCjFxyAajJYRrCYyXIicCXxvqQVEJKqQBbkYpPyjeEhrrRYEeJwpPWlVvLwWRrAzTKzQqxjJPNsSMmYybqQiUXuUhHFyYfbBKCcksSiIxucCvzYGVvjSPpnzYuuUAaUWwYyuEeUFfzFcqSsjYyBbgmqQMWwkKeEdDsyCgCcGWwRrZzIgGiLrVvtYyDXgNfGgPpnNbBDIiqjJQdzZgMJaMJsSGgjVviINuPIZzJCcooOlLqnNQTtOXxrRyTgGkKABbRrUukKrRsdDSGdPEsSepDoceAaEgwWWwhfVvoSsOeEtZiIMkKpPYqQVDoOdvEetTyMmnNjJwVPbytXxjJTyYFTXxtzKzZkbBhIZOnEeYyywWEeYeESUusudDpQqNiInPAlDdkJlOBbaAqQMFfbZzGgTtBieZpPQqEeoQMMhAakSsKHAakKWUuGoOGgKkgoEehHeEQqlLOVvWwPkHNEBOVLpPAamRTtDdrSswWMWwEeqQxRrXeEPLgLQeZyYzERlHhPqmMQOtIvVwaNncJjuUnNzZOqQWRrQqsgGRrSOmCSEOKSHhseHcHhKkCzLXpRrPrIKHhtmQKHnNVxXOMlFdDkcCKTtQVHhyjJUVZNFflLngGgGuUpPkKkrMXxXnerREhbHhpGFyudwvzaAZKkBbALDYpPSHhsjXwqOodDwfFWQWrtWoMmOwKyYiVqQvPpPubHfFUuYcKYyiIqOSsPpovQQSsoEAwWUuvekKueEAAaUuKXxNEeWgGwcbBCKXxhHQAaFQqWmgrUAJjlNAtTanIZbBDdiIzZggTDdnNJjtCtTIpzQqgMFfCcaAmcChiFfUuHhMYBbymMnuMmUqrRFROEeoEeJjhZzahHJjlFYygGAPtmmMnNdDRrZEzOoZaAaFYpHhPzZyAavbBzZPtrFKtJyYjnYyXWwxZzNdDTNOohHFfquzDdZhkKHUCchsSJYQMmDJjuMmCZzbBcoiwWIiIHJjtTtFfSsHxXhTVvIiaUuhAadyOOeEoWDdeXxoOpSsPEZzCcsSipmSLyKksuUSJTonNOXxGVpPczEebQqkKoKOoXdDxKOnaAECcAxXAGgsWwSaZUwWxcCXuKkwehHXxUuUadDAFHORrohfuaMmASsEjcKTDdDdKNgGksYylLsmMnqeXxPxXceEPpCIlLANqQyYEensSTZiImMzSVJBhHBBbBbKktTJIJMmYyGgSsayJYJxkqdDFfQKPpMmWwXjSprRkKDdnIcCbgGBikgUucCGnSCcsfFJLEDKlAagaJjAjrqQRJZzTGlTtjJfFrHWwhRfqRwXxAaPpWcMmZuULZhHzpPmureEjSsJSJjnNnNcoOCOnNdDEeJjBEHwWcCEzwEkhHAPpnNjPpAYykxVlLlLvWwXXPpxGgmMxXOoFfyYPpPpzgGiBuUYgjYyJVvVvtSMYhAJcgGZXemdRCgmXxMFdDpPzZIvQqBYybVxIiXtVPvHxXBGCcuUgbbeERbBPriIWwRYyMEepPmJAawkKaRyoIiOfZGncCrIifqQKkJOojfHbBlLhFyVvPaGgwyYBFXxpPnNuUNnhSsbBlLpPEMmFffFeHPmdDNnMpwWfjpPLyNnqcuWXzOoZtTzZxjJLlUuXxGgQqVEeFBJjoxfFXeLlMmHCcLGbBqvswbnaZoOzCcVvCGXABBbziITmMUutwWKjJfUuuUMwWaAlLiNsSnAaCcEhHmMHhJOoKkjeIrIEUuyFbiaAIWUuwDeEFrRTtFfLoFTtDSsjUuWwWuUcykKTdvBbFyYfVuBSsbUaAdbBDrYBWwbyVNnGNneEgYONnrRIdmVbOxhWhBbuUoOaBAsbhbBvFfVzLlhOLloZzuMmomtTMiSsiZuUoOBkKbPJYyjISsSshHgxXkaAAaKBDdfbBFfFKfuUsYyiqQXxItEeBFdDhHnNyEevHHFPpvVZzLDdlDHhkKnNqgXwWbBZzPJLlKkMJjjJWDdmMWwwKkFDdjSsoEeRzZeBZzNuHhdOoDJdDDWwqIfFiSsXxKxWmMwXqQjJNpjXRMmsnaArJjCcsSpPlLCclXxdpmMmMbBwPpMbBteCcDTeljbfiIGKkbtcVvCTrRfFrnNmrRHTtXxLVFnTtCcCUTKVcCpPVvwWvxXoXxOvaUAagCcTtQzZFcRrAaAxpPxXhHkKJSsugGlgGLbgVvVKkYRrJjlCQqaHKkeEhHIyixUuMmkKqnNczOgyYexbcCBIibBRWkBbKoXDFPcSseaAKkfbBEeAEeHhqQylLCcHhPpEJxXRrSHhUZzzYyTtnNZzEBxmtTtdtTIiDgoORgGuBbDgeksSzbBPsSPWMmITtFfiKkmjUujJlLJMEcsnNNnIwWJYyxWPpSCcsGgCgMbWrRwRrOdDwWHcChGgoIiBDxFfzFAafnuUzmMjJmMgGInNievVEKMmIGgiuwWUhcAaOeGnCcLUulaAXMmxCctKXxkXRrUowVrYyRlLzlpPyYZUojMYyqhkKHzeMmEMdDmrRAJjDdRYlKkPpaREehHxHhtTLjJIilcJjoZzOEIWwrRDdimoOMsSRJCwWMmMmmIiMmMNNnnSNgGThHtnnNmWwvNMOWOdDonjcCcROoOoFPxUPpHhsSuXSvVsMmVvtTJZWGJjDHIkJZzzZoOTNnaCghyYxgZfnNJDdKUNnBPbBplwNeXxbFfcYPRjJrtTpLXxebBEhNnhHzFUEeriXxZZAogGVvzhbBHIECcBbVvZzDMmKgcCDcCdLxDdcCXlwQqjJWVaknNmMdDLJjlIHhLnsSaAJjrrSpbBPwIMZzYeuUUuBHhbwGQqHhZvfFVvVgGsCUuuHhweNRrqipDIidWbBwDddDZYhHlxKfQwUugVLMDdxXfFPpmhiVeWwrlJLlYyvzPpzVfFvZOogmYXpaAPruUAfoPOomFfRXxjtqnfFNOSsoXBXxLlNnaANnbylLxZkRXvgGZziIZyYpmMPxXaAuOoTtVgaAEeGPGgLlzzGgHhSnNsYxtpPTpvxXkHUuoOVjuUJvMmLlbraglLfFqEezWZzuUfFwkhJjBbhgWwewZzWECWREdDmOoJjwWJjxaAXkTQLlqOofCqQetTOgWxXwvVGtAaesSETyFfYxXoxtkKwxXWCcTdKiIkYyDlFEefFyYMPaPpPCcklLXkKnNoOlAdJOSUuYyrRrThHBbqLMxbBhfFOoHCUucmMeXxdDjnuJcCgiInNrfFvVQsSpPAaAmbBMdadRidDYyRrfZzdbBDLlSopPJjXyRiIMCIMojJXxIxeGtiyYKkioldDdDFTbutTUSsKlLmMXxksSLlrJIaKkOoSNnoOUbucyAjeCcXCctTanNnNAWDjJDNndGgVFsCuUcSwWfBpJjxXBbWYyzZvyhUuHYvhHuUftTFCDRSXyYxseEMmnNZQqOYymXxEeyYbRzaIywWxXSsgsSGtaLlNrRDzwWZdAanZzqQpMmJrqPFElTUutJjwzZlwSaAmzZZrRzoSbBsOCpmMPccnNuUOocMYMnNOTtcLlCPpwWyqQeNGgnMmEEPAaKkZRhHrsSjYyJgiIUtLGgTpgTSQGgqZlowWOLzvzkcCrDjIXxkdDKaAEeElIiCTtcIGMmbBVvIjJJeSkuoBPpzZbphHTxXtoGqScBbElLheXxrREeromMORGgyALXxqjkKJnNSDdNnKlLLlkotgLEelPpmSsMqmDdTtVeEvWLFfloOJiIiTtzWwJkiIKrRrRrlLQqOUxsSXxoOlLoOTvbBVBUulLPLlAxIiqQFzZPpDmMdVvoqdDqQNjJnQwlLFfTtWkIZziKfFhgYueEUjJuZlOrRrHhoOxlLOoXpPRooqxXrRQSsOvzZjhHdyYDWwJTYytwWuUXxMbBmAiInNFQqQKtXxRKUuBkgTtGKxoOcCEsctTCPwWpHhbBfiXDpPIiTtdyYFfwWxdnpPqFTPFfpGQZzJetTPUuplLTtwlLtKkaxMiIfMmOoPrLlfFVJFfPCcloOLSsrRejBbSjJsJUuEHLluvVrHAAadiIgIiaAGqTtxDJfoTBbtCcVvbnmMNPpBSsaeUSLhHjSsEvlLVvVjAaLzZYywUDdWNnwcCKkSyYKuULUDdnsRrSrRNuoTtdDSsprRtTTuUPxNCcBbzZrXVMmQqbBkJjMMmmKCTcmwWpPQhHetTjJUucCUHoPpRLlhHrkIWwWRrhbBftzZTmMFPGgnNuVvrFfxXRciqESsYkKyYymPpMeZzucbBSgGwWvVeLlBbzFfhbiILPpxrRrRQqVdGgjJGxXGgmMLlnNJjqnTtNYyvQrxXRZzOVusGCcPmMpgSDdkuoOxcBbChvrSsYfHcChDdFPUzZnNiWeqQvVkcCKEwzZIbIeELlqWDdPtgGjMmPpFfVLlvZzGFfMOmJjIiykcCFfdRrdDDEOTtoDeWwHhdFfDpsSPzZlawWAVvjNEeyHsSRzzJRUurjPpFiWwnfFsoeETbYbBRiIrOoIiOEqQKSwJhHhHEwWncCPpntMmQKkqmccCwvcCcRBcCzNyMmvOoVvjJLYyloOVNnMjGgyAVpPxXqQgrvVxsCbdDBcGQIipPNDdspQNnqPaARrpnsScCTrRXZKsVbBeDkKdZQtTqhpGvVLDidDEnNeydTVcfLlFImWYQZhhawojJjJQORrousSVwfFPenAaAaPpkgGUuKMmAaNpceEVGKkXxXePjTUgLnNlGGgLNnqpNimMvVOtkAlLayYkUuKrRxTBbAatBkKdDknNKkMmnUgOBbooOMmMeEpjvLlSsIqxLlJjZzUKkTtYyAawuUNEJuUjfLkINVuCArRQqkKJZKTRDhkpPIiBtTCvVHAahcLJjaxBbeEBFYSQqxHhdCUlLAmiaAjLlaAJgLlimMITtFfjZYzuDdoPlLIwWaAIipqsxXBAaVvbjJuUGgFXYyadsBbSYXeIYyeEvVijYAQIiOozZcgGBbcvkBLluURVvAdfzWhHwPbRrvVjKkBdrRDguHkKoOAZVPUDdIYrTLlQPpqsSNZcSsdAWziFfLlqQwWmaAMmMQBZzbUpMVvmoiIsyNeGgkKeEFvVrRMVBhHCcMcljMQkPbLzZwJASMmHpPtTHcBbYPpgGsxXZzUuZlkBbKjJgYyDPpSXxghHCuUGpPggfyYOoLnBVvzTIrGchotThHJRlFBvgghHGXxzPLlpHeLgiIiIVgNnGnYWwySDdpSsMglLzZGkavMPDdBbGUrKkaARuqjJQJwWjbBgPpqQQuoaAOnAduDqHhQdUtOoGsSYynEpLlQqbBMmgyrUDMmnKpPkNdTtLacDgGAaxZqQNnOoAKdFfFHTVBafFAbptTFfOoRLihKkccLEiPLAZFCcYfFyImQLlqZcEVveHMDddnMTwWsKwxRnNYWwyugQqGwWPpIKbBPpkjRrSOoExVvJjNPBodDUukKTwhfFpNnWXxIilyHhzxBGOoYPpDdDayXxzRrZkbaPAhqQzZHfgkkKQBrhJjroHfSsCcNiIcCFjUwWPpsSjJVGMhaALVvlHEeyYuUNnLwWDEeIPfFpvVAPpagGJIihGgaCcFfAzZIZDeNnEdzMmUkyVvWcCGwQEYygKkGNukwWymMYcWqQSrRWEIEeYyEJjMmRreZctbAavVECphHXUuxYtoOTHDdhIiWcCrMmRwvVDdAirRCTVsUuSDvVJwWjMmdkKFfwWuoOYduBdaLVyYbfoLyYlEPpFjCmOoMlLMwWmyJjmMVOafFDIBbLoDdbBLlIiUwWuLxvVXlnNkDzZnNcZhHrRMmzllzNnqTeEmvpPCcWBklLDdrqQoUXxZmMxDfeicCUNqmVvGDoOevBUWwusVyRhGgOocCLQDdqhzgNuUwWaAyqFFLLzZZfbBNnFzISjyYQqWwWwhiIHIiJOoYyskQDpPtTBAaMbRbYyBuUrBSZzJYbqCtpAaPTcAqQawDdZcyOxXzHhzZSssbBdPdRUuBeEbrsRarzkLBQqIYoOpPNnbhfFHcGvVgSsShHYynYyKkiIwWHhNGNPtBkKWbyzlIZzoVvwWiIVvbBRrOPVvNnwWpurIyHYHhPpyfHCMmIiJrrRRjNnSstmRXOoOoSBlJjlrIivNrRngPpGNEVvSLpUvVhHXxfFnNPpzpPZtNAoOYyIOoJjQpJjPiIhcCmMXDdYyYgFkZEIidoOdDmNnJlXiIhnDdQqtWjAIiIbBIiiIgGWLlGoOKruFfUTtTtutTUdQqXOAaMQqmEeGsTKkaArTZoWwOsPwWpVvJjFiumhHAaNSsbBzZblLIfFVviBUMmYskCsSMeEbsGgGYyQqgSgGrsSSmMshKkHRKkVvvzwBwjcCJEPqNvsSCRwuCcUHhcSsOMGPJNCcnMmjHhNnRrtTiQqnNZqtmzZMiNNNnnoHCcuZzgogxXgNnGGgBbUuGPpYpHhnNPsDhCcTNqcCKGhPqQSjkgxFfXwUlCcDdozZCXasRuUQGArgOxXGTtznNZxXgoGRFqQmMKkxjJAwMcTtCUkyYKQPpSspUnNAazZLlnNyWwYKkueMBoOmxUuiISsdDbBDVMwWmnRroiqQBIzjCZDdSsVviNIsQqMmHcRrMzpHhCcPdbDXsuFTPjPpqYuUkKsSfFtTUuuicCiIIULAaiFVBsSmQqDkBHhbUdIiBjyWwDtJjcMwWzbBZhgGrvVMJjJfnNenNulLByaAYcZzgGpkXeZziSQqEnsSGgnNNCgYyPqQvWwOoVcCTiuUrROZEkJjGvVkDdzZbaUWnLppPKyYTtkPRrgYYLfiJZNnzYTbroXKbFwWfXGgUnNJpmMPvoOmMbZzbBkNyvmMVtkKTxXEyOBrEeRbMsSmIiMmdDpgFfGPDbBdmMWwpPPVBzZbKfdlLQqrRlHnoXEeVvaAxXJjxPvOtTwWiWxNrRnXYGgyYzZUxLtTIVTtHsiUmaMmeEAaRluiIUfFvpPvhMXxRrVBMmhHblLtiKDKkgaApPcCNwzWvfFeEeHhWMmwvjAaWwoeLlEgbXxQZAFsxXSfHfFkrLDAaIjJvGuUgBbVEffFjnkwLFjxgGcCVTOotjJeEnVvZRrzkIeEaAIiVBbvLewmMWEcRxXaAtyYtcCyYNRrwWBwWbCchsSzZtbBlLhHhLBblbBemOdCVmMvTtWwcCDdBSXGsOvVZoFNtrRuCbBKkfFcUfxkVvVOalvbBVLduULlpnNhgUMmPpRrulLlLHWoYwWLkVbBHfFKUuAaqhwBIibhHIiOpgGkDDdqQZEscxoOfFXCSiIezZPUMmPMtTebqQMHhzujJtTBnNKjogGsyszcMPIoOvAaSTcORXOTtoOhQaqZzWlWwNzZIiPEfYmRIiUuDdbMsSpPDIwWjJeyYEryYzekKEGgsjUxXuYbTtYVIVJFfojkYDdyaAxoOusYkKErmxaWzCzhHZcLkXAlCjJcRrJAZGgzaeEfPyYQTWbBwuUSXOoFfuSVBbcCviUuxitTSokKuUHXYKGZzPpjHhbXECbBVvcDyVlIqnCcEeyfIoOiHYzSWwqSWwsMztHWwbQcCnbBoKuDlyYPpgRVUayYAFWwfbKnNkrRUukIruuYyyYsSoOUbaABCJjZbDdBbnuzzZgmzAaWfrFLiISVvsCNQNjaAUEKkegGuDyYdgGWwJWnxWJtlBLqQlJCOodNnQCVsTNyYpPJjntetlMmBbkvVcCDdQyjJqQHknTtNsxXWKkoIiOfTXyYvoOVprXWifFIwWwWwLrKEeksZztTOHHhZMKbBZmMJjuTqNwRrWohHOzrBbXxHjZzJhMFpwpAaAahLluUlLHRTtDrcCRbZzmeELrRiIldDEmeEIuUjYjJtTtTIrOoRisSIqQpclLOdDoOoftTrxWlMLtzszUuZPpMIiQqrRmgGgWXnNVvFAUNKhHkWCcAFAtTucCRCrRZPOoYOTOhDJjVvhrRkTtKHzjEQfMKScLlYyWsSwfQFZzfspPVgGbTZKUunNIlRoMmDZbBiManLlIHhibrCsHKeElqKkXrmMCJFUrRcCgNMaTDRNnNVCTjcGgCHeytNnSPlPKkpwshXTbFhZzJKAjMmJgwTfpPkkKKxXRrZzRfzZzZvVflLqQLFfBoObgSsUumMUZzdDormXRrpPiaOFUunZoxsSWwXOQTthHkVBxhHttTCchBmgLlGTpPsbhKDgWRrwGnsGgQqnIixjQqOoJlLlmtTkKmGfFlLtHtTZzhHMmiSeERfGpchHhHYyXrnJAnaALeEEeyTgGdbxXGPpmMCMgPqsSVvphfSNnsFAfCckKDvVDddtTkKZTwhmLBbhHNnlWgVrpSEeNjHhChzZmxPpUuubBUPpEeZzoclVvuApPaCMmQQGgYyVvQSoObrbVvTSCcOoHtTgaMQWnNPcFfteGCOCcgGocSBABbSswWtqwLLloEeDdQoOkDdKpPxFfFzZIiDTtfLlQZzvqQViWthVaFYyDzcsSUuNAaqQeKXoAAYVIiBmfFZSubBUgXyWdYyweEeGgevsgEeGMgKiIMMmIimVirRxXUuaQleRrpWwmCMPFBbvNpZzjnNJVvTADyylErReLZzfrcxNnXebCcEeiIRrxroORPcHdDQexXwRVvrzZrRqQTtAWwaZzMmWmCcFIsSAzQFfyEkkKeYicCPpWwIfFkKSXzvbNBbwWvVOonPpBNnLlRIYQqWAwvWwVWZzatkKxmJPpsZqQLXvKkViQqzZApPCcMCcRroOxXXiIUTtuxOEeoEwWYRbBTtwjINvlLcyYCVXHuUhvJkLIilzGllWgbBWgBmMpHCcVpwWPsKLlUuOiIFcCfowoepsetTaXxmMFfNnNuvEXrRlLHpCjSCnoOJjLcClXvdLnXxHWTtKGrxXbBlvpPVriIxmMcGgrQoONnnIYxGbBVRrOooOvyzWwdyGgPpMHfiIRrFtaASrRsYYsSJHhjUulGsFSgGaAdDsQqiIfSDxvVXdXxXxgTIPyYeNAwjvVhbBHNSsAanzMmZFfcCnXxJzZjCUUuJxISeTyYaAthUuOkquTtrHFfcXjxYygtTWzNnZuGgAZVUYNXxnAaFfBbxKkgwWuUqQGWwzIiBrRqQMmEjgUZRryvKkVFkltTLJjlOEeFfXNwWnLYytJjTXxkpPrBttiIYyIYsSdDmMtTKrfofFOyUuLllhUuHqIQiHhImXxaAHzZJlcQxXqxGQnFOofzZNxXdtTFfwKZBbVNAnXxNEekeqQPcjxkhHgTtXxQmGgmGrPCKjJUuxDLlNuspIUVWJJjLgfYsPokKOIWwcCbWKkqgFsSBcCKavVooFpLlPxXpgkPEStTsFxLlHhXnBbErSsqQRHpMvVmbDprsgtTGSZzRIihPZhHzZdbwpPDDddEkeELlKsNnudTTQqnrqUumFZNUIiDsKdikKIFLWnapPGmUHBbWKkjJHOohhHCnNcdDdQqIJjigRVifPtyYnfLlqQFNLlDFMJJjjVtOQtTUuGgqoqXxQWzkmscIwbBNnocZYyYWmMqQZTNCcnSsfwZzaImMhTOocGgCtvcwWXBuQquFCbZeEJjqQVdDsSerLhZzRJjyOoYDdWKkVvBgQqGhGgbBcCZAUupxOSuAPcCypPYpgGavYEfFlDHeXugrrBTrnOoNqQBNFiRrHhmHgQyrRhHDdYrlsSKNnnHhNxWwumgRTwWtMmgqQjiqQBIQqVvirKUgryMmYCLloiarLOxJTSuSsTgjJGfAdyCcwCFzLcMfFCcxTtIXhyYQqHxauCeEcUWFikIiOLDdlGdQNnqDoOywWdDYYyVvThHJjHhLhlLBbsRrPxhTYpPmMmMyMmlWfWoWWsAkmMNnkNyYoWSCYAWwEJdHOoGsVRfFOoqJEejQiIVvrlzzZhwgGWTPxUuEyYOoIRAariPpXTMIFlLiiIWJjEkcCKejZzJZYwUuwFfWhEQHuWwGHhKgyoOkFYybyYBfjJGBbgTcjOGZRrzgoBMeWNlIFNGbPptvVTruvJJoOQEeIiAzLhHyYmGgMIiCctTODtTdaLZdDZsIiSSsaEzNjmjouTVDVUuvmiWwkYyuUPIEeHTtrOJjYtTutfTtiITBEupPSsUNnZzkOUTtZzeUuvVVvExZRHhahKkgGcCcCtCNnTZzzQdUkjJRfFiIrKVVvvHVvfFcngiVKkiSsSTmRQfFwPpRrgIpgOoGGLdOoDlwWLlLEGbSsqykKzYyRLlIintpPcCYaAkPHwWhpvzKdBKOTzZDdyrRpPVvWwbcdhuKqFKGgkKkHpPGSsgsMmgiIIaACcERAaBbkoyWwnLvchHfeoUNeRrMeScCFhBLFZzcCfcwwWXmMDwYztHdDUuWwYzuUHmYzrXMurRYBarRFdDvvUVSdyYBkgGdDkemMgGJPilLlGoqRrRrLWwOowLOAJhROozHhZNitTtTkKITsQXtnXxRMmooFIWlAiTtkwzkNngRGxXvVXwWABGgnAaNBbqQJgbGSsbEGVvgSsfFvVBXeEIGtRlLrGIiKvvoOtklaAfjdDxogMmxXTNTvxAauiIUzsSqQOEejNvVnjJkcCSjtTBeZdDfFKicYukKqQJjUyWgXXxZSOThHtdDuQtezXxTGfiIFfEcmiIHhMfVkXeEgGgAaGgeUUuAyYzZaaYfFylETvVtHheLsFpPfGgSaOnNYHhNnyYsbAnNjWRCcrcGQnQqYuvHgGJgaABNTSNuUdyYMximDahuTdDwWQXxVxyYUIWMtApCczxIAlLOwKpPTtJXAavfFiZbBnrqnNhHqjJmUEHfFFYyJPySQEQVvwWhqQEmMewJNbnzQNlVvLPQHpwLwWlJWShFasowWdFtCDduiIaAizEJWwKpPHhFkKKoVvVDSsYytAeEtjUpJXmdkhHKceBbWXopxSJLaOomQWmMlZIizNEeEpPeGuhHoKcrleTZQquOoUmMqknNKkdDRfFfdDmMFtJbJjfSgGhHGBLeEJjlvlcCLVrhqVvBvVbzqPpyYxWwHJZwdDdXxOBtZtgGTzTgGaqJXsSVIimWFfmKNMOphpPHShlDBjsSsVouBBVFcGeEzRrRSsrZFBvVMpSRUYCjJjmGuUbOfuzyHhkbBGgkfFcdXZHmMWBbRgNmTbBnleEkdfFwAzzMkEguUuUXrtYgGNnyxbBylLYwbBEjDduUJEeSHYyXLxRIsSVMxXmtJqOozbVxgUEeAmMHhasmxXelNqQQqCuPygHtssoDdCcAsSTaBbqPYyEBbeqQnqQNYewzZpOJTaAtTvoXFaYytTAQYIdqQgbpdDDZFFUmevRKkQqraJjxZkKZjKWwlLQqAkKLliIeCxXcfFIizZEjhHGsiKtMpWiIwPQwbJWvVxmVGgvWwfFWeEaAEeDdDankdeEDJaAjSscChHrRLAsNBfMmFYLllovDNZJluUCcAmMMmTDdtvVvXxIiFavNnozzNOocChHnFpkAZCfAcdNgAMnIiNoGoGKqyYPpsQkeEEkYmMLlWZzkMmdOoKHyYYvVUCobYhcCwEeUuOoWVvTtqdDciKktTILHKGLQMmIHhCVwHhFCcjGocpbcCuqQUTtqQDsoBXxLJevKkCZHYcMqfFrMhHYynolQbBVFfvEeUuAbNEendwfFUrUHhiIKkAiIyYRrauRqtsGmMcPIGjEecpPODWVddWSswKZzNAINyYyYpCTrbRGEfhOtZXuUxlLMmzTsHhiImMqQopTtKkVPLEyWwNnAoOQJTPpgniVpJUumMNIntorHhnNacXxeezEqHTPpUrOfapExqBlFdGzNnkKVVXxKWInNLfHzZXSyHhvqDJzbTkKPQehLpxKlLJOooTtuaAUOjCcNcCPUuztDzYyZyHlsSYHnkykzZKlsBbrMSnieBbEXSbCUQtetBbTVlQqLtoJjQqTtHeEcsViIkpjYLnfFwWyYkKwvVkBGaHVedAWwXoCKPpIpBsxaAXSTEezZvputBSPpSQqzDdaYDiGKnNiaoqQayYQZzEQPVnNKpPSsXmbfwOsDPxUuuRgBmMDdsxbcCcCoOGZdhHffrRFFniXSCcFfsxrRAweMDEiIhHULXpxXMmfroaWwAWwUugGCfaYLqIidDdDKePpqgJItuQqUVSOoYdDPhVRDdrwWxWwAaPSzOoTmUaMKkBHGgdppmMpztLlLFUuRyfaAZAipMhHmJwqQYmkKMvaALnYyAIKMseESmdtyYFquUwWcCkxpuddOmBbwWMOnnKkAzLuUlHeyVdpJjPDdcZqmEUugsRrIcTTpRrzZPjJjJjtKVskDMmCcGgPpoSsBHeEjIYOoCcwLlcCDdBbWWBIefhHrRHFfOoeEhDdRBKbBWwkjFIiIlPnqfwFPjDdJgAztTsmhHGyaUuTtGYfAStcjWwkXGkLlKjxAJiMmGgmHbjJbyYyTyYttTYewWSKTtNnuUoYyKzZsqAFIiIXBRqSDbBdKkxBckKHTtYjocCOSGgsDqfyYiIJjFhHlLQKLGaAeWwsAHqvxPuXnNekKsWVaAVeIiLlccZtTzcCzCErPoHOohOdmMeElOYyNnvVpauWVvwfbBdTAUuCcLEyyWlLeucwFeLIRrffXxdDrRLRrpPSFfxgGOogGiIYGSqtKVQqpPkYitCHqIibBEbWwBDdEeoOLleAaCLlcjSvJOoDFODrRdsQVvqBEMmrmYqFLlXxKfMUbapScjPpbuvlLrAahXgGVvViKkepPosAxXLSsXcWyYSVxRXxreEXowZDzXxUJjLUOeyQMmzZAHhMAamNjyYXIixJUrRkKbeOnOGDAXfoOhQqzKfQqFjzPPJUWYNqWCBbckkuuHoSswxXWkOouMmUPNEXwxOxXJXwNbQqOoBkBbvzZMmuUUuBbqVulLCmytsgGaASkdFfDToQqOsLlMWwZCcHheiIuUkRWgpMvVmMgGYyLLkeBxOoaAEgcCqnNQYyQkkKTtySsYfFtxXbjlNsSoOpItBlBblgFfOoxrPdeyzOXsGgplLbBMfhtTeCcEMHhmMmAayYjJfFmMdIisRUGPpHDdhqoZzMjdDwVYNnDdGTtgyxyNnppPPkKJsUuYSTrRhfFHFfzxMTnnlLunKurRUVvwOoWCtTmfFwsLYUhHQquyaQTtFfrnFYWbckSqQsYklJKkjULBRzZrblEgrmMQdaCSxPwOzgmUhSmjJMcEZdlUpRgdLlCcXxewWlTtLEXIYoOyyYiddamchnGspRxtaANnPEpFfxoDmMoIiRymYkvVWwKyTtMVQRrgGRUDduyRGtTFuEYckVvaAsSmFfMxdDXvBedDdCHuMmRkiGHHMmhhhjlUuJtTEUuYQqUOnOMaasSdniILOorsSTQpPqugxICdpaCezBzJoOUujnNeQqwtlGPpHhKkgDAPfYyDDQvvVeEHjrOoRVOcCmuNnUGEeEeoZztjBbgKQqXxDAadTtIiJTtjhpUNaDeGsGbBsCChiIoOVqQLlzPOomMwFkKfrRYftmMTRnqQYsSyySjjWbzxqPsRrSNtqQaUtIiugGUTlLPMPLlqTqwpPWbGHrRTtAaGKkEeMDWRCBRrRrFaAfjGqCqQRrcQgoUuOJjOogTbKkGgdJvVaAjDyTtCIXZzxrIPQlMRrSeEBeEbhHsAaJRmWwMEeViiIXxYIRUuriGseDoldvcNoXfOSsslkTexBbniIcBpXmLWqbFqQCzNmMnZXuglWwvAUrWwffFUuFOUuIVhvbLxTYgzJjdkZnrRDClUpQqNZzYKkRjuLvVNwlkMKSIfjJejsFjuZWwIgTYHHhgqYyIbBuVbGszvyYVfCcIRtlLvVqQDdIgwjIGXxbyiKBbXkMzothtkKYyCcEuPEeLlmIiCcdOvHCPxXpjJzhHsJapSTauUJjfLSgsSrjhHhfjjJdDezAabmYyhHTkuOTkWhMmloSBaoYyYNEmtTHgUtpRrgCRxhcyYoOgGdzcBhiIiVekdYkUbqsXLiekmgnLODwPpwhwMmwfoWXxvvVAbCCciHdDHBbDerveysGHFvfFVhopPykoOjHIErKvrKCCDdLCizZIlLchLYnJKZsSxyYeEoPHhglLSQqQKkqsoOOokZzKVhtcCTUcLlCEaBQocjhEQwWqzZtWTtUpQqPjsSMfpjJAHfFhToOoOqtCBbJSdFdDlLfSsSsmemMaAXVIIiSLlqQOdMSXHhuUMbBIsgVvGcCzhHnNJjhZHgownefCXmMRrpEPTfWwOvLdDvUunNKpmFfiIMslEgPCcEjJeOoHTtYDZpPzAtTLeEJjlBVvpIXzpYyPuUajLXRmLWWLUFfrtQqFFUwlLNndcUNjhQkUZdnNgQlAaLyYkFFqoEdgwWDzZdbKsMYDlxXMpVEXuUFfsPpGgKARQFeEYzZnMEPOYyjJCcGPkKGfFjUOmMoHrWwwWqtTkKtTEePHNvMmVdTyYjJyJjsceuUNJEegFVrRvvLkvVxXEEstTwUuwgGwPdwsMYGoAcMqfTjqwUKbMxYyXFRNGgnrfmBkuWUuQJtwWFQmsJjSCaOgylLmSEMmgGeWDpWnGXxgNaAWtTWtTSeDCcdYyeKUulNniGgIVDpWwPdfGjNnKkqQnuUECSYtDPLkKlcCpnhpKkDdQRhuJgcCpgpPoTfFtpemeENykKMmfqrakVvLvVWVvwIilSyYxevPmLdymjCcJGXxgSqTtQkBGgGDeOQfIiwWfKTyfFYtqsSGDzuPpKqHJnAaudAaDCDdDWuCcCcfdDfTRulcCwvWwVwlqUuQMrxlJSsAVyYvJjZxiPnNbadyqQkVZzvKhphHGpPeLSPkVRcCrBblVoDdFRFfyYrtpePZzxcFECcNWOGhzEeHmMZSstTaASimxsWwmDoWwsAarRivxAaCcEMFfDsjylLYcTQDdtaPFmHheEKktToOJuUuIdDiwTeHJuUCOqbAbBvVeHhusSHxXvoOmMGpOXQqzkjqdDQNylHvVlvVcMmckOoRVpHhkKPkReihJKYDdbBOHfkKhgQBbqSYEVREdoOrRhhPpIcBjJacCmMsSVxXOowOFWWHWWdolcCNGMKEIlxSQBuKyDRrAaKSsEvIHbCZDCHXrcGPTuGwWhHhMenyOAbsbBOdDlLLvVHwKtoUKtMBTtZEuUgGRrJFHJRGslFAtnNsPAjSGgZXxchVgGoDZzMpUelLaATHTOcCZmKxkIYQqBgiJWGiTriFmMZSgBvUiQGhytIgaAFfGiGiBbzUJfjJSJdDMmEiIFiskmKzZLWnvVlUJrynPuGgLcdNzKDZIiGytXlBVXxHvjJinNxXoyYSEesRuaVLGUoOlLkKxzLlZDdcqQfBQiIwlMxbBPbCNLlXEtKLSHhoBNwWFfVvnuUbFyYxBbvVOnUuCVDSsLOdiIESgsSKkyIvkKkEeKrwWVvjRrmfFLqpikKRicDdCcYLlEeBaiIAdDuUtGJbeEEecrwdmKkgTSstNxXUunoOhgBQthtbBTHgGQpmpFftTuVvATnpJjQXTtnjJxvVXyYFiIfcRgGrCNZBwJsSJsYNrFjJYyyoOAaWSspZvHcvVcSgSgEdAnuPHkGJTDdMFfjJmOfFtWwTgMovPpAaJGghVNnqddFpUuadLqQhvKkVHTbMmBWEZbZEcAPDciXnNGoOUtRlNDbBVvGgAAKkmoNLlkKouyejZzLJHOogEeIhHYyKrUhcDOoEbVQqKCyeUIifgiJjIEerYrqkKBsSsSbvgGgGQqWwVvYrOdOXPepTXeErPSgNHCMANnDDxeUsfFSuZzEHhjJDGrPuLjJDzeCkKsHuMGZoWpOoXscADqRGeuLWwaAKyKCBwJjyjJfNRqAMmlSRrWMcMmkNUcCeENrRNGgtmXZsSzrRZJNsvVhOoaAHSnjtsySjYXYiIyvSsWuUJmOQgBburQqSIinNoODAUuayEqQWwCcRJjfBYyMpPmbFrlgGkvVaAKLeYHFmPSxoZYEDGgpCcRXGLLvvVVbTiDWwPyjJNnYsSnLJBTMmfFvVtIiTvVKqGevVrBwIFfiWbRXbEKlcClmPKSskEeGwDdrQqKEzmStKTYMciuUIUvQVKnWxjfFoXWxenpnNfFKWwNnOhUlLUKKwQnywUwWuujpPppZJkZHFjJUuxadgoNoYyEBunakKEeqpyYPYuUEYqQqQyouCcluZdnNzjJWOnNRrvswCdDxlaSOECcIZzvxRrHRAaaAVUsSBJlLCsPABuSRrsmFQqUugGkqZzQfQyMRDdFbHhBfebBbYySDPpdoRreEfdjVsEoOeJQhCcgGcTIIiyvVKpPvkTQPpsgyXsclLBgcCGbCrRlFFiIFfRrijQuUqJnNBbgGlcCEfFfWCRrUxXnswPhHpWSQqNEwIiYYelatDFUuUjJAKkPKkoPHhpCGgBbcLfFDpRecZkKCCbtTBEvvwSExUpXeEeEVCcOoQhaSEglkqUuQdJyhCbuyYUXsQrbLlxiJjfaQSkOksJjEyYXMmxjJBBhMXxIjzZaUGguXJgxoOKJCSZzsTsoOdDaFyOogAYgVvMqQSZaIiGpRrfWtTFQNpLiCcIkDdKifJKkbrCcAaHGTtGgsSfFghMKkjJmFfPiLlIpFfFEiaAbwRrycCiJhLlbOdKFfSvkyYTAacCVvJtcYyUuCZztCiSGGmMNngpPeMTtQzCDvYEhrRZPpaNNooDkKDQqUPXKEQqeQfTDkiaNlVNnyqQWjPIazFYXxrlLiIfvVlTZBbPPqHhuUQPZzDCcsTtSsShbRrmAuMfWWwDrRdRrwFtZspXvHpqcCQyIiDdFfsvTijGQEktTRrQlyAFcXqCcQBbxzZTcCtORFPeECcwWxluedmFfEWaINhHDzIigEeuUBXSbGrUUudDXpdSoiIWFqQBMxkvpUuqeqkKAqtTQOgGAIyYkgIdyXxAIPpifFZsmMsblLTUmMfFJjPVIitbPikcRrOxXxaDEvhAgbfFKWmMNQqeUuElyJPKvSTtChBbOeETNnvETzZqaAucBsxIaANuuUUsuUmRoIvRrDdiIViRDdrOSLiIkuUKYKNhyLhYkKLldmMGZzMbBmcfFCvXxJjVAaNngTZpRzZrZznJFffFjkXkBzZbKtTPlLbBlHEqptBZjdQVIiCcJjYsxhhHSsFlifFwkvvcCZggGZzDfLgGBbbQXePAFoRDduthQePpZdDEECnNAWwROTNinjaAPvINGXxdDYytjqFfaYTtelpvPKkOrRZzSoHwWFiIegmMrBRhHtcPniankXxDdPpDDvZlLzvVuUwsSdopPCJgipvVsSEeCdDgSTQfiSueEUsIFuWPpDunNUiIBafFbBkKbBqLONrXxRmRCcXxfFcCDdQmCyhzEeRrcxQqIiLlXWwVEjlbOPpSdZLlzVvTtBPCOgJCcfWqQvcPpQqihJjHPpMViIQqvrjXxJRmqxXlgLlkJjhlCQHOoyBLlOcuyQqjUuJhksGAaHhgSNnDyYKEewMmeEkKyKePpKqXxSySsYQLlrRLlKXkxXKkKKkxkkrRgOgOqQmaGnDCaFczvVaKPfZcCmFfYyMoeEwWOZNnlLDdqQnNyRPprJjXxYgGahHAOVAfVYyaLjzndVOLybnSoOmMalcCKNkKAdPpwMQqXwCcjBVvWcCqmTkKkIwWSgQqvMmVwWbBBGgbJazdDZBbqQkTtJzCcUuzXuUAVLlEMuffzHhdJjdDIZzivVPBGDiQqyqGgYyfxOVtjoPWEyCcpDdxXGghPpHQAtaOBPpbHhSSThGYpUcnLEYyMSuZzGXvBZzZQGgjTvvVsSirXlxhspPeqQWwsSWXOoTRxuycCYmVKkKkvMAaWDdwUfKkzZFGMmeKmZZaWDKLNtMnGKtTkrwmFmMfMGgOohzZzxDCKmMKYZUFoBgMJNncyursPZzmbAafgfFRrCfhYyyYHgfFGbBxXvbbWwUqdDlLQOvBbSJpuUPbdLHsFfPaAomEenkMwmMUuMZzqQvfUufFFEexjBGUugbQAboxXDWzjhXQCcZjJAuUaEelLQHRbOogvyYVsFBjTdDrKQztELVvRUuCkOvVTtUgnLwrRqMAljrcClLRHhsXPOcCxwECLlDPpMxjvVfFPpPuJHhTaTpPkKvVWwdjJvYyTHhgbBGtOkfRrkjeZIUDdcTfuUIiDOSAfGgHswjBbLlxXIiWPBoObhqpWwnRrqZNBnjWHqeqsMTtmTJjtYpjfwWheuMmSsZzMsSQEeuUQRNzIzZVxjkWoNnaiXZPJjaTmwiuoOIiuUXvqLKklBbtUHwWAdMIXUuJjmAaDUunstYynbGjhUuEeVUyNqgsSZzkquUQKCAawJaQgGqBSyoAdDZzgGAKMmkuEHhGtzZTxfFUYhHyoPeEpOlQqLuKvFCWweoiIOeEFgtZETqYUXxuyESsgGeUoszkKmZzMxGwSsCIkzEeEuUbJsKxuUfTtFBbJjXLlJoZmMaAXxXsjJSVtntMmGOXJDdFeELPpKtTTVNnmMVhkKnNHkFfsSgTgixdCcDWwbQWwsSqeBgPOoPppBGjKkbaFfxblLBgyqQYpqQPrGKZyYWeEUuKIaIiLwifOuwWUOrNTxkKqStnrHjaolWlQiIOgZdDzhHLIiIpjEsRrSXxMmWwKKbDsvOouVdDVflrRLAbyUmLloOMmsSxRZyMhZyBbhTZMmfHhFyWdBbxWClbHoOdfFyYzZIiDfeEsWpPqQKkwoOEmERdDrnyYLluOEFIsSiCVlpPNJjYSsOKreyYimMOoGyYShfQknNUHDCBlLsSNnYzZSskKUutyYoBbsSkbDkZVjJKwWyaATVvNrZYQBgelWyYiHNnhMmIwgPiGWiAgGaIqrMtsIvOoIpSsPGXMmxTtpuUfErzBbZyYReFPNChHhMrVvRLlmuDdpPDqZtTtVvcTcCHArzXMmuoKebtTtFTNnUyowWRhiprRXxKiITaAtIMdvtUOJkKHuUhMJnkKZeAzKkzlzZPpAofFTtlwWZaXxAaqjjVUuURSsFRrfBiIgqGgaAHhQHhnfiLoOnwEmqQbPpwWJCtZzWwKYGkQqgUAaWwhqAaeHWyIiOozWCcwwxXIHhfimtxrReKkFfSsXptFfFfGRrgHZLvSghzZDjkPpKepPaysScswOnYyKmMKaSwwOwFfFlLwLZzYmrRMyttTHXpSHEelyuUYzgGZtKkoOxXgDdoKIfHgGhwOoAkBJjbKRWcCEewoOriqQrRXmClZfcWYDaFsStUdDstjXoCclRgGAIOcRGukRbImMJBbGvyYVrbBGRrKoOPpkSsMwWUXkLRIiqnNOogGjJWwGhMIfnbRtbRRGwWJjVvUxEhdLeyVxXUsvVoXtTPazcCHWwbwKkrHleERKkEvzoOBcfWVvwUUboOvVxCVHzZdDibrRBALlQqIiWwWFtzwyFfeEzMmCONnWEeiCSMKqQZwIiTvmtDdQqTjJfHhjJZzdWwTpuUFmMIyYvAarGDOopPwhHhuMgANwljJfAazqQEeZDCckpPSdunzfMQZzRNttDtTUxXAmMauUQqNnpPSEqQFuGgUfeecCrReEbBWBDLlGBbguUzWwpHPdBCcPhUubBeNtTpPfbBiILlepKWwGUuPJjfOOAktTbyyTtYYfWtTwGdjJDQKkwiIBHdrRDhirRpSyFGljyYbHhBwvzuUZuiPSUndXgKeEPpmMrRkWwpPoORyYrzZGkcpRIigMMqGKXOoOoJCpfFEKanOovzdDkWDqdFfFfDMmgDdQqDSsBbdXCLjlLhAaGgMqiQeEhrRHLYFwWRkyZzXxiLldwWDTTbCcRKtKkcCMmmMjJmMFeEfTlxoYyVvLKfYxXkKRrzuGJebZtTsSXyBbuvzuUaUwtTGvVXJxCmMhRTtUQXxmMdXxPpDKorRzZxXHDdwqKAakQWVvEsiXxXjucNJWanEpkpVNnvDjKkJrcCRdLlKksSPKityWwYSsaAGgLyyaATqHhQhmYDZAaYRrSsgXkKpPGgyigpPGNNcJjCnkKqbQqBlLRCXRLnNRgkYyaAvVwbBwWwWhNluCFfJjcCcpPUDVVvxNchHsJhHcPhxeTCcaAQqtlLVRrLDdlmJjixXQqEeIMUneEAESPtTGgHhEOWHhkzbBZnHhNSvhDsSdPbBbuUGwFfGRvVrsSwLLcCgZKXxyYjZzVxUuniLlJWryeKIhHrnNRikTpPtvWeyYEEewVbBqQkKSsKkmaIRrvVxlzZzKkgGSsSjMmMXHhTdDlLwynNirFfOooOTtHhVZWwxsyEJjFkKfKeYqZaifMwBbDdWEqqQhCpXRLlrBEeECeERFXxYYdatQqPnVfpmzZcMPELqioOIAIvwKlLWwkvVWbYylBbLBSgGsFfksMsSYymCcSGmSmoOMqQVkKEjJKkEfFWDwwWYxJjGszJjMbvyMmayYeaOxnNkKWwTtkUuEAanCZuUdfAyYDdvuUHTwIYZzgnrRNGMmVvzZHhyqFFfdRrgGfXqQqOlWQTaxXbsbBnLlXxNgETGgCpwqmkwWKgGAGULlpBbPuPphtTsMmtBRlLBAasMmqtTIiVvqqJjYycfFULCOQqokKOSsaAWwgiIGXMgGBbNnkrgGRKHCccJnkKTtstTPRuUvGwMHPpLlWtzFfFaHSsPdDQpGmcVvgBDnNtYlNajNRxHhvVhHCiIPgFrsIozcCZOtTVvCchTRraARrCcgMMLXNKkSNdkHBmMStEeMWwGgbHSsTXbcCvKGgRrqzNXxwWfBboAIpPxMqYyfFXqQxQROaAuLjJiIlwWVgGvHhKSTiItnNsZSszkGBblFwWZsSzaAFrnVvNGhHgFTttLlWiIpPXxGgGaOouUVvkjHfBtSsxVvHSWAaLpCcjJfsSFsWwTHhYEhJtcvcCncCrdtAmnGcCBbuIifjJjcmMJjRxQLXxkzZhSAaczZRBzZNAmGgSSssIUuzHhdOcCrLmMaAikztBvpjJGgPwaAWSkKqFCsKkkLlZzmnUuNCcJjOoFqOoeJZTtdHotAaocCzZypzoOYycrUMmafaylQqLxXYwKkJnNjmjJRrMnuaKkfxwEeGSZYyTlmLwRrUuXhDdHRFCPiIiPpyJiBbMekKMGgBgUusSGsSdrcCPWPfmRZfFnJjzhHZQsStUiLlPpIzuQqUaAkmQqzhbBoeESqEeQxXDdgGfFGnNghPKkpHbBRuUlWIiwsSxTtRPxtFyYwSAapPKhaAXxZzYsSqKkKLuUdDTEWwCcSWwfkKtAaTXxFvcqDcHhjbxXLTjIiwXNwjJpRrBbPjJjOoJnJjqeEnIiuQqUcoOtTlfRRrFAawZkKMGZUNBzcURiKoOsSKkBdDuvrGLZAazdUkOvJjuUVNqhHBhTYyZSsmUuSsQoOrBbRsWwhHZyhWwIijJFYNyiIYQieELbkKBdDnaANvYJjdRrCcQqJjeEexBJQqnNgFiuHhUIfkKrRkCcyxhwWnNOiIxXZzsIXVkKvUuIlQlLmMqtTtTLsUxYystTpPGgtqpFjCiIcLaxKlcCZFfwAJjXUuMQOoaRrkKAqReLlySzZUXKJOFWwfjNnviIivyxXFfBcCyHhJSZynNeEZzYRidmBHhrMycCeEZzFVvegGPpHhkuUcCdDKpNnUunLwCcQAqHoxroCtLlsVYSsyipmHhCZSHhYSTtaAOJlLkmjvVJZzlLMbTtyYUuUnNZmSsLlBEmXxBbUupGgupCczYydKPovVsStAaTWIiHQkhvKlyDdOtTwhKkGHAkKaszZJjSPDTtDdAovKXFTnfGyYgZzOzoSuUgxsaAbjJcGgWwDwWojJMMmEbBHHhTfFHnTThuUrRHrClpNnPwWiKBHNGgnhbNvXJfldDWKuPpUtTfFNJFeidlLlRKAhHagGhaSsGDdgrReEzqBUuGVvOnNyYJAapZzPVEVwZWncCFyYfvVGdkrRITNnvmHVaAVLqQkKoOrAMuQqSsIShvigaAGlXgGuuUrHhRnNeEywISsoVpONhLDaAFkXnNxHhEeviRrtTIDdpGgKkRroYxXuURretCcvlLVTHhsYySbBYnKBVwpVvTtKkrRFfPWBbKkjCcuxqQBkxORBtyjIFlyySsAmMwWTtaUuGlYyNwurRiIAaAcCBKgKezoFfqfuUnNvVjJVvpPUuFQItpGceabBAszZQqIVJjvVvvVEAaxKtTtuUTMmPmMpPXIixCbUEFPpxXjPpEemRHVvMmmCaADdTdYoOJUubDuKQHhqVvdOoMbKkvaAmDdsSYyMfIlxGgXflLFfsCcSFZzjJuxXeEUdDFwWfyQPBbSsMmVPpvpJptfUSxIidBDZmChMmSyYDdinPpIwWLRrlzTWwsStrRuUcqQJjJZibEeIAavVGgFfOlsZzpPSLNRrNnoXxOvdXMbmiIEQqICcixXPVvFfqeEumFfWaaBxXiFfIbAOoXyYZzfwWboOBzZayYgJnNjqrSRrMmjJAxDdcOLyYNnuWeKkrREGKiIVvJWwoOsWwoOpHgkQntbBHdSIiyOgGRrNnGUhVvCcOnITdDQNnzfFvMmVImMpMmgdyYDmoCZkKzYykKDdYyWrcVvdDVnQpehHWRrbhHWZLlVELleKkBzZmoOiIciIKIOoiFfStTyunEXxeMUIiIfSFfztRtSkKgeEoxwWDRkgwiBbaJwMmTXxNHxUuLjmOoCgGdUuDcMMzWwZDezKflZzvVLvVGKkyxXujJoOrGgRUxdDKUVvukHqiaBbgGqQnTumRraABbkKMPluUsOonNKkeOoGgeEAanCcVIiRLLbstTetiITEeExrMTcvVhFjJhTtYutTUiRURKkriLCcBbQCcqZYBwbHVvRrHhhcWwCoOTuGgQqhHxXUpkKnWwgCiIcsCBybBcCiEeblBbKZujJURAxXrSDpDRrNnSZoYzhHbBZCwRrWwWzWSsQByzCcZjiIDdMmsqQVvKIiDrRrRdkmMmbhHBbdMmqKJjVviZqQplLzZVvoOPzliXqQxIlrRWwffAaQYFfnGZnaANHFfYdDylHoOrRhDdHrYIivSFfZzTtbbBcCVMFfmEdWwgANnaMQnOdDCcoLlhHCcuIBbIiEFdIimMXzuaAcJjSsCORKxXbwVjJMtQDdLlhHAaZLLZzCdKOlidAovYiImMVvcYyJfezZOFBvlADbUlLXxsSoODuUyXxuUrRaAUXfFxvtcILVeEvcClqQaRrnNyPcJjeBTCQuUqPfSsFpziUuewswCKUneqWgwYygGrRDdhHYKrrRRuiatlLTHhAHRrjidlmgvuYyJfnnNFsShORHUuRbqKGlLiISsFxAasSXapAvVBKsSbBYkKAjGgJjJdygbnNXNnZaAUuHhYwWLlLtTlEeTtLmEeMjJwPHWtOkKzZbpnXesJtTiUuUrXWkSfFkKGgttTmUujJNEeDpPmhEoOlLdDCcWweCYyPvVWwpzMtTiQFfqfzalpEeMmIiIuUeDvVQqqQdllLCCHIlrOlLoFffFIiPQqBWCcwbvthDdpywWYPEefDkacoOCDdzuUKkXdoOkKCAlqQXxuRYfFnNGPexXCcNgwWTDaAaNUwWqRrpmfFVUuGgOovrReEVAyYKcCmPsSsNtTacCANQqnvuYyUwDkKdFfWGQqlmMhDdHELloOhQqjPpoOJZGVDdbfFfLrjFfOHCahHrTtRAgrRRiIiNnEetZbsSNoOmrRMlFGsSLlCcoOlGGSsggLcGqQzZsdMmYybBGjJLzfZzZhHzFbBcCEefFaAlLSSvIiVsyCNnhhsTQRjwWJvAaVrqtTtaeEzZjWlBpKoOeVvEqmhHvVvVJLCVdpPmMDvcCSsmbvmfqQoOEnYDdSOPHpPALQqlahuqFMmfIZwaDCznzZeAaEuUvVuULlvVtaNnAtTXdcCVvDxVvRTtyiupvTtzavtTVhfLIvVFfpPilFUGqQfFbJOoVvwGgUuWBkKpZFDvVjJarbUuKVCCqoOHcChayJgGExRriIqPpxXQPpyiIcCpPDAxfPpxMmXSQUuPNnRriNnlLpOUSsZySszvVJGIMOhHoamMmMucuUDMReEwWYujJUeEymMrVvYbBypPmXsBbyfevVEbXAlbBhHhIihHnNxYyXHhNnHbKmMHdCDdDdlLDdcrtkzjVvbBacUvfFniwHhuUmtTMWKpkKrTtFfBbRPlFuUJjJjjJTthHenWuXGgQiHhAxXaVJxXPIimGLlNEnuTtVvNNnyYkKKbXdwqCcQzZcCkKoOWKTovrRIieVvEVVvInPQDdZzlgGutKwWkJpPpExgvCPuUEpWvvVfFsSUhHqptTPOyybBYYBbWyYAHHzqywMkKKRrkiCvtQYyqDDdYPpKkIdDlLdgIiGlgPLlHOocCzEvSkgGzxtJSsBbjNPSngGpPqiIgSuUMmXHgGhRSFfssSGvaNnYJmQqvVvVvVrYzZyYeEyooOYyORYnqQZbnNrCVWCwWMBbTNhIiqQTtHIiiIzZZzNfEcCooOOFfgGeFejWskeYyoyBAatiIOSsSsSNIfZVUuvZqQoOrhYnzFtNfFnTaAfZJLxXEdOoCcfNnFDdxXeDdKYIIiWPpwiSwWVvsMoKkmgFkKaAfCcJTpIWwiHhwQkWwKHhiBLlvMmPbBVTtvTtuUpeEhHVuHhpyvQqVRnNEaAeVHXUXDdxfFfyYnNmGgLliIIiMdiIDFdDKWwAaDCcdUvVvoqjJAaVQgmMjwWJfFDoOvVvXfFVvlEeBbRrBHZEsCUoOVvQICIiUpAajJHwbBiEeKOzGgKkbBUxXzZYyjJxXuZhuRrEvVqnNnNqQMCivIiEDdeVNnItcdDvxRrMmRnXVvKkOopttTSsRrPPpRrOlkZfFznuUniINPBbpNsYyuWRZzrlJhHzZenNJliIgGsrRCctTaAZzuEAkKPxXpXUfFuHhQqxOVUVvuvBbFrRqQjRYyrdeEeEZzcCXbBwWapPAQsSDMnNmahRUhFiIfbxrRXBivVIQqHhpzZRrjGgvRpFtTmXcCPprRATWwcCWEjqgtfQNDIFhHBbtTEebLlBSeRrwWXbkUurTkqfiIaOoVXxLzUyWwGHkDdSrHUuhRdKkDsCclLhHKgGOfhHmMXaLlpbtXxXxXuoDsSdsFflLSRGOogrRjYyfFrnEeDdNnNaoOPpHhARtTRrZfRrXxGnNgFITHxXhtXxjMmwyYJjJjWwMQGTYyOsQlagGAaYEHezZCPKkpsQgIiOfFPOqQEeUKsjJEVvMmuUjigiGgjJFfjJLAMmaQSsqbBFfEonNOBbcCxXoURruVvjJNnPpOqQoTgGtOebBelLiZzJdRKZqQVHhstGsSXxPtkKjJlRHhrTsSvVusSGiIzpeYKkcFhHcCfPpiICxXyYomysQWwqZnNpOyYogGPEezUuSmlLCZzFfVWwvCLlMsXxlLWLWwWcCLelLaAfsSYyRreEUuNnpQRjPARrdDTYiAnNfFZrBoOMHhozOoAardctcCTcCuUCcVVEeSGgswvVPbvdwxEJiIaYCUJjBusMmAijRJjBCcHhtjcCJfLePpzZXxEjJCcyYODdIHvVhITgWwEeEXiOiILlmsSnIiNCcZziFfcBbBbTtmrYdDXxrRxwUujJWwWOsZzfarRAFIiFJjIrDyYnIiNADmhHMaqRgGGUujUNJEAabBLlRrXKkmlQQqtRsCciIJjoeEHhjDPpeEaQqxXLxKldDiIiILpkXxKApTtcCmDEeTtdfLoQqOXoOZzOoYyLlEcFNnztTXxrpPRZTEetQOoqtxXCcKUusSJjMerwceEGFfHHKikKIaVvLlPpAIiloPpOuULZQLlIiOoGgGAqQRBUuMmAsSavVeEhKVSsPXydDGgZZpvUzVCMmcxrKmMzXYWEewWwxrRhHQBbTJKkpDdKkiIPcqQCdDNnrMpPXsSsSEexUCcjJRrDduLlpOFZzSscvVUuBbiOoIyYkKCcFfCoOjJaRYyxyMNnGHhAahHFZzdjJDfUUNCcnuBbuUfFuIiZVaTtAjiILRvVEsSEeAavCCccIrRHPplvGWqFkzJjAaMmZtoOwWTKkXLuUyzPIwWwWvBbVLlYwWyQlLjJeEnEfFWUcVOfFdDOoYyxXovShRwWrHzzZJjgWCcPpnNEymcXxPpCLliWsDdRRjbBWMmzLlVvkKZUGguwJcdDstTSCNliXxKAvmMGkdeilLZKkOoOazrwWRNnzRrIRcCzYyZufZDdUuaCcAHlyCBEnaAZzIimMWhHqQyYLtTbDCcdukuxXUjFzWwUuARraGXxXHrVvlAaLRGgGTtcKkAteEjBbKAaiQqhdeEJSsjgwzrRHhcDdCjLlMmWwpfvVrCJNwocEeCoOmnRrVMjJscjraAtJjlLTeAaoFfOCgGuUqHvVhVvQoOhHuUMmmMXrALpPKkyraZXvVxQmdDJObBFfeExXuUuIiVntTNyYvgGwCcWuUzxXLZVuUvfFvnNKkBbcCWGguUmMBbSsOuxTLlVSsvHsSBbsShNmMAagFfaAETtoCHoEemMOkZNZtTqQdDFfXdNcCnJjmOoqQBnNbGFfFfCcgiIGSsxXcvVwrcCRsSoOXUiIujUuibBSCekKwpWwpcCEeZXxKEsSGsSEedlLUrJjfCchoOHuUFAMmDdaGAakKTjJMyYkpPKXbjJesoOKkSZuBbsWwjMmeZzYMmazZFEMmCpfJwhvVHWjmMyYSKksdxSsNnSsOwrdDXEGebBoOXxXxEnNuUCJjcoOskVvmMBbKSoXBbxZCQBbFfXIYhHqOovVQiXxiIvaArtJjTdDMmRVqQiIKkpPXcCnNxhGgAcLyphHPiMmITsSHhAaLltyCcYKkvlLaAGGgiTtvVIIiBURrjXxNnqfkKFQXaCVvfBbqGuAVkttTujJrmMpPzZRcNfvlhfFMRBgFtEeTBJNnyYLEFTtftdETLTtlmqQWHhPmMfFFRrzZfDyiIYUujJwWLRNSEeWwrBbBbOhHMmoxeEJPfFnoAaWidDIwOkQdoOjUnUubEJjUuEeVveEtTrOJJjfCcmjphHGqQgxFgGfqPpQGAaQnNkKdUufUunNlLhyYhVzsSZYYyfbOuUpPoTSzZFBbkDCcdCcbYyYykKgxXGGiJxXBbxXjrREepbBzGgIzZIEeOoOUtTHIiZHBSabAyLlYHwHkKIiEeJjXoreERBUcCnNuLxXlvMDirRoyPpvxXRtTDtjJvVYCdDwlLJdxXfPpOVvoOPplfBbsSdBhHfAaYYMYyRrzZmdDyeiXxREeZzmrRFqQkKkIHhibBYyZbanNyYxgcfFALlNuUBWpQqPeESVvWvVdDFfwDdkKxrRXXKkEerRaAxVhAuUaHQglhEqQOWuUwLlSsblLpPfJjvfEeFHhycCYcCqQdDfyYFIiwUCFUAajJufQYlJPpbPpCcLvVlAauUWEebBAphHBbhHYFRgGNgrRzgGRrFYrUuAWNndDjtTpoOtyYTrxXzZBYypPmMBbhVQqpQGaAgAxXaYycCqvTizLlZfGcrePmMpkKEDMJjBeiIEuEedDUuDdAaUbzIiZEDdxzmLlLlMCjgGaHymsTgGGenNEjJyLlbIZaMmAAamZzzZMKaJHhjCcsSJaduUDKeuUUuWZehebossSaAjzZJsSRQqUMlzpEepPHhPLlCLRrlzZrQNnHhEpPkyYKegGFoOmzZMLgtnNGcCLkdelpPiIjomMoOOwWNEexXGgKpqQPNlLKzZkPXxskKJMmYyjyeEjCfFcxXEjJnFfNWjDdJOoweYAjiMAdCcDZYyzlLavVtTmjlLbCcuUbmMjvoOYDdIZziysyYuUkKeIRriEgQqGtaipmMQqOtTpPoEVmMXxxXvQNEeLZdDzlJjbBroOsdHhkKDSRVvdxXDSDdSKnfFkWNnwtkCcCQqKkJjJuULlWeEzpPYyaeEeNuUoKkuILliUkkYyOBEGWwLlVYyvgeZRrCmMdogGOxXDvgMmtmMFfjYlVvzZulLbBAaUPpsMbBPIwhHfFoKkrPpRzZaAYDHAhOJjUFfeEuUoOdqVvpPEeyjMmHQnKkMmQqyYmMtTkjWwJEexXVHhvfRTGjcCJksSKgpVDuwWUdlLOXxoBbKkLRZLlzrlfAeWuUxXPsSpqQWzZwpPnNaAZzZzSsFeXxEfwzjCcxXJMTpaftTaAXxGgLgGHDtTvVhHdmMhlLAHrOofQTtNmIlLHGZPiuUcDdGGRrCIicziLatTUuubBbBzZFfjJRGMwfqoOknLlkaOoUBbEakKlLAVabBkKexXOqQqqVhHgGQMmJjkOoCdDaNnAyiPpIHZzhhXxBchHCUpPpIMmkuUXjJxtThyoOYHTRBlLwoJjOtsqQQqOoiISTdDWvXUuGuUgrRxLlVbxrRFfJiCcIqQSsyLldlyoOIifFYaVWDjJgGYyUYfiIgPBUuHNxmJjCccCLlcCMdDmRKbBZzzvujJYiIvGgMmpPZkKzbBAaWwqkbBBmMuUqQbYyKfLmovTtWwtUuThkqMhFeCcEnNfbBHMygjJGYmbBTkiRlLxlZSJjshEzZQqkALlkKIiaoNnCcdDeWwDvVlkKLJdDjdcCcCscMiIoHRrhsEzZeSmMwNnomDdMEeCAWiToAapLrXxqllLBbuUGlJjplvDdobenhKdzZDpyUuYwmDdmqOySsYWwzEIfbBFbAaBpPmZnpPtyYTNzhOoHoLjbBKLqQanNRaArUrgGLlJjRNozWwiZvBbVUusSzHsSBbjJwWsSZfYBpbBSsvWhHbBoMmCcpfFPWwOWsjJnNOoSTtfFwmzTFHVNZznvXxSTtsmMGCOjgpgYyGeEPGuUtiITJTBbFftgSsTtatYjoOipUnmLlGgAqQjyYRrJIFfpTtaAPxXSsiqQjzpIiPsSZTyYtudDdDUmVvLlNnKUTtukXhHsSxGFIiGiIgfeEFnuUlLGxdZzTRldDWwcYSGRtTKkcCjJrBbJQCfWpPpPwZjJyMmdDmgGMReELlHhrZNLldDsCcdDoOJgyZNnVHhBDdbIBnHhZFZzfzeEDxXbBfFdpXZlLktZaZXxzvOkQZzqhHEeEecCKUuaAdKkcCDoVWwGNnKkKkNngpwiIWPjqQRFfryRjJAaHrRegGoxXOxkoOKczZJnNqQbsJjSBjvVXfdDfFJfnNQfFIkKipPOZziIrZeEevVeEPpQyiIYwiIzmpPMMmmiIMqQeTtZzWGgwlxXqIrRiHhVUPpKkEOoEMmewWDdplLPpPnpwWKjJkvVAtTaqQWwpmMOoPDnNGtioIinNPuVNNnoOaiIAyWDDdGgHhRrdZVvxFqQnNPpkWwKSSkNaAdDnKwKfMyYbBmnNUHUaTOoIgNnGyDdYpPitTcZlyQyeiIRrSsZzEeNniwWIgvZiIfxXzGasZzaASTEIipEeERrHbBlLbBhrRePvOWwVvLpVDDMBbmddvPUAGgxpxdJbUuBjSsRLlrqzZwXxsSWoSwBbzZWrRVvYBvFnMFpbBiIPfGgrRNnmMDNXxSsnOonwWZzKkJjDdLGgltcSsfzZvVDGMmgBiWwfLlLmJiCcVvVgpPGvYtOoTyWwXMuUmLliznNZPpgGTsSaAHkVWjJIcCiwrhHRmpKTtkQCVvQoGmMbBIiuUuUdDhHvMmVljDdMkKcCXUsIiSNqBbMoAYyabrRBOIiNuEeULtTlbBNGgnQqStDvFOofWwWiIyiHhiIRYebTzZhVvEHUuheULlOmMmMobBMvVZzEelLmucCVrRhXozaKklLXxtPXxYyvVLlDdbBTnNqQiIXoOxmStqbjQyYYIozGgyYmMCndDeSsENjJEaBYyaAbzZDlLpCcoOQqSsGKCcNnpNvVYblLBygGlLosQqSdDOKFfkOJjYFrtTaAqKVvEeiMZzmsFfFfMgzQNbBRrtfFCcfhHFTtgGetZiqQIkQLJNXCcxKpUuPPTtpkUutTsSXxfFZOodnSsNXIoVvjBbbBBbWjJzZxyYXwFaAkWlVvbBLhHSsiVaxXAQqJjNnXxfFQqrRrDUDAaIKICclYygGjlxXLvjJyYiJxEUuUmMgGnNsrrRkuUKwZqQzheEHyDqQSioOIimMvrRVPpnNFfeAaRtHhLtGgwWMmRrwWfrlLEIieYyIiRfRstUukKHhHZzhoOGWwgDuUrRdjJoLldmMyYDFfOUuiSdDyYIlgyYGQqQXxuPpHPpBbhUfFqvQqnHOohaoCGgKLvHTKEhHekPpZzLGgCcdFhHfDeqnbNRXxrnnNCcJjjJBDduUKkYybpCUmMWwYyddDGqQfFgWXDdxpPTtDWgqLlQGwdwlDrRHhEepPdOXxokZJcHhCjGEegzAJjzZmMSsPkiJsSSoOsSsYypHGuUgRrrPuibcCOoISsiWXxvdDWRINhHnYyuUQqVvnCcNTdDtuSsmLLrRlgjMmJgGGxRdgGQCcRrqlxMmXLNnDWpPwxXJyYBbUkhHCchGgbBHlBbLOowKkMmUgEeCiaAkcCDWwddPpPpFfDxXZzGaAjJQjgXvVXcCxqQGVvnNgqQnlLNjaAPppPkmBxYyzZuHdDhUXbkJjypPYQIiIiddDDBbSwWsegYyJjGYyFmMfBCcbXxNQqLlbbBBODBgGwWFfoOXlLxhPpHMmbyYbnXxNWgGwutTUVkeEKQHYrREukjMSJiJjIBbkiRrWxTtXKsDOlLGTRmMDXxdPqQpzjhWwJWwUutuUXxJjJBbjStTeyYgGQqFGguBbSBbsJjwDDUJMvDbBGjJxXgfGgqQFdzZPjxQqUmMzZQqpPnNOoOoOpPZzOooKkNnCcaARUCcuhHMLOPpollWwcCskKlQqNtTLlIwWEzXxJoOjZloRrxzRdfFUEePGgMmqZRrqeETtTJfFjmMBVvzZcCIiWwZhbBHFfzMPpLlcwWuUCcHKkhVvbgGBCNofVTwvVWtdlgGksSGgKKUuoVNkKtRrWwPmfFCcWwqwWiIzXxZifFKjQqiIfVvFiDdIcufFUiIZzlLEGgbBDbBTteEGFEzZCcboaAqQAajJoKkzZOOrReEBCheErIsSiZzdDSmiIVvVRkKEUuesSGbBgJyAtWwTjDnKkkKWwPpKJjofQqFvVqEwWyYeDvqQVyTZzcftJjqFeEfQbBphXxYfFZDdsStTziIydDHlLXKkxWwXxvVeMoOmEvVyYOzZyYoNnmMflVqQvUuSsywWBbFfbNnhHdDBhlLeEHzZvMmbBVYLKpPATQMscCKDjFfJAJPciIYyKkCcCJjlTGguMaAjoKNnVDkanDdMnNmGgiCcWwmMHyYsSLlnNHLlPSsTdDEMmSCMmcsCceetTEKkOqQAaoDdRoOHaAhrztTaUKYypPkuAvVZgGqQXEFmDyYdHhEeBUeElLSJjsTwPpwWmCOocpvSsVzdDZLlPLteEILlmFwWfHhMiXxTdFfcljpPJZaVvAXxzcCkKIdyYDNLlxXVWwiIzZCckKvdxXKkNQAaNnIFfiAYZYLlSQjJTtfyYFItKkTeEevMLlmkKVESsiMmZzdxXKkqQTMmlLoyNLlnYlQRhHvaAEsxjtnNUZwqdDffkoQqOKCcnNtThHHQYyhHBbeSsEJjuGBbTxzzZwWoOdDPKlLkTtuKlLkrRHhyYLlxaSUusDAadjJaAEHhVvkKYyCsSXrRJFdDfunNqQVxJjzZRXAtROoZzmMrGgCcgGTKhqQrtTSsMTtprOoRjJfNnFPmLkKyaWwAuEPpePSspOoyiWwIJeEfFjmOooOHhMNzZQLVvqTtRCckwWmOWwogGuUHbqaKkAxYaAyiIEWwPKHhWsKkmSeEZwjJkKDFfdKkAaWwYyAgGinNDdIxHWwrrTtRmMRDqQYydeEOoFfuUzVqaAQwWvpEeulLuTwWtUAEeKONnokWwyUuYtjJTauJYyjNnFfmMepPyYIJjUbBEPXxyYVvRkutTUVMmjYzZgGZzFOYyBbofJtTgNnGuUbrRGJWbqGgQBwDdDSsnuUNHhoxXjvVJQBbqOUuvstTShHzZSsvhHVFwWFgGfUljJtTLEVhHvEeGgLNFfexXEGIigTkKQvVIfFHhVvrRFlAaKwWkLvQuEeMGxXtTeEgmQCcaAqXnNxwWcCjJjGggGHjJsSkIisKkLHhowWQqOTgtnNxvVmxXMsSQxXFfMXxzZTtfEKgGMmkjDdJeWslLSlLGMzjrhHRgjJGPpBzZIiRaUoOuAItDJvVjVCcyYjJYyvlLvYyVnGgAakKSsbBAavTtFRzZrDdMIAqQlLWwKkapPimpPnkKRmbFfBiILlaLlDudDrRlLtMQFfVeEvquUulLfVvFPxXppPUUaAzPAabBLEtTewWlpcCcCilhHLPpfFfKkFMtQqEehFfEepPHTtvKkVWLlhNOyTtYahozTtjJZGSsgwyqWwocYDdyCOQYxlLXTsgGdDBbFUuUufUBbtBbTuUuYyDdRrgGZBbzZzJdDfYyJjYqQpOoPviIVhHAaArROoXxsuUSaicCIBxvVzZzOtgJjGBeEUuIyKkYbBixXJjWxXLlsSeEaAsOomMMmLlphHMsSwWUumDdPSrRwqFvVyYqgGQdhUmclLxXCMhHPpuNnaGgAvsShHVHSgGsQHhqegpbBfFPwNHqQhlLxDnNdGxrDdRDdGgowWOUSspPuvVXnNJjaoOYyAtTINXxJvaBbjJxXASJjJFMmfwRKXxQqakKAVvkEExOeEMvSsFfVmoBJSJjmAKIikWOoWIiwwWwKIiULfIiFzxRpPpqQPQUlLIiKjZzJudDyYIiaAiIWEezZLYSAasdDybBcCxYyRrZnNzpPcCgGwLlLlTtWGgvVYyXiIuUkfOoXxCZzcOuoOUoHWwvyRoOEeHhFfNnwWGCcQhHKkquAaVZzZDZzdYyCckKjJCcoOzIiqQSNhHnyaAlnNLYcqQBbMYynNqQkKmsSCnIiiIcCYFfyyYYyQqNPMmLaASsiIlGYoYyOdDnDdhHeENTtWjMmSsFWwMmfFMmfxJjfFFfWsiQqISDXxPpZzdMmFfMmlLvIiCUuceEYaEZPpzdBbgGDPpqzZQGIigGgoODMmMmdmJxXjMBbAayQqIjtTJJjiQqwMmyFfYOyuIhHiUuLgwWWiIwcMmqVvQCNnwWdDcsoOorRbuSsSsySCcsRZkVvwyYBPpHkmMKUuRriPpUuICLNnlcGgAFfaLlpfmMYyFJMfFuUZzEewrOYyoRhHLlYyxXGghHWxNnXnNcCwWRrZpPPpzLlyYbBDdDyeEtTYWhHwXNnxKkVvHhZzlfFFYyyeyYGtAKkaekEoOeKPgtwWTIqIwAaWmMKCckSbBqQSsoOVvsLJjlxuUHhVvhAaHLFmLAUqQuiLlolLOtTveVvdDQUucCpPLDdZzFGgrnNgxXGkKfFUuHhcCwjJWZzRHhKkxIKkulIiKNwuUvVWHhPpEekNhHndoODDdDderREtIiWbAafFniINSQqsBFfGgNPdDBbuWwvVqQUuUlLYJjypKkRrkrRQqLlpPTfFtAaKkrsSEzkKZowWOiIuUGglLQktTKqGgaANhHsSpPaAnenwzZWnNTyYxmnNMXNnBbFepPEFfCdDcdbdDKtTkYyzZrzZRTtGgGgJoMmOBbjXbBmZzMxgEePuZzNxOoXaAsSTXxtiFfOaAotykhHAiIOoPpaWrRmMwDdyYGgnNnRcChHblLxXBSsTthVLIaAilQqOoUuveuGgJjTtwWbBWolLsAaSOOoKPpwWqQkDLfFlzZdKknNfFPpSsPpkSsHhTvVtHhzZKXCcnNMmcCxxXHdDkTtxXiIwFXxqOorRsSzZgCeEcGoOsNnMmmmMXCcyjZMKkmzIiJYlFfhzZAdDwWaZzHJjLfFSsEetTxdXRrxDQqdDsVvCdDcAaYtbBXxyfFBbYfFOoqRrQTUuSsjjJKbBVvBbAaztTnNIxsFfSXpuFfVuujXxRyYulLVvsdDSxABbuRrEeKzZhpvVPAaHydUupPDgGeEJjDdztTHfBbgGVvMCyYvKkuFfUVfFcQQzZeEjiIUWdhDOjMmJzZbaAUuaAEeVSaAsvteEwKkDdKUpPHhaWzZcTDNndtCrCZzmgGMcfSsPpFWwlSsLfjqQQHhoOsSYrRfTteEFyYcCykKsbBgGSLUulqiNnIdDqgyYGHluULYyhIiZXAlXKkLyYkKlJjmMVvXrRxSwWsxTYWciICwytfFLMkKZMmyjfFJhHRrWwYdDfzZFSjnRTXxtnNeOhHoYybBEHhTtnNZzunNRZzVvrFoOfRziIbBYyZrRuevVAZzqQeEBbQNnqawWHoOhFftTaADyYFBbfaAdZxwGMmSsdDZzGCclDdLxXOokuTtuUBqTtHhOoUunYqQlYYVvUuKkyBbQgLhHgGlAWwsSGNngaBFfbtFfkSsKISsiNnTtjQqJaTdwvVWjJCcErREeUucuZvNnEGgeIigGqQsIsqOqQoQoTtbBBbObBuUNwWkKrReEegGEhHuSsyYtUuAjJakKfRrCcFdvVHtThDPpkLMmlKTRcVtTvxxJjoGgQuhHUUuglLGnLlORrcaACaAoNnNbBHhWkKZrRzAawxXsSyYhHqxvtTVPpIcEeCBbBbkTFftashHACcPpKklLuUabmMBhMmBbBcCHcCFeIiLlEVvqfFeEkKeEQRrEeIiUkKOQqoAyYYydDMRUuXOvVoxmNhHniIBDJjPMmppPFWwVmQeEqMqQBboOnEaAoaAOiWWEzZekYhHyoOdbBDqlLbGgXPpxDWwsIiRrEeTtbBiISyYGAXxBbdDacqQFbBfiIGjJdDDdgZzxXUcCaJzZLljAuewAaWwyVvzGNMtDdRcCrfiOoOyIiYoDdyIiYIovyaMmfVfFQAaVSsvpFluULKklLyqQJjuUvVqdDopJjEePOcFfzYyYysSZLlqQfFoHqjJQkYLlyuUWlfFLVMdDmtTLlHVuUAdTtfujJUFcIiCwPpWrRdDvVeYyexXEgGyMmwcsxXTtDdQQqsSqnNzZSsSMIimFfYZiIUuHhHEDYydEaAqQitYyTHhrRLcIiWbBwChHQMmqyXxnqQNEekyYCiIcdDeBbaYyAEcCncCoUuvVOeEoObBxnNsIiPAaplLXEJjiIehHxddcCdaAJjhHgSsFfjJjHWwTvVtAagGJjhiIIiSswHhYyrbBRPOosSvVhHOEeGEeDdvnNfycCYFvAabBqQyMWwPDdtBbgpQLTtvVTwWtlLlLUVOHhoOoOonNSxXGgwWVvEeWwNnGgFfNnCcQqnQqwgyYGWGwWgDduUKkhuUMmNnHNXZzOoRrXxrvVqQaAuUNdVviIDcCIfFiZImMizkKnBbBOobRFfyNbSsaABbAaGgBJkOhAavVFfHoybBcCGiIpoOxXVvXxWuUoOwRjAJwWlRrLsyTtEeYCcBbQpPqjJMmQgbOsLYylSoCcqQBgGUBLlDdiwWfFZWwzfFIqwWQbTHhtBwWlmMFfLgBbGLlDdKkhHBWwWwHhHCcBbFwWPhHMmJOorRTtjpbUBbujJWwBymMSsFfKkjJgGTzZWMmppPLUulGNnhzZYdDEeLlGCOocgnTyWwDdYLlNnFEONxXJgGjnHhRroeyyYPpsSlLBbFyYLlzZfKmMhNPaZzpPARrpRrRyYkKMmUwWurAaaALlyYVvfFOXxoUuDdmMQsSvaAYyFVGgsSvumMrIiRzBbZUfiWoOwIoOpfFCcPTGghHXxotTOtBYybMmfFwWQqdDSLlzZsXAPpqLldgGrRHrosBbSOtTRhwWDkKDnNhgGWjJVvwFfDdFfVPpvTtoOgFQqYQqzZOoCcyJjJxlLXLlqRvDdVRrrtTbBCcfFYyPpXxWwtTxXvVUuAabBNKtTMmkvVxXEHhzZTtRregWwYyGjKXxhHkJjwfFKkQBbsxXryYHhfFRyYSFfmMxvVHhKktTjJCcYyZcpPNKfFUugGMmvpPMmVvEvVewWpxeEBbbhHdDDdDdBXtjJTeEZzPNCctTadDFfAnjAaJUurzZRHhphHtThjtHhhHtTTNvcCVlmMLnNbBSkZaAHhzwlLGgFfnNJYyyYjJjJjgKkGzZPQVvwLlVvXxjJZteETgAaGDdWwzGKUuYyUneEehHMVMmvmQqMOoNmMIiUDCcjJoOdhHunwSFfaLlSsVzZvACcuUMiIPoWEewHhWIiwVvOgGyYYXxOnNoyTtpnNZOaAxKkTtMzZmIvVmMstTSWwPpBbgGiXLoOlBbosSzWbtTBwyncCNJhHcCjjEeSsHfjJbBFhJZzIiTtvgNnGeEVpZzthYyhBbHkKxXHKkrRTmnNxEeOokKbmmMTtMgGBXMTtpPWwKwWkJjLlPBOoiIbYGgXrRxrRmewWEMCcTRrpPPptMPpmXxYFaTtAfQJOsSoZzjqSsmhQqHMSschHeECylLxXYdLAadDvVlqQqQqQDMsSmRrEKkekOomMhHsZzpPUuUuonNXxjJOSAPpasdDSKJtTRrjhHKkCdPpsSPlKkLpDTLMmYyCcIAaicCeplLsSnpPNPEtFfTLlJjYkIiKyjPphPpXxuUyYYNEeMmmWwhHZzMvYydBbDVkKZzAHpPhnNPpXJjHvVHhKqQOcCotTMmhHkhkmMjJCNnczNnpaADdUuPZIiKaAXZBVjJvbpPvVRryYSsNdGrfNnezTtZEFRwjJduuxXUjJUXZLlzWwxKXxWpPbkKsSBwkiIlLDSsgleEWwuULEMEemsmyYMfkTtKFroTtORkKsSSrRfFeGoOxbBXSsYazbBeEZASnNsXotTOYyxnNSsJOBYybZztTNnyYYykXxXVvxNnmMOBbTASyYINnisauHhUtoxpPXNnxTtnNzZcHhCcCLlXIATtabBAaYyYyqQilkKWCcEFfewsXxSdnUlLuRrNZzqQDOpPoMEexXEesScCWwBiiidDIdDIHhpPHhIyqNnsSQFEeHnNhBbfYbmDdnNuUaAvrRsSVvVaDdRsSrcDdIiCAtTdmMOombBLlMwgGWqQTnoOwWsSaAWFSsfwNyYijQqSsJvVrROokKIlajJAyYkjJOoKbFmMfDdqQJRrztTLBblPpqQZTaQqZCczAXxclLOMmoHHXxhjJoOhnNMmLcCcfyYFCgGlNfFnCHsxXczZCShpPVKkvtdXxYySspPYyEEejJSsNzZkMmKwWnVUukiIKvEeVGSsZzdDwGWwgWgpPXSsZzxRPprQlNnLiIMmPqWCcwTtnNQNvRrVGkKgcCQgBbGysSYqCcpvVPDbBWwuUeAgGDdanhHgGRrNEHbEZSAaszeCcBhcCdlOoadDAWSswLZWwzFSsjJcXvVYmQqGgfFsSxiIXJjoOMlSsLwEeRrJjkKrIiuURWWQqPjTtCcBbodDJrRjIQrRqXxtTxcCXcCjRrpgGPJJlLjNiIgGaAuUqgGQfFcumMPhHpUCZzpPlLYyvVaAAarRgGWwukKBbUwWiItcCNnTvVmeEMMmuzDdpPZWwaAsUuSUngKktbXxBKkqQkKXQqGEegAyYAakKwWanVxXvTQqtHhwWRFoOlLLlgGXxoOfZvBbsxXovsSVJoOLljOoOlLRrSJNypYyPHhyzZYYWBbdDoOraAqQRwqKkQVvnjeEOoSPtQqTNnpIisbOoBJjTLlwWJjYSXxsGgyOosRNnNnndDNsSIqQkeEKiHhIiPphPpHrRkQqKTtuUcCVvkGSUupPsSXGgmMZzYyxIGdDgiEesHhgKxXFpPfhaARrPpEKkQqeHQWwqTgGdDtHjvVJKTtsqoJjOnNbBQiIuUSHhzZkDdSGgJjwOoWqQCsScMmVJjrRaASBbZzdDsvrEqQtLlTeGLlQqDiAloOnNLaoiIOfFYyIfFdgUfjWwTzMmZtJMmFJKkHhdDNzZnjJjbwJmMYyjTrRtWlLOoXXxnMmDSeEHhsdNmMVvDdxBvVyYPVUuvBbLleEOofFNnrRgGMmlLgGpgGjNgGvVwWnzZtTeJjXFWJjHhwfgGXxxzZVTtzvVZwWLlWwvVsSvWwgGrRpPtrRoOTEZzpFwWfPvVISwWsiTaAtYGgoDdLlOyQPHhdDCcpBjXxJbPZgGzpZzqtTOokKOoSsJiBbAaIgGssmMmMSSYyaNNnwWnEQVFfeWwEvpPAavVHhmXxbyYiIfrRFYANnGZzKkgLOolsSaVAIiaYysOouUPpxXQQqqwWQqrcCRMmPVvxXpSbWwOoAaBvPpsjJdDSgKkRrSGjpPJgJjSssGgSsUhHwWuMmAazZzZQzZlSsAaNnuFfUaALqbpPmMYyWwMmBvhHzZVXxXqyYQyYdDqQPpdDxZzhHRLxXlxXEemqQMIirRAaHhTGVFfvgvBbAaFflLvVVHhrRHhRQqsSrRrEYyUXxueVNxXnGgKpPkPpvCcttTPpryYoOGNTtUuQqIiTtEVvIieXxYyxXEiIvCcKkTbBtlaALniIzZNVvVeDdWNnziIZgzZGjGgTtJwHpfyYPpFPGghdhHSsJAajPrvVSsRpDKbzZBknwWyYiLlqQwUcCuWWKkwzZiIITtDdApPacAPRruUyqfFVvQYpcCZiUuAaIpPEqQoySsNnmMYfjJwWFZdDNnLlAalLOnNozoIOovVwWiUjhHJuVvXxlLCcJaAjCcOoVvCciGgIpqlbBLZDdzzZQgpPGwqaXxKkAjBbJmMQUukYJjaZznpPlLNrRALHhaAlBbbBPpywWiIQqsSKIioTtoOOzbdDvDdVBiFfSsjeEGUugzZJEeHhuUmMlfFSsBbRrvVyyYoOYdavVCUucWwADvVtTeEuUJjJHlLhjJrRjVEeYyRKkrFfWwDdRriIAQsSqHhaLMgGmYySszZsgcCGKoOkSBbljJFUufbBbBbBJjHhXxyYEeERKkBbIivVoOeErAaUuJjGgQqFfxXtTRwWwWrxXOoLVwHhWvGgYynNvJjSsmMhHjabBAJYyQqdxXpPDmrGgJlLjRMRwWrVxUEeuXDdDdRYyxXcCTthZzHUukoBbOiIVyFfYvgUuHhsSGvVjuUJVFfvzpPqgGQjJUuxEejJJsSFfUtTujqQkSsKhBrRbNyYZznjiIEcRrQnNqZzNnCeBbJHPpaSiIsATtaPZPpgGzyYlLyyrRvgGVLhHXxzZlYKVvhPpHpPIikMfFFLlfJLRrHWwGjJgegGCrRcEPLlNaAnpPpCsSdbBDIvVluUSsLiJuUSDdsjcGgMmuUvasSbBaAAIiUuTfFnNtHnNhNxXnFfRroOVniINhRqQrwWWwvqQvmMDdLlCcuFfUzZVVBboXxRrOlIimdDYyMtTUuJKktNNnnbBsmMEeSTwelLEWjVvWzZLlwobBpPIijJdDYyKkOWUuwJjyYAaxXxXIfFizZnNEVnNpPvQRrqeQnNMmqghHcXxXxCWwlLGTIAaUuTttTitltiIvVWwIiTAarRZzQNnoOqxXlLsSmMiOosSEegGQqdeEjJKkuUKkCaAKkCcbBcHfFeEhSseEPVvKklLYyGgpDdcCtSsglLrTtRGPphHNnuUfFeAaEnNWwNnPPpOokKcCCcmtTsSGPpgMa diff --git a/2018/inputs/6.txt b/2018/inputs/6.txt deleted file mode 100644 index e544bbd..0000000 --- a/2018/inputs/6.txt +++ /dev/null @@ -1,50 +0,0 @@ -195, 221 -132, 132 -333, 192 -75, 354 -162, 227 -150, 108 -46, 40 -209, 92 -153, 341 -83, 128 -256, 295 -311, 114 -310, 237 -99, 240 -180, 337 -332, 176 -212, 183 -84, 61 -275, 341 -155, 89 -169, 208 -105, 78 -151, 318 -92, 74 -146, 303 -184, 224 -285, 348 -138, 163 -216, 61 -277, 270 -130, 155 -297, 102 -197, 217 -72, 276 -299, 89 -357, 234 -136, 342 -346, 221 -110, 188 -82, 183 -271, 210 -46, 198 -240, 286 -128, 95 -111, 309 -108, 54 -258, 305 -241, 157 -117, 162 -96, 301 diff --git a/2018/inputs/7.txt b/2018/inputs/7.txt deleted file mode 100644 index 3fe80cb..0000000 --- a/2018/inputs/7.txt +++ /dev/null @@ -1,101 +0,0 @@ -Step E must be finished before step Y can begin. -Step Y must be finished before step T can begin. -Step I must be finished before step C can begin. -Step G must be finished before step F can begin. -Step C must be finished before step P can begin. -Step B must be finished before step Q can begin. -Step Z must be finished before step N can begin. -Step J must be finished before step W can begin. -Step W must be finished before step P can begin. -Step K must be finished before step D can begin. -Step Q must be finished before step L can begin. -Step V must be finished before step D can begin. -Step O must be finished before step M can begin. -Step A must be finished before step P can begin. -Step M must be finished before step L can begin. -Step R must be finished before step S can begin. -Step D must be finished before step X can begin. -Step X must be finished before step N can begin. -Step P must be finished before step T can begin. -Step F must be finished before step N can begin. -Step S must be finished before step L can begin. -Step U must be finished before step N can begin. -Step T must be finished before step L can begin. -Step N must be finished before step H can begin. -Step L must be finished before step H can begin. -Step N must be finished before step L can begin. -Step X must be finished before step F can begin. -Step P must be finished before step F can begin. -Step P must be finished before step H can begin. -Step B must be finished before step D can begin. -Step V must be finished before step H can begin. -Step X must be finished before step S can begin. -Step Q must be finished before step O can begin. -Step Z must be finished before step T can begin. -Step K must be finished before step N can begin. -Step S must be finished before step H can begin. -Step M must be finished before step P can begin. -Step Q must be finished before step D can begin. -Step R must be finished before step U can begin. -Step J must be finished before step P can begin. -Step P must be finished before step S can begin. -Step V must be finished before step U can begin. -Step R must be finished before step T can begin. -Step F must be finished before step S can begin. -Step D must be finished before step T can begin. -Step E must be finished before step N can begin. -Step J must be finished before step N can begin. -Step J must be finished before step A can begin. -Step K must be finished before step U can begin. -Step V must be finished before step N can begin. -Step V must be finished before step S can begin. -Step U must be finished before step L can begin. -Step F must be finished before step U can begin. -Step I must be finished before step T can begin. -Step J must be finished before step L can begin. -Step E must be finished before step T can begin. -Step T must be finished before step N can begin. -Step I must be finished before step G can begin. -Step R must be finished before step D can begin. -Step E must be finished before step B can begin. -Step X must be finished before step H can begin. -Step P must be finished before step L can begin. -Step Z must be finished before step J can begin. -Step O must be finished before step L can begin. -Step E must be finished before step H can begin. -Step F must be finished before step T can begin. -Step A must be finished before step F can begin. -Step U must be finished before step H can begin. -Step F must be finished before step H can begin. -Step C must be finished before step W can begin. -Step A must be finished before step L can begin. -Step V must be finished before step M can begin. -Step U must be finished before step T can begin. -Step E must be finished before step P can begin. -Step Y must be finished before step U can begin. -Step W must be finished before step R can begin. -Step E must be finished before step X can begin. -Step Q must be finished before step U can begin. -Step I must be finished before step F can begin. -Step V must be finished before step F can begin. -Step V must be finished before step T can begin. -Step R must be finished before step P can begin. -Step B must be finished before step A can begin. -Step S must be finished before step T can begin. -Step M must be finished before step F can begin. -Step Y must be finished before step F can begin. -Step C must be finished before step K can begin. -Step D must be finished before step S can begin. -Step O must be finished before step S can begin. -Step M must be finished before step U can begin. -Step Z must be finished before step S can begin. -Step R must be finished before step H can begin. -Step C must be finished before step O can begin. -Step G must be finished before step Q can begin. -Step Z must be finished before step D can begin. -Step B must be finished before step N can begin. -Step I must be finished before step H can begin. -Step I must be finished before step P can begin. -Step E must be finished before step J can begin. -Step V must be finished before step L can begin. -Step B must be finished before step U can begin. diff --git a/2018/inputs/8.txt b/2018/inputs/8.txt deleted file mode 100644 index ecb2263..0000000 --- a/2018/inputs/8.txt +++ /dev/null @@ -1 +0,0 @@ -8 11 7 2 4 4 3 6 1 5 0 8 1 6 1 1 5 4 7 3 1 2 3 1 1 1 5 0 9 9 5 2 8 7 5 7 1 4 2 2 1 1 3 1 6 0 8 6 1 8 1 1 5 4 1 3 3 3 1 3 3 1 4 1 2 2 3 3 4 1 9 0 10 1 9 5 2 6 5 6 5 7 1 2 3 1 3 3 2 3 1 1 1 7 0 11 2 5 1 1 8 4 9 1 5 4 7 3 1 3 3 1 1 3 1 7 0 8 5 2 7 8 5 4 1 1 1 1 3 2 1 3 2 3 3 3 2 3 7 1 8 0 9 2 5 4 6 7 2 9 2 1 3 1 3 3 2 1 2 2 1 5 0 9 1 1 6 1 4 2 9 4 3 1 1 2 1 3 1 6 0 9 7 2 9 4 4 5 1 8 6 1 3 1 3 1 1 5 3 3 4 4 3 4 3 7 1 6 0 11 1 3 1 1 1 7 3 8 2 1 6 1 2 1 3 1 1 1 9 0 7 7 2 1 8 1 9 8 2 1 1 3 1 1 3 1 2 1 7 0 8 5 7 1 9 7 6 5 3 1 1 1 2 2 2 2 2 2 1 2 3 2 4 1 4 1 2 5 5 3 4 1 8 0 9 1 3 7 1 2 1 3 9 8 3 1 1 3 3 2 3 1 1 6 0 7 2 4 2 6 8 1 6 2 1 1 3 3 2 1 5 0 10 1 6 6 9 7 8 4 4 9 7 1 2 1 2 3 1 1 4 4 3 6 1 6 0 10 1 7 2 8 1 6 9 3 6 7 2 2 1 3 1 3 1 8 0 8 1 8 9 7 6 1 3 4 1 1 3 2 2 3 2 2 1 6 0 8 1 8 2 3 9 5 1 6 2 1 2 1 2 1 4 2 3 5 5 5 3 4 1 6 0 10 5 7 6 5 7 1 7 4 1 5 1 1 3 2 2 3 1 8 0 7 7 1 8 1 6 4 3 3 3 2 1 3 2 1 1 1 7 0 10 6 1 1 5 9 3 2 3 3 9 3 3 3 1 1 1 1 1 2 1 1 3 5 1 8 0 11 1 3 1 6 6 6 5 1 5 1 6 2 1 3 1 3 2 1 2 1 8 0 6 1 1 2 1 9 9 1 3 1 2 2 3 1 2 1 6 0 9 8 4 2 8 8 7 1 8 1 1 2 2 1 1 2 5 1 1 4 2 3 6 1 8 0 8 4 1 8 1 3 6 9 8 3 1 2 1 3 2 3 1 1 6 0 7 9 1 6 4 9 4 6 1 3 1 1 1 3 1 8 0 7 5 4 1 5 7 1 8 2 1 1 2 2 2 1 2 1 2 1 1 4 4 2 2 3 3 2 4 4 3 7 1 9 0 8 3 3 7 1 1 5 3 3 2 2 1 1 2 1 2 3 1 1 9 0 8 5 9 8 9 4 4 8 1 1 3 2 3 2 1 1 1 1 1 9 0 8 3 6 5 1 8 4 5 2 1 1 3 2 2 1 1 1 3 1 1 5 5 5 5 1 3 4 1 8 0 8 8 5 8 6 7 1 3 5 1 2 3 1 2 3 2 1 1 8 0 9 4 2 8 6 6 2 2 1 2 3 1 1 1 1 3 1 3 1 6 0 7 5 4 4 2 2 2 1 1 1 2 3 1 1 5 5 2 3 3 6 1 8 0 6 1 5 6 4 3 8 1 3 2 1 2 3 2 1 1 6 0 11 7 1 3 7 3 5 3 9 1 5 6 3 2 1 1 1 1 1 7 0 8 7 6 2 8 5 1 3 4 3 2 1 3 2 2 2 1 4 5 4 2 1 3 4 1 6 0 11 7 4 1 1 8 4 6 3 9 2 8 1 1 3 3 3 1 1 8 0 7 1 4 9 2 1 4 6 1 2 2 3 1 3 3 3 1 6 0 8 7 6 2 1 8 4 8 7 2 1 3 1 3 2 2 1 5 3 4 4 4 4 5 4 3 4 1 7 0 10 1 3 1 7 1 1 7 9 5 7 1 2 1 1 3 3 1 1 6 0 11 4 1 7 7 2 4 6 1 7 8 3 1 1 2 1 3 2 1 9 0 9 6 2 9 1 9 9 5 6 1 2 2 1 2 3 3 3 1 3 2 2 2 1 3 5 1 8 0 11 4 8 7 1 3 2 3 6 1 3 9 2 1 2 3 3 2 1 3 1 8 0 6 4 4 3 6 1 2 1 3 3 1 3 2 2 1 1 9 0 10 7 5 1 7 6 1 3 6 6 6 3 3 2 1 1 2 1 1 2 3 1 2 5 5 3 6 1 9 0 10 9 9 2 1 6 4 4 4 1 2 1 2 1 1 3 3 1 1 1 1 6 0 8 1 4 6 1 4 5 8 6 2 1 2 1 1 1 1 7 0 7 3 9 1 1 1 1 1 1 3 1 3 1 3 3 3 3 5 4 2 2 3 5 1 5 0 8 7 6 5 7 1 9 4 5 1 2 1 2 1 1 8 0 10 5 3 2 8 3 6 1 7 9 1 1 3 1 1 2 1 3 2 1 6 0 10 2 6 1 6 9 9 7 6 1 4 2 1 2 3 2 1 5 4 3 1 2 3 4 1 5 0 10 6 2 1 7 1 1 7 5 1 8 1 1 1 1 1 1 7 0 6 1 3 7 4 7 1 3 2 3 1 1 1 1 1 5 0 8 6 5 1 4 4 1 7 2 2 1 2 3 1 3 4 2 5 2 4 6 5 5 4 3 7 1 9 0 6 4 4 1 8 4 1 1 3 1 2 2 2 1 3 1 1 5 0 8 1 3 2 8 1 5 5 5 3 2 3 3 1 1 6 0 7 2 1 8 7 2 7 8 1 2 2 2 3 3 3 5 4 2 5 5 4 3 7 1 6 0 10 6 7 5 1 7 7 5 1 9 1 2 3 1 3 2 2 1 6 0 7 8 6 4 5 6 5 1 2 3 1 1 3 2 1 7 0 7 9 1 1 1 6 3 9 2 1 3 2 2 1 2 2 5 1 4 3 5 1 3 7 1 6 0 7 4 6 1 5 3 1 3 1 3 2 1 1 1 1 9 0 9 1 3 8 4 5 7 9 2 5 3 3 2 1 3 1 2 3 1 1 9 0 8 2 5 6 1 5 5 1 8 2 3 1 2 1 1 2 3 1 3 4 1 2 4 3 2 3 7 1 5 0 9 4 8 1 8 7 1 1 7 6 1 2 1 3 2 1 8 0 8 8 3 5 4 1 3 3 3 1 1 2 1 2 1 1 2 1 5 0 8 1 5 7 8 5 7 3 5 3 3 1 2 1 2 2 5 4 3 5 1 3 6 1 5 0 10 8 6 1 6 7 3 4 2 1 7 2 2 1 2 3 1 5 0 7 4 2 9 1 3 5 1 3 3 3 1 1 1 5 0 11 7 8 2 5 9 5 2 2 5 1 7 1 3 1 1 1 2 4 1 3 4 2 7 3 5 2 5 3 3 5 1 9 0 11 6 2 2 1 7 8 4 6 8 9 1 2 3 1 1 1 1 3 3 3 1 5 0 11 3 4 8 3 9 1 2 5 4 1 2 2 1 1 3 3 1 8 0 6 2 1 2 8 1 1 3 2 1 2 3 2 1 2 1 3 3 3 4 3 4 1 8 0 9 9 8 4 1 3 6 4 1 3 1 2 2 1 2 2 2 1 1 8 0 8 1 9 1 1 7 2 1 5 1 3 2 1 1 2 1 3 1 7 0 6 1 8 7 8 5 4 1 3 2 2 2 1 2 3 5 1 2 3 4 1 9 0 6 1 1 2 7 2 8 2 3 3 3 2 1 3 1 3 1 6 0 9 9 7 7 3 8 5 2 6 1 1 3 1 1 3 2 1 7 0 8 5 4 5 1 7 3 8 1 2 3 1 3 1 3 3 2 3 3 3 3 6 1 6 0 6 1 1 1 6 6 3 2 3 3 2 3 1 1 9 0 10 6 6 9 5 9 2 9 7 6 1 1 1 2 2 3 1 1 1 2 1 5 0 10 4 1 7 4 2 8 3 3 7 3 3 1 3 1 2 2 3 5 2 3 3 3 4 1 6 0 8 4 3 7 7 5 2 4 1 1 1 3 3 1 1 1 8 0 10 5 9 8 3 9 1 1 8 4 7 1 1 3 3 1 2 3 3 1 8 0 8 4 9 1 1 9 4 6 3 1 1 1 1 1 1 3 1 3 2 2 3 3 7 5 4 5 3 5 1 8 0 7 1 6 1 8 5 9 2 2 1 3 3 3 1 3 1 1 5 0 9 3 6 2 2 4 1 4 1 7 1 2 2 1 2 1 9 0 6 4 7 1 1 1 8 2 1 1 1 2 1 2 2 1 4 3 2 4 5 3 6 1 7 0 10 3 2 6 2 1 5 7 8 9 5 1 2 1 3 2 2 3 1 7 0 6 3 6 6 1 4 6 1 1 1 3 2 1 3 1 7 0 9 6 1 3 1 3 8 5 9 4 1 2 2 2 1 1 3 2 3 2 1 2 3 3 4 1 5 0 11 1 3 8 7 7 7 7 2 2 3 1 3 1 1 1 2 1 9 0 10 4 5 1 3 2 8 8 8 3 9 3 1 1 2 3 1 2 2 3 1 7 0 6 6 3 1 3 2 4 3 1 3 1 3 3 2 2 1 3 4 3 5 1 5 0 10 7 8 5 2 3 3 7 1 6 6 1 1 3 1 1 1 9 0 8 5 1 6 1 2 7 4 3 1 3 2 2 1 3 2 2 3 1 9 0 8 9 8 1 4 4 9 3 8 3 2 3 2 1 1 1 1 1 4 4 4 3 1 4 4 6 5 3 5 5 6 3 5 5 3 5 1 6 0 11 8 3 8 1 1 1 6 6 7 5 6 2 3 1 1 3 2 1 9 0 7 4 1 2 1 8 1 2 1 1 1 2 3 3 3 2 2 1 7 0 7 5 6 4 7 3 1 1 1 2 1 2 1 2 2 4 4 1 3 2 3 5 1 9 0 8 5 8 2 3 6 1 9 9 3 1 3 1 3 1 2 3 2 1 8 0 10 2 7 5 2 2 1 5 1 7 9 1 1 3 2 3 1 2 2 1 8 0 8 8 7 5 9 9 8 1 1 1 1 2 1 1 1 2 2 2 2 2 2 2 3 5 1 7 0 11 7 2 2 5 7 1 4 9 4 6 4 2 3 3 2 3 2 1 1 9 0 7 1 3 3 5 2 1 9 3 1 1 2 3 1 3 3 2 1 7 0 10 1 7 6 1 9 3 6 2 4 4 1 1 1 2 2 3 3 2 2 1 2 1 3 4 1 9 0 7 3 6 9 6 7 1 3 1 2 1 2 1 1 1 2 1 1 8 0 10 1 3 9 1 3 8 7 6 6 4 2 2 1 3 2 1 1 1 1 5 0 6 9 8 1 3 5 4 2 2 3 1 3 5 2 3 5 3 4 1 7 0 9 2 9 6 9 1 2 9 2 2 3 1 1 3 3 2 2 1 6 0 11 9 7 3 4 2 9 5 1 6 5 4 3 1 2 3 1 3 1 6 0 7 5 9 3 9 1 1 6 1 1 3 2 3 3 2 3 3 4 6 5 3 5 4 5 3 3 5 1 7 0 6 9 1 6 2 1 6 1 1 3 2 3 3 1 1 7 0 10 6 1 2 9 7 1 8 5 9 1 1 3 2 3 1 2 2 1 7 0 11 2 6 4 4 1 2 2 5 6 2 8 1 3 3 1 3 2 3 4 1 1 5 4 3 4 1 8 0 7 1 6 5 8 5 8 9 1 2 3 3 3 1 2 1 1 5 0 8 3 5 2 4 1 9 4 5 3 1 2 3 3 1 9 0 9 9 2 1 7 2 9 8 5 1 3 1 3 2 2 1 2 1 2 4 3 4 1 3 5 1 9 0 10 5 5 6 1 5 5 6 1 3 7 2 1 1 1 1 1 2 1 2 1 5 0 6 1 5 7 2 3 9 1 2 3 2 3 1 7 0 10 7 8 4 8 9 8 2 1 2 5 1 2 2 1 2 3 3 3 4 4 1 3 3 4 1 8 0 6 3 4 7 1 3 1 3 3 1 3 2 3 3 3 1 5 0 7 6 2 7 4 3 1 1 1 2 3 2 1 1 5 0 8 1 1 4 5 6 3 5 7 3 1 1 3 2 3 1 5 2 3 6 1 6 0 10 1 8 1 1 2 2 5 5 1 3 2 1 1 1 3 1 1 6 0 8 4 2 1 7 7 8 8 5 1 3 1 2 1 1 1 9 0 7 5 8 3 6 1 7 5 3 3 1 2 1 2 3 3 2 5 5 5 2 1 1 2 4 5 4 4 3 5 1 9 0 8 2 1 8 2 4 1 3 4 1 3 2 1 2 1 1 2 2 1 9 0 6 8 8 1 8 8 6 1 1 1 2 1 3 2 2 1 1 7 0 7 7 8 1 8 7 7 8 1 1 1 1 1 3 3 3 5 2 5 2 3 6 1 9 0 8 9 2 8 3 4 7 1 1 1 3 3 3 2 1 2 3 1 1 6 0 7 2 1 9 4 1 3 1 1 2 3 1 2 2 1 5 0 9 8 2 2 7 3 4 1 6 3 1 2 2 1 2 4 3 1 2 1 5 3 7 1 8 0 7 1 6 2 5 3 8 3 2 1 1 1 1 2 3 1 1 8 0 10 5 2 1 1 1 5 7 1 4 9 2 1 1 2 2 2 1 3 1 6 0 10 5 4 8 1 6 2 7 1 6 1 1 3 3 1 3 3 5 3 5 1 5 1 5 3 7 1 8 0 9 6 5 9 1 1 8 5 5 7 2 1 2 1 2 1 3 3 1 6 0 7 9 8 1 2 1 2 5 1 2 1 2 3 1 1 8 0 6 5 3 1 5 3 7 1 3 3 1 1 1 1 1 4 1 1 2 1 3 1 1 2 2 6 5 4 3 6 1 6 0 6 9 5 7 8 1 4 3 1 2 1 2 1 1 8 0 8 4 6 3 1 9 7 1 6 1 1 3 1 3 3 2 3 1 7 0 6 1 1 8 2 3 3 3 1 1 2 2 1 1 4 1 1 2 2 2 3 4 1 6 0 8 8 5 1 1 5 1 7 9 3 1 3 1 1 3 1 5 0 10 6 9 5 9 3 5 2 8 1 1 1 1 2 1 1 1 5 0 10 3 6 7 9 9 1 6 4 2 8 2 1 3 1 1 2 1 2 4 3 7 1 8 0 8 1 3 7 9 5 8 8 3 1 1 1 1 3 1 3 2 1 5 0 10 8 1 9 9 1 5 9 8 4 3 1 2 3 2 3 1 6 0 6 9 9 5 1 7 9 1 2 1 1 3 3 2 3 2 4 1 3 1 3 4 1 7 0 10 3 5 8 9 6 4 1 8 9 1 3 3 1 1 2 3 1 1 6 0 6 3 8 2 1 2 5 3 2 2 1 1 1 1 6 0 10 3 2 6 6 1 2 1 6 4 4 1 1 3 1 3 1 1 5 2 2 3 6 1 5 0 6 2 6 6 1 1 9 1 2 3 2 1 1 8 0 6 6 3 3 6 1 1 3 2 3 2 1 3 2 1 1 8 0 9 1 1 6 8 4 6 2 9 9 3 3 2 2 1 1 3 1 2 1 5 1 3 3 1 5 6 6 5 4 3 4 1 7 0 7 3 5 1 9 7 3 3 1 1 1 2 1 1 3 1 6 0 9 8 7 7 2 1 1 4 5 7 1 1 1 1 2 1 1 8 0 11 8 7 9 1 1 2 9 7 1 8 1 1 2 2 2 3 2 2 2 5 4 2 2 3 6 1 9 0 10 5 4 3 9 1 1 6 9 4 5 1 1 1 3 1 1 3 1 1 1 5 0 6 1 2 1 6 4 8 2 2 3 2 1 1 7 0 6 5 4 5 5 1 1 3 1 2 3 1 3 3 1 1 3 2 1 1 3 4 1 7 0 10 4 4 9 1 5 8 1 2 7 8 2 3 1 1 3 3 2 1 7 0 7 4 9 4 4 1 4 4 3 3 1 2 1 1 1 1 5 0 11 5 3 6 6 4 8 6 5 6 1 3 1 1 1 1 1 4 1 3 3 3 4 1 8 0 8 9 8 1 6 9 8 5 6 1 2 1 1 1 1 1 2 1 8 0 9 1 3 3 5 9 1 1 3 6 1 1 3 2 2 1 1 3 1 8 0 10 8 3 5 6 2 5 7 4 1 4 1 2 1 3 3 1 2 1 2 3 5 3 3 5 1 8 0 11 5 4 9 9 7 9 4 2 7 5 1 3 1 2 1 1 1 2 1 1 5 0 6 1 1 9 9 1 8 2 2 3 2 1 1 7 0 7 3 1 4 2 2 5 5 1 2 3 3 1 3 1 3 1 3 5 1 2 2 7 6 5 3 3 5 1 9 0 10 1 2 7 9 6 4 5 6 9 1 2 2 2 1 2 1 3 2 3 1 5 0 6 8 7 5 1 2 5 3 2 1 2 3 1 6 0 7 9 4 2 9 2 3 1 1 1 3 3 1 1 4 5 3 2 3 3 5 1 8 0 9 3 4 3 1 9 9 3 1 4 1 3 1 2 3 2 2 3 1 9 0 9 7 7 3 8 9 9 1 5 8 2 1 2 2 1 3 2 3 3 1 7 0 9 4 1 6 4 5 4 3 9 1 3 3 1 2 2 2 3 5 5 2 2 2 3 5 1 7 0 7 1 5 7 1 5 1 4 3 1 1 1 2 1 3 1 6 0 6 1 3 2 1 4 5 1 1 3 3 2 1 1 9 0 10 9 4 5 3 8 5 1 3 3 5 2 3 3 1 2 1 1 3 1 1 1 3 5 1 3 7 1 8 0 7 7 3 4 5 1 1 1 1 2 2 1 1 2 1 3 1 9 0 10 9 1 5 3 7 2 2 1 1 7 3 3 1 2 3 3 1 2 1 1 5 0 11 1 1 3 3 3 4 5 2 6 5 1 1 2 2 2 3 1 4 1 2 5 2 4 3 4 1 7 0 8 7 1 8 1 4 2 5 8 1 2 2 2 1 3 2 1 6 0 7 3 5 9 4 1 6 1 1 3 2 3 2 2 1 5 0 6 5 8 6 3 9 1 3 3 1 2 1 3 4 4 2 5 3 2 6 4 2 7 3 5 4 3 5 1 6 0 10 3 5 9 1 1 3 7 1 1 2 1 1 2 3 3 2 1 9 0 7 8 2 9 2 4 1 1 1 1 2 3 2 2 2 1 2 1 7 0 7 6 1 1 8 6 8 6 1 3 1 3 2 2 3 5 3 1 2 3 3 7 1 6 0 11 4 2 7 6 1 2 8 8 1 7 1 2 3 2 1 2 1 1 5 0 9 1 9 1 3 6 7 6 4 4 2 1 3 2 2 1 9 0 8 2 9 1 5 7 2 4 6 2 2 3 2 1 3 1 3 1 5 3 1 4 3 3 4 3 4 1 9 0 8 3 5 3 2 1 2 3 7 1 1 3 1 2 1 3 1 2 1 6 0 8 1 5 7 9 3 7 4 7 1 3 3 2 3 3 1 9 0 8 8 2 9 7 1 6 7 2 1 2 1 2 3 3 3 1 3 5 2 3 2 3 6 1 5 0 6 5 3 2 1 5 7 1 1 3 3 1 1 8 0 10 7 1 7 1 4 5 9 7 9 8 3 3 1 2 1 1 3 1 1 6 0 7 7 1 3 8 1 7 4 1 1 3 3 2 2 2 3 2 2 3 2 3 4 1 8 0 6 2 4 4 6 9 1 3 3 1 3 1 3 3 1 1 8 0 6 9 1 2 9 8 3 1 2 2 1 2 1 1 2 1 7 0 6 1 5 1 9 1 2 3 1 1 3 3 2 1 1 3 2 5 1 3 4 3 5 3 3 4 1 6 0 11 9 5 9 6 3 9 9 4 4 1 2 1 3 1 1 3 3 1 9 0 7 8 8 1 3 5 4 7 2 3 3 2 1 3 2 2 1 1 7 0 10 9 9 1 7 7 4 7 8 1 7 3 1 3 3 1 3 3 3 1 4 2 3 5 1 7 0 11 2 9 9 1 5 7 1 1 5 6 8 3 3 3 1 3 2 2 1 6 0 7 5 7 1 2 6 9 5 1 1 3 1 3 1 1 7 0 8 1 3 2 2 2 5 4 8 3 1 3 3 3 1 2 2 5 5 1 2 3 4 1 7 0 10 4 3 3 5 1 4 9 9 3 1 1 2 2 1 1 2 3 1 8 0 7 8 5 8 7 2 2 1 1 2 1 1 3 3 2 1 1 9 0 7 3 7 5 1 1 5 3 3 1 1 2 2 1 1 1 1 4 2 1 2 3 4 1 5 0 7 4 4 1 6 8 6 1 2 2 1 3 1 1 8 0 6 1 5 9 9 1 2 2 3 2 2 1 3 3 1 1 6 0 9 6 5 4 2 3 1 5 2 1 3 3 1 1 1 2 2 4 5 2 3 5 1 7 0 10 1 7 1 4 1 1 1 1 1 2 2 2 3 3 2 2 1 1 5 0 8 7 6 3 1 1 9 4 1 1 1 2 1 1 1 8 0 9 1 9 1 8 3 1 2 9 5 3 1 2 2 2 1 1 2 3 2 3 5 2 4 5 5 4 3 3 6 1 5 0 6 3 1 5 1 1 9 1 2 1 1 1 1 8 0 9 6 1 3 9 4 4 4 8 6 1 2 2 2 1 3 1 1 1 8 0 7 2 8 1 7 3 3 1 2 1 1 3 3 2 1 3 5 3 3 1 4 5 3 7 1 5 0 6 4 2 5 5 1 1 1 1 2 1 2 1 6 0 6 8 9 9 3 1 7 1 3 3 2 1 1 1 7 0 6 9 3 6 9 1 3 1 1 1 2 1 1 2 1 4 2 2 1 5 5 3 4 1 6 0 6 2 3 9 1 5 3 3 3 1 3 1 1 1 5 0 9 1 1 7 2 8 1 6 2 7 1 3 1 3 2 1 8 0 7 1 9 1 5 2 5 9 2 1 1 1 3 2 2 3 2 1 3 4 3 7 1 8 0 8 8 1 2 7 6 1 9 2 1 3 2 3 2 3 3 2 1 5 0 6 9 8 9 8 6 1 1 3 2 3 1 1 6 0 6 5 1 3 7 1 1 1 2 2 1 1 1 3 1 3 2 2 3 1 2 4 4 5 3 3 7 1 8 0 8 8 2 1 2 3 4 5 2 2 2 1 1 2 3 2 3 1 9 0 11 2 8 2 9 6 1 5 9 9 7 5 3 2 2 3 2 2 1 3 1 1 9 0 9 5 1 1 9 2 1 6 5 4 2 1 3 3 2 2 1 3 1 3 3 3 5 2 2 2 3 5 1 8 0 6 7 7 1 5 9 1 3 1 2 2 3 2 1 3 1 9 0 7 2 9 1 2 4 5 3 2 2 1 3 2 1 2 2 2 1 9 0 7 9 1 1 3 1 4 9 1 3 3 2 1 2 1 3 2 4 2 2 1 4 3 7 1 5 0 11 9 9 5 6 3 1 9 5 7 5 3 1 2 3 1 2 1 7 0 7 5 9 1 3 7 2 1 1 3 3 1 1 1 3 1 5 0 9 3 3 1 5 4 4 2 8 1 1 1 1 2 1 4 4 2 2 5 2 2 3 5 1 9 0 10 2 4 2 1 5 6 2 3 9 6 1 1 1 3 2 1 2 3 3 1 8 0 8 1 7 7 5 7 5 5 9 2 2 1 1 2 1 1 3 1 7 0 9 9 4 4 6 1 5 1 4 1 3 2 1 3 1 2 2 5 2 2 3 3 3 7 1 9 0 10 3 1 9 6 4 7 1 8 8 2 1 2 3 2 2 3 1 2 3 1 6 0 11 9 6 5 3 8 1 8 1 7 5 7 1 2 3 2 1 1 1 8 0 9 3 5 2 1 6 8 9 5 3 3 3 1 2 1 1 3 3 3 3 5 4 3 2 3 2 5 5 5 3 3 6 1 7 0 6 1 8 1 1 8 1 1 2 3 1 1 2 2 1 9 0 10 2 3 6 9 9 7 3 5 1 3 2 2 3 2 2 3 1 2 1 1 8 0 6 9 1 7 1 4 8 1 3 3 2 2 2 1 2 2 2 5 4 1 1 3 4 1 9 0 9 2 2 2 4 9 1 2 8 7 2 3 1 1 3 1 2 1 1 1 8 0 7 4 7 5 4 1 1 7 2 2 1 2 1 1 3 3 1 9 0 10 8 5 1 9 4 5 8 7 2 1 2 2 3 2 2 1 1 3 2 5 3 1 1 3 7 1 6 0 10 8 1 6 8 3 4 6 6 3 7 1 1 3 3 3 1 1 8 0 8 3 1 7 5 1 4 2 2 1 3 1 3 3 3 1 3 1 7 0 9 1 9 8 7 3 3 6 3 6 1 1 1 3 2 3 1 1 3 5 3 2 4 4 3 4 1 8 0 6 8 7 8 4 9 1 1 3 2 1 1 3 3 1 1 8 0 9 8 4 1 9 2 2 7 4 1 3 1 2 3 2 1 2 3 1 8 0 11 2 7 8 5 1 3 1 8 3 7 5 2 3 3 2 3 1 1 3 4 5 5 1 3 7 1 5 0 10 7 8 9 5 9 6 4 3 2 1 3 1 1 3 1 1 7 0 8 4 4 3 5 3 7 9 1 3 1 1 1 1 1 2 1 5 0 8 2 3 5 8 4 8 1 2 2 3 1 3 3 3 3 5 3 2 4 4 6 5 1 5 3 3 5 1 8 0 8 6 1 6 6 6 1 9 7 3 1 3 3 2 2 1 3 1 9 0 9 3 6 3 1 1 1 2 9 2 1 3 2 3 3 1 3 3 3 1 7 0 9 1 2 5 2 1 7 9 9 6 2 3 1 2 2 3 2 4 1 1 1 1 3 4 1 6 0 6 1 6 9 9 2 4 1 2 3 1 1 2 1 5 0 7 1 1 5 2 9 8 9 1 1 1 3 2 1 8 0 9 9 5 1 1 6 9 6 6 9 1 1 2 1 1 3 3 1 2 3 2 2 3 6 1 8 0 6 1 8 4 4 6 9 3 1 3 2 2 1 2 1 1 7 0 7 1 3 5 3 1 7 1 2 3 3 2 2 2 1 1 7 0 8 2 6 8 6 1 1 5 6 2 1 2 1 3 1 2 4 4 3 2 2 3 3 6 1 8 0 10 5 8 3 9 1 9 8 3 5 6 1 1 2 1 1 2 2 2 1 8 0 8 4 1 2 7 1 7 5 9 2 1 1 2 3 2 2 3 1 7 0 8 4 1 8 2 5 6 4 8 3 1 1 1 2 1 3 3 2 3 3 4 5 3 6 1 9 0 6 2 4 1 9 1 2 3 2 2 1 1 3 2 1 1 1 8 0 10 4 2 8 8 5 5 9 5 1 5 2 3 2 3 1 3 2 1 1 6 0 10 7 6 1 2 1 6 1 2 5 3 3 3 3 1 3 1 4 2 1 1 3 3 7 4 1 5 4 3 4 1 5 0 9 8 8 7 5 3 3 4 1 5 2 3 1 3 2 1 8 0 7 8 9 6 6 1 1 1 3 2 3 1 1 1 2 3 1 8 0 8 8 4 1 2 7 1 5 8 3 3 3 1 2 2 2 2 1 5 2 4 3 7 1 6 0 11 3 6 9 1 6 9 5 1 6 4 2 1 2 1 3 3 1 1 8 0 7 1 1 6 4 7 9 7 3 2 1 1 3 1 1 2 1 8 0 6 1 1 3 9 1 9 3 1 3 1 3 2 2 2 3 3 3 1 3 5 1 3 5 1 8 0 8 7 2 6 8 1 1 2 9 1 3 3 3 1 2 3 1 1 7 0 11 9 5 3 3 4 9 8 7 9 4 1 1 1 3 3 2 3 2 1 9 0 9 9 3 1 6 1 6 8 4 1 3 3 3 3 1 2 1 1 2 4 5 1 5 4 3 4 1 7 0 8 1 2 2 4 9 6 1 1 3 1 3 1 2 1 3 1 6 0 7 3 4 5 9 7 1 5 3 2 2 1 1 2 1 9 0 6 5 3 1 4 5 1 1 1 3 1 3 1 1 3 1 1 4 1 2 3 6 1 5 0 6 7 1 6 8 3 1 1 1 3 1 3 1 7 0 9 1 2 2 9 8 7 7 1 9 1 2 3 1 2 3 1 1 8 0 11 7 5 6 5 1 4 4 4 7 1 4 2 3 3 3 1 1 3 2 5 5 3 5 2 3 5 1 7 5 8 8 1 6 2 4 5 3 4 1 9 0 8 3 8 1 3 6 9 4 1 1 2 3 3 1 3 2 3 1 1 7 0 10 8 5 2 1 3 4 7 2 3 5 3 1 3 1 3 1 3 1 8 0 7 2 1 4 3 9 1 6 1 1 3 2 3 2 3 2 3 4 5 4 3 7 1 6 0 6 1 1 7 9 9 5 1 1 1 2 3 3 1 7 0 10 8 7 4 5 6 4 1 1 3 7 1 2 2 3 3 3 3 1 6 0 7 4 3 7 1 3 8 2 3 2 1 1 1 1 2 3 1 4 4 2 1 3 7 1 7 0 6 7 3 6 3 7 1 3 1 1 3 2 2 1 1 8 0 6 4 5 6 9 1 5 3 1 1 1 3 2 1 2 1 6 0 10 7 6 5 6 4 2 3 3 1 6 3 1 2 3 1 3 3 3 4 5 2 2 4 3 5 1 9 0 9 8 1 3 7 4 9 9 1 1 2 1 1 1 1 2 2 1 3 1 6 0 9 3 7 4 2 1 6 8 4 9 1 3 3 3 1 1 1 7 0 6 4 6 8 7 3 1 2 2 3 2 2 1 2 1 4 2 5 4 6 6 2 5 1 5 4 3 4 1 6 0 9 1 2 7 3 3 9 1 6 9 1 2 3 2 1 3 1 5 0 8 3 8 8 9 9 2 5 1 3 1 1 3 1 1 9 0 6 7 4 1 4 1 9 1 3 1 2 1 1 2 1 1 3 1 3 1 3 4 1 9 0 9 4 1 1 4 3 7 6 4 6 3 1 2 1 3 2 1 1 1 1 6 0 7 8 1 6 5 8 3 1 3 2 3 3 2 1 1 6 0 11 2 3 3 6 1 3 7 1 7 7 1 2 3 2 1 1 3 4 3 4 1 3 4 1 5 0 9 1 5 4 7 6 1 1 5 3 3 2 1 1 2 1 6 0 10 6 9 1 5 5 5 9 8 6 3 1 1 3 3 1 1 1 6 0 11 1 9 3 2 3 1 4 9 2 4 4 2 2 1 1 3 3 2 3 3 4 3 6 1 9 0 6 1 9 9 6 6 2 1 3 3 1 3 2 3 3 1 1 6 0 9 7 5 1 1 4 4 9 4 1 3 3 2 1 1 1 1 6 0 7 5 7 1 8 7 3 9 3 1 2 2 2 1 3 1 4 3 3 2 3 5 1 7 0 10 6 1 1 6 1 9 4 9 2 3 1 2 3 3 2 3 3 1 7 0 8 1 6 1 2 4 1 2 8 1 1 1 2 3 1 2 1 7 0 6 2 3 1 4 2 6 3 1 1 1 1 3 1 3 2 3 3 1 7 3 4 3 5 3 3 4 1 9 0 8 1 4 6 6 4 9 1 2 2 2 2 2 2 1 3 3 2 1 6 0 7 6 1 1 5 9 5 7 1 3 3 3 1 1 1 8 0 10 6 1 3 3 1 7 2 8 9 9 1 1 2 3 2 2 3 1 1 3 3 2 3 6 1 7 0 6 8 2 2 7 1 6 2 1 3 2 1 2 3 1 6 0 8 2 5 1 8 1 7 6 6 2 3 1 2 1 2 1 7 0 9 6 3 9 1 7 3 5 2 8 1 3 1 1 1 1 2 4 1 5 3 5 3 3 4 1 6 0 8 3 1 1 9 2 8 2 1 2 3 3 1 2 1 1 7 0 6 1 9 4 4 8 1 3 1 2 1 3 1 1 1 9 0 10 5 2 5 9 4 2 1 8 1 5 3 3 1 3 1 1 3 3 2 2 3 4 5 3 7 1 8 0 11 7 6 3 6 2 1 6 3 5 3 1 3 1 3 3 1 3 3 2 1 9 0 8 5 4 3 4 7 1 4 2 3 3 2 1 3 1 3 1 3 1 8 0 6 1 9 1 5 2 4 1 1 3 1 3 2 2 2 5 5 4 4 4 3 1 3 4 1 8 0 9 3 2 1 6 5 9 6 5 7 2 3 1 2 3 2 3 2 1 5 0 11 7 6 8 6 4 3 1 8 2 1 6 1 1 3 1 1 1 5 0 9 3 1 8 3 9 4 8 8 9 2 3 2 2 1 5 1 4 1 3 5 2 5 3 3 5 1 5 0 9 7 8 2 2 2 2 5 1 5 1 3 1 2 1 1 5 0 7 1 4 2 8 1 6 1 1 3 1 3 2 1 5 0 8 2 7 2 9 1 6 1 8 3 3 1 2 2 3 5 1 3 4 3 5 1 6 0 6 9 7 1 2 3 8 2 2 2 3 1 1 1 6 0 8 1 4 8 8 9 8 6 2 1 3 1 1 2 1 1 9 0 11 7 2 1 1 7 6 3 2 6 7 2 1 1 1 1 3 2 3 3 2 1 4 3 4 4 3 6 1 5 0 10 2 9 1 1 7 1 3 9 2 6 1 3 1 3 2 1 7 0 6 1 7 8 2 8 2 2 1 1 3 3 2 1 1 9 0 10 8 5 7 3 1 2 7 1 6 1 1 2 2 3 1 2 1 1 3 4 2 5 3 4 4 3 7 1 5 0 11 1 8 2 3 7 8 2 1 3 7 4 1 2 2 1 1 1 9 0 9 6 2 7 6 9 3 6 2 1 2 1 2 2 2 1 1 1 1 1 7 0 7 3 9 8 1 4 1 6 3 1 2 2 2 1 3 2 1 2 5 4 1 3 3 6 1 8 0 11 4 6 2 5 2 5 5 5 1 3 1 3 1 1 3 1 1 2 1 1 9 0 8 2 5 7 9 1 3 5 1 1 2 1 2 1 1 1 2 3 1 6 0 11 7 1 3 2 8 9 7 8 5 1 1 2 3 3 1 2 2 3 5 3 1 3 2 1 4 4 5 4 3 4 1 9 0 7 4 9 7 2 7 1 8 3 3 3 1 2 1 1 1 3 1 5 0 7 8 1 2 8 5 3 7 1 2 3 1 2 1 5 0 6 1 5 7 6 1 8 2 3 3 2 1 3 2 4 2 3 4 1 9 0 7 1 5 4 7 8 1 3 3 1 1 3 1 3 2 1 1 1 7 0 11 6 6 3 2 2 3 1 3 9 6 3 1 1 1 2 3 2 2 1 9 0 6 1 1 3 3 4 3 2 3 1 1 1 1 1 1 3 3 3 3 3 3 7 1 5 0 9 9 1 5 5 4 8 2 5 4 1 1 2 2 2 1 7 0 9 5 1 6 8 5 3 7 4 1 1 2 1 3 2 1 2 1 9 0 8 7 8 3 7 5 4 1 5 2 3 2 1 1 1 1 1 3 5 3 1 2 1 3 1 3 4 1 9 0 6 1 6 5 6 8 4 3 3 1 1 3 2 2 1 1 1 9 0 7 9 5 3 1 5 2 1 3 2 3 2 1 1 3 1 3 1 5 0 9 3 1 8 1 4 4 5 9 6 1 2 1 1 2 1 2 1 1 3 7 1 5 0 11 7 4 4 6 1 7 6 1 1 6 2 2 1 1 3 2 1 9 0 6 1 9 9 1 3 6 3 1 1 2 1 1 1 2 1 1 8 0 7 8 7 2 2 1 6 3 2 3 1 1 2 2 3 1 4 5 5 1 4 5 2 3 4 1 5 4 5 3 4 1 6 0 10 6 9 8 8 5 5 8 1 4 7 2 1 1 1 2 3 1 8 0 7 6 3 2 4 7 4 1 1 3 2 1 3 3 2 3 1 9 0 11 6 9 3 7 8 6 5 6 4 1 7 2 2 2 1 1 1 2 1 3 3 3 3 3 3 6 1 5 0 7 3 8 6 2 7 1 9 1 1 1 2 1 1 6 0 8 8 9 7 1 1 7 2 6 1 1 2 3 1 3 1 8 0 8 1 6 9 2 6 6 3 6 3 1 3 2 1 3 2 1 3 4 1 4 2 1 3 5 1 9 0 6 2 6 7 3 1 2 2 2 1 2 3 2 1 2 3 1 9 0 7 7 5 7 6 1 8 1 1 1 2 1 1 3 3 3 2 1 9 0 7 6 8 4 1 2 1 3 3 3 3 3 1 2 3 1 2 2 1 5 2 3 3 6 1 8 0 7 1 1 5 7 9 1 3 3 1 3 3 1 1 2 1 1 7 0 11 5 9 1 3 5 8 5 8 2 2 8 3 2 3 1 2 1 3 1 5 0 9 6 9 4 2 1 1 3 6 2 1 3 3 1 1 3 3 4 3 5 5 2 3 6 1 1 2 8 7 3 5 3 3 6 1 6 0 6 1 1 1 8 7 6 1 2 3 3 1 3 1 8 0 9 1 3 7 5 6 7 5 1 6 3 3 1 1 1 1 3 2 1 7 0 7 2 1 8 9 3 8 1 3 2 1 3 2 2 1 2 2 2 1 3 4 3 7 1 5 0 9 2 2 9 6 7 9 7 1 7 3 2 1 1 1 1 8 0 7 7 6 8 1 2 6 8 3 3 1 1 3 2 2 1 1 9 0 9 1 1 7 1 3 2 5 5 5 3 1 1 2 1 3 2 1 3 5 4 1 5 3 1 1 3 7 1 9 0 7 2 1 1 7 5 5 3 1 3 1 3 1 2 1 3 3 1 7 0 10 2 3 7 7 3 6 2 3 1 7 3 2 3 1 2 2 3 1 9 0 8 9 7 7 3 9 3 1 4 3 1 1 1 1 3 3 1 1 3 4 1 1 3 4 3 3 5 1 9 0 9 1 2 3 9 6 3 7 6 1 1 1 2 1 1 3 2 3 1 1 9 0 6 1 9 1 4 3 3 2 1 1 3 3 1 3 1 3 1 8 0 11 3 3 1 3 6 7 1 8 6 4 3 3 3 1 2 1 1 1 1 1 5 4 1 1 3 5 1 8 0 8 4 8 1 6 3 1 6 3 3 2 2 3 1 3 3 3 1 5 0 10 1 1 8 1 1 7 1 5 4 6 3 3 1 1 3 1 6 0 7 1 9 5 1 3 2 6 1 3 3 2 2 1 3 4 1 2 4 2 3 2 5 3 3 6 1 6 0 10 3 7 9 5 6 1 7 2 3 1 2 2 3 1 1 2 1 7 0 7 1 7 5 6 2 6 7 1 1 1 2 1 1 2 1 9 0 11 3 6 7 9 8 8 8 7 3 1 3 3 1 2 1 1 1 3 2 3 3 3 3 1 4 3 3 7 1 5 0 7 8 3 6 1 3 6 4 2 1 2 1 3 1 6 0 10 7 4 6 9 1 6 5 5 2 8 1 1 1 1 2 2 1 8 0 6 2 6 8 7 1 2 3 2 2 1 3 1 1 2 2 2 2 5 3 1 4 3 4 1 5 0 6 2 1 7 4 4 5 3 2 1 3 1 1 8 0 10 4 4 5 1 1 7 2 2 8 6 2 1 3 3 1 2 1 1 1 6 0 6 6 6 1 3 6 3 2 1 2 1 1 1 1 4 1 2 3 6 1 5 0 7 1 8 5 2 7 3 4 1 1 2 2 2 1 6 0 8 7 8 1 7 7 4 1 1 2 3 3 2 3 1 1 6 0 8 8 1 1 4 8 4 4 4 1 3 2 3 1 1 4 3 5 2 1 2 3 5 1 8 0 6 1 3 8 5 2 1 2 1 1 2 2 1 2 1 1 7 0 10 9 6 9 8 4 8 1 2 2 4 1 1 1 1 2 2 1 1 5 0 7 1 7 3 9 6 1 3 2 1 2 2 2 5 3 5 1 1 3 7 4 5 4 3 5 1 5 0 6 5 1 5 2 4 6 1 3 1 2 3 1 7 0 7 1 8 4 1 5 1 3 3 1 2 1 1 1 1 1 5 0 9 5 1 1 4 8 1 4 6 8 2 2 2 3 1 4 2 2 2 4 3 4 1 6 0 10 8 2 9 4 6 2 1 7 9 3 2 2 1 2 2 2 1 5 0 7 1 4 9 4 7 9 6 1 1 2 2 3 1 6 0 10 1 1 3 5 6 2 4 5 4 3 3 1 3 1 1 1 5 3 5 3 3 4 1 5 0 7 1 1 5 3 4 7 9 1 2 1 3 1 1 6 0 10 7 6 7 8 2 2 5 8 3 1 2 2 1 1 3 3 1 8 0 11 2 1 3 8 9 1 5 4 7 3 4 1 1 3 1 2 2 3 2 1 1 4 2 3 6 1 9 0 8 2 9 1 1 7 4 8 7 1 3 2 1 2 3 2 1 2 1 8 0 10 1 7 3 6 1 6 1 9 3 3 2 3 1 1 2 2 1 2 1 6 0 9 2 4 2 1 6 6 8 4 1 2 1 3 1 1 1 2 1 3 2 4 2 3 7 1 7 0 11 7 7 9 6 3 3 4 5 5 1 5 1 2 1 3 3 1 1 1 6 0 8 6 6 7 2 9 1 6 5 2 3 2 2 2 1 1 5 0 6 3 1 1 2 4 2 1 2 2 1 2 3 3 4 2 5 5 2 4 2 4 3 5 5 3 7 1 7 0 6 1 9 3 8 7 1 3 3 3 2 3 1 2 1 5 0 9 3 7 1 6 1 2 7 4 3 3 1 1 1 3 1 5 0 11 1 8 9 9 9 6 1 8 6 8 3 3 1 1 1 1 2 3 5 2 2 1 4 3 5 1 5 0 8 8 3 5 4 1 1 9 5 1 3 1 3 1 1 8 0 7 1 7 5 1 6 4 8 2 1 3 2 1 1 3 2 1 9 0 11 9 3 1 4 9 8 6 9 3 8 8 3 3 3 3 2 1 1 1 2 3 2 3 2 1 3 4 1 5 0 8 1 7 5 3 9 3 3 9 2 1 2 2 1 1 5 0 7 3 1 9 3 9 3 6 3 3 3 2 1 1 5 0 9 5 6 4 8 3 1 1 7 6 3 1 3 3 1 3 5 5 3 3 4 1 8 0 8 1 3 1 6 1 5 9 8 3 3 1 1 2 3 1 1 1 8 0 8 1 7 8 1 9 6 9 6 1 1 2 1 1 2 2 3 1 6 0 7 4 8 2 4 7 7 1 1 2 1 1 2 1 2 3 3 5 3 7 1 5 0 10 9 2 9 7 1 2 1 1 4 2 3 1 2 1 1 1 8 0 10 4 1 1 2 1 5 7 3 7 5 2 1 1 2 1 2 2 1 1 7 0 7 4 4 5 1 4 2 1 1 2 1 3 3 3 3 1 1 1 2 2 1 4 1 3 6 1 6 5 4 3 7 1 7 0 6 7 3 3 5 8 1 1 1 2 2 3 3 1 1 5 0 8 8 1 8 8 4 9 1 1 2 3 1 3 3 1 5 0 7 8 8 8 1 5 5 1 3 1 2 1 1 1 4 3 1 5 5 3 3 5 1 5 0 10 3 9 5 9 5 9 8 3 1 2 1 1 1 1 1 1 9 0 7 6 2 1 3 3 7 2 2 2 2 3 1 2 3 1 2 1 5 0 9 3 7 3 7 1 9 7 3 7 3 2 2 1 2 2 1 4 1 5 3 7 1 5 0 7 1 8 6 6 9 5 5 2 3 2 1 1 1 8 0 9 5 3 2 1 5 3 7 3 9 3 2 3 3 1 2 1 3 1 6 0 10 1 6 5 8 9 5 3 1 2 6 1 2 3 2 1 1 4 5 3 4 3 2 3 3 5 1 5 0 11 7 5 2 1 4 7 4 9 4 3 6 1 1 2 1 2 1 7 0 8 6 8 6 6 1 3 3 1 1 1 1 2 3 1 3 1 8 0 7 3 1 9 4 8 7 4 1 1 3 1 3 3 2 1 2 4 3 4 1 3 6 1 6 0 8 9 1 3 7 2 1 1 1 2 3 1 2 2 1 1 6 0 8 3 5 4 6 6 3 7 1 1 1 1 2 2 1 1 7 0 10 3 6 4 1 1 7 1 6 1 8 1 2 2 2 1 1 1 2 2 3 3 3 3 1 7 2 5 5 5 3 4 1 6 0 9 1 7 1 1 8 6 2 5 1 1 1 2 1 1 1 1 5 0 11 9 2 1 2 7 5 5 8 6 1 7 1 3 1 1 2 1 7 0 7 4 7 8 4 7 1 8 3 3 3 2 2 1 1 1 3 1 2 3 6 1 7 0 9 7 5 1 2 7 9 8 3 7 3 3 1 3 1 1 1 1 6 0 9 6 6 1 3 9 3 8 4 7 1 1 1 1 3 2 1 6 0 7 8 5 6 6 1 5 5 1 2 3 1 3 1 1 2 3 3 5 5 3 6 1 5 0 6 3 4 1 1 7 9 3 2 2 2 1 1 9 0 11 7 1 2 6 7 2 8 5 4 5 7 2 2 3 1 1 2 2 3 1 1 6 0 9 6 6 2 9 5 7 2 1 6 1 1 2 3 3 3 4 2 3 1 2 2 3 7 1 7 0 11 2 9 8 1 1 7 7 4 6 7 5 3 1 2 1 2 3 3 1 6 0 7 9 2 1 3 2 7 8 3 3 2 2 1 1 1 5 0 10 5 5 3 1 8 5 2 2 3 6 1 2 1 2 2 1 4 2 3 2 2 2 3 4 1 5 0 7 1 3 7 2 9 2 9 1 3 3 2 1 1 9 0 7 5 1 4 4 3 3 1 1 1 1 2 1 2 3 1 2 1 8 0 11 3 6 1 3 3 2 8 6 2 6 7 3 1 1 1 2 1 1 3 5 3 5 3 3 3 4 7 4 5 5 3 5 1 6 0 8 3 2 8 1 9 6 1 9 3 1 1 2 2 1 1 9 0 8 1 9 4 6 1 9 9 8 1 3 2 3 1 2 2 3 3 1 8 0 9 5 3 1 9 6 6 7 7 4 1 1 1 1 2 3 1 1 1 1 1 5 4 3 6 1 9 0 11 1 7 4 2 7 4 8 9 3 5 4 1 1 3 3 1 1 2 1 3 1 7 0 9 1 2 2 7 5 5 9 5 3 2 2 3 1 3 3 3 1 8 0 6 1 6 1 2 4 1 3 1 1 2 1 3 1 1 2 2 3 2 3 4 3 7 1 7 0 8 5 9 7 1 5 1 7 7 2 1 1 1 2 1 1 1 9 0 8 3 4 9 3 6 1 2 3 3 2 2 1 2 3 2 1 1 1 8 0 6 2 4 5 5 7 1 3 2 3 1 2 2 2 2 1 1 5 5 3 4 1 3 7 1 8 0 9 1 6 3 9 4 1 9 4 8 2 3 2 3 2 1 1 1 1 9 0 10 4 1 4 5 2 6 1 6 2 2 1 3 3 1 3 2 3 2 2 1 5 0 6 1 9 9 6 5 1 3 1 2 1 1 1 1 2 4 3 3 4 3 7 1 9 0 7 5 5 5 5 1 3 3 3 2 1 3 2 1 2 3 1 1 7 0 6 6 9 7 9 1 5 1 2 3 1 1 3 1 1 9 0 11 5 3 7 6 7 4 8 1 1 8 3 2 1 2 3 2 1 3 1 1 2 3 3 1 4 4 2 4 1 7 5 3 9 7 8 7 2 5 4 3 7 1 6 0 8 9 1 1 7 4 1 1 2 3 2 1 3 2 2 1 8 0 7 8 4 5 4 4 1 2 1 2 2 1 3 3 2 1 1 6 0 10 7 8 4 1 1 7 5 9 5 2 1 1 1 3 1 1 1 2 2 1 5 4 4 3 5 1 8 0 10 3 1 2 1 8 1 5 4 2 7 2 1 3 2 3 2 1 3 1 8 0 10 4 1 8 6 8 6 4 2 5 1 1 2 2 3 2 2 1 1 1 5 0 9 1 5 8 4 1 7 6 7 1 1 1 2 2 2 4 1 3 3 1 3 7 1 8 0 8 1 6 3 2 6 7 2 7 2 2 3 3 1 1 2 1 1 7 0 9 7 1 3 4 5 8 9 1 6 3 1 2 2 2 1 2 1 5 0 7 8 1 8 4 2 5 6 3 1 3 2 2 2 5 3 1 4 2 1 3 5 1 8 0 10 1 1 5 7 3 7 5 1 3 7 1 2 3 1 3 1 2 1 1 8 0 9 3 1 2 1 1 7 8 1 6 3 3 2 1 2 1 1 1 1 5 0 11 5 4 1 5 2 1 6 2 2 6 9 3 3 3 2 1 4 1 1 3 2 3 4 1 7 0 7 5 9 1 2 7 3 9 1 2 3 2 3 2 3 1 5 0 7 4 7 5 8 1 5 3 2 3 3 1 1 1 6 0 9 2 2 8 5 3 1 2 1 6 3 2 2 1 1 3 4 1 3 5 5 1 4 3 4 4 3 5 1 8 0 10 9 5 8 8 3 3 3 1 8 1 2 3 2 1 2 1 3 2 1 6 0 11 4 9 1 2 8 6 7 7 9 6 4 2 1 1 1 3 2 1 6 0 8 2 3 1 3 6 4 8 8 2 1 3 2 3 1 1 2 4 3 2 3 4 1 9 0 10 5 6 5 8 4 1 5 8 1 5 1 3 1 2 1 1 1 2 1 1 8 0 7 6 2 8 3 9 6 1 2 1 1 3 2 3 2 2 1 7 0 6 9 9 2 5 6 1 1 2 3 1 2 3 2 1 5 4 2 3 5 1 6 0 6 1 4 4 1 9 1 1 1 2 1 3 2 1 5 0 10 9 9 4 1 6 5 3 8 3 9 3 1 3 3 1 1 8 0 9 6 8 1 3 8 6 1 4 5 3 1 2 3 3 1 3 2 3 5 2 4 3 3 6 1 7 0 6 8 1 2 4 5 9 1 3 2 3 3 2 1 1 6 0 6 6 1 8 7 5 1 2 3 1 2 1 1 1 5 0 8 9 1 7 5 3 9 5 5 2 1 2 2 1 1 2 2 2 4 1 4 1 6 5 4 3 3 5 1 9 0 10 3 6 1 2 9 6 8 2 9 5 1 2 1 1 3 3 2 1 3 1 9 0 9 6 3 4 7 5 1 6 4 9 1 2 2 1 3 1 1 2 1 1 8 0 8 7 2 6 6 1 3 8 1 1 3 3 1 1 1 1 1 2 3 1 2 5 3 5 1 7 0 10 8 8 8 1 8 5 4 6 1 3 2 2 2 3 1 3 1 1 8 0 10 1 2 1 8 7 3 2 2 6 3 1 3 2 2 3 3 1 1 1 5 0 11 1 9 6 7 1 8 8 8 2 6 6 2 2 2 1 2 4 3 2 1 4 3 6 1 7 0 10 3 6 1 7 9 3 3 1 8 9 3 3 2 3 2 1 3 1 9 0 7 2 2 2 4 5 9 1 2 2 2 2 2 1 1 3 2 1 7 0 7 1 1 3 9 5 3 4 1 1 1 2 1 3 1 3 2 3 1 4 3 3 7 1 6 0 10 6 7 4 3 1 1 8 4 3 6 2 1 1 3 1 3 1 7 0 6 1 1 4 2 8 3 1 2 1 1 1 2 2 1 9 0 10 6 9 1 8 5 5 4 8 5 1 2 3 3 2 1 2 1 3 3 4 2 2 5 3 3 1 4 2 3 5 5 3 6 1 7 0 9 9 9 8 1 7 5 1 3 3 2 3 2 1 3 1 1 1 7 0 7 4 1 9 9 3 1 8 1 1 3 1 2 1 1 1 9 0 9 9 9 8 5 2 7 2 5 1 2 1 1 1 2 2 3 1 3 1 4 1 2 3 5 3 4 1 7 0 6 7 4 4 3 6 1 1 3 2 1 1 2 3 1 6 0 6 3 1 9 5 5 5 3 3 1 1 2 1 1 9 0 8 8 8 4 5 4 1 5 7 1 3 2 3 1 3 2 2 2 1 4 3 5 3 6 1 9 0 10 7 7 2 9 5 1 4 2 1 4 3 2 3 3 2 1 2 3 1 1 9 0 8 1 6 4 7 1 4 9 1 1 3 2 3 3 2 2 2 3 1 6 0 9 9 8 6 6 6 1 6 4 9 3 2 1 3 3 1 1 2 4 1 3 4 3 5 1 6 0 10 3 1 7 3 9 7 5 6 7 8 2 1 1 1 2 2 1 5 0 8 1 9 1 4 8 1 2 5 1 2 1 3 2 1 7 0 9 4 6 9 6 1 6 8 5 6 1 3 1 1 1 1 2 3 2 1 3 1 3 5 1 7 0 6 9 8 8 1 3 5 1 2 1 1 3 2 3 1 9 0 8 4 8 7 9 3 7 1 7 2 2 1 3 1 1 2 3 2 1 9 0 7 3 2 8 1 8 3 2 3 3 1 1 3 1 1 1 1 1 2 3 3 4 5 5 5 2 2 5 3 3 5 1 7 0 8 1 1 1 5 1 8 5 3 3 2 1 2 1 2 2 1 7 0 9 5 1 8 1 5 4 8 6 5 1 1 2 3 1 2 3 1 6 0 10 1 9 8 4 5 7 1 7 5 1 3 1 2 2 1 1 2 2 1 2 5 3 5 1 6 0 9 8 3 3 1 2 5 1 3 6 1 2 2 3 1 2 1 6 0 8 5 2 5 1 4 4 4 1 3 1 2 2 1 1 1 5 0 10 6 3 3 1 3 7 5 3 8 8 1 3 2 2 1 1 3 4 2 5 3 6 1 9 0 8 6 8 1 4 8 1 6 8 1 3 2 3 1 3 3 1 3 1 7 0 7 7 1 1 1 3 4 9 2 1 3 2 2 1 2 1 8 0 8 3 6 2 8 5 1 6 1 2 2 2 3 1 1 2 1 4 1 1 3 1 3 3 6 1 8 0 10 3 2 9 1 3 1 6 8 4 3 1 1 2 1 2 2 2 2 1 8 0 10 4 1 3 7 4 4 2 3 6 1 1 1 3 1 2 1 3 1 1 5 0 8 8 9 1 3 1 6 5 2 2 1 1 2 3 2 5 2 2 3 1 3 6 1 7 0 6 6 6 1 1 2 3 2 1 3 1 2 2 3 1 5 0 11 9 3 2 7 4 7 6 3 1 6 6 3 3 1 2 1 1 8 0 11 9 1 5 8 7 1 2 1 1 9 2 1 2 1 2 2 1 1 1 2 4 3 5 2 3 3 2 1 5 3 3 4 1 9 0 6 8 8 5 6 1 2 2 3 3 1 2 2 2 2 1 1 7 0 6 9 7 9 1 3 9 3 3 1 1 2 1 2 1 5 0 6 2 5 1 5 9 5 1 2 1 2 1 3 5 5 2 3 7 1 7 0 7 2 2 2 1 3 5 1 1 3 1 2 2 3 3 1 9 0 10 4 1 3 9 5 4 4 1 5 1 3 2 2 3 2 1 1 2 3 1 8 0 11 2 9 6 8 3 6 1 1 1 4 4 3 1 3 1 3 1 2 3 2 1 4 5 4 4 1 3 6 1 7 0 8 1 3 6 4 1 5 7 7 1 2 1 3 3 1 2 1 5 0 10 9 1 4 1 3 3 8 4 5 6 3 2 1 1 2 1 9 0 9 2 6 9 1 5 9 6 4 4 3 1 1 1 2 2 2 2 3 2 2 1 2 5 1 3 7 1 6 0 8 9 1 4 4 1 2 6 8 1 1 1 3 3 3 1 5 0 8 1 6 7 1 4 4 8 3 2 2 3 3 1 1 6 0 10 1 4 8 7 1 2 9 8 9 7 1 2 2 3 1 3 5 5 2 4 2 2 3 3 4 1 5 0 8 1 5 8 2 7 9 8 1 3 3 3 1 1 1 5 0 9 5 1 2 4 6 8 2 4 1 3 3 3 1 1 1 7 0 7 7 4 9 4 1 7 1 3 1 3 3 3 3 1 5 5 2 1 3 1 4 5 5 3 4 1 8 0 10 7 1 9 2 7 1 6 9 6 8 1 1 2 3 3 2 3 1 1 7 0 7 3 1 9 8 1 4 2 1 3 3 2 2 3 2 1 7 0 10 5 6 5 7 8 1 6 6 8 4 2 1 1 3 2 3 3 2 2 5 3 3 6 1 9 0 9 7 9 4 5 1 1 5 7 2 1 1 1 2 3 3 1 1 1 1 6 0 9 9 2 5 3 7 1 1 8 3 1 1 3 3 3 1 1 6 0 9 5 2 7 2 1 8 1 8 1 1 1 1 2 1 3 3 5 1 1 2 4 3 4 1 8 0 10 3 6 3 8 4 5 1 6 8 2 1 1 1 2 1 2 1 2 1 7 0 7 1 5 6 1 4 5 9 1 3 2 2 1 3 1 1 8 0 8 9 2 9 9 6 8 1 1 3 3 3 2 1 1 1 3 1 4 3 4 3 4 1 6 0 10 3 9 2 3 9 1 1 4 2 1 2 2 1 1 3 3 1 7 0 10 1 5 1 7 2 1 2 2 8 3 1 1 1 1 2 1 3 1 8 0 6 9 8 1 3 4 6 1 1 3 2 3 2 2 3 3 5 5 4 3 6 1 5 0 11 1 8 8 4 9 1 3 4 3 7 5 2 1 1 2 3 1 8 0 7 1 3 5 6 7 6 4 1 1 1 3 2 1 1 1 1 7 0 11 3 3 7 3 7 7 8 3 3 5 1 3 3 1 3 3 2 2 2 5 5 4 2 5 6 1 6 5 3 4 5 6 3 5 3 3 6 1 6 0 8 1 1 3 4 2 1 1 7 3 1 1 3 1 1 1 8 0 8 4 1 1 9 2 9 9 4 1 1 3 1 1 3 3 1 1 5 0 10 1 2 9 3 8 5 9 3 4 8 3 2 3 1 2 3 5 2 5 3 4 3 5 1 9 0 6 2 3 7 1 6 7 2 1 2 3 2 2 2 3 1 1 6 0 9 8 1 8 9 5 7 4 1 4 2 1 1 3 1 2 1 6 0 9 6 8 6 1 5 2 1 3 6 1 3 1 2 1 1 3 3 3 2 5 3 5 1 9 0 7 6 3 3 3 1 3 3 1 3 1 1 2 1 2 2 2 1 9 0 10 3 6 8 7 4 4 9 1 1 3 3 2 2 3 2 1 2 1 1 1 6 0 6 1 8 4 3 8 8 1 2 1 3 3 3 3 3 2 4 1 3 6 1 8 0 11 8 9 6 2 1 1 1 9 8 2 5 2 1 3 2 1 1 1 1 1 9 0 10 9 5 8 1 1 4 4 1 7 7 2 3 1 1 2 2 3 2 3 1 6 0 11 1 5 8 9 5 7 6 8 6 1 6 1 1 1 1 2 3 4 1 1 4 2 3 3 4 1 9 0 9 4 1 9 6 6 9 8 1 2 2 3 1 2 1 3 2 2 1 1 6 0 9 3 7 1 2 2 5 4 2 2 1 2 2 1 3 2 1 7 0 9 5 5 1 6 1 5 1 6 6 2 3 1 1 1 1 1 1 5 4 5 3 4 5 4 4 3 5 1 7 0 7 5 6 5 7 1 4 9 3 3 1 3 1 1 3 1 5 0 9 1 1 9 9 2 9 9 5 9 2 1 3 1 1 1 8 0 8 8 1 4 6 4 7 8 4 1 3 3 1 3 2 3 3 3 3 5 1 4 3 7 1 9 0 7 6 8 2 1 8 3 9 3 1 3 3 2 3 1 1 3 1 7 0 8 1 5 9 4 2 7 2 9 1 1 1 1 2 1 1 1 5 0 11 8 5 1 4 2 6 1 1 4 9 4 1 1 1 2 1 3 2 5 3 1 4 4 3 4 1 7 0 11 9 5 7 1 8 1 2 7 9 7 5 1 1 2 3 2 3 1 1 6 0 10 2 1 9 3 8 3 1 5 4 5 3 2 1 3 1 1 1 9 0 10 3 5 8 9 4 3 1 6 3 3 3 3 2 3 1 2 3 3 2 3 1 1 4 3 7 1 9 0 8 1 1 8 5 2 6 8 7 2 3 3 2 1 1 1 1 3 1 6 0 7 7 5 8 3 1 1 1 1 2 1 3 1 1 1 6 0 7 1 8 3 8 2 5 5 3 2 2 2 3 1 3 2 5 3 3 5 2 2 6 4 5 5 5 3 6 1 9 0 10 8 9 6 9 9 6 1 1 7 3 3 2 2 1 1 3 1 2 1 1 6 0 11 1 4 7 8 9 5 4 2 1 6 1 1 2 1 1 3 3 1 8 0 8 8 1 7 6 7 5 7 9 2 2 3 2 1 3 3 3 1 3 5 2 1 3 3 5 1 5 0 9 3 7 2 1 2 7 5 1 1 3 2 2 1 1 1 8 0 6 7 1 6 9 1 8 3 2 3 2 2 1 1 1 1 7 0 9 7 2 9 4 1 8 1 1 1 2 1 2 3 1 1 3 2 1 4 4 3 3 4 1 7 0 7 9 7 1 6 2 6 1 2 3 1 1 2 1 2 1 9 0 8 9 9 3 3 5 3 1 1 2 1 1 1 2 1 3 1 3 1 5 0 6 1 1 6 6 2 5 1 2 3 3 1 4 2 3 5 3 4 1 5 0 10 2 6 1 4 1 7 4 2 3 2 1 2 2 3 2 1 7 0 11 1 3 5 1 3 3 7 1 5 1 5 2 1 3 2 1 2 1 1 8 0 8 4 1 8 2 8 4 3 1 2 3 1 2 2 1 2 2 2 2 1 3 3 4 1 8 0 8 5 6 9 5 7 4 1 4 1 3 3 2 2 3 2 1 1 5 0 10 4 5 5 2 7 6 3 1 9 5 1 2 2 2 1 1 8 0 7 2 9 5 1 2 5 6 3 1 1 3 1 1 1 3 2 3 1 4 2 2 4 2 3 5 3 3 4 1 6 0 11 1 8 7 7 1 6 6 5 3 1 2 1 2 3 3 1 1 1 5 0 9 5 1 1 8 1 9 3 3 6 3 1 1 2 3 1 5 0 11 9 5 6 8 6 2 1 8 7 4 1 1 3 2 1 1 2 4 1 1 3 6 1 9 0 6 9 3 3 4 1 7 1 3 2 1 1 1 2 3 1 1 6 0 10 1 3 8 2 8 5 4 8 2 8 1 2 3 2 3 2 1 5 0 7 7 4 4 7 1 7 8 1 3 3 1 3 2 4 1 3 2 3 3 6 1 5 0 9 4 5 7 7 3 2 2 1 5 1 3 3 3 1 1 6 0 11 3 5 1 5 4 9 9 4 2 9 7 3 3 1 1 3 2 1 7 0 10 9 7 8 1 9 3 2 2 9 6 2 3 1 2 2 1 3 3 3 3 1 2 1 3 7 1 6 0 7 7 6 4 7 8 5 1 2 3 1 2 3 1 1 9 0 7 7 4 1 5 5 7 8 3 1 1 1 3 3 1 2 2 1 8 0 6 3 1 8 2 4 3 1 2 3 1 1 2 2 2 5 4 1 2 4 1 1 3 6 1 5 0 6 3 7 1 6 4 6 2 3 1 1 1 1 8 0 10 1 8 3 1 5 1 4 1 3 6 1 2 1 2 2 1 2 1 1 5 0 11 8 5 2 3 4 4 4 5 1 1 8 3 1 3 3 2 3 1 2 1 2 1 4 2 1 5 3 3 4 1 7 0 9 1 1 9 6 3 9 2 5 5 3 3 1 2 2 1 3 1 8 0 9 6 9 8 4 8 1 6 2 4 1 1 1 2 1 1 2 3 1 7 0 9 6 8 4 4 1 1 3 1 2 1 3 2 2 3 1 3 3 5 1 2 3 6 1 9 0 7 7 5 1 9 9 3 6 3 1 3 2 1 2 3 1 1 1 6 0 6 7 1 6 9 2 3 2 3 2 3 3 1 1 6 0 8 3 6 5 9 1 7 9 7 2 1 3 2 1 1 3 5 1 3 1 3 3 4 1 5 0 8 1 2 9 1 9 7 7 5 3 3 2 1 1 1 5 0 11 5 5 8 3 1 7 5 8 4 1 1 1 1 3 3 2 1 7 0 10 8 3 2 1 7 2 8 7 9 7 1 2 1 3 3 1 3 1 2 2 1 3 6 1 6 0 10 2 8 7 5 1 7 1 8 4 1 3 1 1 2 2 2 1 6 0 9 8 9 8 1 9 1 1 1 3 2 1 2 2 1 1 1 5 0 8 1 5 1 5 8 6 4 6 3 3 2 1 2 4 2 3 2 2 2 3 4 1 8 0 6 4 4 6 5 1 9 2 1 2 1 3 1 2 1 1 8 0 10 2 1 1 8 1 3 2 1 2 1 2 1 3 3 3 1 2 2 1 6 0 8 2 4 1 1 3 4 7 1 2 1 3 1 1 1 1 1 3 3 3 5 2 4 3 3 7 1 6 0 10 1 2 4 5 3 5 9 7 8 1 1 1 3 1 3 2 1 5 0 8 7 1 4 1 2 7 4 1 3 1 3 3 2 1 9 0 11 9 9 7 4 3 4 4 9 1 2 3 1 2 1 3 1 2 1 3 1 2 3 4 3 2 2 1 3 6 1 9 0 10 3 4 6 5 8 1 1 9 2 2 3 3 2 2 2 2 1 2 3 1 5 0 9 4 1 3 9 9 5 5 1 1 1 3 2 1 3 1 9 0 9 1 6 2 6 9 2 1 9 9 1 1 1 3 3 1 1 2 1 3 3 1 1 1 3 3 6 1 5 0 11 2 7 7 3 1 1 3 8 1 9 6 1 1 1 1 3 1 9 0 8 7 3 1 7 9 5 1 8 2 1 1 1 1 2 2 3 3 1 9 0 11 9 1 7 1 8 1 1 3 4 6 3 2 1 2 2 3 2 3 1 1 3 5 4 4 5 5 3 4 1 7 0 6 9 2 6 1 1 1 3 3 3 1 3 1 1 1 6 0 11 9 2 2 1 2 5 7 7 4 5 7 1 3 3 1 1 2 1 6 0 7 6 1 9 9 1 3 5 2 1 1 1 3 2 4 4 3 1 1 2 1 8 7 5 7 2 4 5 3 6 1 7 0 8 1 6 7 2 5 2 1 1 2 2 2 1 2 1 2 1 9 0 9 9 4 3 4 5 9 1 2 8 3 1 1 2 2 1 3 1 1 1 7 0 7 6 4 8 2 1 4 8 3 3 1 1 2 2 2 5 2 5 4 1 3 3 7 1 8 0 9 8 7 3 3 6 1 5 1 9 3 3 3 1 3 2 1 3 1 6 0 11 4 7 4 3 8 7 1 7 1 2 8 1 1 3 2 1 3 1 5 0 8 9 1 1 8 7 2 2 1 1 1 1 1 2 4 5 1 5 3 5 3 3 4 1 5 0 6 8 7 2 1 1 1 3 1 2 3 2 1 5 0 6 9 5 1 5 7 3 2 2 1 1 3 1 5 0 6 9 4 1 3 1 5 1 2 1 3 1 3 4 2 3 3 7 1 6 0 9 9 8 3 1 7 6 8 7 8 3 3 2 1 1 1 1 7 0 10 2 7 5 2 8 7 6 1 3 2 2 1 3 1 1 1 2 1 6 0 7 1 1 8 9 2 7 2 2 3 1 1 3 2 5 5 5 3 4 2 4 4 2 2 3 1 5 4 3 6 1 9 0 8 7 5 1 9 3 4 7 6 3 2 1 2 1 1 3 2 2 1 5 0 6 9 8 7 3 8 1 1 1 3 1 2 1 9 0 10 8 5 5 3 1 3 5 4 1 7 2 1 2 3 1 1 1 2 1 4 1 1 1 5 2 3 6 1 6 0 6 9 9 1 2 4 1 1 1 1 2 2 3 1 5 0 6 8 2 4 5 6 1 2 1 1 1 2 1 9 0 7 4 1 2 2 2 4 5 2 2 1 3 3 2 2 2 1 2 1 2 5 1 1 3 5 1 7 0 11 5 3 1 7 1 8 8 8 4 9 9 3 3 1 1 3 1 3 1 5 0 10 6 5 1 3 8 8 7 2 1 5 3 2 3 1 1 1 8 0 11 1 1 3 7 8 3 5 9 5 2 3 1 1 3 3 2 1 1 3 3 5 3 3 1 3 5 1 5 0 8 9 1 6 5 1 4 8 1 3 1 3 1 2 1 5 0 6 1 6 2 9 9 4 3 2 3 1 1 1 5 0 11 3 5 4 2 4 1 1 1 3 4 6 2 1 3 2 2 3 4 4 1 5 3 7 1 9 0 8 1 5 9 2 6 8 4 1 3 3 1 1 3 3 3 3 3 1 7 0 8 4 1 1 1 7 2 5 5 1 2 1 3 1 1 1 1 8 0 8 8 5 9 2 5 7 4 1 2 1 1 1 1 1 2 2 1 4 2 2 5 3 5 4 2 1 7 5 3 3 6 1 9 0 9 5 1 7 6 2 1 9 3 1 1 2 1 3 2 3 1 1 1 1 7 0 9 6 1 5 4 4 1 3 5 4 1 1 3 3 1 2 3 1 6 0 7 5 3 8 3 7 7 1 2 3 2 3 2 1 4 1 5 2 5 2 3 7 1 8 0 8 2 3 6 6 4 1 1 4 3 2 3 3 2 2 1 2 1 9 0 10 4 2 5 3 6 3 9 2 1 1 1 2 3 2 2 1 3 1 3 1 6 0 9 5 4 8 8 3 1 1 3 6 3 2 3 3 1 1 4 3 2 5 3 5 3 3 5 1 5 0 11 1 6 8 1 2 3 5 7 7 3 8 1 3 2 1 3 1 6 0 10 6 9 3 7 5 5 1 1 5 6 1 3 2 1 1 2 1 5 0 10 3 7 3 1 5 1 7 6 2 9 2 2 1 2 1 5 2 2 1 2 3 7 1 8 0 6 6 5 1 1 3 7 2 1 3 2 1 2 1 2 1 7 0 7 7 5 4 3 8 1 3 1 2 3 1 1 1 3 1 7 0 11 4 4 6 7 6 1 5 7 2 8 1 2 3 3 1 2 3 1 1 4 1 1 5 5 1 3 6 1 5 0 9 6 2 4 3 5 1 5 1 7 3 3 2 1 2 1 9 0 10 6 1 3 1 8 9 3 8 5 4 1 1 2 3 1 3 3 1 2 1 7 0 9 5 3 7 5 4 1 1 1 6 1 2 1 3 2 2 1 2 1 2 3 1 5 6 1 6 5 3 3 7 1 6 0 9 8 1 9 8 7 1 5 3 2 1 3 1 3 3 1 1 5 0 8 8 3 8 5 1 1 5 4 1 3 1 2 3 1 6 0 9 6 7 2 3 1 5 5 7 5 1 1 2 1 3 3 5 3 1 1 5 4 5 3 4 1 8 0 6 8 6 7 1 5 8 1 1 1 1 2 1 1 2 1 7 0 9 1 5 7 9 1 9 9 1 4 1 3 2 2 1 2 1 1 5 0 11 6 7 1 2 8 3 2 7 4 6 5 1 1 1 3 3 3 3 1 4 3 6 1 8 0 9 8 2 2 1 6 6 9 2 1 3 2 3 3 2 2 1 2 1 7 0 7 4 7 1 1 2 8 3 2 1 1 3 2 3 3 1 9 0 6 8 1 1 1 7 2 1 1 2 3 2 1 1 3 2 1 5 3 5 3 1 3 5 1 5 0 7 8 3 3 1 7 7 1 2 3 3 3 1 1 8 0 11 3 1 6 8 7 1 5 2 9 5 6 1 1 2 1 2 2 3 1 1 6 0 7 1 6 2 6 9 1 1 2 1 1 1 1 2 2 4 2 5 4 3 5 1 7 0 9 3 9 3 8 8 1 2 2 8 3 1 2 1 3 2 3 1 5 0 7 1 8 4 7 7 2 6 2 3 1 3 1 1 7 0 9 9 1 4 8 7 8 9 9 1 3 2 3 2 3 2 1 2 5 4 2 5 5 5 6 5 4 3 4 1 8 0 11 2 5 5 4 1 6 4 1 4 1 4 2 2 3 1 2 2 2 1 1 6 0 9 1 8 3 5 6 1 2 3 2 1 2 2 2 1 3 1 5 0 8 8 1 5 8 1 5 2 7 2 2 1 3 1 4 3 2 3 3 7 1 5 0 7 7 6 9 1 6 1 7 3 1 3 1 1 1 5 0 6 7 8 3 1 2 8 1 3 3 2 3 1 9 0 9 7 9 3 1 7 1 9 9 4 1 1 1 2 1 1 3 3 2 2 1 3 3 3 1 5 3 6 1 7 0 11 7 1 3 2 1 1 6 5 4 5 5 1 2 1 3 1 3 3 1 6 0 6 1 2 9 7 7 1 2 1 2 3 1 3 1 8 0 10 6 9 1 9 8 9 3 4 1 5 1 1 1 1 2 1 1 1 3 3 3 5 1 4 3 7 1 5 0 8 8 3 4 8 7 1 7 9 1 3 1 2 1 1 6 0 11 9 1 7 1 6 8 8 9 3 5 5 3 2 1 2 1 1 1 5 0 9 9 9 7 1 7 1 2 1 4 2 2 2 1 2 3 3 1 5 1 1 3 3 6 1 7 0 10 3 4 8 6 8 6 1 9 3 3 1 2 3 3 1 2 3 1 9 0 9 1 9 8 3 9 1 8 7 2 1 3 1 3 1 3 3 2 3 1 7 0 8 9 1 4 8 7 5 5 6 1 2 3 3 3 3 2 4 5 4 2 4 1 4 5 5 7 5 4 3 4 1 5 0 8 8 1 6 6 6 8 8 1 1 1 1 2 2 1 6 0 10 5 9 1 3 8 8 9 7 2 9 3 1 3 2 2 1 1 6 0 8 5 7 2 1 3 3 6 1 3 1 1 1 2 1 2 1 2 4 3 4 1 7 0 10 1 2 2 5 9 1 1 7 1 6 3 2 2 3 3 1 2 1 8 0 10 1 9 4 7 7 8 3 3 9 4 2 1 2 3 1 2 2 1 1 7 0 8 7 4 6 4 1 2 6 7 1 2 1 2 1 1 2 1 5 5 3 3 5 1 5 0 10 6 7 2 1 5 1 9 8 8 9 2 1 1 1 1 1 8 0 10 2 1 9 6 1 1 4 7 9 5 1 3 3 2 3 1 3 1 1 5 0 11 5 4 7 7 5 9 5 5 7 1 7 1 1 1 1 3 4 3 1 1 2 3 7 1 8 0 9 9 5 1 7 6 5 7 4 8 1 1 3 3 3 1 1 2 1 5 0 9 1 8 5 3 4 8 5 1 6 1 2 3 1 3 1 5 0 7 1 6 6 8 7 3 7 3 1 3 1 3 1 2 5 2 3 5 3 3 4 1 6 0 10 1 4 2 2 6 8 6 6 3 6 1 3 1 2 1 2 1 7 0 11 3 3 2 1 1 9 1 1 4 7 7 1 3 1 1 1 2 3 1 8 0 11 6 2 1 4 3 9 8 4 4 6 2 2 2 1 1 1 2 2 2 3 3 3 5 1 4 4 6 5 5 3 7 1 7 0 7 6 6 3 2 7 1 5 3 3 1 3 1 3 1 1 6 0 11 5 7 1 2 5 5 1 5 5 9 4 1 1 1 3 1 2 1 6 0 7 5 5 6 5 4 1 8 1 1 2 2 1 2 3 3 5 5 2 3 2 3 5 1 6 0 9 4 6 5 8 4 5 1 1 5 1 3 1 1 3 3 1 7 0 10 3 2 1 9 3 2 3 4 9 1 1 3 1 2 1 1 2 1 8 0 9 9 1 3 1 1 4 4 9 9 3 3 1 3 1 3 2 2 1 3 3 2 2 3 7 1 8 0 6 1 7 2 7 1 5 1 3 3 1 1 3 2 3 1 9 0 9 3 2 4 1 9 1 8 1 9 3 1 3 1 3 3 1 1 1 1 6 0 9 5 5 1 6 4 7 2 8 6 1 2 3 1 1 2 2 4 2 1 4 1 2 3 6 1 9 0 10 1 5 1 3 7 4 6 3 7 2 3 1 1 1 2 1 1 3 2 1 9 0 6 7 4 1 1 1 8 2 2 1 2 3 2 3 1 2 1 8 0 6 8 1 5 2 8 4 1 3 2 2 3 2 1 1 1 2 5 1 4 2 3 4 1 8 0 11 1 5 8 3 4 7 8 5 6 5 8 3 3 3 2 3 1 2 3 1 5 0 6 1 7 9 6 1 1 2 2 1 2 1 1 5 0 11 4 1 4 1 7 4 3 3 2 2 3 1 3 2 1 1 4 2 3 3 4 7 4 3 2 7 5 7 6 10 3 1 4 3 1 4 6 2 diff --git a/2018/inputs/9.txt b/2018/inputs/9.txt deleted file mode 100644 index eaf3e92..0000000 --- a/2018/inputs/9.txt +++ /dev/null @@ -1 +0,0 @@ -438 players; last marble is worth 71626 points diff --git a/2019/Cargo.lock b/2019/Cargo.lock index 52c69da..715a66d 100644 --- a/2019/Cargo.lock +++ b/2019/Cargo.lock @@ -1,580 +1,580 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +version = 3 + [[package]] name = "ansi_term" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" dependencies = [ - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi", ] [[package]] name = "aoc2019" version = "0.1.0" dependencies = [ - "archery 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "cached 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "derivative 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", - "derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)", - "im 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rpds 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "archery", + "cached", + "derivative", + "derive_more", + "im", + "num", + "rayon", + "rpds", + "structopt", ] [[package]] name = "archery" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d308d8fa3f687f7a7588fccc4812ed6914be09518232f00454693a7417273ad2" dependencies = [ - "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", + "static_assertions", ] [[package]] name = "atty" version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", + "winapi", ] [[package]] name = "autocfg" version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" [[package]] name = "bitflags" version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" [[package]] name = "bitmaps" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e039a80914325b37fde728ef7693c212f0ac913d5599607d7b95a9484aae0b" dependencies = [ - "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)", + "typenum", ] [[package]] name = "cached" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b052fd10f32987c3bd028d91ef86190b36fba5c8fccb5515d42083f061e6104" dependencies = [ - "once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "once_cell", ] [[package]] name = "cfg-if" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" [[package]] name = "clap" version = "2.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" dependencies = [ - "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", - "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", + "ansi_term", + "atty", + "bitflags", + "strsim", + "textwrap", + "unicode-width", + "vec_map", ] [[package]] name = "crossbeam-deque" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca" dependencies = [ - "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-epoch", + "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "cfg-if", + "crossbeam-utils", + "lazy_static", + "memoffset", + "scopeguard", ] [[package]] name = "crossbeam-queue" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfd6515864a82d2f877b42813d4553292c6659498c9a2aa31bab5a15243c2700" dependencies = [ - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-utils", ] [[package]] name = "crossbeam-utils" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "cfg-if", + "lazy_static", ] [[package]] name = "derivative" version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942ca430eef7a3806595a6737bc388bf51adb888d3fc0dd1b50f1c170167ee3a" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", ] [[package]] name = "derive_more" version = "0.99.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2159be042979966de68315bce7034bb000c775f22e3e834e1c52ff78f041cae8" dependencies = [ - "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.6", + "quote 1.0.2", + "syn 1.0.11", ] [[package]] name = "either" version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" [[package]] name = "heck" version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" dependencies = [ - "unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation", ] [[package]] name = "hermit-abi" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f629dc602392d3ec14bfc8a09b5e644d7ffd725102b48b81e59f90f2633621d7" dependencies = [ - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "libc", ] [[package]] name = "im" version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f9b6540e530defef7f2df4ed330d45b739b10450548c74a9913f63ea1acc6b" dependencies = [ - "bitmaps 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", - "rand_xoshiro 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "sized-chunks 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", - "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)", - "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", + "bitmaps", + "rand_core", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", ] [[package]] name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" version = "0.2.66" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" [[package]] name = "memoffset" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9" dependencies = [ - "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", + "rustc_version", ] [[package]] name = "num" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db" dependencies = [ - "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)", - "num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", ] [[package]] name = "num-bigint" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9c3f34cdd24f334cb265d9bf8bfa8a241920d026916785747a92f0e55541a1a" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "num-integer", + "num-traits", ] [[package]] name = "num-complex" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "num-traits", ] [[package]] name = "num-integer" version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "num-traits", ] [[package]] name = "num-iter" version = "0.1.39" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "num-integer", + "num-traits", ] [[package]] name = "num-rational" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", - "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", + "num-bigint", + "num-integer", + "num-traits", ] [[package]] name = "num-traits" version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4" dependencies = [ - "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", + "autocfg", ] [[package]] name = "num_cpus" version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72" dependencies = [ - "hermit-abi 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)", + "hermit-abi", + "libc", ] [[package]] name = "once_cell" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891f486f630e5c5a4916c7e16c4b24a53e78c860b646e9f8e005e4f16847bfed" [[package]] name = "proc-macro-error" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeccfe4d5d8ea175d5f0e4a2ad0637e0f4121d63bd99d356fb1f39ab2e7c6097" dependencies = [ - "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.6", + "quote 1.0.2", + "syn 1.0.11", ] [[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 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.1.0", ] [[package]] name = "proc-macro2" version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27" dependencies = [ - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-xid 0.2.0", ] [[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 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30", ] [[package]] name = "quote" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" dependencies = [ - "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.6", ] [[package]] name = "rand_core" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" [[package]] name = "rand_xoshiro" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004" dependencies = [ - "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", + "rand_core", ] [[package]] name = "rayon" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" dependencies = [ - "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "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 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-queue 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)", + "crossbeam-deque", + "crossbeam-queue", + "crossbeam-utils", + "lazy_static", + "num_cpus", ] [[package]] name = "rpds" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1196a0a2f52d343bd32179834273eaac7d8739f7e3f8b700227d2fa06b9a423b" dependencies = [ - "archery 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "archery", ] [[package]] name = "rustc_version" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", + "semver", ] [[package]] name = "scopeguard" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" [[package]] name = "semver" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" dependencies = [ - "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", + "semver-parser", ] [[package]] name = "semver-parser" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "sized-chunks" version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62db64dd92b3b54314b1e216c274634ca2b3fe8da8b3873be670cb1ac4dad30f" dependencies = [ - "bitmaps 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)", + "bitmaps", + "typenum", ] [[package]] name = "static_assertions" version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" [[package]] name = "strsim" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "structopt" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b3a3e93f5ad553c38b3301c8a0a0cec829a36783f6a0c467fc4bf553a5f5bf" dependencies = [ - "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)", - "structopt-derive 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "clap", + "structopt-derive", ] [[package]] name = "structopt-derive" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea692d40005b3ceba90a9fe7a78fa8d4b82b0ce627eebbffc329aab850f3410e" dependencies = [ - "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro-error 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)", + "heck", + "proc-macro-error", + "proc-macro2 1.0.6", + "quote 1.0.2", + "syn 1.0.11", ] [[package]] name = "syn" version = "0.15.44" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" dependencies = [ - "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", ] [[package]] name = "syn" version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff0acdb207ae2fe6d5976617f887eb1e35a2ba52c13c7234c790960cdad9238" dependencies = [ - "proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "proc-macro2 1.0.6", + "quote 1.0.2", + "unicode-xid 0.2.0", ] [[package]] name = "textwrap" version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" dependencies = [ - "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-width", ] [[package]] name = "typenum" version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9" [[package]] name = "unicode-segmentation" version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" [[package]] name = "unicode-width" version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20" [[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 = "version_check" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" [[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 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", ] [[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-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" - -[metadata] -"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b" -"checksum archery 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d308d8fa3f687f7a7588fccc4812ed6914be09518232f00454693a7417273ad2" -"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90" -"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" -"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" -"checksum bitmaps 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "81e039a80914325b37fde728ef7693c212f0ac913d5599607d7b95a9484aae0b" -"checksum cached 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b052fd10f32987c3bd028d91ef86190b36fba5c8fccb5515d42083f061e6104" -"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" -"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca" -"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac" -"checksum crossbeam-queue 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "dfd6515864a82d2f877b42813d4553292c6659498c9a2aa31bab5a15243c2700" -"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4" -"checksum derivative 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "942ca430eef7a3806595a6737bc388bf51adb888d3fc0dd1b50f1c170167ee3a" -"checksum derive_more 0.99.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2159be042979966de68315bce7034bb000c775f22e3e834e1c52ff78f041cae8" -"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" -"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205" -"checksum hermit-abi 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f629dc602392d3ec14bfc8a09b5e644d7ffd725102b48b81e59f90f2633621d7" -"checksum im 14.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a1f9b6540e530defef7f2df4ed330d45b739b10450548c74a9913f63ea1acc6b" -"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558" -"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9" -"checksum num 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cf4825417e1e1406b3782a8ce92f4d53f26ec055e3622e1881ca8e9f5f9e08db" -"checksum num-bigint 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f9c3f34cdd24f334cb265d9bf8bfa8a241920d026916785747a92f0e55541a1a" -"checksum num-complex 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fcb0cf31fb3ff77e6d2a6ebd6800df7fdcd106f2ad89113c9130bcd07f93dffc" -"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09" -"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e" -"checksum num-rational 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2885278d5fe2adc2f75ced642d52d879bffaceb5a2e0b1d4309ffdfb239b454" -"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4" -"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72" -"checksum once_cell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "891f486f630e5c5a4916c7e16c4b24a53e78c860b646e9f8e005e4f16847bfed" -"checksum proc-macro-error 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aeccfe4d5d8ea175d5f0e4a2ad0637e0f4121d63bd99d356fb1f39ab2e7c6097" -"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -"checksum proc-macro2 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "9c9e470a8dc4aeae2dee2f335e8f533e2d4b347e1434e5671afc49b054592f27" -"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe" -"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -"checksum rand_xoshiro 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004" -"checksum rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" -"checksum rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" -"checksum rpds 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1196a0a2f52d343bd32179834273eaac7d8739f7e3f8b700227d2fa06b9a423b" -"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d" -"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -"checksum sized-chunks 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "62db64dd92b3b54314b1e216c274634ca2b3fe8da8b3873be670cb1ac4dad30f" -"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3" -"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" -"checksum structopt 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "30b3a3e93f5ad553c38b3301c8a0a0cec829a36783f6a0c467fc4bf553a5f5bf" -"checksum structopt-derive 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea692d40005b3ceba90a9fe7a78fa8d4b82b0ce627eebbffc329aab850f3410e" -"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -"checksum syn 1.0.11 (registry+https://github.com/rust-lang/crates.io-index)" = "dff0acdb207ae2fe6d5976617f887eb1e35a2ba52c13c7234c790960cdad9238" -"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -"checksum typenum 1.11.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9" -"checksum unicode-segmentation 1.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0" -"checksum unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7007dbd421b92cc6e28410fe7362e2e0a2503394908f417b68ec8d1c364c4e20" -"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" -"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" -"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" -"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" -"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" -"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/2019/inputs/.gitkeep b/2019/inputs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/2019/inputs/.gitkeep diff --git a/2019/inputs/day_1.txt b/2019/inputs/day_1.txt deleted file mode 100644 index 5c720ed..0000000 --- a/2019/inputs/day_1.txt +++ /dev/null @@ -1,100 +0,0 @@ -66690 -86239 -75191 -140364 -95979 -106923 -95229 -123571 -84764 -89444 -98107 -89062 -109369 -146067 -124760 -76900 -139198 -111441 -74046 -84920 -54397 -143807 -121654 -93863 -73909 -104121 -58485 -119084 -126227 -142078 -79820 -132617 -108430 -98032 -107434 -127307 -105619 -57741 -53468 -63301 -137970 -136780 -80897 -133205 -79159 -89124 -94477 -56714 -143704 -122097 -117335 -108246 -75507 -101459 -101162 -146197 -121884 -66217 -57074 -142903 -140951 -64883 -124556 -67382 -142407 -121778 -57933 -94599 -87426 -143758 -64043 -65678 -90137 -61090 -77315 -102383 -146607 -139290 -85394 -149787 -125611 -106405 -91561 -135739 -54845 -68782 -111175 -61011 -125658 -70751 -85607 -75458 -75419 -124311 -66022 -122784 -129018 -54901 -73788 -108240 diff --git a/2019/inputs/day_10.txt b/2019/inputs/day_10.txt deleted file mode 100644 index 51520ab..0000000 --- a/2019/inputs/day_10.txt +++ /dev/null @@ -1,24 +0,0 @@ -.###.#...#.#.##.#.####.. -.#....#####...#.######.. -#.#.###.###.#.....#.#### -##.###..##..####.#.####. -###########.#######.##.# -##########.#########.##. -.#.##.########.##...###. -###.#.##.#####.#.###.### -##.#####.##..###.#.##.#. -.#.#.#####.####.#..##### -.###.#####.#..#..##.#.## -########.##.#...######## -.####..##..#.###.###.#.# -....######.##.#.######.# -###.####.######.#....### -############.#.#.##.#### -##...##..####.####.#..## -.###.#########.###..#.## -#.##.#.#...##...#####..# -##.#..###############.## -##.###.#####.##.######.. -##.#####.#.#.##..####### -...#######.######...#### -#....#.#.#.####.#.#.#.## diff --git a/2019/inputs/day_11.txt b/2019/inputs/day_11.txt deleted file mode 100644 index d6581e1..0000000 --- a/2019/inputs/day_11.txt +++ /dev/null @@ -1 +0,0 @@ -3,8,1005,8,320,1106,0,11,0,0,0,104,1,104,0,3,8,1002,8,-1,10,101,1,10,10,4,10,1008,8,1,10,4,10,102,1,8,29,2,1005,1,10,1006,0,11,3,8,1002,8,-1,10,101,1,10,10,4,10,108,0,8,10,4,10,102,1,8,57,1,8,15,10,1006,0,79,1,6,3,10,3,8,102,-1,8,10,101,1,10,10,4,10,108,0,8,10,4,10,101,0,8,90,2,103,18,10,1006,0,3,2,105,14,10,3,8,102,-1,8,10,1001,10,1,10,4,10,108,0,8,10,4,10,101,0,8,123,2,9,2,10,3,8,102,-1,8,10,1001,10,1,10,4,10,1008,8,1,10,4,10,1001,8,0,150,1,2,2,10,2,1009,6,10,1,1006,12,10,1006,0,81,3,8,102,-1,8,10,1001,10,1,10,4,10,1008,8,1,10,4,10,102,1,8,187,3,8,102,-1,8,10,1001,10,1,10,4,10,1008,8,0,10,4,10,101,0,8,209,3,8,1002,8,-1,10,1001,10,1,10,4,10,1008,8,1,10,4,10,101,0,8,231,1,1008,11,10,1,1001,4,10,2,1104,18,10,3,8,102,-1,8,10,1001,10,1,10,4,10,108,1,8,10,4,10,1001,8,0,264,1,8,14,10,1006,0,36,3,8,1002,8,-1,10,1001,10,1,10,4,10,108,0,8,10,4,10,101,0,8,293,1006,0,80,1006,0,68,101,1,9,9,1007,9,960,10,1005,10,15,99,109,642,104,0,104,1,21102,1,846914232732,1,21102,1,337,0,1105,1,441,21102,1,387512115980,1,21101,348,0,0,1106,0,441,3,10,104,0,104,1,3,10,104,0,104,0,3,10,104,0,104,1,3,10,104,0,104,1,3,10,104,0,104,0,3,10,104,0,104,1,21102,209533824219,1,1,21102,1,395,0,1106,0,441,21101,0,21477985303,1,21102,406,1,0,1106,0,441,3,10,104,0,104,0,3,10,104,0,104,0,21101,868494234468,0,1,21101,429,0,0,1106,0,441,21102,838429471080,1,1,21102,1,440,0,1106,0,441,99,109,2,21201,-1,0,1,21101,0,40,2,21102,472,1,3,21101,0,462,0,1106,0,505,109,-2,2106,0,0,0,1,0,0,1,109,2,3,10,204,-1,1001,467,468,483,4,0,1001,467,1,467,108,4,467,10,1006,10,499,1102,1,0,467,109,-2,2106,0,0,0,109,4,2101,0,-1,504,1207,-3,0,10,1006,10,522,21101,0,0,-3,21202,-3,1,1,22101,0,-2,2,21102,1,1,3,21102,541,1,0,1106,0,546,109,-4,2105,1,0,109,5,1207,-3,1,10,1006,10,569,2207,-4,-2,10,1006,10,569,22102,1,-4,-4,1105,1,637,22102,1,-4,1,21201,-3,-1,2,21202,-2,2,3,21102,588,1,0,1105,1,546,22101,0,1,-4,21102,1,1,-1,2207,-4,-2,10,1006,10,607,21101,0,0,-1,22202,-2,-1,-2,2107,0,-3,10,1006,10,629,21201,-1,0,1,21102,629,1,0,105,1,504,21202,-2,-1,-2,22201,-4,-2,-4,109,-5,2105,1,0 diff --git a/2019/inputs/day_12.txt b/2019/inputs/day_12.txt deleted file mode 100644 index 7e72a58..0000000 --- a/2019/inputs/day_12.txt +++ /dev/null @@ -1,4 +0,0 @@ -<x=14, y=2, z=8> -<x=7, y=4, z=10> -<x=1, y=17, z=16> -<x=-4, y=-1, z=1> diff --git a/2019/inputs/day_13.txt b/2019/inputs/day_13.txt deleted file mode 100644 index c600ec1..0000000 --- a/2019/inputs/day_13.txt +++ /dev/null @@ -1 +0,0 @@ -1,380,379,385,1008,2689,888873,381,1005,381,12,99,109,2690,1102,0,1,383,1101,0,0,382,21001,382,0,1,20102,1,383,2,21101,0,37,0,1105,1,578,4,382,4,383,204,1,1001,382,1,382,1007,382,41,381,1005,381,22,1001,383,1,383,1007,383,25,381,1005,381,18,1006,385,69,99,104,-1,104,0,4,386,3,384,1007,384,0,381,1005,381,94,107,0,384,381,1005,381,108,1105,1,161,107,1,392,381,1006,381,161,1101,-1,0,384,1106,0,119,1007,392,39,381,1006,381,161,1102,1,1,384,20101,0,392,1,21101,23,0,2,21102,0,1,3,21102,138,1,0,1105,1,549,1,392,384,392,21001,392,0,1,21101,23,0,2,21101,3,0,3,21102,1,161,0,1105,1,549,1101,0,0,384,20001,388,390,1,20101,0,389,2,21101,0,180,0,1106,0,578,1206,1,213,1208,1,2,381,1006,381,205,20001,388,390,1,20101,0,389,2,21101,205,0,0,1105,1,393,1002,390,-1,390,1102,1,1,384,21001,388,0,1,20001,389,391,2,21101,228,0,0,1105,1,578,1206,1,261,1208,1,2,381,1006,381,253,20101,0,388,1,20001,389,391,2,21101,253,0,0,1106,0,393,1002,391,-1,391,1101,0,1,384,1005,384,161,20001,388,390,1,20001,389,391,2,21101,279,0,0,1106,0,578,1206,1,316,1208,1,2,381,1006,381,304,20001,388,390,1,20001,389,391,2,21101,0,304,0,1106,0,393,1002,390,-1,390,1002,391,-1,391,1101,0,1,384,1005,384,161,20102,1,388,1,20101,0,389,2,21101,0,0,3,21101,0,338,0,1106,0,549,1,388,390,388,1,389,391,389,21001,388,0,1,21002,389,1,2,21102,4,1,3,21101,0,365,0,1105,1,549,1007,389,24,381,1005,381,75,104,-1,104,0,104,0,99,0,1,0,0,0,0,0,0,230,18,20,1,1,20,109,3,21201,-2,0,1,22101,0,-1,2,21101,0,0,3,21102,1,414,0,1106,0,549,22102,1,-2,1,22102,1,-1,2,21101,0,429,0,1105,1,601,2102,1,1,435,1,386,0,386,104,-1,104,0,4,386,1001,387,-1,387,1005,387,451,99,109,-3,2106,0,0,109,8,22202,-7,-6,-3,22201,-3,-5,-3,21202,-4,64,-2,2207,-3,-2,381,1005,381,492,21202,-2,-1,-1,22201,-3,-1,-3,2207,-3,-2,381,1006,381,481,21202,-4,8,-2,2207,-3,-2,381,1005,381,518,21202,-2,-1,-1,22201,-3,-1,-3,2207,-3,-2,381,1006,381,507,2207,-3,-4,381,1005,381,540,21202,-4,-1,-1,22201,-3,-1,-3,2207,-3,-4,381,1006,381,529,22102,1,-3,-7,109,-8,2106,0,0,109,4,1202,-2,41,566,201,-3,566,566,101,639,566,566,2101,0,-1,0,204,-3,204,-2,204,-1,109,-4,2105,1,0,109,3,1202,-1,41,594,201,-2,594,594,101,639,594,594,20102,1,0,-2,109,-3,2106,0,0,109,3,22102,25,-2,1,22201,1,-1,1,21101,0,521,2,21102,1,1011,3,21102,1,1025,4,21102,630,1,0,1106,0,456,21201,1,1664,-2,109,-3,2105,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,2,2,0,2,0,2,0,2,0,0,2,2,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,2,0,1,1,0,0,0,0,2,0,0,2,0,2,2,2,2,0,2,0,0,0,2,2,0,0,2,2,2,2,0,0,0,0,0,2,0,0,0,0,2,2,0,1,1,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,2,0,2,0,0,0,0,2,0,0,0,0,2,0,0,0,0,2,2,2,0,0,1,1,0,0,2,2,2,0,0,0,2,0,0,0,0,0,2,2,0,0,2,0,2,0,0,0,2,2,0,0,0,2,0,0,0,2,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,2,0,0,2,0,0,0,0,2,0,0,2,0,2,0,2,0,2,0,0,1,1,0,0,0,0,0,2,2,0,0,2,2,0,0,0,0,2,0,0,2,2,0,0,0,2,2,0,0,2,0,0,0,2,2,2,2,2,0,2,0,1,1,0,0,0,0,2,0,2,0,0,2,0,0,0,0,0,0,2,0,0,2,0,2,2,2,0,2,2,2,0,0,0,0,0,2,0,0,2,0,0,1,1,0,2,0,0,2,0,0,0,0,2,0,0,0,0,2,2,0,2,0,0,0,0,2,0,0,0,0,0,2,0,2,0,0,2,0,0,2,0,0,1,1,0,2,2,2,0,0,0,0,2,2,2,2,2,2,0,0,0,0,0,0,0,2,0,0,2,0,2,0,2,2,0,2,2,0,2,0,2,0,0,1,1,0,0,2,0,0,2,0,2,0,0,2,0,0,2,0,0,0,2,0,0,0,0,2,0,0,2,0,0,2,2,0,2,0,0,0,0,2,2,0,1,1,0,0,2,2,0,0,2,2,0,2,2,0,0,0,0,0,2,0,0,0,0,2,2,2,0,0,2,0,2,0,2,2,0,0,2,0,2,0,0,1,1,0,0,2,2,2,0,0,2,2,0,2,2,2,0,0,0,2,2,2,0,2,0,0,0,0,0,2,0,0,2,0,2,0,0,0,0,0,0,0,1,1,0,2,0,0,0,2,2,0,2,0,0,2,0,2,2,2,0,0,2,2,0,2,0,0,0,0,0,0,2,2,0,2,2,0,2,0,0,2,0,1,1,0,0,2,0,0,2,2,0,0,0,0,0,2,2,0,2,2,2,0,2,0,2,2,2,0,0,2,0,2,2,2,0,0,0,0,0,0,2,0,1,1,0,2,0,2,0,2,2,2,2,0,0,0,2,0,0,0,2,2,0,0,0,0,2,0,2,2,0,0,0,0,2,0,2,0,0,2,0,0,0,1,1,0,0,0,0,2,0,0,2,0,0,2,2,0,2,0,0,0,2,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,2,0,1,1,0,2,0,0,0,2,0,0,0,2,2,0,2,0,0,2,0,0,2,2,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,2,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,34,58,37,19,14,62,51,10,28,52,86,20,39,30,61,36,77,73,19,11,17,74,7,54,40,59,20,92,18,13,85,72,83,58,18,68,10,22,94,22,25,40,67,96,55,96,42,16,80,80,96,35,19,79,81,63,91,5,72,68,80,93,79,36,91,47,71,82,45,29,51,36,10,62,57,29,17,16,4,88,75,81,70,77,32,2,38,37,35,86,41,35,61,71,72,22,14,33,12,10,10,56,30,3,90,71,24,62,69,31,47,2,18,77,43,20,64,85,50,43,43,73,16,23,98,4,23,53,82,15,88,1,39,78,43,57,65,8,45,79,17,44,32,76,31,3,25,71,45,16,42,61,89,21,93,4,98,66,68,5,13,19,48,65,29,5,24,59,29,49,57,39,21,96,10,8,25,82,17,42,46,49,83,4,81,32,14,7,76,62,31,74,55,19,39,63,89,41,38,28,34,34,88,7,77,43,87,10,47,85,39,31,88,69,40,72,51,49,64,46,64,14,66,95,95,58,38,88,82,35,6,58,3,21,33,58,9,95,43,52,13,22,22,10,11,47,35,33,31,58,93,83,13,14,55,71,88,42,73,83,91,84,62,78,80,15,26,50,8,15,6,91,89,3,12,53,47,47,82,67,12,77,6,63,88,94,53,19,97,36,34,59,91,27,37,45,44,31,8,58,16,7,74,76,83,17,28,42,85,19,1,61,73,84,37,15,43,52,80,48,51,98,70,77,28,55,78,85,64,32,22,82,69,7,82,55,78,24,5,89,55,4,34,28,71,76,81,90,96,2,2,77,41,32,24,60,10,11,26,64,66,19,11,77,11,82,81,1,52,2,79,43,47,87,63,73,3,81,69,66,53,4,83,88,13,5,62,94,55,58,4,93,96,58,40,69,64,56,80,71,85,44,45,24,80,59,53,15,85,92,89,95,69,77,53,27,72,3,54,49,9,35,10,85,43,86,9,42,69,29,64,96,17,72,47,24,2,13,40,45,62,19,41,85,28,68,73,20,52,56,19,57,1,36,64,18,26,41,94,81,45,35,29,32,28,87,86,53,71,54,67,68,47,53,17,40,61,58,74,2,51,43,23,62,54,13,80,67,88,94,1,62,85,7,12,87,51,4,69,25,57,6,79,94,15,75,93,46,19,28,84,72,84,59,60,59,59,14,11,30,57,53,75,83,72,61,65,50,26,49,23,40,82,11,67,8,55,13,22,41,32,33,89,37,69,11,24,24,8,21,89,11,46,89,88,59,3,7,43,85,74,92,72,60,85,82,33,82,71,14,21,41,4,78,88,4,22,81,30,92,17,9,62,69,84,47,6,86,49,94,11,96,21,1,5,1,45,19,60,59,17,85,67,42,21,11,79,39,27,72,54,19,69,50,52,78,78,6,16,96,86,37,58,79,9,45,10,73,29,53,75,63,50,66,6,69,8,74,68,88,9,88,87,50,34,45,12,43,43,58,14,29,32,77,77,97,45,29,41,94,21,91,52,22,74,44,48,11,20,68,9,51,7,85,93,74,59,16,34,60,12,3,18,17,4,71,44,49,79,68,54,96,74,21,74,60,59,16,77,65,97,84,54,52,37,95,9,3,41,9,72,82,82,95,31,71,56,50,59,93,57,79,16,9,74,72,47,1,9,5,55,63,64,80,40,93,54,11,57,26,76,19,85,41,80,90,92,27,61,24,83,93,96,95,28,68,80,11,60,65,36,2,46,75,59,52,11,36,74,62,52,6,23,85,93,61,36,26,70,2,13,97,52,92,96,87,63,63,31,2,50,25,34,79,46,4,48,51,74,96,74,7,43,82,84,50,59,53,13,51,8,81,36,93,10,31,10,50,76,69,33,3,71,1,1,65,68,57,69,15,64,81,59,38,38,89,79,80,52,44,59,26,96,21,38,38,79,2,96,2,92,73,49,14,71,74,66,94,98,63,28,59,26,30,67,1,61,84,92,47,24,27,41,57,95,89,6,96,48,43,7,82,42,5,27,15,32,89,53,3,35,63,84,97,92,77,50,38,73,10,50,89,95,96,77,61,51,90,22,75,41,77,1,14,72,68,91,10,80,28,25,10,86,54,10,87,55,40,79,16,35,8,82,51,70,84,12,72,74,4,88,71,69,83,9,55,10,57,9,3,40,74,72,61,75,64,54,32,61,26,53,48,45,22,6,83,21,21,9,4,7,65,98,78,17,54,35,95,79,36,53,59,84,53,14,20,94,12,31,54,86,39,95,82,38,8,22,58,50,27,32,53,79,49,71,76,18,64,75,64,88,58,88,27,62,31,54,11,59,11,3,42,66,85,41,888873 diff --git a/2019/inputs/day_14.txt b/2019/inputs/day_14.txt deleted file mode 100644 index dac9757..0000000 --- a/2019/inputs/day_14.txt +++ /dev/null @@ -1,59 +0,0 @@ -2 RWPCH => 9 PVTL -1 FHFH => 4 BLPJK -146 ORE => 5 VJNBT -8 KDFNZ, 1 ZJGH, 1 GSCG => 5 LKPQG -11 NWDZ, 2 WBQR, 1 VRQR => 2 BMJR -3 GSCG => 4 KQDVM -5 QVNKN, 6 RPWKC => 3 BCNV -10 QMBM, 4 RBXB, 2 VRQR => 1 JHXBM -15 RPWKC => 6 MGCQ -1 QWKRZ => 4 FHFH -10 RWPCH => 6 MZKG -11 JFKGV, 5 QVNKN, 1 CTVK => 4 VQDT -1 SXKT => 5 RPWKC -1 VQDT, 25 ZVMCB => 2 RBXB -6 LGLNV, 4 XSNKB => 3 WBQR -199 ORE => 2 SXKT -1 XSNKB, 6 CWBNX, 1 HPKB, 5 PVTL, 1 JNKH, 9 SXKT, 3 KQDVM => 3 ZKTX -7 FDSX => 6 WJDF -7 JLRM => 4 CWBNX -167 ORE => 5 PQZXH -13 JHXBM, 2 NWDZ, 4 RFLX, 12 VRQR, 10 FJRFG, 14 PVTL, 2 JLRM => 6 DGFG -12 HPKB, 3 WHVXC => 9 ZJGH -1 JLRM, 2 ZJGH, 2 QVNKN => 9 FJRFG -129 ORE => 7 KZFPJ -2 QMBM => 1 RWPCH -7 VJMWM => 4 JHDW -7 PQZXH, 7 SXKT => 9 BJVQM -1 VJMWM, 4 JHDW, 1 MQXF => 7 FDSX -1 RPWKC => 7 WHVXC -1 ZJGH => 1 ZVMCB -1 RWPCH => 3 MPKR -187 ORE => 8 VJMWM -15 CTVK => 5 GSCG -2 XSNKB, 15 ZVMCB, 3 KDFNZ => 2 RFLX -18 QVNKN => 8 XLFZJ -4 CWBNX => 8 ZSCX -2 ZJGH, 1 JLRM, 1 MGCQ => 9 NPRST -13 BJVQM, 2 BCNV => 2 QWKRZ -2 QWKRZ, 2 BLPJK, 5 XSNKB => 2 VRQR -13 HPKB, 3 VQDT => 9 JLRM -2 SXKT, 1 VJNBT, 5 VLWQB => 6 CTVK -2 MPKR, 2 LMNCH, 24 VRQR => 8 DZFNW -2 VQDT => 1 KDFNZ -1 CTVK, 6 FDSX => 6 QVNKN -3 CTVK, 1 QVNKN => 4 HPKB -3 NPRST, 1 KGSDJ, 1 CTVK => 2 QMBM -4 KZFPJ, 1 PQZXH => 5 VLWQB -2 VQDT => 7 KGSDJ -3 MPKR => 2 JNKH -1 KQDVM => 5 XQBS -3 ZKGMX, 1 XQBS, 11 MZKG, 11 NPRST, 1 DZFNW, 5 VQDT, 2 FHFH => 6 JQNF -2 FJRFG, 17 BMJR, 3 BJVQM, 55 JQNF, 8 DGFG, 13 ZJGH, 29 ZKTX => 1 FUEL -27 KZFPJ, 5 VJNBT => 5 MQXF -11 FDSX, 1 WHVXC, 1 WJDF => 4 ZKGMX -1 ZVMCB => 4 NWDZ -1 XLFZJ => 6 LGLNV -13 ZSCX, 4 XLFZJ => 8 LMNCH -1 RPWKC, 1 FDSX, 2 BJVQM => 8 JFKGV -1 WJDF, 1 LKPQG => 4 XSNKB diff --git a/2019/inputs/day_15.txt b/2019/inputs/day_15.txt deleted file mode 100644 index ca5836c..0000000 --- a/2019/inputs/day_15.txt +++ /dev/null @@ -1 +0,0 @@ -3,1033,1008,1033,1,1032,1005,1032,31,1008,1033,2,1032,1005,1032,58,1008,1033,3,1032,1005,1032,81,1008,1033,4,1032,1005,1032,104,99,1002,1034,1,1039,102,1,1036,1041,1001,1035,-1,1040,1008,1038,0,1043,102,-1,1043,1032,1,1037,1032,1042,1106,0,124,1002,1034,1,1039,1001,1036,0,1041,1001,1035,1,1040,1008,1038,0,1043,1,1037,1038,1042,1105,1,124,1001,1034,-1,1039,1008,1036,0,1041,1001,1035,0,1040,1002,1038,1,1043,101,0,1037,1042,1105,1,124,1001,1034,1,1039,1008,1036,0,1041,102,1,1035,1040,1001,1038,0,1043,101,0,1037,1042,1006,1039,217,1006,1040,217,1008,1039,40,1032,1005,1032,217,1008,1040,40,1032,1005,1032,217,1008,1039,1,1032,1006,1032,165,1008,1040,9,1032,1006,1032,165,1102,1,2,1044,1105,1,224,2,1041,1043,1032,1006,1032,179,1102,1,1,1044,1106,0,224,1,1041,1043,1032,1006,1032,217,1,1042,1043,1032,1001,1032,-1,1032,1002,1032,39,1032,1,1032,1039,1032,101,-1,1032,1032,101,252,1032,211,1007,0,35,1044,1106,0,224,1101,0,0,1044,1105,1,224,1006,1044,247,102,1,1039,1034,1002,1040,1,1035,1002,1041,1,1036,102,1,1043,1038,101,0,1042,1037,4,1044,1105,1,0,1,5,41,19,22,1,39,81,29,20,15,82,33,18,45,30,32,55,28,26,70,13,56,32,28,18,3,59,90,11,95,15,85,8,61,25,59,24,34,1,85,5,25,54,57,18,20,54,80,91,28,65,36,12,44,36,13,92,24,56,13,39,69,29,79,10,41,27,23,25,72,20,3,61,15,51,11,12,12,48,10,45,13,29,49,90,30,17,9,41,21,18,7,30,48,17,83,71,4,10,31,10,96,81,77,9,50,39,21,36,33,72,12,3,23,79,18,4,75,17,58,64,8,7,97,60,72,72,1,94,55,42,2,94,2,21,88,19,82,57,96,19,25,27,41,62,15,40,23,61,86,27,73,61,13,46,52,81,12,34,23,73,23,59,1,30,47,9,99,10,37,17,28,98,5,92,73,8,63,4,86,76,79,7,30,68,28,91,12,12,98,74,4,22,44,10,23,45,37,16,90,76,23,74,75,12,21,38,14,15,76,28,49,71,7,6,6,71,53,33,12,87,15,92,66,21,38,13,53,92,34,49,25,6,67,21,27,89,24,61,25,30,41,30,99,28,19,41,90,51,74,14,33,54,48,10,14,42,2,67,76,10,21,2,67,43,27,69,11,16,78,7,36,9,24,48,63,81,53,29,94,34,25,99,66,47,17,97,33,52,11,62,22,52,30,23,89,95,15,13,50,48,26,10,6,69,78,13,6,94,1,28,67,10,70,16,50,19,24,15,79,50,27,3,19,62,4,31,83,20,17,83,67,5,80,26,36,62,87,3,10,80,22,65,60,10,78,4,20,60,30,11,7,83,10,13,72,81,37,22,14,55,63,51,27,32,77,52,20,50,16,48,2,55,10,53,26,84,6,87,43,37,26,3,85,62,25,78,50,16,10,37,22,54,5,80,24,7,32,49,18,27,12,41,70,82,20,34,91,15,98,77,22,6,79,3,8,54,17,32,4,44,2,97,14,15,65,30,97,14,79,75,11,77,5,61,37,20,91,20,45,74,19,40,2,41,89,12,34,44,18,62,57,17,68,22,96,7,59,63,2,60,70,2,26,75,26,3,53,19,80,16,97,7,34,58,52,66,24,75,25,30,75,42,13,12,89,13,3,84,92,1,75,30,54,43,2,56,15,1,15,84,99,6,98,42,17,29,1,18,26,70,71,29,91,23,21,87,66,18,38,32,18,81,65,2,58,99,12,4,84,24,32,88,30,67,49,29,59,64,18,70,10,24,56,5,27,97,50,4,28,85,65,16,67,83,15,16,61,18,86,8,36,25,36,29,97,45,19,81,41,29,45,30,69,26,57,93,27,72,34,30,99,61,2,48,16,12,76,98,28,14,32,32,90,48,10,30,57,23,39,2,8,39,33,13,88,34,31,74,15,60,8,47,60,31,5,79,1,98,86,33,3,99,33,62,11,96,25,22,38,98,84,3,56,70,49,3,8,56,87,4,29,59,65,26,34,77,7,14,78,26,25,70,49,3,31,45,92,24,95,17,4,9,4,96,64,92,27,67,4,99,6,44,7,16,86,2,75,1,6,68,81,4,1,44,49,7,92,8,40,36,25,81,13,56,99,10,2,30,72,6,43,30,12,43,93,19,20,23,95,10,19,66,63,28,96,40,50,8,15,56,38,13,93,42,71,12,18,87,8,4,21,85,9,2,66,77,10,80,26,61,9,43,20,88,10,39,67,55,31,49,17,58,26,80,20,84,54,49,5,73,11,52,15,63,7,62,24,57,92,61,25,87,56,37,31,38,14,99,0,0,21,21,1,10,1,0,0,0,0,0,0 diff --git a/2019/inputs/day_16.txt b/2019/inputs/day_16.txt deleted file mode 100644 index 357965c..0000000 --- a/2019/inputs/day_16.txt +++ /dev/null @@ -1 +0,0 @@ -59723517898690342336085619027921111260000667417052529433894092649779685557557996383085708903241535436786723718804155370155263736632861535632645335233170435646844328735934063129720822438983948765830873108060969395372667944081201020154126736565212455403582565814037568332106043336657972906297306993727714730061029321153984390658949013821918352341503629705587666779681013358053312990709423156110291835794179056432958537796855287734217125615700199928915524410743382078079059706420865085147514027374485354815106354367548002650415494525590292210440827027951624280115914909910917047084328588833201558964370296841789611989343040407348115608623432403085634084 diff --git a/2019/inputs/day_17.txt b/2019/inputs/day_17.txt deleted file mode 100644 index 49131d4..0000000 --- a/2019/inputs/day_17.txt +++ /dev/null @@ -1 +0,0 @@ -1,330,331,332,109,3974,1102,1182,1,15,1101,1475,0,24,1001,0,0,570,1006,570,36,101,0,571,0,1001,570,-1,570,1001,24,1,24,1106,0,18,1008,571,0,571,1001,15,1,15,1008,15,1475,570,1006,570,14,21102,1,58,0,1105,1,786,1006,332,62,99,21101,333,0,1,21102,73,1,0,1105,1,579,1102,0,1,572,1101,0,0,573,3,574,101,1,573,573,1007,574,65,570,1005,570,151,107,67,574,570,1005,570,151,1001,574,-64,574,1002,574,-1,574,1001,572,1,572,1007,572,11,570,1006,570,165,101,1182,572,127,1002,574,1,0,3,574,101,1,573,573,1008,574,10,570,1005,570,189,1008,574,44,570,1006,570,158,1105,1,81,21102,340,1,1,1105,1,177,21101,0,477,1,1106,0,177,21102,1,514,1,21101,0,176,0,1106,0,579,99,21102,184,1,0,1105,1,579,4,574,104,10,99,1007,573,22,570,1006,570,165,1002,572,1,1182,21101,0,375,1,21101,0,211,0,1105,1,579,21101,1182,11,1,21102,1,222,0,1106,0,979,21102,1,388,1,21102,1,233,0,1106,0,579,21101,1182,22,1,21101,0,244,0,1105,1,979,21101,0,401,1,21102,1,255,0,1106,0,579,21101,1182,33,1,21102,1,266,0,1106,0,979,21102,414,1,1,21102,277,1,0,1105,1,579,3,575,1008,575,89,570,1008,575,121,575,1,575,570,575,3,574,1008,574,10,570,1006,570,291,104,10,21102,1182,1,1,21102,1,313,0,1106,0,622,1005,575,327,1101,1,0,575,21101,327,0,0,1105,1,786,4,438,99,0,1,1,6,77,97,105,110,58,10,33,10,69,120,112,101,99,116,101,100,32,102,117,110,99,116,105,111,110,32,110,97,109,101,32,98,117,116,32,103,111,116,58,32,0,12,70,117,110,99,116,105,111,110,32,65,58,10,12,70,117,110,99,116,105,111,110,32,66,58,10,12,70,117,110,99,116,105,111,110,32,67,58,10,23,67,111,110,116,105,110,117,111,117,115,32,118,105,100,101,111,32,102,101,101,100,63,10,0,37,10,69,120,112,101,99,116,101,100,32,82,44,32,76,44,32,111,114,32,100,105,115,116,97,110,99,101,32,98,117,116,32,103,111,116,58,32,36,10,69,120,112,101,99,116,101,100,32,99,111,109,109,97,32,111,114,32,110,101,119,108,105,110,101,32,98,117,116,32,103,111,116,58,32,43,10,68,101,102,105,110,105,116,105,111,110,115,32,109,97,121,32,98,101,32,97,116,32,109,111,115,116,32,50,48,32,99,104,97,114,97,99,116,101,114,115,33,10,94,62,118,60,0,1,0,-1,-1,0,1,0,0,0,0,0,0,1,50,26,0,109,4,1201,-3,0,587,20102,1,0,-1,22101,1,-3,-3,21102,0,1,-2,2208,-2,-1,570,1005,570,617,2201,-3,-2,609,4,0,21201,-2,1,-2,1106,0,597,109,-4,2106,0,0,109,5,2101,0,-4,630,20101,0,0,-2,22101,1,-4,-4,21101,0,0,-3,2208,-3,-2,570,1005,570,781,2201,-4,-3,653,20101,0,0,-1,1208,-1,-4,570,1005,570,709,1208,-1,-5,570,1005,570,734,1207,-1,0,570,1005,570,759,1206,-1,774,1001,578,562,684,1,0,576,576,1001,578,566,692,1,0,577,577,21102,702,1,0,1106,0,786,21201,-1,-1,-1,1106,0,676,1001,578,1,578,1008,578,4,570,1006,570,724,1001,578,-4,578,21102,731,1,0,1105,1,786,1106,0,774,1001,578,-1,578,1008,578,-1,570,1006,570,749,1001,578,4,578,21101,756,0,0,1105,1,786,1106,0,774,21202,-1,-11,1,22101,1182,1,1,21102,774,1,0,1105,1,622,21201,-3,1,-3,1106,0,640,109,-5,2105,1,0,109,7,1005,575,802,20102,1,576,-6,20101,0,577,-5,1105,1,814,21101,0,0,-1,21101,0,0,-5,21101,0,0,-6,20208,-6,576,-2,208,-5,577,570,22002,570,-2,-2,21202,-5,51,-3,22201,-6,-3,-3,22101,1475,-3,-3,2102,1,-3,843,1005,0,863,21202,-2,42,-4,22101,46,-4,-4,1206,-2,924,21102,1,1,-1,1105,1,924,1205,-2,873,21102,1,35,-4,1106,0,924,1202,-3,1,878,1008,0,1,570,1006,570,916,1001,374,1,374,1201,-3,0,895,1101,0,2,0,2101,0,-3,902,1001,438,0,438,2202,-6,-5,570,1,570,374,570,1,570,438,438,1001,578,558,921,21002,0,1,-4,1006,575,959,204,-4,22101,1,-6,-6,1208,-6,51,570,1006,570,814,104,10,22101,1,-5,-5,1208,-5,49,570,1006,570,810,104,10,1206,-1,974,99,1206,-1,974,1102,1,1,575,21101,973,0,0,1105,1,786,99,109,-7,2105,1,0,109,6,21101,0,0,-4,21102,0,1,-3,203,-2,22101,1,-3,-3,21208,-2,82,-1,1205,-1,1030,21208,-2,76,-1,1205,-1,1037,21207,-2,48,-1,1205,-1,1124,22107,57,-2,-1,1205,-1,1124,21201,-2,-48,-2,1105,1,1041,21102,1,-4,-2,1106,0,1041,21101,0,-5,-2,21201,-4,1,-4,21207,-4,11,-1,1206,-1,1138,2201,-5,-4,1059,2102,1,-2,0,203,-2,22101,1,-3,-3,21207,-2,48,-1,1205,-1,1107,22107,57,-2,-1,1205,-1,1107,21201,-2,-48,-2,2201,-5,-4,1090,20102,10,0,-1,22201,-2,-1,-2,2201,-5,-4,1103,2102,1,-2,0,1106,0,1060,21208,-2,10,-1,1205,-1,1162,21208,-2,44,-1,1206,-1,1131,1106,0,989,21101,0,439,1,1105,1,1150,21101,477,0,1,1106,0,1150,21102,1,514,1,21102,1,1149,0,1105,1,579,99,21101,1157,0,0,1106,0,579,204,-2,104,10,99,21207,-3,22,-1,1206,-1,1138,2101,0,-5,1176,2102,1,-4,0,109,-6,2106,0,0,32,5,46,1,3,1,46,1,3,1,46,1,3,1,46,1,3,1,46,1,3,1,40,11,40,1,5,1,44,1,5,1,44,1,5,1,44,1,5,1,44,1,5,1,40,11,40,1,3,1,46,1,3,1,46,1,3,1,46,1,3,9,38,1,11,1,26,1,11,1,11,1,26,1,11,1,11,1,26,1,11,5,7,1,26,1,15,1,7,1,26,1,15,1,7,1,26,1,15,1,7,1,26,1,11,7,5,1,26,1,11,1,3,1,1,1,5,1,26,1,9,13,1,1,3,13,10,1,9,1,1,1,3,1,1,1,3,1,1,1,3,1,22,5,5,1,1,13,3,1,26,1,5,1,5,1,1,1,3,1,5,1,26,1,5,1,5,7,5,1,26,1,5,1,7,1,9,1,26,1,5,1,7,1,9,1,26,1,5,1,7,1,9,1,26,1,5,1,7,11,26,1,5,1,34,11,5,1,34,1,15,1,34,1,5,9,1,9,26,1,5,1,7,1,9,1,26,1,5,1,7,1,9,1,26,1,5,1,7,1,9,1,22,11,7,1,9,1,22,1,3,1,13,1,9,1,22,1,3,1,13,1,9,1,22,1,3,1,13,1,9,1,22,1,3,1,13,1,9,1,22,1,3,1,13,1,9,1,22,5,13,11,22 diff --git a/2019/inputs/day_18.txt b/2019/inputs/day_18.txt deleted file mode 100644 index 3cb4307..0000000 --- a/2019/inputs/day_18.txt +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################# -#.............#.....#.................#.#.....#...#.......#...................#a# -#.#####.#######.#.###.#########.#####.#.#.###Y###.#.#####.#.#####.###########.#.# -#.#...#.#.....#.#..c#.........#...#.#...#...#.#...#.#.#...#.#.#...#...#...#.....# -#.#.###.#.###.#.###.#.###########.#.###.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.####### -#.#...#...#.#...#.#...#...........#.#...#.#.#...#.#.#.#.#.#.#.#...#.#.#.#.#.....# -#.#.#.#####.#####.#####.###.#######.#.###.#.#######.#.#.###.#.###.#.#.#.#.#.###.# -#.#.#.............#.#...#.#.#..e..#.....#.#...........#...#.#...#...#...#.....#.# -#.#########.#####.#.#.###.#.#.###.#####.#.###############.#T#.#.###############.# -#...#..k....#.....#.#.Z.#...#...#.....#.#.........#.#.....#.#.#.....#.L.....#...# -###.#.#.#######.###.###.#######.#####.#.#########.#.#.###.#.#.###.#.###.###.#.### -#...#.#.#.....#.#...#...#.....#.....#.#.#...#...#.#.#.#...#.#.#...#...#.#...#...# -#.###.#.#.###.#.#.###.###.###.#####.#.#.#.#.#.#.#.#.#.###.#.###.#####.#.#.#####.# -#.#...#.#.#...#.#...#.....#.#.....#.#.#.#.#...#...#.#...#.#.#...#.#...#.#.#.....# -#.###.#.#.#.###.###.#######.#.#####.#.#.#.#########.###.###.#.###.#.###.#.#.###.# -#...#.#.#.#...#...#.........#.#.....#.#.#.............#.......#...#.#...#.#...#.# -###.#.###.###.###.###.#.#####.#.#####.###############.#########.#.#.###.#.###.#.# -#.....#...#...#.J...#.#.#.....#.....#...#...........#.#...#...#.#.......#...#.#.# -#######.###.#######.#.###.#####.#######.#########.#.#.###.#.#.#########.#####.#.# -#.......#.#...#...#...#...#...#.#.......#.....O.#.#.#.#...#.#.......#...#.....#s# -#.#######.###.#.#.#####.###.#.#.#.#######.#####.#.#.#.#.###.#####.#.#.###.#####.# -#...#...#...#...#...#.#.#...#...#.......#.....#.#.#.#.#...#.#...#.#.#...#...#...# -###.#.#.#.#########.#.#.#.#######.#####.#.#####.#.###.###.#.###.###.#.#####.#.### -#.#...#.#.........#...#...#....d#.....#.#.#.....#.#...#...#.#.#...#.#.#.....#.#.# -#.#####.#######.#######.###.###.#####.#.#.#.#####.#.###.#.#.#.###.#.#.#.#####.#.# -#...#.#.......#.......#...#.#...#.....#.#.#.....#.......#.#.....#.#.#.#.#.......# -#.#.#.#######.#.#.#####.###.#.#####.###.#.#####.#############.###.#.#.#.#######.# -#.#...#.....#.#.#...#...#...#.....#...#.#.#...#.#...........#.#...#.#.#.#...#.#.# -#.###.###.#.#.#.###.#.###.#######.#####.#.###.#.#.#########.#.#.###.#.#.#.#.#.#.# -#...#.....#.#.#...#...#...#.......#.....#...#.#.#.....#...#...#...#.#.#...#.#...# -#.#.#######.#.###.#####.###.#######.#######.#.#.#####.###.#######.#.#####.#.#.### -#.#.#.....#.#.#.#.#.#...#.#.#...#...#...#...#.#.....#...#.....#...#.....#.#.#w#.# -#.#.#.###.#.#.#.#.#.#.###.#.#.#.###.#.#.#.###.#.###.###.#.###.#.###.###.###.#.#.# -#.#.#.#.#.#.#.#.#.#.#.#m..#...#...#...#.#.#...#...#...#.#...#.#.#.....#.#...#.#.# -###.#.#.#.###W#.#.#.#.#.#########.#####.#.#.#.###.#####.###.#.#.#######.#.###.#.# -#...#...#.#...#.....#.#.......#...#...#.#.#.#.#.#.....#.....#.#.........#.#.#...# -#.###.###.#.###.#####.#.###.###.###.#.#.#.#.#.#.#####.#######.###########.#.###.# -#.#...#...#.#...#.S...#...#.....#...#.#.#...#.....#.#.........#...#...#...#.....# -#.#.###.###.#####.#######.#######.###.#.#########.#.###########.#.#.#.#.###.##### -#.....#...........#.......F.......#..................f..........#...#...#.......# -#######################################.@.####################################### -#.....#.#...........#.....#.........................#...#.....#.M.......#.....#.# -###P#.#.#.#######.###.###.#.#######.###.#.#########.#.#.#.###.###.#####.###.#.#.# -#...#...#...#.#...#.....#.#.#.......#...#...#.........#...#.......#...#.....#.#.# -#.#.#######.#.#.###.#####.#.#.#######.#####.###############.#########.#######.#.# -#.#.#.....#.#.#.#...#...#.#.#.#.........#...#.......#...#.....#.....#.#.......#.# -#.###.###.#.#.#.#.###.#.#.#.#.###########.###.#####.#.#.#######.###.#.#.#######.# -#...#.#.#.#...#.#.#...#...#.#...........#...#...#.#...#.......#.#.#.#.#.........# -#.#.#.#.#.#.###.#.#.#####.#######.#####.###.###.#.###########.#.#.#.#.#.#######.# -#.#.#...#...#...#.#r#.....#.....#.....#.#...#.#.#.......#...#.....#.#...#.....#.# -#.#.###.#####.###.#.#######.###.#####.#.#.#.#.#.###.#####.#.#######.#.###.###.#.# -#.#...#.#...#...#.#.........#...#...#.#.#.#...#...#.#.....#.#......p#...#.#.#.#.# -###.#.#.#.#.###.#.###########.###.#.#.#.#.###.###.#.#.#####.#.###.#######.#.#.### -#...#.#.#.#...#.......#.....#.#...#...#.#...#.#...#.....#...#.#...#.K...#.#.#...# -#.#####.#.###.#######.#.###Q#.#.#######.###.#.#.#####.###.###.#.###.###.#.#.###.# -#.....#...#...#.#...#.#.#.#...#...#.....#...#.#.....#.#...#...#.#...#.#..j#.#...# -#.###.#####.###.#.#.###.#.#########.###.#.#########.###.#.#.###.#.###.#####.#.### -#...#.#.....#...#.#.B...#...#...#...#...#.#.......#.....#.#...#.#...........#.R.# -#.###.#.#######.#.#######.#.#.#.#.###.###.#.#.###.#######.###.###.#############.# -#.#...#.......#.#n....#...#.#.#...#...#.#...#...#.....#...#.#.....#..u..#.....#.# -###.#.#######.#.#####.#.###.#.#####.###.#.#####.###.###.###.###.###.###.#.###.#.# -#...#.#...#...#.....#.#.#...#...#.#...#.#...#...#...#...#...#.#.#...#...#.#...#.# -#.#####.#.#.###.#.#####.#.###.#.#.###.#.#####.#######.#####.#.###.###.###.###.#.# -#...#...#.#.#...#.......#.#...#.#...#...#.....#.......#.....#.U...#.#...#...#...# -#.#.#.###.#.#.#########.#.#####.###.###.#.#.###.#######.###########.###X#.#.###.# -#.#..l#...#.#...#.......#.....#...#...#.#.#o#...#.#.....#...#......x....#.#.#...# -#.#####C###.#.###.###########.###.#.###.#.###.###.#.###.#.#.#I#############.#.### -#.....#...#.#.#...#...#.....#.#...#.#...#.#...#.....#...#.#...#v......G.#...#..q# -###.#####.#.###.###.#.#.###.#.#.###.#.###.#.###.#####.#.#.#####.#######.#.#####.# -#.#y#...#.#...#.#...#.#...#.#...#...#...#.#.#...#.....#.#..i..#...#.....#...#...# -#.#.#.#.#.###.#.#.###.#.#.#.#####.#.###.#.#.###.#.###########H#.#.#.#####.#.#.### -#...#.#.#...#.#.....#.#.#.#.#...#.#.....#.#...#.#...........#.#.#.#g..#...#.#...# -#.###.#.###A#.#######.#.#.#.#.###.#######.###.#.#########.#.#.#.#.###.#####.###.# -#.#...#.....#.........#.#.#.#.#...#.....#...#.#.......#...#.#.#.#.#.#.#...#...#.# -###.#####################.#.#.#.#####.###.#.#.#########.###.#.###.#.#.#.#.###.#.# -#...#.......#.............#..t#.#...#...#.#.#.#.......#.#...#...#.#.#.N.#.....#.# -#.###.#####.#.#########.#######.#.#D#.#.#.#.#.#.#####.#.#.#####.#.#.###########.# -#.#...#...#..z#.#.......#.....#...#.#.#.#.#.#...#...#...#.#.#..h#.#.....#......b# -#.#.###.#.#####.#.#######.###.#####.###.#.#.#####.#.#####.#.#.###.#.###.#.####### -#.......#.......#...........#...........#.#.....E.#.........#...V.#...#.........# -################################################################################# diff --git a/2019/inputs/day_18_2.txt b/2019/inputs/day_18_2.txt deleted file mode 100644 index 8fda759..0000000 --- a/2019/inputs/day_18_2.txt +++ /dev/null @@ -1,81 +0,0 @@ -################################################################################# -#.............#.....#.................#.#.....#...#.......#...................#a# -#.#####.#######.#.###.#########.#####.#.#.###Y###.#.#####.#.#####.###########.#.# -#.#...#.#.....#.#..c#.........#...#.#...#...#.#...#.#.#...#.#.#...#...#...#.....# -#.#.###.#.###.#.###.#.###########.#.###.#.#.#.#.#.#.#.#.#.#.#.#.###.#.#.#.####### -#.#...#...#.#...#.#...#...........#.#...#.#.#...#.#.#.#.#.#.#.#...#.#.#.#.#.....# -#.#.#.#####.#####.#####.###.#######.#.###.#.#######.#.#.###.#.###.#.#.#.#.#.###.# -#.#.#.............#.#...#.#.#..e..#.....#.#...........#...#.#...#...#...#.....#.# -#.#########.#####.#.#.###.#.#.###.#####.#.###############.#T#.#.###############.# -#...#..k....#.....#.#.Z.#...#...#.....#.#.........#.#.....#.#.#.....#.L.....#...# -###.#.#.#######.###.###.#######.#####.#.#########.#.#.###.#.#.###.#.###.###.#.### -#...#.#.#.....#.#...#...#.....#.....#.#.#...#...#.#.#.#...#.#.#...#...#.#...#...# -#.###.#.#.###.#.#.###.###.###.#####.#.#.#.#.#.#.#.#.#.###.#.###.#####.#.#.#####.# -#.#...#.#.#...#.#...#.....#.#.....#.#.#.#.#...#...#.#...#.#.#...#.#...#.#.#.....# -#.###.#.#.#.###.###.#######.#.#####.#.#.#.#########.###.###.#.###.#.###.#.#.###.# -#...#.#.#.#...#...#.........#.#.....#.#.#.............#.......#...#.#...#.#...#.# -###.#.###.###.###.###.#.#####.#.#####.###############.#########.#.#.###.#.###.#.# -#.....#...#...#.J...#.#.#.....#.....#...#...........#.#...#...#.#.......#...#.#.# -#######.###.#######.#.###.#####.#######.#########.#.#.###.#.#.#########.#####.#.# -#.......#.#...#...#...#...#...#.#.......#.....O.#.#.#.#...#.#.......#...#.....#s# -#.#######.###.#.#.#####.###.#.#.#.#######.#####.#.#.#.#.###.#####.#.#.###.#####.# -#...#...#...#...#...#.#.#...#...#.......#.....#.#.#.#.#...#.#...#.#.#...#...#...# -###.#.#.#.#########.#.#.#.#######.#####.#.#####.#.###.###.#.###.###.#.#####.#.### -#.#...#.#.........#...#...#....d#.....#.#.#.....#.#...#...#.#.#...#.#.#.....#.#.# -#.#####.#######.#######.###.###.#####.#.#.#.#####.#.###.#.#.#.###.#.#.#.#####.#.# -#...#.#.......#.......#...#.#...#.....#.#.#.....#.......#.#.....#.#.#.#.#.......# -#.#.#.#######.#.#.#####.###.#.#####.###.#.#####.#############.###.#.#.#.#######.# -#.#...#.....#.#.#...#...#...#.....#...#.#.#...#.#...........#.#...#.#.#.#...#.#.# -#.###.###.#.#.#.###.#.###.#######.#####.#.###.#.#.#########.#.#.###.#.#.#.#.#.#.# -#...#.....#.#.#...#...#...#.......#.....#...#.#.#.....#...#...#...#.#.#...#.#...# -#.#.#######.#.###.#####.###.#######.#######.#.#.#####.###.#######.#.#####.#.#.### -#.#.#.....#.#.#.#.#.#...#.#.#...#...#...#...#.#.....#...#.....#...#.....#.#.#w#.# -#.#.#.###.#.#.#.#.#.#.###.#.#.#.###.#.#.#.###.#.###.###.#.###.#.###.###.###.#.#.# -#.#.#.#.#.#.#.#.#.#.#.#m..#...#...#...#.#.#...#...#...#.#...#.#.#.....#.#...#.#.# -###.#.#.#.###W#.#.#.#.#.#########.#####.#.#.#.###.#####.###.#.#.#######.#.###.#.# -#...#...#.#...#.....#.#.......#...#...#.#.#.#.#.#.....#.....#.#.........#.#.#...# -#.###.###.#.###.#####.#.###.###.###.#.#.#.#.#.#.#####.#######.###########.#.###.# -#.#...#...#.#...#.S...#...#.....#...#.#.#...#.....#.#.........#...#...#...#.....# -#.#.###.###.#####.#######.#######.###.#.#########.#.###########.#.#.#.#.###.##### -#.....#...........#.......F.......#....@#@...........f..........#...#...#.......# -################################################################################# -#.....#.#...........#.....#............@#@..........#...#.....#.M.......#.....#.# -###P#.#.#.#######.###.###.#.#######.###.#.#########.#.#.#.###.###.#####.###.#.#.# -#...#...#...#.#...#.....#.#.#.......#...#...#.........#...#.......#...#.....#.#.# -#.#.#######.#.#.###.#####.#.#.#######.#####.###############.#########.#######.#.# -#.#.#.....#.#.#.#...#...#.#.#.#.........#...#.......#...#.....#.....#.#.......#.# -#.###.###.#.#.#.#.###.#.#.#.#.###########.###.#####.#.#.#######.###.#.#.#######.# -#...#.#.#.#...#.#.#...#...#.#...........#...#...#.#...#.......#.#.#.#.#.........# -#.#.#.#.#.#.###.#.#.#####.#######.#####.###.###.#.###########.#.#.#.#.#.#######.# -#.#.#...#...#...#.#r#.....#.....#.....#.#...#.#.#.......#...#.....#.#...#.....#.# -#.#.###.#####.###.#.#######.###.#####.#.#.#.#.#.###.#####.#.#######.#.###.###.#.# -#.#...#.#...#...#.#.........#...#...#.#.#.#...#...#.#.....#.#......p#...#.#.#.#.# -###.#.#.#.#.###.#.###########.###.#.#.#.#.###.###.#.#.#####.#.###.#######.#.#.### -#...#.#.#.#...#.......#.....#.#...#...#.#...#.#...#.....#...#.#...#.K...#.#.#...# -#.#####.#.###.#######.#.###Q#.#.#######.###.#.#.#####.###.###.#.###.###.#.#.###.# -#.....#...#...#.#...#.#.#.#...#...#.....#...#.#.....#.#...#...#.#...#.#..j#.#...# -#.###.#####.###.#.#.###.#.#########.###.#.#########.###.#.#.###.#.###.#####.#.### -#...#.#.....#...#.#.B...#...#...#...#...#.#.......#.....#.#...#.#...........#.R.# -#.###.#.#######.#.#######.#.#.#.#.###.###.#.#.###.#######.###.###.#############.# -#.#...#.......#.#n....#...#.#.#...#...#.#...#...#.....#...#.#.....#..u..#.....#.# -###.#.#######.#.#####.#.###.#.#####.###.#.#####.###.###.###.###.###.###.#.###.#.# -#...#.#...#...#.....#.#.#...#...#.#...#.#...#...#...#...#...#.#.#...#...#.#...#.# -#.#####.#.#.###.#.#####.#.###.#.#.###.#.#####.#######.#####.#.###.###.###.###.#.# -#...#...#.#.#...#.......#.#...#.#...#...#.....#.......#.....#.U...#.#...#...#...# -#.#.#.###.#.#.#########.#.#####.###.###.#.#.###.#######.###########.###X#.#.###.# -#.#..l#...#.#...#.......#.....#...#...#.#.#o#...#.#.....#...#......x....#.#.#...# -#.#####C###.#.###.###########.###.#.###.#.###.###.#.###.#.#.#I#############.#.### -#.....#...#.#.#...#...#.....#.#...#.#...#.#...#.....#...#.#...#v......G.#...#..q# -###.#####.#.###.###.#.#.###.#.#.###.#.###.#.###.#####.#.#.#####.#######.#.#####.# -#.#y#...#.#...#.#...#.#...#.#...#...#...#.#.#...#.....#.#..i..#...#.....#...#...# -#.#.#.#.#.###.#.#.###.#.#.#.#####.#.###.#.#.###.#.###########H#.#.#.#####.#.#.### -#...#.#.#...#.#.....#.#.#.#.#...#.#.....#.#...#.#...........#.#.#.#g..#...#.#...# -#.###.#.###A#.#######.#.#.#.#.###.#######.###.#.#########.#.#.#.#.###.#####.###.# -#.#...#.....#.........#.#.#.#.#...#.....#...#.#.......#...#.#.#.#.#.#.#...#...#.# -###.#####################.#.#.#.#####.###.#.#.#########.###.#.###.#.#.#.#.###.#.# -#...#.......#.............#..t#.#...#...#.#.#.#.......#.#...#...#.#.#.N.#.....#.# -#.###.#####.#.#########.#######.#.#D#.#.#.#.#.#.#####.#.#.#####.#.#.###########.# -#.#...#...#..z#.#.......#.....#...#.#.#.#.#.#...#...#...#.#.#..h#.#.....#......b# -#.#.###.#.#####.#.#######.###.#####.###.#.#.#####.#.#####.#.#.###.#.###.#.####### -#.......#.......#...........#...........#.#.....E.#.........#...V.#...#.........# -################################################################################# diff --git a/2019/inputs/day_19.txt b/2019/inputs/day_19.txt deleted file mode 100644 index e85881e..0000000 --- a/2019/inputs/day_19.txt +++ /dev/null @@ -1 +0,0 @@ -109,424,203,1,21102,11,1,0,1106,0,282,21101,0,18,0,1106,0,259,1201,1,0,221,203,1,21102,1,31,0,1106,0,282,21101,0,38,0,1106,0,259,20102,1,23,2,21202,1,1,3,21101,1,0,1,21101,0,57,0,1105,1,303,2101,0,1,222,20101,0,221,3,21001,221,0,2,21102,1,259,1,21101,0,80,0,1105,1,225,21101,185,0,2,21102,91,1,0,1106,0,303,1202,1,1,223,21001,222,0,4,21102,259,1,3,21101,225,0,2,21102,1,225,1,21101,0,118,0,1106,0,225,20102,1,222,3,21102,1,131,2,21101,133,0,0,1106,0,303,21202,1,-1,1,22001,223,1,1,21101,148,0,0,1105,1,259,2101,0,1,223,21002,221,1,4,21002,222,1,3,21101,0,16,2,1001,132,-2,224,1002,224,2,224,1001,224,3,224,1002,132,-1,132,1,224,132,224,21001,224,1,1,21101,0,195,0,106,0,109,20207,1,223,2,20101,0,23,1,21102,1,-1,3,21101,0,214,0,1105,1,303,22101,1,1,1,204,1,99,0,0,0,0,109,5,1201,-4,0,249,22101,0,-3,1,22101,0,-2,2,21201,-1,0,3,21101,0,250,0,1106,0,225,21201,1,0,-4,109,-5,2106,0,0,109,3,22107,0,-2,-1,21202,-1,2,-1,21201,-1,-1,-1,22202,-1,-2,-2,109,-3,2106,0,0,109,3,21207,-2,0,-1,1206,-1,294,104,0,99,22102,1,-2,-2,109,-3,2105,1,0,109,5,22207,-3,-4,-1,1206,-1,346,22201,-4,-3,-4,21202,-3,-1,-1,22201,-4,-1,2,21202,2,-1,-1,22201,-4,-1,1,21201,-2,0,3,21101,343,0,0,1106,0,303,1105,1,415,22207,-2,-3,-1,1206,-1,387,22201,-3,-2,-3,21202,-2,-1,-1,22201,-3,-1,3,21202,3,-1,-1,22201,-3,-1,2,22101,0,-4,1,21102,384,1,0,1106,0,303,1105,1,415,21202,-4,-1,-4,22201,-4,-3,-4,22202,-3,-2,-2,22202,-2,-4,-4,22202,-3,-2,-3,21202,-4,-1,-2,22201,-3,-2,1,21201,1,0,-4,109,-5,2106,0,0 diff --git a/2019/inputs/day_2.txt b/2019/inputs/day_2.txt deleted file mode 100644 index dd34cff..0000000 --- a/2019/inputs/day_2.txt +++ /dev/null @@ -1 +0,0 @@ -1,0,0,3,1,1,2,3,1,3,4,3,1,5,0,3,2,9,1,19,1,19,5,23,1,23,6,27,2,9,27,31,1,5,31,35,1,35,10,39,1,39,10,43,2,43,9,47,1,6,47,51,2,51,6,55,1,5,55,59,2,59,10,63,1,9,63,67,1,9,67,71,2,71,6,75,1,5,75,79,1,5,79,83,1,9,83,87,2,87,10,91,2,10,91,95,1,95,9,99,2,99,9,103,2,10,103,107,2,9,107,111,1,111,5,115,1,115,2,119,1,119,6,0,99,2,0,14,0 diff --git a/2019/inputs/day_20.txt b/2019/inputs/day_20.txt deleted file mode 100644 index 09d6330..0000000 --- a/2019/inputs/day_20.txt +++ /dev/null @@ -1,113 +0,0 @@ - K Z V U I F - Q T Y Y E E - ###################################.#####.###.###########.#####.#.##################################### - #.......#.#.............#.........#.#.......#.#.#.........#.....#...#...#...........#...#.....#.#.....# - ###.#####.###.###.###.###########.#.###.#####.#.###.#.#.#.###.###.###.#####.#######.###.#####.#.###.### - #.#...#.#.#.#.#.#.#.#.....#...........#.....#.#...#.#.#.#...#.#.#.#.....#.#.#...#.#.#...#.#.#.....#...# - #.#.###.#.#.###.###.#.#########.###.#######.#.#.#.#######.#.#.#.#.#.###.#.#.#.###.#####.#.#.#.#####.### - #.....#...#...............#.#.#.#.#.#.....#.#.#.#...#.....#.#.#.#.#...#.....#.#.#.........#...#.#...#.# - #.#######.###########.###.#.#.###.#.###.#.#.#.#.###.###.###.#.#.#.#.###.#.###.#.#.#.#######.###.###.#.# - #...#.......#...#.#...#...#...#.#.#.#...#...#.....#.#.#.#...#...#...#...#.........#.#.#.#...#.......#.# - #.#######.#.###.#.#######.###.#.#.#.#.#.###.###.#####.#####.###.#.#####.#####.#.#.###.#.###.#.#######.# - #.#.#...#.#...#.......#.......#.#...#.#...#.#.#...#.#.......#...#.#.........#.#.#...............#.....# - #.#.#.#######.#####.#####.###.#.###.#.#####.#.#.###.#####.###.#####.###.###########.###############.### - #.#...#...#.......#...#...#.#.......#.....#.#.....#.#.......#.#...#.#.#.#.......#.......#...#...#.#...# - #.###.###.#####.#.###.#####.#####.#.###.#######.#.#.#######.#.#.#####.#.#.###########.#####.###.#.#.### - #.#.#.#...#...#.#.#...#.#.#.#.#.#.#.#...#.......#.#.#.#.....#.....#...............#...#.#...#.........# - #.#.#.#.#####.#.#####.#.#.#.#.#.###.#.#####.###.###.#.#####.#.#######.#.#######.#######.#.#.###.#####.# - #.......#.#.#...#.#...............#.#...#.#.#.......#...#...#.......#.#.#.#.#...#.#.....#.#.#...#.#...# - #.#######.#.###.#.#.###.#.#.#.###.#.###.#.###.#.###.#.###.#.#.#.#######.#.#.#####.#.#######.#.###.###.# - #.#.#.#.#.#.......#.#.#.#.#.#.#.#.#.#...#...#.#.#.#.#.....#.#.#.#.#.#...#.......#.#.#.#...#.#.#...#.#.# - #.#.#.#.#.#####.#####.#.#####.#.#.#.#.###.#.#.###.#####.#####.#.#.#.#.#####.#.###.#.#.#.###.#.###.#.### - #.#.#.#.#.#.....#.#.....#.......#.#.#.#...#.#...#...#.......#.#.#.#.........#.#...#.......#.#.#.#.#.#.# - #.#.#.#.#.#.###.#.#.#####.###.#.#.#.#.#.###.#.###.#.###.#######.#.#.###.###.#####.#.#.#.###.#.#.#.#.#.# - #.......#.#.#.#.#.#.#...#.#.#.#.#...#...#...#...#.#.#.....#.#...#...#...#.......#...#.#...#.#.#.#...#.# - #####.###.#.#.###.#####.###.###.###.#####.#####.#.#.#.#####.#.#.#####.#######.#####.#######.#.#.#.###.# - #.#...#.........#...#.#.......#...#...#.....#...#.#.#.....#...#.#...........#.#.#.#...#.#.........#...# - #.###.#.#.#######.#.#.#.#########.#########.#.###.#.#.#.###.#.#########.###.###.#.#.###.###.#######.### - #.#.....#...#...#.#...#.....#.......#.......#.....#.#.#...#.#.....#.....#.....#...#.#...#.........#...# - #.###.#.#.#####.###.###.#######.#####.#############.#.#########.###.###########.###.#.#.#.###.#.###.#.# - #...#.#.#.#.#...#.#.#.....# U N Q W Z N #.......#.#...#...#...#.#.# - ###.###.###.###.#.#.###.### Y D P L W J #####.#########.#######.### - #.#.#.#.#...#...#.#...#.#.# #.....#...#...........#.#.# - #.#.#.#.###.###.#.#.###.#.# ###.#.###.###.###.#####.#.# - #...................#.#...# #.#.#.........#...#........CB - #.###.#######.#.###.#.#.#.# #.#.#.###.#####.###.#.#.#.# - #.#.........#.#...#.....#.# #...#.#.....#...#...#.#.#..AA - #######.#######.###.#####.# #.#######.#.###.#.#.###.### - #.....#.......#...#...#...# QJ..#.#...#.#.#.#...#...#.#.# - ###.#.#.###.###########.### ###.#.#######.###########.# -YG....#.....#.#.......#......TY #.........#...........#...# - #.#.#.###########.#.#.##### #.#####.###.#########.#.#.# - #.#.#.#...#...#...#.#.#...# CB..#.#.......#.#.#.#.....#..DN - #######.#####.#.#.#####.### ###.#########.#.#.######### - #.....#...#...#.#.#...#.#.# #...#.........#...#.......# - #.###.#.#.#.#.#.#.#.#.#.#.# ###.###.#####.#.#.#.#####.# -SP..#.....#...#...#...#......YG #.......#...#...#.#.#.....# - ########################### #.#.###.###.#.###.#.#.##### -NJ....#.................#.#.# KQ..#.#.......#.#...#.#.....# - #.#.#.#####.#.#.#####.#.#.# ###.###.###.###.#.#.###.#.# - #.#.#.....#.#.#.#.....#...# #.#...#.#.#.#.#.#.....#.#..IT - ###.#####.###.#####.#####.# #.#.#####.###.############# - #.#.....#...#.....#........WE IE..#.#.#.#...............#.# - #.#.#.#.#.#########.#.###.# #.#.#.#.#.###.###.###.###.# - #...#.#...#.#.#.#...#.#...# #.#.#...#.#.#...#.#...#.#.# - #.#######.#.#.#.#####.##### #.#####.#.#.#.#.#####.#.#.# - #.#.....#.#.........#.#...# #...........#.#.#.#...#....QJ - #######.###.#.#.###.#####.# #######.#.#######.#.#.###.# - #.#.....#...#.#.#.........# #.....#.#.#...#.#...#.....# - #.###.#.#.#######.#.#####.# ###.#########.#.########### -YV..#...#.#...#.#.#.#.#.....# #.......#.........#.#.....# - #.#.###.#.#.#.#.#.###.#.### #.#####.###.#####.#.#.#.#.# - #.....#...#.#...#.#.#.#....QX #.#...#.........#.#...#.#..QP - ###.###.#######.###.###.#.# #.###.#.###.#####.#.#####.# - #.#.#.....#.....#.....#.#.# #.#.#.#.#...#.....#...#...# - #.#####.#######.###.#.##### #.#.#.#####.#.###.###.#.#.# - #.#...#.#.....#.#.#.#...#..DM FE..#.#...#.#.#.#.......#.#.# - #.#.#####.#.###.#.#.###.#.# #.#.#.#.#.###############.# - #.#.......#...#.#.....#...# #.#...#.#.#.....#.......#.# - #.#.#.#.#.###.#.#####.###.# #######.#.#.#######.#.##### -QX....#.#.#.#.............#.# #.......#.#.......#.#.....# - #####.#.#.#.#.#.########### ###.###.#.#.#.###.#.#####.# - #.#.#.#.#.#.#.#.#.........# GX..#.#.......#.#.#.......#..DM - #.#.###############.###.#.# #.#.#####.#.###.###.###.#.# - #.#.#.........#...#...#.#..CS #.....#.#.#.#.#...#.#.#.#.# - #.#.#######.#####.###.#.### #######.#.###.#.#####.##### -WE........#.#.#.#.#.#...#...# MX........#.#.........#......CS - #####.###.#.#.#.#.#.#.##### #####.###.###.#####.###.### - #...#...............#.#.#.# #.#.....#.#.......#...#...# - ###.###################.#.# #.#.###########.#.###.#.#.# - #...............#.#........ME #.#.#.#...#...#.#.#...#.#.# - #.#.#####.#####.#.#.###.#.# #.#.#####.#######.#.#####.# -GX..#...#.#.#...........#.#.# #.................#.......# - #.#.###.#######.###.#####.# J D Z V S I Y #.###.###.#.###.###.#.#.#.# - #.#.......#.......#.....#.# I N T Y P T V #...#...#.#.#.#.#.#.#.#.#.# - #.#.#.#########.#.#.#############.#########.###.#.#.#############.###.###########.###.#.#.#.#.#.#####.# - #.#.#.....#.....#.#...#.......#.....#.......#.....#.#.#.#.#...#...#.........#.....#...#.#.....#...#...# - #.#############.###.#######.#.#####.#.###.###.#####.#.#.#.###.#.#####.#.#.#####.#.#.#.#.#####.###.##### - #...........#.....#.....#...#.......#...#.#.#.....#.#.....#.#.......#.#.#...#...#.#.#.#.#.....#.#.....# - ###.#######.#######.#####.###.#######.#.###.###.#.#.#.###.#.#.#######.#############.#.#######.#.#.###.# - #.#.....#.#.#.#.......#.#.#.#...#...#.#...#...#.#.#.....#...#.......#.....#.#...#...#...#.......#.#...# - #.#.#.###.#.#.#.#.###.#.###.###.#.#.###.#.###.#.#########.#####.#.###.#.###.#.#########.#####.#####.#.# - #...#...#.....#.#.#...#...#.#...#.#...#.#.#.....#.#.#.....#...#.#.#...#.............#.....#.....#...#.# - #####.###########.#####.###.#.###.#.###.#####.#.#.#.###.#.#.#.###.#.#######.###.#########.#.#.######### - #.........#.....#.#...........#...#.#...#.#...#.#...#...#.#.#.....#.......#...#.#.....#.#.#.#.....#.#.# - ###.###.#.###.#####.#.#.#.#.#.#.###.###.#.###.#####.#.#####.#.###.###.#####.#####.#####.#####.#####.#.# - #...#.#.#.#.........#.#.#.#.#...#...#.....#.....#.......#...#.#.#.#.......#.#.#...#.....#.#.#.........# - #.#.#.#.###.###.###########.###.#.###.#.#####.#.#.#.#.#.#.#.###.###.#.###.###.###.#.#.#.#.#.#.###.#.#.# - #.#.#...#...#.....#.........#.#.#...#.#.#.#...#.#.#.#.#.#.#.......#.#...#.#.....#...#.#.#.......#.#.#.# - #.#.###.#.#.#.#.#.#####.#####.#.###.#.###.###.#####.#######.###.###.#########.###.#######.#.#.#####.#.# - #.#.#...#.#.#.#.#.#.#.#.#.......#...#...#...#...#.....#.#.....#.#.#.......#...#.....#.#.#.#.#.#.#...#.# - #.#####.#.#####.###.#.#######.#.#.#.###.###.#.#.###.###.###.#####.#.#.#####.#####.#.#.#.###.#.#.#####.# - #...#...#.#.....#.#.....#.#...#.#.#.#...#.#...#.#.......#.#.#.#.#...#...........#.#.#...#.#.#.....#.#.# - ###.###.#########.#####.#.###.#####.#.###.###.#####.#####.#.#.#.#.#######.#######.###.###.#####.#.#.### - #.....#.#.....................#...#.#.......#.#.....#.....#.....#.#...........#.....#.#.#.#.#...#.#...# - #.###.#####.#.#.#.###.#.#.#.###.###.###.#.###.#####.###.#.#.#########.###########.###.#.#.#.###.###.### - #...#...#...#.#.#.#...#.#.#.#.......#.#.#...#.....#.#...#.#.......#.#.........#.............#.........# - ###.#.#####.#############.#####.#.###.#.###.#####.#.#.###.###.#.#.#.#####.#.###.###.###.###.#.#####.### - #...#.#.#.#...#.#...#.......#...#.....#.#...#.....#...#.#.#.#.#.#...#.....#.....#.....#...#.#...#.....# - #.###.#.#.###.#.###.###.#####.#####.#####.###.#########.#.#.#####.#######.#####.###.#####.#.#.###.###.# - #.#.........#.#.........#.....#.....#.....#.........#.....#.......#...........#...#...#...#.#...#.#...# - ###################################.###.#######.#.###.###.###.#######.################################# - N J W Z Z M M T - D I L W Z X E Y diff --git a/2019/inputs/day_21.txt b/2019/inputs/day_21.txt deleted file mode 100644 index cafb613..0000000 --- a/2019/inputs/day_21.txt +++ /dev/null @@ -1 +0,0 @@ -109,2050,21102,1,966,1,21101,0,13,0,1106,0,1378,21101,20,0,0,1105,1,1337,21101,27,0,0,1105,1,1279,1208,1,65,748,1005,748,73,1208,1,79,748,1005,748,110,1208,1,78,748,1005,748,132,1208,1,87,748,1005,748,169,1208,1,82,748,1005,748,239,21101,0,1041,1,21102,73,1,0,1106,0,1421,21101,0,78,1,21101,0,1041,2,21101,88,0,0,1106,0,1301,21101,68,0,1,21102,1041,1,2,21102,103,1,0,1106,0,1301,1101,0,1,750,1105,1,298,21101,0,82,1,21101,0,1041,2,21102,1,125,0,1105,1,1301,1102,1,2,750,1105,1,298,21102,79,1,1,21102,1,1041,2,21101,147,0,0,1106,0,1301,21102,1,84,1,21102,1,1041,2,21101,0,162,0,1106,0,1301,1101,0,3,750,1106,0,298,21101,0,65,1,21101,1041,0,2,21101,0,184,0,1106,0,1301,21101,76,0,1,21102,1,1041,2,21101,199,0,0,1106,0,1301,21102,75,1,1,21102,1,1041,2,21101,214,0,0,1105,1,1301,21101,221,0,0,1106,0,1337,21101,10,0,1,21102,1041,1,2,21102,236,1,0,1105,1,1301,1106,0,553,21102,1,85,1,21102,1,1041,2,21101,254,0,0,1105,1,1301,21101,78,0,1,21101,0,1041,2,21102,1,269,0,1106,0,1301,21102,276,1,0,1105,1,1337,21101,10,0,1,21102,1,1041,2,21101,0,291,0,1105,1,1301,1101,1,0,755,1105,1,553,21101,32,0,1,21102,1,1041,2,21102,313,1,0,1106,0,1301,21102,1,320,0,1106,0,1337,21102,327,1,0,1105,1,1279,1202,1,1,749,21102,65,1,2,21101,0,73,3,21102,1,346,0,1106,0,1889,1206,1,367,1007,749,69,748,1005,748,360,1101,0,1,756,1001,749,-64,751,1106,0,406,1008,749,74,748,1006,748,381,1102,1,-1,751,1105,1,406,1008,749,84,748,1006,748,395,1102,1,-2,751,1105,1,406,21102,1100,1,1,21101,0,406,0,1105,1,1421,21101,32,0,1,21102,1,1100,2,21101,421,0,0,1105,1,1301,21102,1,428,0,1106,0,1337,21102,435,1,0,1105,1,1279,2102,1,1,749,1008,749,74,748,1006,748,453,1102,1,-1,752,1106,0,478,1008,749,84,748,1006,748,467,1101,0,-2,752,1105,1,478,21101,1168,0,1,21101,0,478,0,1106,0,1421,21102,485,1,0,1105,1,1337,21102,1,10,1,21101,1168,0,2,21101,0,500,0,1105,1,1301,1007,920,15,748,1005,748,518,21101,0,1209,1,21102,1,518,0,1106,0,1421,1002,920,3,529,1001,529,921,529,101,0,750,0,1001,529,1,537,101,0,751,0,1001,537,1,545,1001,752,0,0,1001,920,1,920,1105,1,13,1005,755,577,1006,756,570,21102,1100,1,1,21101,570,0,0,1105,1,1421,21102,1,987,1,1105,1,581,21101,1001,0,1,21102,1,588,0,1106,0,1378,1101,0,758,593,1001,0,0,753,1006,753,654,21001,753,0,1,21101,610,0,0,1106,0,667,21101,0,0,1,21101,621,0,0,1106,0,1463,1205,1,647,21101,1015,0,1,21101,635,0,0,1106,0,1378,21101,1,0,1,21101,646,0,0,1105,1,1463,99,1001,593,1,593,1106,0,592,1006,755,664,1101,0,0,755,1105,1,647,4,754,99,109,2,1102,1,726,757,21202,-1,1,1,21101,9,0,2,21102,1,697,3,21102,692,1,0,1105,1,1913,109,-2,2105,1,0,109,2,101,0,757,706,1201,-1,0,0,1001,757,1,757,109,-2,2106,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,255,63,95,191,159,223,127,0,155,123,163,249,179,110,200,117,68,60,61,190,197,250,196,186,111,187,99,158,244,217,222,246,94,205,35,54,115,239,218,243,62,241,229,168,79,199,215,178,182,118,43,228,125,203,214,113,231,120,77,153,141,157,253,143,87,102,86,207,213,177,57,181,156,85,78,204,247,174,109,172,248,92,98,53,93,232,69,242,212,237,152,70,216,183,47,49,124,121,116,122,230,114,100,103,201,51,55,84,171,234,254,238,233,76,185,34,50,175,219,140,42,189,136,38,226,169,39,184,198,166,137,220,251,245,202,142,56,139,167,206,126,252,106,107,71,162,235,236,101,108,119,58,173,170,46,221,227,59,154,188,138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,73,110,112,117,116,32,105,110,115,116,114,117,99,116,105,111,110,115,58,10,13,10,87,97,108,107,105,110,103,46,46,46,10,10,13,10,82,117,110,110,105,110,103,46,46,46,10,10,25,10,68,105,100,110,39,116,32,109,97,107,101,32,105,116,32,97,99,114,111,115,115,58,10,10,58,73,110,118,97,108,105,100,32,111,112,101,114,97,116,105,111,110,59,32,101,120,112,101,99,116,101,100,32,115,111,109,101,116,104,105,110,103,32,108,105,107,101,32,65,78,68,44,32,79,82,44,32,111,114,32,78,79,84,67,73,110,118,97,108,105,100,32,102,105,114,115,116,32,97,114,103,117,109,101,110,116,59,32,101,120,112,101,99,116,101,100,32,115,111,109,101,116,104,105,110,103,32,108,105,107,101,32,65,44,32,66,44,32,67,44,32,68,44,32,74,44,32,111,114,32,84,40,73,110,118,97,108,105,100,32,115,101,99,111,110,100,32,97,114,103,117,109,101,110,116,59,32,101,120,112,101,99,116,101,100,32,74,32,111,114,32,84,52,79,117,116,32,111,102,32,109,101,109,111,114,121,59,32,97,116,32,109,111,115,116,32,49,53,32,105,110,115,116,114,117,99,116,105,111,110,115,32,99,97,110,32,98,101,32,115,116,111,114,101,100,0,109,1,1005,1262,1270,3,1262,20101,0,1262,0,109,-1,2106,0,0,109,1,21102,1,1288,0,1106,0,1263,21001,1262,0,0,1102,0,1,1262,109,-1,2106,0,0,109,5,21102,1310,1,0,1105,1,1279,22102,1,1,-2,22208,-2,-4,-1,1205,-1,1332,22101,0,-3,1,21101,1332,0,0,1106,0,1421,109,-5,2106,0,0,109,2,21101,1346,0,0,1105,1,1263,21208,1,32,-1,1205,-1,1363,21208,1,9,-1,1205,-1,1363,1105,1,1373,21102,1,1370,0,1106,0,1279,1106,0,1339,109,-2,2105,1,0,109,5,1202,-4,1,1386,20101,0,0,-2,22101,1,-4,-4,21102,0,1,-3,22208,-3,-2,-1,1205,-1,1416,2201,-4,-3,1408,4,0,21201,-3,1,-3,1106,0,1396,109,-5,2106,0,0,109,2,104,10,22102,1,-1,1,21101,0,1436,0,1106,0,1378,104,10,99,109,-2,2105,1,0,109,3,20002,593,753,-1,22202,-1,-2,-1,201,-1,754,754,109,-3,2105,1,0,109,10,21102,5,1,-5,21102,1,1,-4,21102,1,0,-3,1206,-9,1555,21101,3,0,-6,21101,5,0,-7,22208,-7,-5,-8,1206,-8,1507,22208,-6,-4,-8,1206,-8,1507,104,64,1105,1,1529,1205,-6,1527,1201,-7,716,1515,21002,0,-11,-8,21201,-8,46,-8,204,-8,1105,1,1529,104,46,21201,-7,1,-7,21207,-7,22,-8,1205,-8,1488,104,10,21201,-6,-1,-6,21207,-6,0,-8,1206,-8,1484,104,10,21207,-4,1,-8,1206,-8,1569,21102,1,0,-9,1105,1,1689,21208,-5,21,-8,1206,-8,1583,21102,1,1,-9,1106,0,1689,1201,-5,716,1588,21002,0,1,-2,21208,-4,1,-1,22202,-2,-1,-1,1205,-2,1613,21201,-5,0,1,21102,1613,1,0,1105,1,1444,1206,-1,1634,22101,0,-5,1,21101,0,1627,0,1106,0,1694,1206,1,1634,21101,2,0,-3,22107,1,-4,-8,22201,-1,-8,-8,1206,-8,1649,21201,-5,1,-5,1206,-3,1663,21201,-3,-1,-3,21201,-4,1,-4,1106,0,1667,21201,-4,-1,-4,21208,-4,0,-1,1201,-5,716,1676,22002,0,-1,-1,1206,-1,1686,21101,1,0,-4,1105,1,1477,109,-10,2106,0,0,109,11,21102,0,1,-6,21101,0,0,-8,21101,0,0,-7,20208,-6,920,-9,1205,-9,1880,21202,-6,3,-9,1201,-9,921,1724,21002,0,1,-5,1001,1724,1,1733,20101,0,0,-4,21202,-4,1,1,21101,1,0,2,21101,9,0,3,21101,1754,0,0,1105,1,1889,1206,1,1772,2201,-10,-4,1767,1001,1767,716,1767,20102,1,0,-3,1105,1,1790,21208,-4,-1,-9,1206,-9,1786,22101,0,-8,-3,1105,1,1790,22101,0,-7,-3,1001,1733,1,1795,21001,0,0,-2,21208,-2,-1,-9,1206,-9,1812,21201,-8,0,-1,1105,1,1816,22101,0,-7,-1,21208,-5,1,-9,1205,-9,1837,21208,-5,2,-9,1205,-9,1844,21208,-3,0,-1,1106,0,1855,22202,-3,-1,-1,1106,0,1855,22201,-3,-1,-1,22107,0,-1,-1,1106,0,1855,21208,-2,-1,-9,1206,-9,1869,21201,-1,0,-8,1105,1,1873,22101,0,-1,-7,21201,-6,1,-6,1105,1,1708,22102,1,-8,-10,109,-11,2106,0,0,109,7,22207,-6,-5,-3,22207,-4,-6,-2,22201,-3,-2,-1,21208,-1,0,-6,109,-7,2105,1,0,0,109,5,2102,1,-2,1912,21207,-4,0,-1,1206,-1,1930,21102,1,0,-4,22101,0,-4,1,21202,-3,1,2,21102,1,1,3,21102,1949,1,0,1105,1,1954,109,-5,2105,1,0,109,6,21207,-4,1,-1,1206,-1,1977,22207,-5,-3,-1,1206,-1,1977,21202,-5,1,-5,1105,1,2045,22102,1,-5,1,21201,-4,-1,2,21202,-3,2,3,21102,1,1996,0,1105,1,1954,22102,1,1,-5,21102,1,1,-2,22207,-5,-3,-1,1206,-1,2015,21101,0,0,-2,22202,-3,-2,-3,22107,0,-4,-1,1206,-1,2037,21202,-2,1,1,21101,2037,0,0,106,0,1912,21202,-3,-1,-3,22201,-5,-3,-5,109,-6,2106,0,0 diff --git a/2019/inputs/day_22.txt b/2019/inputs/day_22.txt deleted file mode 100644 index b61e760..0000000 --- a/2019/inputs/day_22.txt +++ /dev/null @@ -1,100 +0,0 @@ -deal with increment 34 -deal into new stack -cut 1712 -deal into new stack -cut 1984 -deal with increment 62 -deal into new stack -deal with increment 13 -deal into new stack -deal with increment 67 -cut -5590 -deal with increment 63 -cut -1086 -deal with increment 52 -cut 7894 -deal with increment 71 -cut -864 -deal into new stack -cut 239 -deal with increment 17 -cut -7187 -deal with increment 62 -deal into new stack -cut -7380 -deal with increment 14 -cut 3842 -deal into new stack -cut -5258 -deal with increment 40 -deal into new stack -deal with increment 45 -cut -6026 -deal with increment 21 -cut 3600 -deal with increment 56 -cut 2329 -deal into new stack -deal with increment 13 -cut -2409 -deal with increment 49 -cut 294 -deal into new stack -cut 4776 -deal with increment 17 -cut 5801 -deal with increment 43 -cut 8999 -deal with increment 46 -cut -8527 -deal with increment 4 -deal into new stack -cut -6767 -deal into new stack -deal with increment 33 -cut -532 -deal with increment 29 -deal into new stack -deal with increment 56 -cut 6867 -deal with increment 70 -cut 4276 -deal into new stack -cut -5621 -deal with increment 56 -cut -2966 -deal with increment 70 -deal into new stack -deal with increment 51 -cut -4097 -deal with increment 42 -deal into new stack -cut -5180 -deal with increment 61 -deal into new stack -cut 5367 -deal with increment 50 -cut 3191 -deal with increment 75 -cut 915 -deal with increment 72 -cut -3893 -deal with increment 22 -cut -3405 -deal with increment 30 -cut -6509 -deal with increment 31 -cut -7220 -deal with increment 45 -cut 6489 -deal with increment 70 -cut -4047 -deal into new stack -deal with increment 75 -cut 3980 -deal with increment 10 -cut 9677 -deal into new stack -deal with increment 45 -cut -6969 -deal into new stack diff --git a/2019/inputs/day_23.txt b/2019/inputs/day_23.txt deleted file mode 100644 index e4f8887..0000000 --- a/2019/inputs/day_23.txt +++ /dev/null @@ -1 +0,0 @@ -3,62,1001,62,11,10,109,2215,105,1,0,1846,1780,1120,1959,571,2182,1083,631,1485,1306,1157,2153,1654,1592,1454,664,1815,951,2124,794,695,2023,1378,1248,1518,984,1887,2058,823,1019,891,1277,1685,2089,1341,1922,1186,765,1751,1413,602,922,858,1623,1217,1559,1050,1990,734,1720,0,0,0,0,0,0,0,0,0,0,0,0,3,64,1008,64,-1,62,1006,62,88,1006,61,170,1106,0,73,3,65,20101,0,64,1,21001,66,0,2,21101,105,0,0,1105,1,436,1201,1,-1,64,1007,64,0,62,1005,62,73,7,64,67,62,1006,62,73,1002,64,2,133,1,133,68,133,101,0,0,62,1001,133,1,140,8,0,65,63,2,63,62,62,1005,62,73,1002,64,2,161,1,161,68,161,1101,1,0,0,1001,161,1,169,101,0,65,0,1101,0,1,61,1101,0,0,63,7,63,67,62,1006,62,203,1002,63,2,194,1,68,194,194,1006,0,73,1001,63,1,63,1105,1,178,21102,1,210,0,105,1,69,2101,0,1,70,1102,0,1,63,7,63,71,62,1006,62,250,1002,63,2,234,1,72,234,234,4,0,101,1,234,240,4,0,4,70,1001,63,1,63,1105,1,218,1105,1,73,109,4,21101,0,0,-3,21102,0,1,-2,20207,-2,67,-1,1206,-1,293,1202,-2,2,283,101,1,283,283,1,68,283,283,22001,0,-3,-3,21201,-2,1,-2,1106,0,263,22102,1,-3,-3,109,-4,2106,0,0,109,4,21101,0,1,-3,21101,0,0,-2,20207,-2,67,-1,1206,-1,342,1202,-2,2,332,101,1,332,332,1,68,332,332,22002,0,-3,-3,21201,-2,1,-2,1106,0,312,21202,-3,1,-3,109,-4,2106,0,0,109,1,101,1,68,358,21001,0,0,1,101,3,68,366,21001,0,0,2,21102,1,376,0,1106,0,436,22101,0,1,0,109,-1,2106,0,0,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,562949953421312,1125899906842624,109,8,21202,-6,10,-5,22207,-7,-5,-5,1205,-5,521,21102,1,0,-4,21102,1,0,-3,21101,0,51,-2,21201,-2,-1,-2,1201,-2,385,471,20102,1,0,-1,21202,-3,2,-3,22207,-7,-1,-5,1205,-5,496,21201,-3,1,-3,22102,-1,-1,-5,22201,-7,-5,-7,22207,-3,-6,-5,1205,-5,515,22102,-1,-6,-5,22201,-3,-5,-3,22201,-1,-4,-4,1205,-2,461,1106,0,547,21102,-1,1,-4,21202,-6,-1,-6,21207,-7,0,-5,1205,-5,547,22201,-7,-6,-7,21201,-4,1,-4,1106,0,529,21201,-4,0,-7,109,-8,2106,0,0,109,1,101,1,68,564,20102,1,0,0,109,-1,2106,0,0,1102,97571,1,66,1101,1,0,67,1101,598,0,68,1101,556,0,69,1101,0,1,71,1101,0,600,72,1105,1,73,1,-1605712,28,112719,1102,1,48679,66,1102,1,1,67,1102,1,629,68,1102,556,1,69,1101,0,0,71,1102,631,1,72,1106,0,73,1,1782,1102,1,7877,66,1102,1,2,67,1101,658,0,68,1101,302,0,69,1102,1,1,71,1102,1,662,72,1105,1,73,0,0,0,0,26,81559,1101,0,22453,66,1101,1,0,67,1102,1,691,68,1101,0,556,69,1102,1,1,71,1102,1,693,72,1105,1,73,1,125,35,19959,1101,0,21493,66,1101,0,5,67,1102,1,722,68,1101,0,302,69,1102,1,1,71,1101,0,732,72,1106,0,73,0,0,0,0,0,0,0,0,0,0,2,56893,1102,77191,1,66,1101,1,0,67,1102,1,761,68,1101,556,0,69,1101,1,0,71,1101,763,0,72,1105,1,73,1,1037327,8,179734,1101,57977,0,66,1101,0,1,67,1101,792,0,68,1102,556,1,69,1101,0,0,71,1101,0,794,72,1105,1,73,1,1430,1102,57173,1,66,1101,0,1,67,1101,0,821,68,1102,1,556,69,1101,0,0,71,1101,0,823,72,1106,0,73,1,1128,1101,0,37573,66,1102,1,3,67,1102,1,850,68,1102,253,1,69,1102,1,1,71,1101,856,0,72,1105,1,73,0,0,0,0,0,0,17,209158,1101,0,17569,66,1102,1,1,67,1101,0,885,68,1102,556,1,69,1101,2,0,71,1101,887,0,72,1106,0,73,1,8329,20,85972,34,54146,1101,84653,0,66,1101,1,0,67,1101,0,918,68,1102,1,556,69,1102,1,1,71,1101,0,920,72,1105,1,73,1,3167,20,64479,1101,0,88657,66,1102,1,1,67,1101,0,949,68,1101,556,0,69,1102,0,1,71,1102,1,951,72,1105,1,73,1,1419,1101,0,104579,66,1101,2,0,67,1101,0,978,68,1101,0,302,69,1101,0,1,71,1102,982,1,72,1105,1,73,0,0,0,0,6,76316,1102,33797,1,66,1101,0,1,67,1102,1011,1,68,1101,556,0,69,1102,1,3,71,1101,0,1013,72,1105,1,73,1,5,35,13306,35,26612,39,113194,1102,75781,1,66,1101,0,1,67,1102,1,1046,68,1102,1,556,69,1101,0,1,71,1101,1048,0,72,1106,0,73,1,1777,20,42986,1101,32183,0,66,1102,1,1,67,1102,1,1077,68,1102,556,1,69,1102,1,2,71,1102,1,1079,72,1105,1,73,1,10,35,6653,39,169791,1101,19079,0,66,1101,0,4,67,1102,1,1110,68,1102,253,1,69,1101,0,1,71,1102,1118,1,72,1105,1,73,0,0,0,0,0,0,0,0,7,7877,1102,1,56893,66,1101,0,4,67,1102,1147,1,68,1101,253,0,69,1102,1,1,71,1101,0,1155,72,1105,1,73,0,0,0,0,0,0,0,0,45,73189,1102,104651,1,66,1101,1,0,67,1102,1,1184,68,1101,556,0,69,1101,0,0,71,1101,0,1186,72,1105,1,73,1,1351,1101,0,43661,66,1101,1,0,67,1102,1213,1,68,1101,0,556,69,1102,1,1,71,1101,1215,0,72,1105,1,73,1,763676,28,75146,1101,16963,0,66,1102,1,1,67,1102,1,1244,68,1102,1,556,69,1102,1,1,71,1102,1246,1,72,1106,0,73,1,11,26,163118,1101,461,0,66,1101,1,0,67,1102,1275,1,68,1101,556,0,69,1101,0,0,71,1102,1,1277,72,1106,0,73,1,1263,1102,101483,1,66,1101,1,0,67,1102,1304,1,68,1102,556,1,69,1102,0,1,71,1102,1306,1,72,1106,0,73,1,1607,1101,0,14251,66,1101,0,3,67,1102,1333,1,68,1101,302,0,69,1102,1,1,71,1102,1,1339,72,1105,1,73,0,0,0,0,0,0,2,170679,1101,0,27073,66,1101,0,4,67,1102,1,1368,68,1102,1,302,69,1101,1,0,71,1101,0,1376,72,1106,0,73,0,0,0,0,0,0,0,0,1,154743,1101,0,15583,66,1101,0,1,67,1102,1,1405,68,1102,556,1,69,1101,0,3,71,1101,0,1407,72,1106,0,73,1,1,33,14998,21,302361,34,81219,1101,0,56597,66,1101,0,6,67,1102,1440,1,68,1102,1,302,69,1102,1,1,71,1101,1452,0,72,1106,0,73,0,0,0,0,0,0,0,0,0,0,0,0,45,146378,1102,6991,1,66,1101,0,1,67,1102,1,1481,68,1102,1,556,69,1101,0,1,71,1102,1,1483,72,1106,0,73,1,902,21,201574,1102,1,89867,66,1101,2,0,67,1101,1512,0,68,1101,0,302,69,1101,1,0,71,1102,1516,1,72,1106,0,73,0,0,0,0,5,10798,1102,1,61553,66,1102,1,1,67,1102,1,1545,68,1102,556,1,69,1101,0,6,71,1101,0,1547,72,1106,0,73,1,2,20,21493,17,104579,7,15754,26,244677,39,282985,39,339582,1101,73189,0,66,1102,2,1,67,1101,0,1586,68,1101,0,351,69,1102,1,1,71,1101,0,1590,72,1105,1,73,0,0,0,0,255,60251,1101,0,91463,66,1102,1,1,67,1101,1619,0,68,1101,556,0,69,1102,1,1,71,1101,0,1621,72,1105,1,73,1,6467743,28,37573,1102,1,34369,66,1101,0,1,67,1101,1650,0,68,1102,556,1,69,1102,1,1,71,1101,1652,0,72,1105,1,73,1,8933,21,100787,1102,1,77081,66,1101,0,1,67,1101,1681,0,68,1102,1,556,69,1102,1,1,71,1101,1683,0,72,1105,1,73,1,2310,33,7499,1101,0,44699,66,1101,0,1,67,1102,1712,1,68,1101,556,0,69,1101,3,0,71,1101,1714,0,72,1105,1,73,1,3,8,89867,5,5399,34,108292,1101,97387,0,66,1102,1,1,67,1102,1747,1,68,1102,556,1,69,1102,1,1,71,1102,1749,1,72,1105,1,73,1,4,20,107465,1101,0,13463,66,1101,1,0,67,1101,1778,0,68,1101,0,556,69,1102,0,1,71,1102,1,1780,72,1106,0,73,1,1250,1102,51581,1,66,1102,1,3,67,1102,1807,1,68,1101,302,0,69,1101,0,1,71,1102,1,1813,72,1105,1,73,0,0,0,0,0,0,2,113786,1102,1,73679,66,1102,1,1,67,1102,1842,1,68,1102,556,1,69,1101,1,0,71,1102,1,1844,72,1105,1,73,1,160,39,56597,1101,0,60251,66,1101,0,1,67,1101,1873,0,68,1102,556,1,69,1102,6,1,71,1101,1875,0,72,1106,0,73,1,22677,47,94099,1,51581,1,103162,9,14251,9,28502,9,42753,1101,0,81559,66,1101,0,3,67,1102,1914,1,68,1101,0,302,69,1101,1,0,71,1102,1920,1,72,1105,1,73,0,0,0,0,0,0,47,188198,1101,0,6653,66,1101,4,0,67,1102,1949,1,68,1101,302,0,69,1101,0,1,71,1101,0,1957,72,1106,0,73,0,0,0,0,0,0,0,0,39,226388,1101,63659,0,66,1101,0,1,67,1101,0,1986,68,1102,556,1,69,1102,1,1,71,1102,1,1988,72,1105,1,73,1,-2,34,27073,1101,94099,0,66,1101,2,0,67,1101,0,2017,68,1101,0,302,69,1102,1,1,71,1102,2021,1,72,1106,0,73,0,0,0,0,2,227572,1101,100787,0,66,1101,0,3,67,1101,2050,0,68,1102,1,302,69,1101,1,0,71,1101,0,2056,72,1105,1,73,0,0,0,0,0,0,6,19079,1101,0,47599,66,1102,1,1,67,1101,0,2085,68,1102,556,1,69,1102,1,1,71,1101,2087,0,72,1105,1,73,1,2677,33,22497,1102,1,7499,66,1101,0,3,67,1101,2116,0,68,1102,1,302,69,1101,0,1,71,1101,0,2122,72,1105,1,73,0,0,0,0,0,0,6,38158,1101,0,101359,66,1102,1,1,67,1101,2151,0,68,1102,1,556,69,1102,1,0,71,1102,1,2153,72,1105,1,73,1,1752,1101,48091,0,66,1101,1,0,67,1102,1,2180,68,1101,0,556,69,1101,0,0,71,1101,0,2182,72,1106,0,73,1,1463,1102,5399,1,66,1101,0,2,67,1102,1,2209,68,1101,0,302,69,1102,1,1,71,1101,0,2213,72,1106,0,73,0,0,0,0,6,57237 diff --git a/2019/inputs/day_24.txt b/2019/inputs/day_24.txt deleted file mode 100644 index ba900ad..0000000 --- a/2019/inputs/day_24.txt +++ /dev/null @@ -1,5 +0,0 @@ -##.#. -.##.. -##.#. -.#### -###.. diff --git a/2019/inputs/day_25.txt b/2019/inputs/day_25.txt deleted file mode 100644 index 5351575..0000000 --- a/2019/inputs/day_25.txt +++ /dev/null @@ -1 +0,0 @@ -109,4795,21102,1,3124,1,21102,1,13,0,1106,0,1424,21102,1,166,1,21101,24,0,0,1105,1,1234,21102,31,1,0,1106,0,1984,1106,0,13,6,4,3,2,52,51,21,4,28,56,55,3,19,-9,-10,47,89,88,90,90,6,77,73,85,71,1,76,68,63,65,22,-27,70,76,81,87,5,105,105,107,108,95,4,97,92,109,109,5,110,105,110,108,95,4,115,96,109,109,13,-3,59,101,85,92,97,13,84,80,92,78,34,-15,26,-16,46,88,72,79,84,0,72,76,-3,85,74,79,75,-8,64,68,75,57,65,70,64,66,72,8,-41,32,-22,56,77,82,-4,60,76,62,70,-2,74,-11,55,52,68,67,73,56,60,52,-20,44,56,66,-24,48,58,42,49,54,-16,-53,10,0,56,99,96,95,82,94,83,45,-9,23,-13,61,85,88,74,71,82,73,79,73,89,67,65,-4,62,73,70,69,56,68,57,2,-35,24,-14,64,85,90,4,70,67,79,7,83,-2,68,75,-5,78,65,57,75,-10,76,53,76,0,-37,31,-21,57,78,83,-3,64,74,72,0,76,-9,73,58,57,-13,70,57,49,67,-18,54,64,48,55,-23,48,44,56,42,-14,-51,14,-4,74,95,100,14,97,77,86,79,9,92,79,75,5,27,-17,61,82,87,1,68,78,76,4,80,-5,66,58,78,60,-10,73,60,52,70,-15,57,67,51,58,-6,-43,14,-4,74,95,100,14,81,94,90,90,9,92,79,75,5,60,-50,23,42,38,-32,38,39,30,42,47,-38,30,36,28,25,41,38,34,31,18,23,29,19,33,-52,20,29,-55,27,27,27,8,15,-61,22,16,-64,24,13,18,-54,-69,-70,-14,7,12,-74,-8,-11,1,-71,5,-80,-4,-3,3,-15,-84,-85,-109,29,-19,59,80,85,-1,82,62,71,64,-6,77,64,60,-10,62,66,57,59,63,57,67,51,-19,56,58,57,57,-10,-47,44,-34,39,58,54,-16,60,61,57,64,48,56,-23,52,40,60,38,-28,44,53,-31,55,32,55,-35,48,42,41,-39,32,38,42,-42,-44,12,33,38,-48,28,19,25,32,-52,-76,-77,59,-49,13,55,-30,42,51,-33,49,50,32,31,31,39,36,48,-42,24,35,32,34,29,21,35,19,25,37,-53,14,10,26,18,-57,-59,-3,18,23,-63,1,17,3,-67,1,-4,14,-2,6,-73,-8,14,-76,-12,-78,-40,2,4,-13,-82,-106,-107,35,-25,53,74,79,0,74,60,-10,65,53,72,64,52,56,52,50,-19,53,57,62,56,-24,58,54,38,39,40,-29,-31,2,56,35,-34,-58,-59,138,-128,-74,-108,-33,-31,-26,-44,-101,-114,-33,-37,-51,-39,-35,-47,-54,-122,-37,-45,-52,-59,-58,-128,-46,-65,-42,-49,-133,-132,-102,-60,-68,-56,-55,-139,-141,-106,-61,-65,-72,-78,-64,-148,-70,-72,-151,-68,-81,-81,-72,-156,-74,-86,-86,-80,-161,-97,-81,-95,-165,-94,-98,-103,-83,-97,-102,-90,-173,-90,-103,-111,-99,-178,-95,-108,-112,-182,-115,-115,-101,-117,-120,-104,-120,-122,-191,-106,-128,-118,-110,-127,-196,-196,-199,-135,-123,-134,-203,-115,-126,-121,-207,-143,-127,-141,-211,-143,-139,-145,-148,-132,-148,-150,-219,-154,-156,-155,-148,-224,-141,-147,-227,-144,-157,-161,-231,-165,-161,-165,-168,-161,-157,-159,-166,-162,-157,-228,-265,138,-128,-74,-108,-33,-31,-26,-44,-101,-114,-33,-37,-51,-39,-35,-47,-54,-122,-37,-45,-52,-59,-58,-128,-46,-65,-42,-49,-133,-132,-102,-60,-68,-56,-55,-139,-141,-106,-61,-65,-72,-78,-64,-148,-70,-72,-151,-68,-81,-81,-72,-156,-74,-86,-86,-80,-161,-97,-81,-95,-165,-90,-94,-97,-97,-86,-102,-90,-173,-90,-103,-111,-99,-178,-95,-108,-112,-182,-115,-115,-101,-117,-120,-104,-120,-122,-191,-106,-128,-118,-110,-127,-196,-196,-199,-135,-123,-134,-203,-115,-126,-121,-207,-143,-127,-141,-211,-143,-139,-145,-148,-132,-148,-150,-219,-154,-156,-155,-148,-224,-141,-147,-227,-144,-157,-161,-231,-165,-161,-165,-168,-161,-157,-159,-166,-162,-157,-228,-265,263,-253,-199,-233,-158,-156,-151,-169,-226,-239,-158,-162,-176,-164,-160,-172,-179,-247,-162,-170,-177,-184,-183,-253,-171,-190,-167,-174,-258,-257,-227,-183,-197,-187,-175,-182,-193,-184,-268,-202,-191,-194,-192,-197,-205,-191,-207,-276,-278,-222,-201,-196,-282,-206,-219,-196,-286,-207,-206,-210,-223,-222,-223,-225,-280,-293,-296,-232,-220,-231,-300,-212,-223,-218,-304,-236,-228,-223,-239,-227,-310,-227,-240,-244,-314,-248,-237,-250,-243,-239,-247,-237,-308,-345,-273,-260,-248,-243,-263,-329,-252,-252,-248,-260,-267,-266,-253,-337,-249,-260,-255,-259,-342,-260,-267,-280,-270,-271,-348,-281,-268,-272,-279,-285,-342,-355,-280,-278,-279,-284,-277,-361,-282,-278,-274,-275,-290,-298,-300,-369,-300,-292,-290,-373,-309,-375,-299,-298,-301,-310,-302,-297,-370,-383,-302,-316,-321,-311,-315,-299,-321,-308,-392,-306,-322,-330,-312,-397,-326,-334,-317,-401,-330,-338,-324,-325,-337,-329,-339,-341,-398,-411,-347,-335,-346,-415,-334,-352,-350,-346,-341,-338,-422,-334,-345,-340,-344,-427,-345,-357,-357,-351,-432,-365,-361,-353,-367,-370,-354,-363,-351,-427,-464,-441,-397,-373,-434,-447,-376,-380,-374,-375,-373,-452,-454,-398,-377,-372,-458,-376,-388,-382,-377,-387,-396,-465,-400,-398,-468,-404,-404,-395,-403,-473,-390,-396,-476,-406,-409,-395,-480,-408,-404,-483,-418,-396,-486,-403,-399,-409,-417,-413,-421,-493,37,-5,73,71,-8,75,62,58,-12,62,55,74,64,48,50,-19,45,63,-22,61,48,44,-26,50,37,44,48,-31,33,40,48,41,43,30,37,-25,-38,-63,0,0,109,7,21101,0,0,-2,22208,-2,-5,-1,1205,-1,1169,22202,-2,-4,1,22201,1,-6,1,21202,-2,1,2,21102,1162,1,0,2105,1,-3,21201,-2,1,-2,1106,0,1136,109,-7,2106,0,0,109,6,2101,0,-5,1182,20101,0,0,-2,21102,0,1,-3,21201,-5,1,-5,22208,-3,-2,-1,1205,-1,1229,2201,-5,-3,1205,20101,0,0,1,22102,1,-3,2,21202,-2,1,3,21102,1,1222,0,2105,1,-4,21201,-3,1,-3,1105,1,1192,109,-6,2106,0,0,109,2,21202,-1,1,1,21101,1256,0,2,21102,1251,1,0,1106,0,1174,109,-2,2105,1,0,109,5,22201,-4,-3,-1,22201,-2,-1,-1,204,-1,109,-5,2106,0,0,109,3,1202,-2,1,1280,1006,0,1303,104,45,104,32,1201,-1,66,1291,21002,0,1,1,21101,1301,0,0,1105,1,1234,104,10,109,-3,2105,1,0,0,0,109,2,2101,0,-1,1309,1102,1,0,1308,21102,1,4601,1,21102,13,1,2,21101,4,0,3,21102,1,1353,4,21101,1343,0,0,1105,1,1130,20102,1,1308,-1,109,-2,2106,0,0,63,109,3,1201,-2,0,1360,20008,0,1309,-1,1206,-1,1419,1005,1308,1398,1102,1,1,1308,21008,1309,-1,-1,1206,-1,1387,21102,106,1,1,1106,0,1391,21101,0,92,1,21102,1,1398,0,1106,0,1234,104,45,104,32,1201,-2,1,1407,21002,0,1,1,21102,1417,1,0,1105,1,1234,104,10,109,-3,2105,1,0,109,3,1202,-2,1,1128,21102,1,34,1,21101,0,1441,0,1106,0,1234,1001,1128,0,1447,20101,0,0,1,21102,1,1456,0,1105,1,1234,21102,1,41,1,21101,1467,0,0,1105,1,1234,1001,1128,1,1472,21002,0,1,1,21101,1482,0,0,1105,1,1234,21102,46,1,1,21102,1493,1,0,1105,1,1234,21001,1128,3,1,21102,4,1,2,21102,1,1,3,21102,1,1273,4,21101,1516,0,0,1106,0,1130,21001,1128,0,1,21102,1,1527,0,1105,1,1310,1001,1128,2,1532,21002,0,1,-1,1206,-1,1545,21101,0,1545,0,2105,1,-1,109,-3,2106,0,0,109,0,99,109,2,1102,1,0,1550,21101,0,4601,1,21102,13,1,2,21101,4,0,3,21101,1664,0,4,21102,1,1582,0,1105,1,1130,2,2486,1352,1551,1102,0,1,1552,21001,1550,0,1,21102,1,33,2,21101,0,1702,3,21102,1,1609,0,1106,0,2722,21007,1552,0,-1,1205,-1,1630,20107,0,1552,-1,1205,-1,1637,21102,1,1630,0,1106,0,1752,21101,0,548,1,1106,0,1641,21101,687,0,1,21101,0,1648,0,1105,1,1234,21101,0,4457,1,21101,1659,0,0,1106,0,1424,109,-2,2105,1,0,109,4,21202,-2,-1,-2,2102,1,-3,1675,21008,0,-1,-1,1206,-1,1697,1201,-3,2,1687,20101,-27,0,-3,22201,-3,-2,-3,2001,1550,-3,1550,109,-4,2105,1,0,109,5,21008,1552,0,-1,1206,-1,1747,1201,-3,1901,1717,20101,0,0,-2,1205,-4,1736,20207,-2,1551,-1,1205,-1,1747,1102,-1,1,1552,1105,1,1747,22007,1551,-2,-1,1205,-1,1747,1102,1,1,1552,109,-5,2105,1,0,109,1,21101,826,0,1,21102,1765,1,0,1105,1,1234,21002,1550,1,1,21102,1776,1,0,1105,1,2863,21102,1090,1,1,21102,1787,1,0,1106,0,1234,99,1106,0,1787,109,-1,2106,0,0,109,1,21101,512,0,1,21101,0,1809,0,1106,0,1234,99,1105,1,1809,109,-1,2105,1,0,109,1,1102,1,1,1129,109,-1,2106,0,0,109,1,21102,1,377,1,21101,0,1842,0,1105,1,1234,1106,0,1831,109,-1,2106,0,0,109,1,21101,407,0,1,21101,1863,0,0,1105,1,1234,99,1106,0,1863,109,-1,2106,0,0,109,1,21102,1,452,1,21101,1885,0,0,1106,0,1234,99,1106,0,1885,109,-1,2105,1,0,1941,1947,1953,1958,1965,1972,1978,4083,3936,4362,4458,4463,4254,3769,4145,4116,3848,4384,3957,4371,4258,3951,4063,3935,4053,4163,4259,3817,4062,4500,3970,4331,4022,3969,4163,4483,4089,3810,4092,4196,2281,2468,2418,2450,2487,2125,2505,5,95,108,104,104,23,5,96,91,108,108,1,4,101,105,112,3,6,104,104,106,107,94,-1,6,109,104,109,107,94,-1,5,111,91,100,93,23,5,114,95,108,108,1,109,3,21102,1993,1,0,1106,0,2634,1006,1129,2010,21101,0,316,1,21101,0,2007,0,1106,0,1234,1106,0,2076,21101,0,0,-1,1201,-1,1894,2019,21001,0,0,1,21102,0,1,2,21102,1,0,3,21101,0,2037,0,1106,0,2525,1206,1,2054,1201,-1,1934,2050,21102,2051,1,0,106,0,0,1105,1,2076,21201,-1,1,-1,21207,-1,7,-2,1205,-2,2014,21101,0,177,1,21102,1,2076,0,1105,1,1234,109,-3,2105,1,0,109,3,2001,1128,-2,2088,21002,0,1,-1,1205,-1,2108,21101,201,0,1,21101,2105,0,0,1105,1,1234,1106,0,2119,22101,0,-1,1,21101,2119,0,0,1106,0,1424,109,-3,2105,1,0,0,109,1,1101,0,0,2124,21101,0,4601,1,21101,0,13,2,21101,0,4,3,21102,2173,1,4,21102,2154,1,0,1106,0,1130,1005,2124,2168,21102,226,1,1,21102,2168,1,0,1106,0,1234,109,-1,2106,0,0,109,3,1005,2124,2275,1201,-2,0,2183,20008,0,1128,-1,1206,-1,2275,1201,-2,1,2195,20102,1,0,-1,21202,-1,1,1,21102,5,1,2,21102,1,1,3,21102,2216,1,0,1106,0,2525,1206,1,2275,21102,1,258,1,21101,2230,0,0,1105,1,1234,21202,-1,1,1,21101,0,2241,0,1106,0,1234,104,46,104,10,1101,1,0,2124,1201,-2,0,2256,1101,0,-1,0,1201,-2,3,2262,21002,0,1,-1,1206,-1,2275,21101,2275,0,0,2105,1,-1,109,-3,2106,0,0,0,109,1,1101,0,0,2280,21101,4601,0,1,21101,0,13,2,21102,1,4,3,21102,1,2329,4,21102,1,2310,0,1106,0,1130,1005,2280,2324,21102,1,273,1,21102,1,2324,0,1105,1,1234,109,-1,2105,1,0,109,3,1005,2280,2413,1201,-2,0,2339,21008,0,-1,-1,1206,-1,2413,1201,-2,1,2351,20102,1,0,-1,22101,0,-1,1,21102,5,1,2,21101,1,0,3,21102,2372,1,0,1105,1,2525,1206,1,2413,21102,301,1,1,21102,2386,1,0,1106,0,1234,22102,1,-1,1,21102,2397,1,0,1106,0,1234,104,46,104,10,1102,1,1,2280,1201,-2,0,2412,101,0,1128,0,109,-3,2106,0,0,109,1,21101,0,-1,1,21102,1,2431,0,1105,1,1310,1205,1,2445,21102,1,133,1,21101,0,2445,0,1106,0,1234,109,-1,2106,0,0,109,1,21102,3,1,1,21101,2463,0,0,1106,0,2081,109,-1,2106,0,0,109,1,21101,4,0,1,21102,1,2481,0,1105,1,2081,109,-1,2106,0,0,70,109,1,21102,5,1,1,21102,2500,1,0,1105,1,2081,109,-1,2105,1,0,109,1,21102,6,1,1,21102,2518,1,0,1105,1,2081,109,-1,2106,0,0,0,0,109,5,2102,1,-3,2523,1101,0,1,2524,21202,-4,1,1,21101,0,2585,2,21101,2550,0,0,1105,1,1174,1206,-2,2576,2101,0,-4,2558,2001,0,-3,2566,101,3094,2566,2566,21008,0,-1,-1,1205,-1,2576,1102,0,1,2524,21001,2524,0,-4,109,-5,2105,1,0,109,5,22201,-4,-3,-4,22201,-4,-2,-4,21208,-4,10,-1,1206,-1,2606,21102,-1,1,-4,201,-3,2523,2615,1001,2615,3094,2615,21002,0,1,-1,22208,-4,-1,-1,1205,-1,2629,1101,0,0,2524,109,-5,2106,0,0,109,4,21101,0,3094,1,21102,30,1,2,21101,1,0,3,21102,1,2706,4,21102,1,2659,0,1105,1,1130,21101,0,0,-3,203,-2,21208,-2,10,-1,1205,-1,2701,21207,-2,0,-1,1205,-1,2663,21207,-3,29,-1,1206,-1,2663,2101,3094,-3,2693,2102,1,-2,0,21201,-3,1,-3,1106,0,2663,109,-4,2105,1,0,109,2,1201,-1,0,2715,1102,-1,1,0,109,-2,2105,1,0,0,109,5,2102,1,-2,2721,21207,-4,0,-1,1206,-1,2739,21102,1,0,-4,21202,-4,1,1,21202,-3,1,2,21102,1,1,3,21101,0,2758,0,1105,1,2763,109,-5,2106,0,0,109,6,21207,-4,1,-1,1206,-1,2786,22207,-5,-3,-1,1206,-1,2786,21201,-5,0,-5,1105,1,2858,22101,0,-5,1,21201,-4,-1,2,21202,-3,2,3,21101,0,2805,0,1105,1,2763,21202,1,1,-5,21101,0,1,-2,22207,-5,-3,-1,1206,-1,2824,21102,0,1,-2,22202,-3,-2,-3,22107,0,-4,-1,1206,-1,2850,22102,1,-2,1,21201,-4,-1,2,21101,0,2850,0,105,1,2721,21202,-3,-1,-3,22201,-5,-3,-5,109,-6,2105,1,0,109,3,21208,-2,0,-1,1205,-1,2902,21207,-2,0,-1,1205,-1,2882,1105,1,2888,104,45,21202,-2,-1,-2,21201,-2,0,1,21102,2899,1,0,1106,0,2909,1106,0,2904,104,48,109,-3,2106,0,0,109,4,22102,1,-3,1,21101,10,0,2,21101,0,2926,0,1105,1,3010,21201,1,0,-2,21201,2,0,-1,1206,-2,2948,22101,0,-2,1,21101,0,2948,0,1106,0,2909,22101,48,-1,-1,204,-1,109,-4,2105,1,0,1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648,4294967296,8589934592,17179869184,34359738368,68719476736,137438953472,274877906944,549755813888,1099511627776,2199023255552,4398046511104,8796093022208,17592186044416,35184372088832,70368744177664,140737488355328,281474976710656,562949953421312,1125899906842624,109,8,21101,0,0,-4,21101,0,0,-3,21102,1,51,-2,21201,-2,-1,-2,1201,-2,2959,3034,20101,0,0,-1,21202,-3,2,-3,22207,-7,-1,-5,1205,-5,3059,21201,-3,1,-3,22102,-1,-1,-5,22201,-7,-5,-7,22207,-3,-6,-5,1205,-5,3078,22102,-1,-6,-5,22201,-3,-5,-3,22201,-1,-4,-4,1205,-2,3024,21202,-4,1,-7,21202,-3,1,-6,109,-8,2106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3131,3143,0,3252,3527,0,0,11,61,105,95,94,17,50,97,83,78,79,83,108,-19,2,7,-79,-9,-2,2,-83,-11,-7,-86,-3,-16,-7,-11,-6,-21,-21,-94,-30,-96,-25,-19,-23,-31,-101,-29,-25,-104,-21,-34,-38,-108,-39,-34,-32,-33,-31,-114,-43,-47,-35,-49,-105,-120,-69,-43,-123,-49,-56,-57,-47,-128,-40,-51,-46,-50,-133,-51,-63,-63,-57,-138,-69,-58,-62,-65,-143,-79,-69,-63,-68,-148,-79,-68,-82,-83,-63,-81,-77,-85,-145,-158,-75,-88,-92,-162,-91,-85,-89,-97,-167,-96,-104,-87,-171,-106,-104,-105,-97,-176,-94,-109,-114,-104,-112,-114,-169,3259,3267,0,3344,0,3124,0,7,65,89,99,98,108,85,108,76,8,27,27,36,-48,16,32,18,13,-53,18,10,27,-57,8,10,9,17,-62,16,16,19,7,10,5,21,-1,-3,-72,-3,5,7,-76,6,1,-2,-11,3,-10,-10,-6,-14,-59,-87,1,-10,-5,-84,-10,-24,-94,-21,-11,-14,-14,-99,-22,-22,-18,-103,-23,-20,-33,-23,-39,-109,-27,-26,-30,-44,-114,-28,-44,-52,-34,-105,3351,3359,0,0,3408,3252,0,7,76,108,102,104,86,91,88,48,36,55,51,-19,46,58,66,46,59,-25,48,58,55,55,-30,36,47,45,50,30,37,41,-38,38,39,41,27,-43,22,34,42,22,35,-35,-50,-51,-2,16,13,30,26,26,15,27,9,15,27,-49,3415,3423,0,0,3458,4392,3344,7,76,108,88,88,97,89,102,34,48,66,69,73,62,62,61,73,3,72,61,77,55,53,-2,-17,34,53,49,68,-15,59,45,-25,39,49,48,-29,39,46,48,51,55,-21,3465,3486,0,3584,0,4053,3408,20,51,84,80,93,8,62,88,70,84,83,75,79,71,-1,33,66,74,79,63,75,40,32,70,77,-11,57,63,69,54,-16,51,61,-19,69,58,63,-23,63,57,39,53,-28,51,52,38,51,36,44,49,47,-37,41,39,-40,43,30,26,-44,26,33,-16,3534,3548,0,0,0,0,3124,13,54,100,86,103,15,63,98,77,93,94,78,90,90,35,49,68,64,-6,59,61,59,73,-11,53,69,55,-15,49,59,58,-19,64,58,57,-23,59,52,39,49,48,-29,40,48,50,-33,55,44,49,-23,3591,3600,0,0,3732,3458,3673,8,75,96,89,96,20,53,83,106,72,11,44,38,37,35,37,38,36,-48,17,29,33,20,-53,-4,14,12,-44,-12,20,23,8,6,-63,-14,4,7,11,0,0,-1,11,-72,4,-5,-7,-3,-10,-5,-1,-11,-81,-17,-5,-16,-85,-4,-18,-17,-4,-14,-26,-10,-93,-12,-26,-23,-19,-30,-30,-31,-19,-102,-26,-35,-37,-33,-40,-35,-31,-41,-97,3680,3703,0,3901,3584,0,4241,22,50,88,92,7,41,77,83,70,81,77,65,83,67,-3,34,74,79,71,76,56,63,67,28,55,82,79,70,72,78,85,9,-4,68,78,0,75,-9,73,73,61,63,62,-15,71,62,64,56,53,57,49,-9,3739,3748,0,3828,0,3981,3584,8,59,102,104,103,93,87,97,99,79,5,24,20,-50,26,17,31,11,21,-56,30,7,17,16,22,-62,2,14,3,-66,17,4,0,-70,6,-3,11,-9,1,-76,-7,-2,0,-1,1,-82,-18,-2,-16,-86,-4,-12,-16,-19,-19,-8,-17,-5,-95,-28,-24,-28,-29,-31,-19,-33,-25,-20,-105,-39,-28,-32,-30,-28,-28,-98,-113,-67,-33,-116,-52,-36,-50,-120,-37,-50,-54,-35,-94,3835,3844,0,4166,0,3732,0,8,64,102,98,100,88,88,85,92,56,27,54,51,42,51,49,39,-31,51,36,35,42,47,-37,46,40,-40,31,23,43,25,-45,30,22,22,35,-50,22,32,-53,25,23,-56,27,14,10,-60,-22,11,2,14,19,-66,-28,14,4,-2,-71,11,-4,10,9,-3,1,-7,-65,3908,3920,0,0,0,3673,0,11,68,86,102,87,99,102,80,98,92,94,100,60,24,43,39,51,37,-33,31,47,33,-37,27,-39,30,28,45,-43,40,24,30,22,35,18,29,29,17,30,-27,-55,28,15,11,30,-53,21,7,-63,1,11,10,-67,-2,10,6,13,-3,-5,-74,-7,3,10,0,-67,-80,3,-10,-4,1,-14,-14,-73,3988,3997,0,3732,4095,0,0,8,72,88,105,104,85,90,87,100,55,29,48,44,63,-20,54,40,-30,34,-32,43,39,49,48,39,31,-39,44,46,31,40,40,44,-46,18,30,19,-50,32,32,12,28,29,17,21,13,-59,24,18,-62,13,15,14,9,-67,-3,7,6,-71,-7,3,-1,0,-7,-63,4060,4068,0,3458,0,0,0,7,68,97,107,89,93,89,97,26,43,91,73,85,91,85,72,72,76,68,3,78,-6,63,74,60,59,79,57,0,54,67,57,52,50,-5,4102,4114,0,0,0,4337,3981,11,58,98,90,91,95,85,84,96,86,90,82,51,38,59,64,-22,60,45,44,-26,38,-28,58,42,42,52,36,32,44,29,45,30,-39,47,32,42,29,-44,35,30,18,30,34,-50,19,27,29,-54,-4,24,25,15,19,11,7,20,16,9,3,-66,19,-50,-55,4173,4185,0,0,0,3828,0,11,72,87,92,87,95,83,84,14,57,77,77,55,34,55,60,-26,56,41,40,-30,38,54,40,34,34,42,30,31,-39,32,28,40,26,-44,34,24,-47,32,33,29,33,27,31,35,25,13,-57,22,20,16,28,15,6,18,-65,2,2,15,4,1,7,-72,14,5,7,-1,-63,4248,4259,0,0,3673,0,0,10,68,86,106,92,89,82,100,88,93,91,77,6,38,18,36,36,33,-25,-52,-2,30,27,9,21,10,10,8,-47,-62,-15,12,4,-1,16,1,-69,13,14,8,7,2,14,-76,0,-9,-14,3,4,0,-14,-7,-16,-8,-3,-5,-89,-20,-9,-13,-16,-94,-25,-23,-27,-14,-10,-100,-18,-18,-38,-22,-22,-106,-23,-29,-109,-28,-42,-45,-48,-38,-42,-50,-35,-53,-35,-51,-107,4344,4351,0,4095,0,0,0,6,59,107,91,88,90,90,40,38,70,68,58,-12,66,56,-15,68,55,51,-19,47,44,44,50,54,44,58,56,-28,54,39,38,45,-33,50,44,-36,35,27,47,29,-41,38,36,43,24,36,-33,4399,4422,0,3408,0,4457,0,22,65,74,90,87,6,41,86,76,88,70,0,44,63,70,74,79,63,71,57,69,57,58,34,39,81,-4,60,74,73,61,56,72,72,-12,71,65,-15,50,52,-18,68,59,61,53,50,54,46,-26,51,51,53,47,34,44,43,55,-21,4464,4484,0,4392,4556,0,0,19,64,81,78,95,91,81,91,95,5,39,75,71,68,75,79,77,70,74,79,71,2,38,-41,42,29,25,-45,32,22,40,35,-50,31,27,26,23,-43,-56,8,-58,21,22,8,21,20,21,17,3,-54,15,0,8,12,1,11,-1,11,-7,-77,-8,-3,-1,-2,0,-83,3,-12,-10,-11,-88,-3,-21,-9,-19,-23,-5,-95,-7,-18,-13,-17,-100,-28,-34,-34,-26,-21,-33,-23,-19,-95,4563,4588,1553,0,0,0,4457,24,56,89,75,88,87,88,84,70,13,50,67,75,79,68,78,66,78,60,-10,27,64,66,65,67,12,53,97,83,93,105,105,87,91,83,25,24,23,3981,4653,16777243,0,3344,4659,32796,0,4166,4672,67108893,0,3252,4683,46,0,3673,4699,31,1818,3527,4719,536870944,0,3408,4727,268435489,0,3584,4741,34,1829,3828,4755,35,1850,4241,4767,36,1796,4053,4778,1061,0,4337,4782,38,1872,3901,4790,41,0,5,110,98,94,100,99,12,95,95,87,90,94,15,80,92,96,95,86,78,10,106,86,97,85,97,102,98,88,92,82,15,104,85,80,98,85,81,93,10,86,73,74,78,78,82,72,19,84,85,76,88,93,8,76,82,74,71,87,84,80,77,64,69,75,65,79,7,90,102,107,91,99,98,84,13,102,98,96,95,91,14,92,82,11,77,74,92,29,13,92,96,87,89,93,87,97,81,11,86,88,87,87,11,98,99,95,102,86,94,15,90,78,98,76,10,91,104,87,84,98,86,16,95,93,81,3,106,113,98,7,105,96,102,106,100,98,102,4,95,92,101,94 diff --git a/2019/inputs/day_3.txt b/2019/inputs/day_3.txt deleted file mode 100644 index 504e9fe..0000000 --- a/2019/inputs/day_3.txt +++ /dev/null @@ -1,2 +0,0 @@ -R995,D882,R144,U180,L638,U282,L907,D326,R731,D117,R323,U529,R330,U252,R73,U173,R345,U552,R230,U682,R861,U640,L930,U590,L851,D249,R669,D878,R951,D545,L690,U392,R609,D841,R273,D465,R546,U858,L518,U567,L474,D249,L463,D390,L443,U392,L196,U418,R433,U651,R520,D450,R763,U714,R495,D716,L219,D289,L451,D594,R874,U451,R406,U662,R261,D242,R821,D951,R808,D862,L871,U133,R841,D465,R710,U300,R879,D497,R85,U173,R941,U953,R705,U972,R260,D315,L632,U182,L26,D586,R438,U275,L588,U956,L550,D576,R738,U974,R648,D880,R595,D510,L789,U455,R627,U709,R7,D486,L184,U999,L404,U329,L852,D154,L232,U398,L587,U881,R938,D40,L657,D164,R45,D917,R106,U698,L824,D426,R879,U700,R847,D891,L948,U625,R663,D814,R217,U30,R610,D781,L415,D435,L904,U815,R152,U587,R287,U141,R866,D636,L290,D114,L751,D660,R6,U383,L263,U799,R330,U96,L6,U542,L449,D361,R486,U278,L990,U329,L519,U605,R501,D559,R916,U198,L499,D174,R513,U396,L473,D565,R337,D770,R211,D10,L591,D920,R367,D748,L330,U249,L307,D645,R661,U266,R234,D403,L513,U443,L989,D1,L674,D210,L537,D872,L607,D961,R894,U632,L195,U744,L426,U531,R337,D821,R113,U436,L700,U779,R555,U891,R268,D30,R958,U411,R904,U24,R760,D958,R231,U229,L561,D134,L382,D961,L237,U676,L223,U324,R663,D186,R833,U188,R419,D349,L721,U152,L912,U490,R10,D995,L98,U47,R140,D815,R826,U730,R808,U256,R479,D322,L504,D891,L413,D848,L732,U375,L307,U7,R682,U270,L495,D248,R691,D945,L70,U220,R635,D159,R269,D15,L161,U214,R814,D3,R354,D632,R469,D36,R85,U215,L243,D183,R140,U179,R812,U180,L905,U136,L34,D937,L875 -L999,D22,L292,U843,R390,U678,R688,D492,L489,U488,R305,U951,L636,U725,R402,U84,L676,U171,L874,D201,R64,D743,R372,U519,R221,U986,L393,D793,R72,D184,L553,D137,L187,U487,L757,U880,L535,U887,R481,U236,L382,D195,L388,D90,R125,U414,R512,D382,R972,U935,L172,D1,R957,U593,L151,D158,R396,D42,L30,D178,R947,U977,R67,D406,R744,D64,L677,U23,R792,U864,R259,U315,R314,U17,L37,D658,L642,U135,R624,U601,L417,D949,R203,D122,R76,D493,L569,U274,L330,U933,R815,D30,L630,D43,R86,U926,L661,D491,L541,D96,R868,D565,R664,D935,L336,D152,R63,U110,L782,U14,R172,D945,L732,D870,R404,U767,L907,D558,R748,U591,R461,D153,L635,D457,R241,U478,L237,U218,R393,U468,L182,D745,L388,D360,L222,D642,L151,U560,R437,D326,R852,U525,R717,U929,L470,U621,R421,U408,L540,D176,L69,U753,L200,U251,R742,U628,R534,U542,R85,D71,R283,U905,L418,D755,L593,U335,L114,D684,L576,D645,R652,D49,R86,D991,L838,D309,L73,U847,L418,U675,R991,U463,R314,D618,L433,U173,R869,D115,L18,U233,R541,U516,L570,U340,R264,D442,L259,U276,R433,D348,R524,D353,R336,D883,R580,U157,R79,D27,L134,D161,L748,D278,R322,D581,R654,D156,L930,D293,L156,U311,R807,D618,R408,U719,R366,D632,R307,D565,R478,D620,R988,D821,R365,D581,L946,D138,L943,U69,R620,U208,L407,U188,L122,U353,L751,U565,R849,D874,R668,D794,L140,D474,R289,D773,R344,D220,L55,D385,L394,U208,R305,U736,L896,D376,R331,D855,L466,U516,L741,U124,L825,U467,L525,D911,R76,U220,L610,U102,L261,D891,L585,U397,L152,U753,R822,D252,R106,U145,L7,U524,R343,U352,L357,D399,L446,D140,L723,U46,R687,D409,R884 diff --git a/2019/inputs/day_4.txt b/2019/inputs/day_4.txt deleted file mode 100644 index f62320b..0000000 --- a/2019/inputs/day_4.txt +++ /dev/null @@ -1,2 +0,0 @@ -138241 -674034 diff --git a/2019/inputs/day_5.txt b/2019/inputs/day_5.txt deleted file mode 100644 index f8c2724..0000000 --- a/2019/inputs/day_5.txt +++ /dev/null @@ -1 +0,0 @@ -3,225,1,225,6,6,1100,1,238,225,104,0,1102,57,23,224,101,-1311,224,224,4,224,1002,223,8,223,101,6,224,224,1,223,224,223,1102,57,67,225,102,67,150,224,1001,224,-2613,224,4,224,1002,223,8,223,101,5,224,224,1,224,223,223,2,179,213,224,1001,224,-469,224,4,224,102,8,223,223,101,7,224,224,1,223,224,223,1001,188,27,224,101,-119,224,224,4,224,1002,223,8,223,1001,224,7,224,1,223,224,223,1,184,218,224,1001,224,-155,224,4,224,1002,223,8,223,1001,224,7,224,1,224,223,223,1101,21,80,224,1001,224,-101,224,4,224,102,8,223,223,1001,224,1,224,1,224,223,223,1101,67,39,225,1101,89,68,225,101,69,35,224,1001,224,-126,224,4,224,1002,223,8,223,1001,224,1,224,1,224,223,223,1102,7,52,225,1102,18,90,225,1101,65,92,225,1002,153,78,224,101,-6942,224,224,4,224,102,8,223,223,101,6,224,224,1,223,224,223,1101,67,83,225,1102,31,65,225,4,223,99,0,0,0,677,0,0,0,0,0,0,0,0,0,0,0,1105,0,99999,1105,227,247,1105,1,99999,1005,227,99999,1005,0,256,1105,1,99999,1106,227,99999,1106,0,265,1105,1,99999,1006,0,99999,1006,227,274,1105,1,99999,1105,1,280,1105,1,99999,1,225,225,225,1101,294,0,0,105,1,0,1105,1,99999,1106,0,300,1105,1,99999,1,225,225,225,1101,314,0,0,106,0,0,1105,1,99999,1007,226,226,224,102,2,223,223,1005,224,329,1001,223,1,223,108,677,226,224,1002,223,2,223,1005,224,344,1001,223,1,223,1007,677,677,224,1002,223,2,223,1005,224,359,1001,223,1,223,1107,677,226,224,102,2,223,223,1006,224,374,1001,223,1,223,8,226,677,224,1002,223,2,223,1006,224,389,101,1,223,223,8,677,677,224,102,2,223,223,1006,224,404,1001,223,1,223,1008,226,226,224,102,2,223,223,1006,224,419,1001,223,1,223,107,677,226,224,102,2,223,223,1006,224,434,101,1,223,223,7,226,226,224,1002,223,2,223,1005,224,449,1001,223,1,223,1107,226,226,224,1002,223,2,223,1006,224,464,1001,223,1,223,1107,226,677,224,1002,223,2,223,1005,224,479,1001,223,1,223,8,677,226,224,1002,223,2,223,1006,224,494,1001,223,1,223,1108,226,677,224,1002,223,2,223,1006,224,509,101,1,223,223,1008,677,677,224,1002,223,2,223,1006,224,524,1001,223,1,223,1008,677,226,224,102,2,223,223,1006,224,539,1001,223,1,223,1108,677,677,224,102,2,223,223,1005,224,554,101,1,223,223,108,677,677,224,102,2,223,223,1006,224,569,101,1,223,223,1108,677,226,224,102,2,223,223,1005,224,584,1001,223,1,223,108,226,226,224,1002,223,2,223,1005,224,599,1001,223,1,223,1007,226,677,224,102,2,223,223,1005,224,614,1001,223,1,223,7,226,677,224,102,2,223,223,1006,224,629,1001,223,1,223,107,226,226,224,102,2,223,223,1005,224,644,101,1,223,223,7,677,226,224,102,2,223,223,1005,224,659,101,1,223,223,107,677,677,224,1002,223,2,223,1005,224,674,1001,223,1,223,4,223,99,226 diff --git a/2019/inputs/day_6.txt b/2019/inputs/day_6.txt deleted file mode 100644 index 49d849c..0000000 --- a/2019/inputs/day_6.txt +++ /dev/null @@ -1,2306 +0,0 @@ -21X)BWV -YZJ)YLQ -FQS)PZW -R64)71F -ZH4)QVZ -LWB)H4Q -4HQ)PVJ -TZ5)VBV -LF1)FKZ -GKS)BGN -45B)2NS -14W)2JY -1XY)FJ8 -ZRC)WR9 -GCL)6PB -LP4)GQ8 -26V)HTK -3M8)1GJ -47Q)JYK -WDB)N2R -KH8)TGY -LFX)N2X -VSZ)7PC -M6W)4WL -HH9)8PC -L59)8Y8 -Q49)LWH -CJ5)XDG -K51)FGH -H31)2RJ -39M)Y4M -12C)VLF -PZW)7DW -MP2)19Q -R76)CHH -N6J)KBW -WR9)W25 -T99)ZF1 -1TS)8SM -8WW)YX7 -PW6)B2J -7KX)YM5 -HM6)GVX -DNB)2YP -6WC)2LW -BG5)SB6 -KK1)JTF -YDT)244 -GGQ)2DJ -GCP)Q8H -S1Y)J69 -LBV)DYG -ZKN)JBS -8XY)Y8Z -XMH)NHD -XVM)2LX -SYP)BC8 -PXH)YYG -F29)G9Y -BYX)4QS -8MY)S1D -N2Y)BZK -FRC)72W -S2K)YH5 -7JF)K65 -DJ9)K4L -P26)WXT -DW9)1DJ -NP4)3SB -XS7)CDL -6XH)4ZT -2DJ)GCP -2K4)VV1 -Q6P)NNN -HQW)ZR9 -9G2)FNB -H9N)5ZJ -13Z)GKD -9MW)37Y -VDY)BG9 -BL3)12C -LNN)JST -Z3V)T39 -XS3)WYG -8J5)QFQ -7DW)DXY -JMV)DM4 -VL3)V7Q -GZC)ZHV -3N6)R2H -FQ6)7LG -SR9)D66 -1M8)K2L -24N)M94 -JST)WM9 -7SB)99Q -58J)YN7 -WWH)5KS -C39)X9J -58S)KBP -TVF)VNG -TKC)Y34 -KKP)4S6 -XSP)939 -N6J)DZP -JXP)N6R -KNJ)7FS -N3V)LMJ -JVF)R94 -21C)R4Z -NYK)5GN -GVJ)Q6C -R69)NRS -GLS)C7D -T4J)46R -5GB)51S -9WD)7PN -HHX)KK2 -H2P)ZML -DWD)Q9F -FKZ)LC3 -Q9F)M8N -CRZ)LM1 -6DP)YML -NSR)L2X -PMX)Q7K -37R)1GF -L4G)P4W -17N)X6D -JTF)89B -JGJ)DVJ -VF9)GMW -NHD)DJ3 -TRY)F6S -J11)BVW -95X)XB5 -3XD)HPM -7BB)1LW -FJ8)TV4 -JV3)M9W -T7L)6SS -R48)LSB -F2P)9D2 -PTY)QBY -KXM)6G1 -N1H)Q2R -P27)SR9 -1S2)N3G -V7Q)642 -891)TW7 -B9Y)BRL -GW4)3XZ -QWM)G46 -WVK)S6N -N82)317 -8PG)S21 -NT3)1VX -QB5)Y3H -PTT)639 -G8M)WM8 -B36)LX9 -M9M)4P3 -3F9)Q3R -DND)TJL -VQB)6N3 -PJT)JTK -BBN)T4L -LYP)M3V -T9R)HH9 -XBR)3X5 -MX3)SWF -SF1)MXT -X67)6DQ -82Z)FQ4 -L64)FNG -CDG)5D9 -JKZ)XZ5 -MH1)1KD -5NW)ZH4 -P3T)76Z -2M4)CKW -54L)8P7 -JSH)5H5 -LGR)P2V -QNV)SJ7 -KPS)XMQ -F2H)49M -8NJ)KKP -XZ1)LRZ -RVK)J5Z -QT9)NGQ -1TK)P7X -39M)595 -DN9)HKY -HK1)ZRH -SH1)JV5 -B25)GQ6 -QZC)WYC -6CJ)F5D -5R1)HQ7 -FNT)P4J -4R6)P49 -LG4)QT9 -GWH)RY1 -1FX)ZK8 -HK4)G2N -4WL)GPR -SQT)KK1 -RT4)FCN -NRF)P84 -DQW)4L4 -52N)T4J -69D)2FV -RMV)J7N -S9J)1WM -B88)9GT -5M7)GXN -3XF)6FX -FL9)8VZ -X88)JZR -ZVZ)8J2 -Q83)94V -82Y)HT7 -7Y7)7X3 -KNK)R1W -469)PMG -D9Z)GD1 -Z62)WR1 -YDF)6B6 -5KS)6GW -57T)ML7 -GXC)R89 -S2N)99C -JFH)RP9 -KPH)R26 -DZX)93P -CWT)C2H -VKN)5M7 -VNG)SH1 -G2N)F6Q -NFV)FK3 -R65)TQL -Z6T)4NG -RQN)KPR -972)9TB -KZ1)6TY -8K2)HKL -KHJ)H1W -6N3)XTR -25Q)T49 -8HF)K9M -GQX)PHP -5ZJ)9S7 -C7D)VMJ -JXV)SJD -J17)64C -5XN)WN7 -PH9)WQH -43T)Q9V -Z5F)NZ8 -VHQ)D95 -244)7KX -6N7)JPH -HC8)HND -ZF1)39F -24X)ZPF -BWV)HQW -R3N)5R1 -QB9)6XY -KHW)KFZ -S2V)DRQ -S21)1RQ -C9V)TSD -Q1Y)LC2 -93Y)W5C -8ST)T4P -R5Z)CL4 -424)WNZ -R7M)5JS -4R6)H97 -ZXZ)S62 -FRH)SBJ -ZK8)N82 -6FX)MTK -Z5M)BRQ -YYP)FX8 -RZJ)DRK -V8G)TKQ -5L9)J1G -RZG)69H -R9G)X79 -WFS)ZJQ -4P8)GXC -TYW)S54 -R2H)QH7 -6HX)F2H -BBD)DC5 -DDB)6WC -2G3)4JN -FKC)K7V -XTK)8BD -Z7X)QGY -8CG)3F9 -F39)MM9 -F1L)1R7 -ZVH)JDC -BVW)PXM -PRV)BF7 -FX8)1XR -FB2)XN6 -R9L)Z1V -YDT)H52 -6Z5)XZ1 -QD2)Z7Y -TLS)6T3 -54C)DL7 -KPR)4TY -19N)415 -1QG)GNN -S6N)4MK -4L8)LD2 -5Z7)PRY -5C4)2MC -94B)DY3 -CVK)GTS -7N7)P27 -5MW)GGH -2HQ)JYL -L9J)HLP -5Y4)NGN -2BZ)GWN -HD8)CZS -HQ7)M9D -DC5)RK6 -66W)2VT -3D4)GHZ -T49)VTP -PL4)ZS9 -SJ7)TRC -NKT)G5Y -K1G)3GN -37V)4LG -KWL)VDZ -7XF)1P8 -64C)FX4 -DY4)J3F -RV8)8KF -DRQ)KQ7 -HND)2N7 -HQS)HMW -J24)9VX -7DK)3PM -467)VBK -Q6C)TZC -SZY)9TC -BMM)4S4 -HFH)2S6 -K5K)4QP -N6W)RZG -TKQ)489 -4R1)F22 -J1G)YDF -FVW)9WD -CV7)TMC -R6K)H31 -GDL)X14 -H1B)NKT -XTR)PL6 -BSC)SM7 -MLT)S7B -22S)R7T -X8Y)4WX -NR9)NK9 -FSM)J3S -WHF)VSG -ZBG)Q3D -RMY)7KM -XBX)1M8 -MHY)1C2 -GSS)X9G -86F)Y4W -VL6)6H9 -1VH)L3B -SF8)CDG -GTK)45F -49M)NLL -FN6)PN3 -KSC)R3Z -6TN)3QN -FNG)742 -X45)WWH -SF5)2WH -JSJ)B1H -95L)M8F -L59)C4Y -93P)M89 -K1C)6ZZ -21T)8M6 -X9M)7NX -WPK)LNG -393)F6N -M4L)JXP -VKN)X88 -NFK)ZVZ -LKV)C2V -SWX)TM8 -V7F)8ZN -3RW)FD8 -9SM)H27 -TP3)1YB -6MG)D8X -8S7)345 -9SV)X67 -25P)JDD -BFX)TNG -36J)VBH -HN7)WVK -ZR3)3NR -M3V)GPY -52M)MFV -MZB)CJ5 -MX3)XLQ -LCG)PHS -HZD)RNC -GWN)DWD -XBM)WP4 -2FV)YXW -ZTP)QD2 -R1G)JY6 -KY4)8CG -H54)RVK -5HG)WYQ -BVC)SK1 -948)P3T -SV8)5MW -V4D)YLT -69X)LNZ -BL3)Y97 -DXG)WLZ -VV1)SS3 -ZCD)VXB -X6D)XL2 -B9H)2NB -KHK)WPK -YLT)KFT -P49)CC5 -KBW)CRH -8KQ)LJ4 -8JJ)VTJ -TKM)428 -3SB)273 -GPY)R2Z -WTX)P6W -LB1)3PR -Y1R)DJM -25P)CY5 -SVB)PJM -56N)S2V -H82)8D5 -CYB)GP4 -HJ2)BSH -2J1)F1T -C4Y)PRM -TZC)PM5 -K55)NBJ -X43)LPP -WYG)3FW -WFG)N2Y -Q37)5L9 -WSF)KSH -V2H)S9J -HN2)DW9 -3LL)PFH -6X3)XVM -8XZ)991 -26L)WTX -Y97)5C5 -XXL)79Y -NK9)RR8 -L7W)83Q -8TX)45B -GMJ)1H4 -ZRW)58J -36X)PRS -8B2)HTL -8JZ)L94 -PRY)QTW -PL4)X8Y -89N)1RJ -DFJ)62K -5QZ)CN3 -RYQ)SL6 -1H4)PGZ -B1H)J88 -JCC)111 -V6W)GG7 -BZK)97X -49J)WVY -1WM)21X -TCN)KSC -RRD)26V -VC6)WPS -Y5S)YJS -DVR)2J8 -LJF)839 -64D)GZC -79Y)SZY -JHT)D6J -K4K)L59 -YHB)QWM -6H9)MRR -X79)M62 -LW7)GGB -469)TRQ -14K)951 -L9Y)K51 -W7C)Y73 -XD1)CYL -1XQ)HYK -Q19)PWG -F4M)KHW -SM1)J3Q -MV1)1X9 -NMV)3SM -8ZD)L61 -VWX)6R6 -S4Z)JK4 -9GT)R13 -F66)89X -DLT)K6R -H4C)NW9 -R3D)6Z5 -MKN)M5V -H4C)22S -BFM)J2V -KQW)G8D -V61)6HG -JX4)LH3 -PHS)P68 -V9M)56X -1Q6)Y8V -319)KX2 -M8F)881 -974)KSL -LRP)XXL -M3Y)Q39 -LC3)B9H -4T8)ZRW -KYB)T7L -DXJ)72V -SRP)D3M -BRN)NGD -43S)NJ1 -KWJ)VGZ -DNY)F2J -DKW)YT1 -6B4)6N5 -GRQ)RYT -4KV)WFG -6PG)T9R -Q3T)V2P -4M5)HLG -WKZ)9ZP -XTP)JMC -PVZ)JN1 -5F2)26L -76Z)R5P -FVW)NS1 -MWS)PXD -Z7Z)8S7 -CTH)7C2 -837)48K -3SM)HYY -J2B)1TS -Y8V)BS6 -YYD)3XH -4F7)BFM -6S1)95D -4KN)JV3 -GSZ)HVF -9CP)GPZ -BFN)LB1 -N72)741 -K6R)3WF -P4J)QQW -54G)469 -36T)GJ4 -HXM)X6W -MR9)M29 -XMQ)SP9 -71F)TJR -95X)DLT -1ZX)QVK -F1L)1SY -B7X)XDB -FJW)ZCR -43X)1XH -D5H)93V -FQH)5RJ -CLW)1RG -X4Y)X9M -CRH)DWH -XWX)GWZ -36J)TKC -YFN)YJ6 -15X)MBT -6T3)NDG -8SY)4R7 -XMG)HR5 -KSZ)WKZ -PM5)3K8 -BR4)J1T -F72)GV7 -317)P1W -CV7)SPK -H53)PMX -NDG)56N -N68)ZXZ -X3W)XGJ -JRJ)S7X -MKN)DBW -8CM)953 -M2K)3XL -95K)95X -58S)4HL -D95)L9Y -FRH)KQW -NLL)C3D -X1H)FM1 -R1M)GGQ -Y8Z)W1B -KLD)G1V -6CJ)R5X -5C5)HN7 -T7M)ZXT -SZF)B5W -RPW)6TG -3VP)2W9 -X2J)RXH -DWG)C9V -9FB)524 -1PZ)8ZD -ZKZ)6S1 -L36)ZKN -F1J)2D4 -LWC)6SW -SWF)Y4V -51L)MWS -KFZ)52N -GD1)HFH -LFK)L36 -KPZ)ZQ6 -3NT)W48 -2CD)G3D -345)JXV -2LW)SWX -9ZY)XTJ -VWR)576 -STH)NHY -L4X)M4L -ZML)RN7 -RDF)7PB -7FK)3KR -GVX)DCF -1WX)DD2 -971)H6W -H6H)BPX -BWQ)Z4J -JPL)3SV -QWJ)TR8 -376)H9P -Q3D)1YS -1N2)FQ6 -2LM)53K -VSG)6DP -KNM)8B7 -S7B)YXF -YHB)JHP -Y7N)CPB -M29)3FB -J37)C8B -MK3)WHL -MRG)TQ8 -BFM)DLH -H4Q)9HF -D81)R7M -LRQ)ZKZ -C1B)413 -BKC)PW6 -GP4)6MX -C39)JSH -BW8)TL2 -71Q)3YP -415)H2V -DBH)BR4 -JJ7)J2H -G52)87N -YV2)JN3 -7PR)Z3V -999)G8M -S7Y)JRJ -G3D)88H -SR3)NTR -JY5)FC8 -MYL)B7X -K7V)HM6 -FXY)L47 -NNN)GYH -8JJ)Y5S -3G5)37V -FLP)4B2 -839)83S -H27)CV7 -X4F)RXV -S3P)WMZ -LD2)SF8 -DYG)77S -LGR)2LM -7BX)G2K -KNF)9S5 -JBS)R45 -T6C)CGH -CNV)2BZ -356)1KP -P93)54J -VGZ)31Y -GNG)HDL -RHW)222 -4T4)4T8 -WVY)M5Z -KQ7)XMG -K7F)S2N -X6Z)Z9S -XYH)WFC -7BM)J2B -H9F)LKV -WDJ)HWH -MWM)83M -YM5)7J5 -Z62)8NR -99Q)TVF -VDP)C2N -9VX)B5T -YS6)KNF -35R)ZH5 -JN5)Y4H -MSN)XSP -776)CJ4 -3FB)HXT -HZV)6HY -Q6N)HXS -MBT)FTN -3JP)YJ2 -4DC)KSD -8PG)5QZ -YSP)CNV -THM)CST -3X5)BPC -ZG9)4KY -8M6)MZ5 -FDF)XNB -H4X)N72 -ZH5)J79 -KN7)ZXV -1GP)R76 -K5R)CLZ -W8G)XVF -YJQ)HB8 -BWC)TB6 -WFH)T6C -DPB)VYF -K8N)KWJ -C2V)HMF -H93)HF3 -TR8)MFW -RJ4)F66 -BS6)FVW -QFW)5B2 -ML7)FB2 -TGY)X9Z -PRM)ZV3 -4YX)4YV -36D)N6X -XLQ)TLS -WMZ)NRF -BCM)2CV -M74)CHT -JYL)LQ4 -RSN)KXR -KNK)3Y2 -89X)BJK -C2H)4YQ -YYQ)VMB -164)11H -WYQ)WSF -1RG)DRH -GKD)LLT -H53)T2F -X2Q)F82 -B5D)5F8 -JK1)4F7 -1YB)P26 -B6F)552 -RTD)883 -ZPF)DWG -JRV)DL1 -MLQ)S1Y -TX8)5QV -NDT)2MF -HFS)61F -HD8)TCN -8BL)F2X -4MK)R6Z -WVN)RMY -GGX)JCC -GQ8)J11 -H4V)5FJ -3JD)VNC -7KS)9SM -NTR)YV2 -4LG)JK1 -3XZ)GGX -SVZ)P96 -4WG)N3V -QY7)8N9 -XMP)LKL -T4P)RLM -J7C)JJZ -7PC)Y23 -LPP)M6T -F82)9KL -9XR)VT4 -SF1)4T3 -FW6)N66 -QBY)D49 -BCM)17Y -H1W)R6K -ZVN)7QK -BRH)7JF -LKL)39C -LV1)BJS -8PC)FN6 -CHB)TBS -ZLR)3XD -8BD)BSC -NVC)9FB -Z9L)HK1 -FT3)BWL -446)S8V -LM1)D8G -KH3)Q6P -J8C)WFH -YT1)SDH -CGZ)X3V -77B)V9M -2RJ)H4V -NHY)H47 -89B)HM7 -Z1V)58S -17Y)1Q7 -J3F)891 -WDG)VSZ -PJM)21T -3YL)74D -8XJ)15N -Z2X)VHH -N6R)R93 -5QV)8XY -KSD)RYF -6DQ)X8F -Z2Q)MZB -ZFG)972 -5LK)FT3 -D25)1CF -RMQ)2HQ -85N)HDY -952)WFS -T4J)B88 -2MC)JFH -BRL)D64 -GJ4)65N -ZC2)QLQ -69T)3WV -W4F)WMG -74D)NCN -3YY)19K -JKG)6CJ -S68)GGZ -6N6)H2P -3XL)ZVG -S1D)14K -GMK)DW3 -HJF)1D5 -9DP)P9D -18K)Z2Q -248)YD2 -DTK)MR3 -LH8)1GZ -7ZC)RZJ -YJ2)ZVN -JN1)1FX -3WV)289 -53D)GJX -883)FXW -79K)ZXD -DLH)9X5 -BRQ)KHK -2XW)R65 -RGD)GCY -RNC)TR9 -HYV)54C -SJF)BBD -T81)F2T -GZ2)KBQ -G2K)48L -PL6)B5D -R76)Z4Z -QVK)TDX -F6N)M6X -8XQ)3JP -HXD)WNB -CLZ)37R -K6R)SY1 -X9G)8CM -2W9)W4X -ZXV)JC5 -HKY)1Q4 -KV1)QZC -LMT)CLW -Y4M)P57 -1YS)SJF -NGV)N1R -VLF)RGD -FJ5)8WN -PWG)V4K -XDC)KY2 -3DJ)RV8 -1RJ)2GN -WXT)MP2 -R89)JLR -GGB)RDG -Z6L)GQX -ZJQ)TLG -3WF)FQH -5YP)5Z3 -C1B)CCD -SBW)BQB -41C)W4H -1P5)YYP -R5X)36J -DZL)KNW -P57)CN4 -C85)78L -6YB)S7R -CYB)LNN -881)Z5X -642)B5K -X9J)SQT -BJK)M39 -BMW)SHT -2NS)VKN -1C2)JHT -H46)ZGD -JY6)RF8 -V1D)82Y -Z4Z)FW6 -CRP)JRG -1VX)77V -M2F)MHH -B7X)JJV -H29)7JR -Z4C)N13 -HN2)PRV -FTN)5FY -8HS)Z4M -JTP)GLS -JST)8XZ -4GX)T2P -1GZ)V8W -5MW)RT4 -9G2)QPQ -X6C)NGV -GP8)8SY -J67)ZBL -R45)BWC -DDF)S37 -31R)PHR -V4K)2L6 -J69)SYP -DVF)R29 -DLS)1BQ -72W)JKH -JPV)FL9 -TSK)69T -93V)T9M -CST)WPW -37Y)BJ8 -JR2)V4Z -B7C)X1V -WN7)GCD -K65)TM5 -HFS)KYB -1XR)TX8 -7L2)NXY -57Z)M6W -WMG)5HG -F6S)3YF -FMB)N6Q -HS4)QNV -XN6)X2C -56X)Z5F -NJ1)3M8 -65K)S2S -MSJ)Z3P -3RW)YJQ -YRB)L4G -5DZ)5YP -TB6)TGV -PDM)H9F -MTR)B36 -GGH)2LS -4S6)4KV -SVB)MV1 -JQN)18K -SRN)ZFK -ZFX)HXD -YNR)GCL -8QM)GDK -17G)B9Y -JKZ)19N -MJD)5BH -NSR)24N -T48)CF2 -Q3R)3TZ -741)T7M -P2C)G9Q -V8G)17G -GCC)54L -53K)TC8 -ZGD)F7V -J5Z)Z7X -4YV)HZV -GPZ)69X -RYT)RTK -Z6T)7ZC -FMT)ZVJ -56X)7KS -M89)YDR -F6Q)V8G -Y4V)MY7 -1Q7)17N -YV7)HQS -YLQ)GJ2 -5WT)VQB -YN7)DR2 -MPX)JBC -LFL)DPB -TNG)5Q1 -LW7)HC8 -HBR)Q6N -9K2)DNB -GXN)MHW -SGZ)1HF -WFS)N4R -3GN)2K4 -5Y4)1MH -M9W)7PR -WCK)DMQ -COM)TKH -6XY)LTM -WQF)1S2 -Z6N)3BD -CF2)LFL -GDX)ZQ4 -PGZ)1VH -X5D)6CP -TDX)MKV -3XX)BHR -SPL)DXS -GM5)TZR -M8W)DBH -PFH)KGJ -W4H)MKN -SPK)LRQ -V4P)63V -5LQ)WDG -L2G)49J -HB2)6Q9 -YV4)NTM -H47)9MW -ZB8)Y8J -C3D)HTQ -9HF)9K2 -XDG)GDX -FMS)239 -JJP)PKV -6C1)BL3 -FNX)JX4 -SN2)237 -TSD)PNN -RY1)JL3 -TX5)B2R -BS5)HJK -TBS)JNC -1BQ)PR5 -NRS)FX1 -5GX)BKC -8Y8)FRH -GP1)KFR -H1W)ZLJ -FX1)WT6 -HJK)WFT -7Z4)GT9 -FD8)RGG -8VZ)5PJ -1LW)PTY -PTT)15X -QVZ)6LR -Q9V)WMP -BLW)4DX -554)35D -YML)DND -997)CTW -L2L)6WB -PR9)K5K -6TY)5Y4 -2RQ)DVF -5PL)NK7 -3WB)KJ7 -PXM)HN2 -NBJ)FMB -BGN)BRP -BTH)C2B -9X5)MLT -XGJ)KGD -TDC)SBW -56Q)K7F -HF3)Z2X -RP9)952 -PKV)K4K -222)95K -LX9)4WG -RYF)HB2 -5CL)C4P -J2H)6PG -CXP)5GB -38R)L7N -NJ1)YDZ -LBC)42B -6WB)NCK -524)YOU -D8X)YNZ -KY2)BRH -W5X)DZX -SP9)G1J -JKT)LGJ -J2V)PJT -6SS)R9G -8MF)2L8 -X4J)8JJ -T1P)DLS -NWC)76R -YXW)RMQ -Y64)9NF -XB5)52M -JKP)YC1 -FZ2)ZCD -Q3S)CWT -YCS)QDR -S3M)792 -Q7K)N5M -952)MYL -GPR)F37 -Y7G)TFK -V7H)2G3 -CHW)BVC -FSM)TRY -RS7)BFX -KF6)3RW -TGV)6BJ -3TP)CXP -DXS)BW8 -8QM)NT3 -R4Z)X43 -7X3)7N7 -JJZ)3WB -GWZ)K7Z -XQF)R1M -2L8)4YX -891)F1D -S73)KS9 -289)3TB -XJF)PDZ -C29)K7N -YH5)8F3 -9NF)8LD -YX7)1NW -ZLJ)ZGS -DWS)CY2 -Z4P)XBM -HKY)K55 -P6W)BWQ -P1H)L64 -54T)25P -W38)6KP -CNV)9S2 -7FS)75T -9SV)PQQ -H46)VL3 -3FW)W91 -JBW)T99 -J89)MLR -CJC)4B6 -NYK)189 -R2K)3CT -S54)BHJ -98D)HRL -F1T)GRQ -T9M)NZJ -5B2)FNX -PQJ)D89 -WG3)2W2 -ZS9)WW8 -FSG)5SS -DW4)ZFG -78L)49Z -NGQ)2TJ -M6X)GDP -KXR)95L -1WQ)FNT -BRP)L4X -J3F)5C4 -2NB)JJD -SZL)5PT -FNB)DN9 -LNZ)ZBG -Z4J)NQV -D6J)H54 -1CF)SZF -QQF)1N2 -FFS)VF9 -NK7)KRM -6HY)TDQ -C2Q)16T -JTK)ZLR -1KD)N3R -2XH)JKP -BJ8)QHR -G9Y)5F2 -4R7)HGM -JGH)XS7 -72G)LLM -QLQ)Q1Y -TJL)8JW -N8F)8SX -JY8)HZD -3W9)JPV -WK4)HBD -8X9)6XH -YYG)WJQ -HZL)NQZ -BLY)JJG -6CH)CR4 -GQ6)248 -DWH)5LK -LQM)Z7Q -SN2)4DC -BF7)BTH -Z9S)NG8 -F5D)HK4 -2S6)5NW -LTM)757 -FC8)89N -SBJ)4T4 -XLM)XQR -S29)TDC -1YK)RL3 -6J2)7NB -SK1)7CS -GBD)H77 -9KL)HJF -LJ4)VST -S9W)4KN -99C)Z6N -L58)M2K -5JS)LR8 -WR5)9XR -V6W)WK4 -9S7)FRC -TM8)C39 -F4Q)Y86 -BN1)MTR -BGG)GP8 -GJN)MV8 -TLG)XYH -83S)CHW -Z1H)GX4 -3TB)HHX -J3Q)JQL -5Q1)75N -W91)57T -DVJ)HBR -B6F)M9M -WMP)5XN -WXQ)B17 -83M)XMH -8N9)SAN -LVG)8ZV -L2J)7SB -FNT)KM7 -BPC)B9T -1TQ)K27 -JZR)RJ4 -L9S)H93 -189)36D -TZG)2Z4 -5LZ)HXM -SJD)Q3S -WJQ)D81 -GP8)GZ2 -1TP)ZNV -X2J)837 -DJM)KDJ -7GP)NYK -TQ8)446 -HZL)4L8 -29G)3VP -4LZ)XTK -KFX)6N6 -HPM)WWQ -X1V)KVV -Y64)V4C -5GN)54T -SJ1)QS3 -DM4)83W -KDT)ZB8 -DL7)DKC -TML)SPL -LC2)K1W -MHW)5Z7 -MXT)RQN -9KL)K9L -M3T)YRM -KFR)Q49 -1DJ)SN2 -F82)2J1 -PWN)5PX -YT1)V7F -T6S)T1F -B8L)WB2 -Q79)LKF -853)RTD -KBQ)356 -HTL)54G -43T)53D -B5W)PH9 -7KQ)8TX -T2Z)1WQ -8HY)29M -552)M74 -STR)6HX -FRV)HMM -45F)J7C -4Y9)HFS -GNN)WJ6 -HXT)JQ8 -PNN)51L -PHR)RK5 -MM8)H1B -N66)G85 -C4P)W7Z -991)FSM -7QK)SLP -GDP)71Q -5MC)MRG -F2X)HY1 -B9B)CWM -SVZ)HN8 -XDB)4P8 -BS3)VFP -VXM)KCL -9G6)831 -9Z8)FNJ -GX4)C2Q -WFB)MZ9 -63V)MX3 -V8W)82Z -RTK)319 -427)WY1 -4T3)VVN -T2P)4LC -CR4)FQS -K4L)DTK -HLP)WCK -4YQ)H9N -RK5)QFW -GT9)SRN -YXF)FXY -V74)L3W -MY7)2RQ -JLR)JNS -9S5)LPH -H54)J37 -8XR)BLY -QMC)T48 -4TY)1QG -Z4J)H82 -BZC)LKD -4CP)86F -Z24)L58 -1FN)X15 -5FJ)QWJ -K27)2CD -3Z9)3W9 -L6V)J1J -51V)HJ2 -WD5)Q99 -49Z)G6N -Y4V)DDF -MFV)3GH -B1T)9CM -X9Z)BG5 -2M6)1XQ -2J8)3G5 -VMB)13Z -51S)BMW -1MH)LFK -VBK)3D4 -SDM)8XR -7NX)S2K -52L)4NL -LRS)664 -JDD)43S -JJV)H6X -62K)7L2 -WR1)L3D -LN4)WXQ -S52)C85 -F22)9SV -LH3)8B2 -YBD)8MY -TGM)N6H -ZVJ)MSN -S2S)5HV -2MF)GP1 -9ZP)3ZK -1LW)H44 -QTW)T9P -GHZ)YV7 -W7Z)M3Y -5FK)NWC -97X)36T -G7X)K5R -GLP)XQF -WQH)ZM7 -8YP)KF6 -WNB)WG1 -W21)1TQ -VBH)XM4 -CY5)3N6 -G1V)K1G -L2X)L9S -2CV)3LL -BKC)LC8 -R5P)JDL -JL3)T5B -HDY)FRM -XL2)F29 -8Y8)N86 -C8B)FDF -L3W)Z9L -WJ6)6FW -5HV)157 -DW9)1WX -C2B)JR2 -6HK)7GP -N86)971 -GZ6)KHJ -V4Z)376 -WT6)F4Q -H97)FP5 -M4L)MCT -D8G)BCQ -XPG)NP5 -8CG)GBD -6SD)6X3 -54L)1TP -N1W)MJD -ZXT)VXM -QH7)JN5 -S7H)4M5 -QSC)44B -19K)QLJ -951)25C -PJZ)W21 -X8F)X4F -CZW)SV8 -ZYJ)F5C -XNR)KPH -658)47Q -D66)3GD -ZGK)D65 -4ZT)YBT -3NR)K3P -WMD)HRP -VGN)554 -2GN)WH3 -8SX)DXJ -Z4M)MR9 -R1V)VDY -1D1)CRZ -CC5)MH1 -2NS)PXH -SLP)1FN -PTB)LYC -V4D)Z5M -Z2N)X77 -DR4)7KQ -646)98D -9PN)F21 -PB8)728 -WXT)4S9 -3YP)TGM -6PG)776 -9KY)T7C -5SS)LV1 -8HR)53Z -972)FZ2 -XJ8)9PN -6PB)Q35 -ZCR)42N -NNP)YPG -SL6)XL4 -1CG)YZJ -QKG)5GX -L94)HD8 -ZVH)GVJ -R93)3YL -4GC)2XH -FNJ)ZL5 -2LR)YBD -YDW)HMN -S8V)YRB -YV2)HS4 -6B6)6WZ -SVG)LB5 -DMQ)VWX -72Y)997 -MHY)3YY -JX9)XHT -MTV)DSB -413)6SD -DSB)25Q -9HF)BRG -B5W)P93 -9TB)XTP -JN3)6W2 -TFK)MKW -T49)4NY -742)MSJ -8F6)ZKW -TRQ)3JD -F2T)R8H -LQ4)GMJ -B9T)H46 -T2F)ZC2 -VC6)TJF -YDZ)R48 -RGG)974 -DTK)H4C -DTF)QCP -7KM)Z4C -GTS)MLJ -296)424 -664)H86 -2YP)ZYJ -V18)VC6 -7CS)SQH -DZS)3X8 -QYT)8HS -62Y)SQW -D8X)YXX -N2X)D3B -P84)6J2 -JPH)DZL -WM9)KWM -TM5)GM5 -W4X)YYR -TNG)LRP -1KP)ZQX -MZ9)72Y -WJZ)MPF -NP5)SQ3 -D66)5QS -H7H)ZCB -16T)V74 -X15)1WS -8NR)Y7N -237)DYP -N4Y)CGZ -Z8K)BYX -8KF)N6W -RF8)NMV -WFC)7XF -449)DDB -D49)X1H -TM8)78Q -G6N)73R -HGM)GD7 -F21)Y1R -TRC)5HH -N14)S73 -ZXT)BS5 -NG8)4L5 -8ZN)Q79 -4HJ)Q3T -837)NDT -1R7)R2K -77S)6YB -S7R)1XY -2VT)KNJ -WQ4)64D -M5Z)PVZ -RQN)8V9 -VVN)K2K -V2B)N3K -B17)7BX -1W5)LMT -1YW)X2J -XJC)XJF -P4W)4J1 -PRS)Q4P -BMM)QB5 -L7N)H29 -4W5)GKS -8WN)KH8 -N4R)39M -4NY)14W -19Q)ZG9 -W6W)J8C -PWZ)4RW -8F3)JBW -BC8)F4N -QG8)VDP -YG1)GBY -KRM)WJZ -4HL)2TH -W1V)FMT -1BL)NC2 -RTN)R6C -QLJ)PLT -SQH)93Y -KM7)9G2 -5Z3)JY8 -WB2)YSP -3S1)4W5 -5BH)SXV -28Q)5Q7 -PDZ)XD1 -D79)WHF -6BJ)DQT -5F8)C29 -46R)XNR -NC2)2Y8 -T5B)863 -TJF)PDM -L47)5QW -F59)JX9 -RK6)QG8 -GD7)RWP -863)7DK -97R)LJF -6N7)X32 -WLZ)XDM -RXH)79K -WG1)NQW -BNR)1P5 -ZXV)QQF -ZJX)GSZ -X2C)L5L -NVC)L2G -T1F)FK2 -GGZ)KH3 -TZC)R9K -157)FRV -3CX)Z1J -NS1)BGG -MFW)36X -DW3)C53 -88H)LP4 -FX4)F4M -676)7BB -9TR)Q3H -P5H)Z1H -LB1)XBR -SWS)FLP -4S4)QMC -KNW)5LZ -3PR)TVL -JYK)46F -ZM7)Z6T -Q99)427 -5R1)MYP -3TZ)YHB -QPD)L6V -HB8)K7P -2W2)ZFX -BS3)GWH -953)S2C -1BC)WKC -S7X)9PL -1RQ)KLD -1XY)JRV -D37)SF5 -PXD)P2C -4L4)CVV -MYP)2VZ -WPW)SFQ -N6H)8D7 -8B7)9RM -297)Q93 -LNG)R64 -BXB)NSR -DKC)MTV -6C1)81V -75N)21C -XY7)THS -BRG)YY2 -F37)RMV -831)LYP -M1P)GZ6 -ZXD)NR9 -6G1)35R -H2V)51V -Q9F)RRD -FXW)3XX -ZV3)CDP -JC5)JGH -Y73)KFX -V6G)1W5 -7BB)DR7 -RN7)56M -3GV)8X9 -HMM)41C -JK4)V1D -MFV)2J4 -QQW)H62 -N1R)CCC -B5T)3GV -G8D)8QM -JNB)Z75 -8D7)ST5 -JXX)C1B -G5Y)Y92 -G46)DW4 -3CQ)R9L -FR9)Q83 -N6Q)JR4 -ZG2)S4Z -JDC)NCF -ZLX)2XW -JJD)QLN -YY2)FJ5 -Z3P)W7C -LSB)N68 -64D)8BL -PR9)J67 -N6X)M2F -SQ3)XZ7 -MKW)KVM -L61)PL4 -R2Z)2BF -HGM)KQK -222)RJQ -4LC)PY4 -54C)N14 -MLR)Z7Z -BBD)W1V -JK1)32M -SY1)3S1 -65N)3TK -1X9)4HQ -6F3)H6H -489)GFB -Y86)52L -HN7)R1G -48K)5MC -4P3)Z6L -CHT)8R9 -3M8)HKP -RK6)PP4 -X77)V4D -YDR)LCG -DZP)3CY -75T)TKM -ZFK)5LQ -6R6)8NV -TVL)RHW -HMN)BNR -PG2)VN1 -FVQ)SQ5 -1HF)W5X -WVY)TGX -VYF)2N1 -BJS)LTJ -72V)GCC -8NV)BS3 -ZL5)P1H -3KR)69D -CZS)8WW -4N2)72G -KK2)JXX -5Q7)KPZ -4QP)HYV -1SY)V7H -CN4)JTP -9TC)SVG -K7P)T6S -QFQ)999 -NGN)QKG -BHR)DR4 -TGX)XPG -DY3)YG1 -M5Z)PHZ -KBQ)HVY -9D2)N5J -GMF)4LZ -1P8)BFN -GBY)KY4 -49M)LWB -FNZ)FFS -JL3)V2H -LB5)7FK -PM5)1BL -PHZ)LH8 -NCF)YNR -HSK)W6W -5RJ)C95 -RPK)ZRK -Y34)54N -5QW)TZ5 -KGJ)43X -P2V)Q9T -NQZ)L7W -WP4)S29 -J3S)C9G -5C2)TX5 -3PM)PK2 -3GD)393 -CCD)3Z9 -QKQ)PB8 -FCN)LRS -FQ4)M3T -45B)B1T -NPJ)MK3 -KGD)JJP -F5Y)JKZ -C6D)HSK -TR9)7SS -2TX)H73 -NFV)X5D -C2V)43T -M6T)KPS -PK2)1CG -TP1)N4Y -1D5)D9Z -MTR)97R -3TK)X3W -R7T)3VC -PHP)1LV -5GB)2H5 -YC1)24X -S5H)W79 -FQS)JVF -DML)6F3 -Z75)LXP -DMJ)29G -54N)GSS -RWP)D79 -VBV)XWX -VST)CMS -GZ2)676 -N72)FP3 -792)ZJX -H73)J17 -M8N)WQ4 -H6X)L5G -3VC)LBC -YBT)YR2 -LYC)4GX -3VP)17F -F5Y)9ZY -8LD)BCM -7JR)X45 -MV8)FY7 -JN6)31R -MZ5)CVK -239)S7Y -DJ3)S7H -RVK)6HK -G85)WR5 -LKF)TZG -SQ5)NP4 -HN8)H53 -CTW)MCJ -8ZV)6YF -2RQ)SR3 -MRR)Z4P -WQ3)TYW -6SW)L2J -HFC)CTH -N5M)1TK -757)RDF -R5Z)MHY -NW9)V3P -K3P)PWN -GD7)GDL -B2J)FN2 -BRJ)GK8 -S62)3NT -9BH)38R -KQK)WXW -2LS)T8V -4J1)5WT -7J5)H3D -W1B)F72 -F4N)NFK -QCP)4HJ -DWH)V5B -87N)XY7 -F13)LWC -7VH)67W -PMG)DY4 -JMC)WQ3 -6HY)PTT -YJ8)DML -9CM)DM1 -54J)DNJ -1Q6)8ST -CKW)XS3 -ZKW)JPL -111)YFN -H6W)R5Z -THS)X4J -DTM)PWZ -ZH5)8PG -JR4)Z24 -NCN)8HF -3BD)B8L -76R)LN4 -N3K)97M -JJG)N1H -5JW)P48 -YJS)XMP -4RW)T2Z -D65)DNY -KWM)ZGK -5FY)9BK -Y8J)7DR -5PJ)1YW -24L)PTB -XTR)PJZ -LLM)QSC -R6Z)V6W -H62)PQJ -HT7)V18 -6CP)S3M -WXW)N6J -GJX)F5Y -Q35)QY7 -3K8)F59 -8SX)SWS -B2R)6N7 -R8H)CRP -CGH)HFC -NWC)QKQ -P9D)BLW -NK3)YLD -CDP)2M4 -Q39)QB9 -F2J)X7D -J79)QHD -VXM)948 -X7D)GLP -NP4)Q37 -69H)K1C -FF1)65K -P7X)YDW -HTK)B6F -273)CTT -D25)164 -QGY)DXG -G46)BMM -QPQ)SZL -HM7)G7X -VMJ)J24 -5QS)RD6 -KVV)4CP -6W2)8KQ -1JP)PR9 -4B2)SF1 -FX4)NNP -2N7)ZRC -JQ8)N1W -LKD)83V -345)CJC -HVF)QYT -Y4H)7VH -5LR)4MJ -S2C)FSG -V5B)BBN -5X5)SJ1 -MKC)NPJ -BWL)F39 -VDZ)Z27 -7GP)YB3 -8R9)R3N -SQW)GNG -3X8)V2B -D89)SM1 -Z4P)RSN -YB3)5LR -V4C)1JP -FGH)FF1 -GKS)R69 -M5V)H4X -3CY)KXM -G4S)D5H -12P)1YK -3Y2)R1V -KTZ)DQW -KD3)L2L -KSL)F13 -R3Z)JKT -G9Q)1D1 -2J4)5DZ -X3V)MM8 -Z7Y)1BC -G1J)G4S -W4X)LFX -YJ6)JMV -FP5)KN7 -PCQ)8HR -FN2)W8G -31P)WFB -YXX)CYB -NXY)77B -NCK)Z8K -VPX)3TG -CN3)JY5 -HXS)WQF -FK3)DZS -WFT)9DP -XZ5)F1L -639)T81 -R26)PCQ -2VZ)YYD -4S9)1PZ -HVY)V4P -K55)K8N -2Y8)WMD -69T)24L -MHH)SRP -WPS)YWV -9PL)NHB -D3B)KDT -SHT)GJN -42N)6MG -K9F)YDT -N2R)FVQ -F3Q)296 -YML)8XQ -6YF)B9B -R13)Y64 -DNJ)DKW -H44)ZTP -1Q4)5JW -RLM)BRJ -LMJ)8HY -CL4)LF1 -6GW)TMM -VTP)JWQ -TQL)G52 -3QN)VWR -BFN)VPX -T39)TSK -Z1J)S3R -F7V)XBX -VNC)LW7 -WM8)788 -HBD)K9F -JQL)JGJ -3SV)WVN -DM1)297 -VHQ)467 -PVJ)12P -3GH)2M6 -6MG)KD3 -1NW)4GC -VTJ)FKC -Q8H)P86 -5QW)BXB -ML7)V61 -94V)NK3 -XM4)TML -V2P)5Y3 -CR6)JKG -7LG)S9W -8TX)V6G -2JY)ZG2 -DVR)57Z -VN1)Z2R -ZC3)N2C -SB6)RPW -58W)1ZX -VFP)X6C -JQN)ZC3 -53Z)LQM -KWL)TP1 -HKP)4BW -S9T)Q19 -K2K)WD5 -WLM)YV4 -SFQ)4R1 -6KP)CTQ -V3P)XDC -CXM)MKC -31Y)Z62 -XHT)L7R -FK2)S52 -LVY)HFP -RJQ)KV1 -9S2)2LR -NZ8)DVR -JKH)PG2 -ZQX)3TP -81V)9CP -42B)WDJ -7PB)S68 -39C)6C1 -RR8)KSZ -XL4)RTN -3XH)RYQ -78Q)TP3 -GCD)5YQ -R29)LVG -Q3H)646 -TMM)ZLX -4B2)WDB -6N5)449 -3XL)NFV -CDL)6JS -TMC)B7C -R1W)ZWC -LH3)XJC -CHH)DFJ -1FN)MLQ -LMT)658 -HK8)BN1 -73R)1GP -ZQ6)6B4 -Z5X)D37 -YPG)GTK -8SM)VL6 -W5C)C6D -4BW)YS6 -DYP)2TX -R9K)BRN -KS9)L9J -XTJ)B25 -Y23)CHB -NHB)LG4 -L5L)7Z4 -DRK)9SL -ST5)NVC -2WH)DTM -1LV)SDM -788)256 -TW7)6TN -6FW)3CX -BG9)4Y9 -67W)JJ7 -2D4)FR9 -Z8K)F1J -LTJ)31P -R94)YJ8 -5PT)MPX -9SL)LGR -FKZ)9G6 -DR7)SGZ -SM7)9KY -TKH)8MF -VXB)4N2 -XQR)W38 -21F)HK8 -Y3H)XLM -DBW)M8W -11H)853 -1WS)66W -DW4)KNK -NQV)SVB -6ZZ)8YP -ZWC)5PL -PP4)3CQ -T8V)THM -J1J)HMK -CPB)Y7G -GYH)9BH -WPK)FMS -95D)FJW -HM7)CJJ -ZGS)LBV -HMK)BZC -2BF)DWS -LWC)85N -L3B)M1P -7C2)WG3 -3ZK)7BM -GDK)8XJ -LGJ)4R6 -DL1)JSJ -44B)6T9 -KFT)CXM -Q4P)STR -LBC)6ZD -GDK)STH -6MX)F2P -Y92)21F -6ZD)YYQ -HYK)58W -3YF)KNM -X9G)8K2 -QWN)JQN -17F)KTZ -CJ4)62Y -KQW)GMF -15N)S9T -G1V)GMK -M62)X6J -8V9)SVZ -WW8)DJ9 -FP3)28Q -PMX)F3Q -N3G)56Q -46F)ZN3 -D3M)S3P -D64)LVY -72Y)ZHM -LPH)WLM -HY1)HZL -L3D)QPD -Q9T)X6Z -6HG)3DJ -KBP)9TR -25C)9Z8 -ZR9)RYK -TJR)5C2 -56M)X4Y -TL2)5CL -939)ZVH -595)DTF -Z27)D25 -54T)MWM -ZBL)W4F -6JS)H7H -YWV)QWN -5D9)S5H -P96)KZ1 -TDQ)8JZ -NQW)VHQ -K9L)DMJ -H6W)8F6 -2TJ)8NJ -MCJ)T1P -M94)JNB -5ZJ)9BG -KCL)RS7 -X6J)ZGQ -PQQ)JN6 -S2K)5FK -K7N)X2Q -HTQ)GW4 -LTJ)RPK -DD2)8J5 -7NX)Z2N -6LR)R3D -YR2)7Y7 -JBS)CZW -ZRK)XJ8 -4L5)3XF -GJ2)FNZ -XTP)YCS -HRP)P5H -BRJ)J89 -RD6)ZR3 -YNZ)N8F -2N1)XGH -JDL)DLD -YLD)94B -ZNV)1Q6 -6TG)CR6 -GMW)KWL -TZR)698 -RDG)VGN -F1D)5X5 -3CT)6CH diff --git a/2019/inputs/day_7.txt b/2019/inputs/day_7.txt deleted file mode 100644 index b21d6af..0000000 --- a/2019/inputs/day_7.txt +++ /dev/null @@ -1 +0,0 @@ -3,8,1001,8,10,8,105,1,0,0,21,46,59,84,93,110,191,272,353,434,99999,3,9,101,2,9,9,102,3,9,9,1001,9,5,9,102,4,9,9,1001,9,4,9,4,9,99,3,9,101,3,9,9,102,5,9,9,4,9,99,3,9,1001,9,4,9,1002,9,2,9,101,2,9,9,102,2,9,9,1001,9,3,9,4,9,99,3,9,1002,9,2,9,4,9,99,3,9,102,2,9,9,1001,9,5,9,1002,9,3,9,4,9,99,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,102,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,102,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,101,2,9,9,4,9,3,9,1001,9,1,9,4,9,3,9,101,2,9,9,4,9,99,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,1001,9,2,9,4,9,3,9,101,1,9,9,4,9,3,9,1001,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,1001,9,2,9,4,9,99,3,9,101,1,9,9,4,9,3,9,1001,9,1,9,4,9,3,9,101,1,9,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,102,2,9,9,4,9,3,9,101,1,9,9,4,9,99,3,9,1001,9,1,9,4,9,3,9,102,2,9,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,2,9,4,9,3,9,101,1,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,102,2,9,9,4,9,99,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,1,9,4,9,3,9,101,1,9,9,4,9,3,9,102,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,101,2,9,9,4,9,3,9,1002,9,2,9,4,9,3,9,1001,9,2,9,4,9,99 diff --git a/2019/inputs/day_8.txt b/2019/inputs/day_8.txt deleted file mode 100644 index 21110e8..0000000 --- a/2019/inputs/day_8.txt +++ /dev/null @@ -1 +0,0 @@ -211202121222222222221222212222202022222222222122221220222222222222222222222202222222222222122121022222212222222222212212222222210222202212222222012222200222021222222222220222222222202222222222222022220221222222222222222222222222222222222222022022022222222222222222222212222222221222222202220222202222220202021222222222221222202222212222222222222122222220222222222222222222222222222222222222122220022222212222222222202222222222220222202212221222102222211202020222222222221222222222212222222222222022220221222222222222222222222212222222222222122022122222202222222222212202222222212222202212222222202222220222022222222222221222212222202022222222222222221220222222222222222222222212222222222222022122222222222222222222202202222222220222222202222222212222210002122222222222221222212222222022222222222122221221222222222222222212222202222222222222022220222222202222222222212222222222221222222222220222112222211012121222222222222222222222222221222222222122220222222222222222222212222212222222222222022120222222222222222222212202222222221222212202221222122222212122121222222222222222212222122022222222222222221220222222222222222212222212222220222222122021022222222222222222212202222222221222222202220222102222200212020222022222222222212222012221222222222122221221222222222222222212222202222222222222222121122222212222222222212212222222221222212222222222111222212022021222122222220222202222022022222222222122220221222222222222222202222222222222222222122120222222222222222222202212222222210222212212221222020222201222222222022222222222222222122222222222222022221220222222222222222202222212222222222222222222022222222222222222202222222222221222212202221222002222220202020222122222220222202222112221222222222022220222222222222222222222222212222220222222022120022222212222022222202202222222200222202202221222210222220022122222222222222222212222022021222222222222220221222222222222222202222202222221222222222020122222212220122222202212222222201222202212221222112222220002222222022222220222222222122121222222222022222221222222222222222212222202222201222222222120222222222221222222222202222222212222202222220222101222200212021222022222221222202222122222222222222222221220222222222222222222222212222210222222022022122222222220022222202202222222222222222222222222220222221022022222122222220222222222012020222220222122220221222222222222222212222212222212222222222220022222212222022222212222222222212222212212221222011222222012022222122222220222202222220122222222222122220221222222222222222222222212222221222222122020022222222222222222222222222202220222202212220222022222212102221222122222222222202222112021222222222022222220222222222222222222222222222202222222022120020222212221022222202202222212210222212202220222211222210102220222222222220222222222120122222222222022220220222222222222222222222222222202222222222222120222222220122222222202222202200222202222222222220222200012022222122222220222202222220122222222222122220222222222222222222202222212222220220222122122022222212222022222222222222202201222212212221222221222212122221222022222220222200222112022222222222222220020222222222222222202222202222220221222222020222222202221122222212212222212212222222212221222212222211012221222022222222222220222201121222220222022222021222222222222222212222222222200221222122220221222202220122222222202222222211222222202220222022222212002120222222222220222220222100222222221222022222122222222202222222212222212222221222222022121122222202222022222202202222212200222222202220222010222212102222222002222221222221222011022222222222022222120222222202222222222222212222210221222022221021222212220222222202212222212202222222202220222001222220012020222112222222222221222121122222220222122220020222222212222222212222212222220222222122022221222202220022222222202222222210222202202220222010222211022120222212222221222220222202120222221222122221122222222220222222202222202222210221222222221122222222220022222202212222202201222202212220222012222200212022222122222222222222222212222222222222122220121222222210222222202222212222201220222122121122222222222022222222222222212210222212212220222200222200012122222112222221222202222201220222222222222221221222222201222222212222222222210220222222122121222222221022222222222222212220222202212220222202222202012220222212222220222201222010121222220222222220020222222201222222212222212222220220222222122221222222221022222202202222202202222212222220222211222201112021222012222220222221222101121222220222222221121222222201222222212222202222022220222022221122222222222122222212222222222201222222222222222220222201202122222102222222222201222102220222222222122220222222222220222222222222202222211222222122120221222212221122222212202222202200222222222222222020222222222121222222222222222212222012021202222222022220021222222222222222202222222222200220222022221020222212220122222202222222222221222222212220212220222210122220222222222222222212222110222212220222222220021222222212222222222222212222001221222122020021222212222022222202202222212212222222202222212102222210022121222102222121222210222021121202221222122221022222222210222222222222202222001221222222121120212222220022222202212222202220222222212222212012222200022221222022222020222200222222122222221222022222122222222201222222202222202222110222222122221121222202221222222222202222222222222222202222212220222220202121222222222121222201222111221212221222022220120222222210222222202222212222202222222020021020202212222122222202212222202211222222202221212002222212122222222022222121222202222102121212221222022220022222202200222222212220222222211222222121221021222222221022222202222222222212222222202222212010222202102121222022222120222220222201021202222222022222222222222220222222212221212222200221222122221120222212221122222222222222202201222222212222212222222221222120222002222121222201222100021222221222222222120222212211222222222222202222001221222022020122210222221022222222212222222212222202222222212120222202022221222122202122222221222002221212222222022222222222202200222222212220222222111221222122221220210212221022222222202222212202222212212221222010222222102222222002220020222210222212120222222222022220022222202212222222222222212222002222222220121221210202221122222212212222222222222202202222202122222200222111222122220122222210222000020202221222022222221222222222222222202222212222211220222022220020212222220222222212212222222211222212212220202200222222102112222222222222222221222112021222221222222221222222222200222222202221222222212221022020220022220202222122222222202222210222222212202222202122222220112100222002200020222212222010120202220222022221020222212210222222202220202222011220220121121022022222221222222202212222222222222202222220222221222211012110222102221021222222222200220002222222022220121222212201222222202222212222212222221120220020121202222222222222202222222220222222212222202210222200022210222212220122222221222012220102220222222022221222212222222222202221212222021222022122222121012212222022222222222222200222222212212222212202222221102110222012212122222220222001222202221222222120021222212201222222212222222222011221120020221220111202220022222222202222201221222222222220202110222202012021222122220020222202222121220002222222122122122222222222222222212221212222220221122120020221110202222122222222212222212210222212112222222010222200112110222022222121222221222212020002220222222222121222202211222222212220202222222222220122120121011222221222222202202222222220222212102221222101222210222002222110221222202211222001021022222222022121220222212221222222222220222222012221121121021020121202220221222202212222001220222212112222202210222220212101222110211020222202222000220022222222122020222222222221222222222220222222022221122121121222002222221221222222202222210210222212212222202101222211102022222100220120212220222010020102220222222020222222222211222222202220222222221220121001022021110222221221222222222222011222222222022221202000222221022201222200221221010200222011220202220222022220220222212202222222222221222222212221220221220021210202221120222202012222112221222222022220202111222222102112222200220121110202222011020112221222222122101222212220222222202222202222101222222121122220001212221121222222202222220222222202112221222200212212112110222201201020101220222000220002221222022220011222212211222222202222202222012222122001122022210222220222222222022222222220222212102221222120202221202010222011201220010212222001221212220222122121100222222222222222212220212221001220221001120220221212221120222212002222010212222212222220202200212212112022222020220022001201222000020222222222122121002222202220222222212222202221200222220112120122211222222122222222212222012210222202212221212121212201202110222002200220211201222210022222220222122222010222222222222222222220212222122220222222122122200222221122222222012222221201222222112221212002212211022212222122211121222210222212222112222222022222211222220210222222222221222222102221221211022121110222222020222222012222201212222212202221212110222202102021222210211222210221222010020212021222022221021222200212222222222221202200111221121110122021020202221222222222202222022121222212012220212212212202212122222021220020120222222202122102220222122021211222201111222222222221212220101222022200022120002222222220222222002222022110222202202221222202222212202221222120220021210202222020122102020222022020102222220112022222202220202210100222122221122022202202222221222212012222110001222212202221212202212222212100222220211121101220222210021002122222022222222222212102222222202221222200002221020021022022002212222121222212112222100100212212112222202212222212002220220100211220102211222020021012120222022221222222211222022222202220212220102221021111020021201202220120222202222222012200212202102221212212202211022221222121212020221210222210100202222222122220212222201102022222222220212202000221222202222120212212221122222212102222111010222212122222202210212212002120221202221222002200222212020022221222022120000222210211122222202221212220012222022212020121120212222222222202112222111011202202022220202220212212002201220002212021002200222122222112221222122121222222210211222222222220222200111221020122122022121202220121222222022222220210212222022222222020222202022102221222202120112212222200112212020222122122111222212020222222202220212211101221222211221220120202220120222212102222120222222202102222222021202221122212222010210021122210222102120022220222122222210222202220122222202220222220001222020211220220020212220221022212222122010102212212222221202112222220002220221101212221021211222221200202021222222222012222221011222222222220222220222221120112221221012212220122222212022122122101222202022221212020212210022112221000220221102221222100120022221222022022001222210212022222222220222202220222222120121022002202221220222212012122200201202222202222222210212201012011221020221222212222222200220202122222022220102222222011222222212222222202012221221100221121212212222222122212112122222002202202112222222002212202212212221112220221111211222201000122121222122022020222201010222222202222212202221220122120120120120212221021222202012122021021212222112222212112210200122222220002212220112210222110021012022222222021021222212011122222222220202220110221020202121022212202221022022212212222101020222202202222222000222201202110221200222222010201212200221222022222222020000222201112222222220221212222012221120111220022102212221122122222112222012122222222122221202200222212122101221210210022001221222112122222122222122221111222212002222222210221212201120211021110120021201222222021022202022022101000222200022222212120220201212210221210222220222220212011221202220222222122000222210120022222220221202222021210020120120020221222221221122222122222202222222201022221210112212222122122220110202121112202222210022112022222122020122021210212222222011221222210010221222221022222121222221120122222122022012022202202012222222210200201002012221012221020200220202120211102222222222022110022202001122222112220212211120221222200221021020212220222122222112122201111202212102221220010200211002101221111211120121222212120102222022222222022000222212220022222021222212221012212122120021021100202222022222212012222002221222000002221212121201220222010222012210122002211202202201202020222222121101212202112122222212221102211011222120012221221210222221222122202122122212122202022102222202010221201002010221121210020102211222210220112021222122020221200210202222222200222122221200201222121122221112202222121022202022122001102222022112221220120222201212200221011200221212220202200211102020222022122212101221022022221122220112210220212220112222121012222222222222212012022201202212122212200200122210211122100222002210021201200222212202012021222222120112001220220122221102220012221201220221120002022011202221220022202212122210002202001202220212110222222002201221111222221220200212122022222220222222020120010211200022222212221212202110210222110000221120222220220222222102022122211222010222211221202202220112001222010211201201211222112002222220212222220112202221122222220101020022002211202221112210022212022220021120212202122122220222122001202222012201202102100221112210110120210212222111222222212022020111000222122022221202220002111220212121222222221020102222222222212222222222001222020022211221221200221012212220222202212101211222120010222121200022020200002210210222222102221022200220222020210212201101202221121021202122122220110212101100220220101202210202201220121200102211210212201122022020201022020000221202200122221011222012001022221022002211101122122221222120202202222222101212212201210220202211212102222222200200012220011212121100022222201122021212200201001122222022020012120011002222021201010021122221121022202122122110122222211021220200212202222222220221020200001011010202122210002020202022021012002202201222220011022110210112121221222112102000122221220220220012222102002202101112221211222210222222020022210210120112200222211111122021220122022002000211020022222010020022201021221121000100000202212221022021212112222202112212222222200221021200222102100121121221221010212202102200012220212120022212102222011022220220220211200121211220211001122222102221221020202202222010121212200100221202012222212112011222020210010010221212122200102022220221020002000212022122221202021122000112210021200010000210222220120121201122222021102212102111222201121202201202002020120200201212110202101010102022200121222211012221121122221000122021100210212222122211220212102221020122210202222110002212200011201200021201220022012110200222202010110002212220010120010022120110012200120022222122021212000212022122022010021101012221222020212102122120000212202002202202222222210012200102200200111220022112012202102021122021120011121200020122220001221102112201201020102122212202112220122122212222022110111222010201211210002212202112020020222212100211112122120200002020201020021202021200200022222010120111011000012120121101212002212222122121200022022212122202211001220201122201201012022011111200001112022002112002200220221121202120002212010122222010222121211010100220111112122101222222021021211212122121120212202000200210112220002211221002010102121110201000000011200112100002201220112102201101001200002222202202212002201221110202000102001202000200100102121000220100101111222110 diff --git a/2019/inputs/day_9.txt b/2019/inputs/day_9.txt deleted file mode 100644 index 6ec0b92..0000000 --- a/2019/inputs/day_9.txt +++ /dev/null @@ -1 +0,0 @@ -1102,34463338,34463338,63,1007,63,34463338,63,1005,63,53,1101,0,3,1000,109,988,209,12,9,1000,209,6,209,3,203,0,1008,1000,1,63,1005,63,65,1008,1000,2,63,1005,63,904,1008,1000,0,63,1005,63,58,4,25,104,0,99,4,0,104,0,99,4,17,104,0,99,0,0,1102,23,1,1004,1102,1,26,1000,1102,897,1,1028,1101,27,0,1012,1102,33,1,1001,1102,32,1,1007,1101,39,0,1005,1101,0,29,1018,1101,0,0,1020,1101,1,0,1021,1101,0,21,1002,1102,1,35,1014,1101,0,36,1009,1102,1,38,1006,1102,1,251,1024,1102,28,1,1017,1102,37,1,1008,1102,1,329,1026,1102,25,1,1011,1102,31,1,1013,1102,892,1,1029,1102,242,1,1025,1102,1,881,1022,1102,22,1,1003,1102,874,1,1023,1101,20,0,1016,1101,24,0,1019,1101,0,326,1027,1101,0,34,1015,1102,1,30,1010,109,-2,2102,1,7,63,1008,63,36,63,1005,63,205,1001,64,1,64,1105,1,207,4,187,1002,64,2,64,109,9,21101,40,0,6,1008,1013,43,63,1005,63,227,1105,1,233,4,213,1001,64,1,64,1002,64,2,64,109,26,2105,1,-9,4,239,1001,64,1,64,1106,0,251,1002,64,2,64,109,-15,1205,2,263,1105,1,269,4,257,1001,64,1,64,1002,64,2,64,109,-9,2102,1,0,63,1008,63,36,63,1005,63,295,4,275,1001,64,1,64,1106,0,295,1002,64,2,64,109,-14,1207,10,38,63,1005,63,311,1105,1,317,4,301,1001,64,1,64,1002,64,2,64,109,28,2106,0,4,1106,0,335,4,323,1001,64,1,64,1002,64,2,64,109,-8,1206,6,351,1001,64,1,64,1106,0,353,4,341,1002,64,2,64,109,-1,2107,33,-7,63,1005,63,369,1106,0,375,4,359,1001,64,1,64,1002,64,2,64,109,-9,2108,26,-1,63,1005,63,395,1001,64,1,64,1106,0,397,4,381,1002,64,2,64,109,3,1201,-2,0,63,1008,63,38,63,1005,63,419,4,403,1105,1,423,1001,64,1,64,1002,64,2,64,109,-13,2101,0,9,63,1008,63,23,63,1005,63,445,4,429,1105,1,449,1001,64,1,64,1002,64,2,64,109,11,1208,1,32,63,1005,63,471,4,455,1001,64,1,64,1106,0,471,1002,64,2,64,109,17,21108,41,38,-4,1005,1019,487,1105,1,493,4,477,1001,64,1,64,1002,64,2,64,109,6,1206,-9,511,4,499,1001,64,1,64,1106,0,511,1002,64,2,64,109,-23,21102,42,1,8,1008,1014,42,63,1005,63,533,4,517,1106,0,537,1001,64,1,64,1002,64,2,64,109,-3,2107,36,5,63,1005,63,555,4,543,1106,0,559,1001,64,1,64,1002,64,2,64,109,-6,1202,5,1,63,1008,63,21,63,1005,63,581,4,565,1106,0,585,1001,64,1,64,1002,64,2,64,109,1,1208,10,40,63,1005,63,605,1001,64,1,64,1106,0,607,4,591,1002,64,2,64,109,7,1201,0,0,63,1008,63,42,63,1005,63,631,1001,64,1,64,1106,0,633,4,613,1002,64,2,64,109,1,21107,43,42,7,1005,1013,649,1105,1,655,4,639,1001,64,1,64,1002,64,2,64,109,7,21108,44,44,3,1005,1016,677,4,661,1001,64,1,64,1106,0,677,1002,64,2,64,109,-7,21102,45,1,9,1008,1015,44,63,1005,63,701,1001,64,1,64,1106,0,703,4,683,1002,64,2,64,109,13,21101,46,0,-7,1008,1012,46,63,1005,63,729,4,709,1001,64,1,64,1105,1,729,1002,64,2,64,109,-13,2101,0,3,63,1008,63,33,63,1005,63,753,1001,64,1,64,1106,0,755,4,735,1002,64,2,64,109,14,1205,1,773,4,761,1001,64,1,64,1105,1,773,1002,64,2,64,109,-23,1202,10,1,63,1008,63,30,63,1005,63,797,1001,64,1,64,1105,1,799,4,779,1002,64,2,64,109,13,2108,22,-7,63,1005,63,817,4,805,1106,0,821,1001,64,1,64,1002,64,2,64,109,-11,1207,5,24,63,1005,63,843,4,827,1001,64,1,64,1105,1,843,1002,64,2,64,109,11,21107,47,48,7,1005,1017,861,4,849,1106,0,865,1001,64,1,64,1002,64,2,64,109,15,2105,1,-2,1001,64,1,64,1106,0,883,4,871,1002,64,2,64,109,10,2106,0,-7,4,889,1106,0,901,1001,64,1,64,4,64,99,21102,1,27,1,21102,1,915,0,1105,1,922,21201,1,28510,1,204,1,99,109,3,1207,-2,3,63,1005,63,964,21201,-2,-1,1,21102,1,942,0,1106,0,922,22102,1,1,-1,21201,-2,-3,1,21101,957,0,0,1106,0,922,22201,1,-1,-2,1105,1,968,21202,-2,1,-2,109,-3,2106,0,0 diff --git a/2020/inputs/.gitkeep b/2020/inputs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/2020/inputs/.gitkeep diff --git a/2020/inputs/day_1.txt b/2020/inputs/day_1.txt deleted file mode 100644 index fbbfa17..0000000 --- a/2020/inputs/day_1.txt +++ /dev/null @@ -1,200 +0,0 @@ -1337 -1906 -2007 -1939 -818 -1556 -2005 -1722 -1484 -1381 -1682 -1253 -1967 -1718 -2002 -1398 -1439 -1689 -1746 -1979 -1985 -1387 -1509 -1566 -1276 -1625 -1853 -882 -1750 -1390 -1731 -1555 -1860 -1675 -1457 -1554 -1506 -1639 -1543 -1849 -1062 -1869 -1769 -1858 -1916 -1504 -1747 -1925 -1275 -1273 -1383 -1816 -1814 -1481 -1649 -1993 -1759 -1949 -1499 -1374 -1613 -1424 -783 -1765 -1576 -1933 -1270 -1844 -1856 -1634 -1261 -1293 -1741 -668 -1573 -1599 -1877 -1474 -1918 -476 -1515 -1029 -202 -1589 -1867 -1503 -1582 -1605 -1557 -587 -1462 -1955 -1806 -1834 -1739 -1343 -1594 -1622 -1972 -1527 -1798 -1719 -1866 -134 -2000 -1992 -1966 -1909 -1340 -1621 -1921 -1256 -1365 -1314 -1748 -1963 -1379 -1627 -1848 -1977 -1917 -1826 -1716 -1631 -1404 -1936 -1677 -1661 -1986 -1997 -1603 -1932 -1780 -1902 -2009 -1257 -1871 -1362 -1662 -1507 -1255 -1539 -1962 -1886 -1513 -1264 -1873 -1700 -807 -1426 -1697 -1698 -1519 -1791 -1240 -1542 -1497 -1761 -1640 -1502 -1770 -1437 -1333 -1805 -1591 -1644 -1420 -1809 -1587 -1421 -1540 -1942 -470 -1940 -1831 -1247 -1632 -1975 -1774 -1919 -1829 -1944 -1553 -1361 -1483 -1995 -1868 -1601 -1552 -1854 -1490 -1855 -1987 -1538 -1389 -1454 -1427 -1686 -1456 -1974 diff --git a/2020/inputs/day_10.txt b/2020/inputs/day_10.txt deleted file mode 100644 index fa8ea01..0000000 --- a/2020/inputs/day_10.txt +++ /dev/null @@ -1,111 +0,0 @@ -71 -183 -111 -89 -92 -142 -25 -101 -52 -86 -18 -22 -70 -2 -135 -163 -34 -143 -153 -35 -144 -24 -23 -94 -100 -102 -17 -57 -76 -182 -134 -38 -7 -103 -66 -31 -11 -121 -77 -113 -128 -82 -99 -148 -137 -41 -32 -48 -131 -60 -127 -138 -73 -28 -10 -84 -180 -63 -125 -53 -176 -165 -114 -145 -152 -72 -107 -167 -59 -164 -78 -126 -118 -136 -83 -79 -58 -14 -106 -69 -51 -39 -157 -42 -177 -173 -93 -141 -3 -33 -13 -19 -45 -154 -95 -170 -54 -181 -6 -151 -1 -112 -96 -115 -85 -108 -166 -160 -40 -122 -12 diff --git a/2020/inputs/day_11.txt b/2020/inputs/day_11.txt deleted file mode 100644 index 977ae5f..0000000 --- a/2020/inputs/day_11.txt +++ /dev/null @@ -1,90 +0,0 @@ -LLLLL.LLLLLL.LLLLLLLLL.LLL.LL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLL.LLLLLLL -LLLLL.LLLLLL.LLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLL -LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLL.LLLL.L.LLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLL -LLLLL.L.LLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLL.L.LLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -L.LL.L.L.LL.....L.L..L.LL.L.L.L.....L..LLL.L.....L.L...LL..L.....L...L..L.LLLL..L.LL......L.L.L. -LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.L.LLLLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLL. -LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -......LL..LLLL.L...LL.....L.L.......L..L.LL....L.LLL........L.L.L.LL.....L.........L....L......L -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLL.LL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL..LLLLLLL..LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLL.LLLL.LLLLLLLLLLLLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.L.LLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.L.LLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLL..LLLLL.LLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLL.L.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -LLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -.L...L...L.....L...L....L.LL.LLL.LL...LL.L..L...L......L..LL..L..LL..L.L......L.L.LLL......L.L.. -LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLL.LLLLLLLLLLLLLLLLL.L.LLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLL.L.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLL.LLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LL.LL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -...........LLL.....LLL.....LL.L..........L..L.L.L...L.L.....L........L......L..L..L...LL....L.L. -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLL.LLLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLL.LLLL.L.LLLL.LLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLL.LLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLL.LLLLLLL.L.LLLLLLLL -LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL -LLLLL.LLLLLL.L.LLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -.LLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLL.LLLLLLLLLLLLL -L.......LL...LL...L..L.....L..LL..L.L.LLL.L.L..L.LL.L.........L....LLLL..LL..L.L..L..LLLL..LL.L. -LLLLL.LLLLLL.LLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLL.LLLLLL..LLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LL.LLLLLLLL -LLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -....LLL.LL....L.L.........L.L............L..L...L.LLLL......L...L.L..L....L.......L..L.......... -LLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL..LLLLLLLL.LLLLLL.LL.L.LLLLL.LLLLLL.LLLLLL.LLLLLLL.LLLLLLLL -LLLLLLLLLLLL.LL.L.LLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.L..LLL..LLLLLLLLL.LLLLLL.LLLL.L.LLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLL..LLLLL.LLLLLLLLL.LLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -.L..LLLL..L.L.LLL.......LL.LL.LL......L.L....L.LLL.......L...L.L.LL...LL.....L.L....L.L...L.L... -LLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLL.LLLL -LLLLL.LL.LLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLL..LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLL.LLLLLL..LLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLL.LL -LLL.LLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLL -LLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLLLLLL.LLLLLLLLLLLLLLLLLLL -.L..L..LLL....LL......LL.L.L..LL..LL....L...L..L.L.L...L..L..L.LLLL.L....L.....L..L...L...LLL... -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -LLLLLLLLLLLLL.LLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.L.LLLLLL.LLLL.LLL.LLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLLLLLLLLL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLL.LLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LL.LLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL -LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLLLLL..LLLLLLLLLLLLLL.LLLLLL.LL.LLLLLLLLLLL.L.LLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -..LL.LL.L.LL.L...L..L..L..L...LL........L......LL.LLLL.......L..LLL.L.L....L.....L..LL..L.LL.LL. -LLLLL.LLLL.L.LLLLL.LLL.LLLLLL.LLLLLLL.LL.LLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL..LLLLL.LLLLLLL.LLLL.LLLLLLLLLLL.LLLL..LLLL.LLLLLLLLLLL.LLLLLLLLLLLLL.LLLL -LLLLL.LLLLLLLLLLLLLLL.L.LLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLL..LLLLLLLLLLLLLLL.L.LLLLLLLLLLL.LLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLL -LLLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LL.LL.LLL.LL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL..LLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL..LLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -.LL..LL.L.LL......L.L.LL...L..LL..LL...L..L.L..LL...L.L..L.....L.LLL..L..LL.L..L.......L..LLL... -LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL -LLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLL.LLLLLLLLLLLLLLLLL -LLLLL.LLLLLLLLLLLLLLLL.LLLLLLLL.LLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLL..LLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL..LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLL.LLLLLLLLL.LLLL.LLL.L.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLL -LLLLL.LLL.LL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LL.LLL.LLLL.LLLLL.LLLLLL.LL.L.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.L.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -.L.L....LLL.L.L........L..L....L..L...LL..L..LLL..L.L....L..L.LL....LL.L.L.....L........L..L.L.. -LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLL.LL.LLLLLLLLLLLLL.LLLL.LLLLL.LLLLLL.LLLLLLLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLL.LLL -LLLLL.LLLLLL.LLLLLLLLLLLLLL.L.LLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLL.LLLLLL.LLLL.LLLLL.LL..LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.L.LLLL.LLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -LLLLLLLLLLLL.LLLLLLLLLLLLL.LL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLL -LLLL..L.LLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLL.LLLLLLLL -LLLLL..LLLLL.LLLLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLL.LLLLLL..LLLLLLLLL.LLLLLLLL -LLLLL.LLLLLL.LLLLLLLLL.LLLLLL.LLLL.LLLLLLLLLLLLLLLLLLL.L.LL..LLLLLLLLLLL.LLLL.LLLLLLLLL.LLLLLLLL diff --git a/2020/inputs/day_12.txt b/2020/inputs/day_12.txt deleted file mode 100644 index d7bc269..0000000 --- a/2020/inputs/day_12.txt +++ /dev/null @@ -1,755 +0,0 @@ -F93 -R90 -F81 -E3 -F80 -R90 -W4 -R90 -F64 -N1 -R90 -W4 -F11 -W1 -L180 -F28 -R90 -W4 -L180 -F95 -N3 -F71 -L90 -W1 -F1 -E2 -L90 -F85 -W3 -L90 -F28 -E3 -N5 -F47 -S2 -R90 -N2 -L90 -W4 -L180 -W3 -F51 -F77 -L90 -W5 -N5 -W3 -S5 -W5 -R180 -N1 -W3 -S5 -F36 -W1 -F34 -N4 -F40 -E2 -S3 -R90 -W5 -S2 -N4 -R90 -S2 -L90 -N4 -L90 -S2 -E1 -F2 -N4 -F65 -N1 -F46 -R180 -F60 -N4 -F45 -R90 -S3 -L90 -F70 -W4 -L270 -N4 -F49 -E3 -F52 -R180 -F5 -E5 -R90 -F43 -L90 -S4 -F54 -N1 -F7 -S2 -F91 -S4 -N3 -E3 -S4 -L180 -F15 -S2 -F90 -W5 -S2 -F80 -N4 -L90 -R90 -N4 -E2 -R180 -E5 -F62 -L90 -N5 -F77 -N5 -F75 -E2 -L90 -S4 -F55 -E1 -N5 -F57 -R90 -F6 -L90 -N3 -E5 -L180 -N2 -L270 -N5 -F8 -E2 -F88 -E3 -N3 -E4 -R90 -N1 -W5 -R90 -N4 -E3 -S3 -R90 -N1 -E2 -F4 -N4 -R90 -N3 -W5 -L180 -E1 -F2 -N4 -W5 -F80 -S4 -F7 -L180 -F96 -L90 -F16 -L90 -E4 -F78 -W2 -R90 -S3 -F29 -W4 -R90 -E4 -F39 -N1 -F48 -E4 -L180 -E1 -R180 -E2 -R90 -N3 -R180 -W2 -N5 -W5 -E3 -F25 -E1 -L180 -N5 -F44 -L90 -N4 -W4 -L90 -F72 -L90 -S1 -E5 -N5 -R90 -N1 -W3 -S5 -R90 -W1 -F14 -L90 -W2 -R90 -W3 -F76 -S5 -W5 -F93 -W4 -R90 -F57 -E3 -R90 -S3 -W1 -R90 -S3 -F8 -R90 -N2 -F46 -W4 -S1 -L90 -E4 -W5 -L90 -W2 -F69 -N5 -W5 -F80 -N3 -E4 -L90 -E4 -F25 -S3 -R180 -F77 -R90 -W2 -F19 -E4 -L180 -W2 -F37 -S2 -F68 -L90 -E2 -F66 -S1 -R90 -F66 -E2 -L180 -F97 -N3 -W4 -F43 -S4 -R180 -N1 -R270 -E3 -N2 -N3 -F65 -L90 -S2 -L90 -N3 -L90 -S3 -F23 -L270 -W3 -S5 -E2 -R90 -S1 -F85 -N3 -R90 -W4 -F58 -E1 -L90 -N3 -L90 -E2 -S1 -F14 -E2 -N5 -W1 -N3 -E1 -L90 -E3 -F43 -E3 -N3 -F21 -E4 -F53 -E2 -L180 -E4 -F20 -E2 -N2 -E5 -L90 -N4 -W3 -N4 -S2 -L90 -W3 -F96 -L90 -S3 -R90 -N1 -E3 -S5 -L270 -F41 -N5 -W5 -S1 -W5 -R90 -F79 -W3 -L90 -E3 -F22 -N1 -L90 -E2 -L90 -R90 -F20 -L90 -W3 -R90 -W2 -L180 -W4 -F57 -R180 -N3 -L90 -F36 -L90 -E2 -R90 -N2 -E3 -N1 -W4 -W4 -N3 -E5 -F54 -R180 -F98 -W1 -R90 -F21 -S1 -L90 -S2 -L90 -S2 -F90 -E4 -S2 -R90 -N5 -F25 -N4 -W3 -N2 -F27 -S3 -E3 -N3 -F15 -L180 -S4 -F62 -W2 -L180 -E2 -N2 -L90 -R90 -F97 -R90 -S1 -R90 -E2 -F16 -W2 -E1 -F89 -W1 -L180 -S3 -W2 -S3 -E1 -F92 -F30 -N1 -E2 -S1 -F76 -E1 -S5 -W5 -F28 -W4 -L90 -F44 -E4 -N5 -F25 -R90 -F59 -S4 -F58 -S2 -F19 -W5 -S4 -E5 -N3 -F37 -E1 -L90 -F40 -E5 -F56 -S2 -W5 -F73 -N5 -F2 -L90 -F18 -E2 -N5 -L90 -F56 -R90 -F18 -W1 -S5 -E1 -N1 -L90 -W2 -E4 -N4 -E1 -W4 -N4 -L90 -N3 -R90 -W5 -S5 -F2 -R180 -F96 -R90 -W3 -F26 -L90 -S4 -E2 -F43 -S2 -R90 -F61 -W5 -F93 -R90 -F95 -L90 -E4 -R90 -N4 -F47 -R90 -W5 -L90 -F42 -L90 -W5 -F87 -R90 -N1 -N2 -E4 -F64 -S5 -L270 -F86 -S4 -W3 -S1 -L90 -F72 -R270 -W1 -F17 -S1 -E2 -R90 -W1 -N1 -F42 -N5 -L90 -F87 -F66 -L90 -N2 -W2 -L90 -S5 -F7 -R90 -N4 -L270 -F2 -W1 -N4 -F94 -W5 -R180 -S4 -F15 -E4 -F76 -N1 -E2 -F68 -S3 -F50 -R270 -E5 -F77 -R90 -S3 -E2 -N3 -S4 -F39 -S1 -E5 -S3 -L90 -E4 -S2 -W3 -F54 -R90 -F44 -L90 -W3 -F59 -R90 -N3 -F37 -E1 -F75 -R90 -F31 -W3 -F70 -S5 -L90 -E1 -F67 -W4 -L90 -S1 -W5 -S1 -S4 -W2 -E2 -S3 -R90 -S2 -E5 -L90 -F43 -R90 -E1 -S5 -F42 -L90 -W1 -N2 -E1 -L180 -S4 -W1 -L90 -F81 -E1 -R180 -N5 -R180 -N5 -L180 -F65 -R90 -F64 -W4 -S4 -R90 -F70 -E1 -S1 -F50 -E2 -S4 -E4 -N2 -S1 -R90 -E4 -R90 -F70 -R90 -N4 -F71 -R180 -F80 -S3 -L90 -N5 -L180 -F11 -N1 -R90 -W2 -N1 -R90 -W4 -R90 -F67 -W3 -R90 -W5 -L90 -E4 -F90 -L90 -N4 -L180 -F48 -R90 -W2 -F94 -R90 -N4 -L90 -W2 -F2 -L90 -W1 -E5 -S2 -W5 -S5 -E2 -N3 -W5 -N1 -F98 -S3 -W3 -L90 -S3 -W4 -R90 -W1 -F64 -N5 -R90 -S5 -W5 -F84 -S1 -E3 -L90 -S3 -E5 -F6 -N4 -W1 -R90 -E4 -F14 -N1 -R90 -F31 -L90 -F24 -F4 -N4 -F54 -S3 -R270 -F98 -E1 -L180 -F2 -E4 -F70 -W1 -R180 -N5 -F23 diff --git a/2020/inputs/day_2.txt b/2020/inputs/day_2.txt deleted file mode 100644 index 3a0963f..0000000 --- a/2020/inputs/day_2.txt +++ /dev/null @@ -1,1000 +0,0 @@ -15-16 l: klfbblslvjclmlnqklvg -6-13 h: pghjchdxhnjhjd -4-13 n: nnznntzznqnzbtzj -10-16 r: nrrrrkrjtxwrrrwx -1-6 t: rttftttttttttmdttttt -4-12 l: zhllfxlmvqtnhx -6-8 d: wxpwgdbjtffddkb -7-9 q: rqcqxjqhsm -6-8 x: xxxfxdxxx -5-9 d: dwnwnbsddfmc -2-6 j: jvdrrjchml -8-10 x: xxxcxxxzxxxxx -15-16 f: ffffffffffffffnfc -3-12 v: vgvvvvvvvvfqvvvv -2-5 p: tknppm -11-12 r: frrnrfqtshrgw -13-16 f: rfjmkrqkqrxmfnqj -3-5 f: ffffxffn -2-4 f: fffwf -11-13 s: srslssshssssx -1-6 c: cccdcn -2-6 t: tthhnc -12-17 w: wwwwwwwwwwwmwwwwg -5-6 k: kqkksskkp -4-5 p: ppppx -5-12 h: hbjhqhdwnqxhhsh -6-8 p: ppgzpppw -3-4 z: zzcz -6-15 x: hfvxxsqbfxxlhpxtb -4-7 m: qmxzhgt -18-20 b: fvzbbrbcvskxrpkwnmwb -1-11 c: ccccccccccggccc -1-3 p: dppp -2-6 j: fjbmljmdb -2-4 l: slpmqpk -3-5 b: stbpbbndtgzxlsnbdk -6-11 h: hlzkdhhhrhchmhbhl -1-4 w: wwpv -10-12 p: pmpppkpppgph -11-14 f: fbdxffpffffffkfffjvf -4-9 v: vkvfhfvvrvvv -16-17 t: tmtbztrptdlvttvkt -2-6 w: wwwwphwwwwnwwj -6-11 x: xxxxxxxxxxkxx -9-10 t: ttftchttnd -2-9 w: wkwwwwwwlww -2-4 g: ggvcgggggggggg -5-6 d: dldddsddddddd -5-8 j: jddjjnld -9-12 l: xldxlklvlkll -2-3 w: xwnrwdwndlvl -16-18 m: mmmmrmmmmmrvvmmvmm -3-4 t: ctts -11-12 b: ndgjdbppcdbhhssw -2-11 s: nssksssnssxvq -2-5 g: qggwcvf -10-14 l: llxlllrjlmlllwllll -8-9 w: wwwwfpwtvtjwjw -8-10 m: mmmmmmmmmmm -1-11 z: rldjzzzpzzs -16-17 v: qvsrnvvvwxgmvjjcvhcx -14-18 k: kkkkkkkkkkkkkkkkklk -2-3 q: qqrqqqxqqqq -4-9 c: lclckhcgn -2-3 b: nbbbbldlbbb -15-18 v: vtvvrvxvvnvxhvnvvv -4-7 q: qqqnqqqq -3-13 j: svjjdcnkwnbpl -4-11 q: blnqvqsngwj -3-4 j: dxdkj -5-7 c: dzxbsctqwclcgc -3-4 f: jfhffff -3-5 t: sttwk -7-8 t: tnqtvsztqwpvtftknt -1-12 r: grrrrrrrrrrrrrrr -7-8 k: kkkkkkqkk -3-4 l: llls -1-14 h: khhhjhhhhhhhhh -3-5 d: ttcdddd -1-7 w: dqwhwkww -4-5 p: pppqppppp -10-14 l: lqlltwlllllllzjk -15-17 d: ddddddddddddddddcdd -1-8 z: xpbbjxrzlzznxlz -1-2 v: vrvv -7-11 l: llllllclllslll -3-14 h: hhvhhhhhhhhhhhh -6-7 m: mmgpbjmgqmm -9-13 h: hhhhhhhhhhhhfnhhhhwh -12-17 c: cccpfcccccnccccqscc -6-12 x: kqfxbhxbdxxxl -6-8 z: zqkbtzzb -6-8 l: llllllllllllll -6-13 d: wdzdxdddddlzdtbd -3-8 h: gzcknrxkjgtggnqwqjs -1-6 t: tttttvtt -5-8 x: fjxnxrtn -6-9 z: zzzzzzzzszzz -2-4 v: vpvvtv -1-7 w: wcwrxgf -2-3 t: vxftld -1-2 n: nnxmntsqzk -5-11 l: nmvllllnlckl -7-13 c: cwchccjcrfsccc -2-3 z: dzdz -7-8 s: sddgbhws -3-11 w: qqsqrgmwwmwgfdhpsct -16-17 q: qqqqzqqqqqqqqqqqh -7-15 h: thqthdphmbhhjphhh -6-10 k: gcflljjwkk -9-17 f: ffffffffffffffffdf -10-12 q: qqqqbqlpqqfdqq -3-16 x: dbxmwtlqdmvldxlgxdhk -1-2 x: xxjxh -10-11 p: ppqpppkpptp -3-5 w: wwwwwwwww -10-11 j: xjmhqgdznjf -9-11 n: dxnnnnnnnnmnnn -1-5 l: mlllvllwlrblllll -14-16 q: tqqqqqqwqqqqqmqqqqq -2-3 b: nvbbbcf -5-8 x: xmkxxgxq -1-4 x: xxxfx -1-6 n: nnnrnm -9-17 p: pppppppppppppppppp -2-4 d: ddqd -13-14 p: fmpkxpprppppzhpp -5-6 t: tttttgrttt -10-12 r: rrrrrrrrrlrrrrrrrr -4-7 h: gnmqvqrhwhh -4-5 m: smsmmmm -4-5 q: qgzqb -6-12 c: rdnnsccnrjkcnm -4-16 k: gfkxktpwhxzkgcdnb -4-5 f: ffgvf -6-13 n: nfslcrnkksfmnmvcfnnz -15-18 s: sssqsssssmshmsmsss -1-15 v: vvvvwvvxvvvcvvwvvvvv -2-8 h: gphlnhph -4-13 t: vtjvrcxqwbsrk -2-10 t: tvttftzttttqttt -12-13 t: dvsbstlkfpztdqs -7-8 w: rvwncwww -13-16 v: vlqzjlvxljrvvjvvzp -12-13 w: wwwwwwwwnwdwwgwwwx -14-15 d: dcpdddddddddddmdbd -1-3 b: bbdbbbb -11-12 t: rkdtncbtkktzmvtghb -3-7 n: nzbfgbnnx -5-13 v: vsvbkvvvvvvvv -3-8 n: nltdrmbn -14-15 p: mzkmmqdfpcptzbzc -4-6 q: qtqkgqfmqwm -9-10 v: vvdvvxvvxvwd -5-7 m: mmmmmmkm -6-7 k: kkkkkgkk -8-9 h: shhhhhhhh -8-11 p: pppppppppczplbwcpb -11-17 k: kkkkkkkkkkkkkktkc -9-17 w: mwtfbvsfnhwxqqvxw -8-12 j: jhjjjjjrkjnjjjjjjjj -3-5 g: sgfgqgg -12-14 j: jjjjjjjjjjjjjjjjjjjj -1-11 f: jsffffzfffffxffftf -16-17 f: fffffffffftfffffff -2-4 k: klkwkk -5-8 g: gtjngzkhgb -4-7 b: bbbmbbbb -4-5 w: wwwdw -5-15 g: tplhhgmggbhggrllqg -9-13 v: jvvbqvsbvzhxvh -1-3 d: ddsddn -2-5 w: cfwds -7-11 x: xxxxjxvvxvxhxvml -5-6 v: jwqxvb -3-15 s: ssqsssssssssssss -5-9 d: dddddddddddddddd -5-8 l: vklnlclj -10-13 s: sltdlfbssxsss -11-18 j: hxjxjnjcpmkppnpjpjk -4-6 t: ttbzhvt -2-17 v: rzmhrssrjvpncwqwl -2-4 x: mtcxz -11-12 d: dddddddwddbd -2-13 h: whgpdxvkfxrhg -5-7 d: ddddddxdtddddddhdddq -4-8 b: lhcfbkbbdmb -8-15 l: lvtmkgwllqttgplbgjj -3-5 n: nqngjvw -12-19 m: mmmmmmmmmmmmmmmmmmgm -5-9 g: grhgsdcwgmdt -6-9 j: msgrcrfvzksfxxjq -6-10 s: xdssssssssssssssg -8-9 h: hhhnhhnfhh -12-15 f: fffffffffffffffwfff -3-7 p: pzzpbjkfcczbmnpkf -6-7 r: cnjlbhr -2-5 f: dwxcftrbljgstf -5-11 h: hhhhjhhhhhqh -16-18 r: rrrrrrrrrrrrrrrrrmrr -2-4 r: rxmrd -7-9 c: ccccczccccc -7-13 d: ddddddddddddfd -3-11 k: mmkspkltjwm -8-11 c: rvccccgtclc -1-3 v: vvhhv -4-7 t: jttnttgx -4-16 n: nnnjnfnnnnnnnnnnnn -5-6 m: mmmdmqmm -9-10 x: xxxxxxxkxrx -2-4 m: tmcmzjmvtcghlgm -6-7 q: lqqjqqnzqqmq -16-19 k: kjwkhkkjhkskskpnkfk -19-20 b: pbbpsbnbbmnntbnbbbbn -4-5 p: ppppmp -3-4 d: grlqndd -4-7 n: nnnnnnsn -9-12 k: kkkkkkkkfkkkkk -4-10 h: hfhhhxhfhd -4-9 t: ttttxbbbcdmxsrhjj -4-11 l: npxwbsmklbls -17-20 d: dddddwdhdkddjdddtfdd -3-4 s: nldssq -4-8 s: sssdsssgs -5-16 t: ttttprtcttttttzt -9-17 j: tjjtjjjjgljjjcjjfj -7-8 b: bbbbtbkbb -2-13 l: szllllllllxllll -8-11 n: bmpnwrnngnmsfw -1-5 d: jddqtdwddxddjd -10-11 s: hqgnvslssstqdnvs -14-16 p: ppppppppvpplpgpp -2-8 h: khhjfcqp -6-7 d: fxdpdwvdjkd -5-7 n: bnnprnf -9-13 f: vfffwfffffffkfxff -2-10 j: vjhcggzrjqt -5-7 g: gggfggzwgg -5-6 d: ddbsjddfsdnddxfpgdd -12-13 g: gggqjgxgzpgsggxggxk -1-8 l: hlslllllll -12-13 f: sbfftpvbjsmff -6-7 s: hqcthsb -5-11 s: qsstnssssqsrsskdss -2-6 x: hxrfnjfclx -1-2 w: swwwwwwwwwwwjwmwwwww -7-12 s: whsbkgsmvnfjnnkq -10-12 l: fllllllllsllll -8-9 s: lsssssssqs -1-7 p: pdpppghqppxpppppp -1-3 x: jhxmjhkdrxgd -1-7 b: lbxbbbvbwbbbbt -4-5 c: cdckcbcmqcc -5-9 k: kkmklhlmkkgkrld -12-18 x: dvjxqxxxxxdxxxzxhp -5-8 h: nhfhnfqx -15-16 k: kkkkktrkkkkkpkhqxkkd -1-13 j: dcnbwjxllpksj -11-13 v: wvqhznrrfgmnvz -2-5 m: bpjbmbrmfh -10-15 t: mgtttttqspthnttkktt -9-10 n: nnpnnnnpnh -8-10 b: bjbzhbbbcq -4-12 n: nnnvnnnnnnnnnn -13-14 v: zbkchmmvjvsgkvhcz -2-9 j: jdqjgnnjjjvjt -11-16 g: ggggxqglgglfhvgggn -1-2 b: bsbm -8-11 v: lvvvjhvmxvvvv -5-7 x: xxsxxxpr -2-15 t: stwqdkrqcwbmngtd -5-8 r: rcrrvndr -5-6 v: vvvvvr -4-5 x: qpxxr -1-2 k: nkkkkkd -10-13 r: znlqhvwdvrqbrrrfzwc -1-2 h: hwhhhchhhhhhhhhhhh -3-6 b: bbbbbvbbbvbb -13-14 s: ssssssssmssssdss -7-11 x: cwxhmnhzxrxdrzzxbw -5-16 m: rgjtmrqqmfmmckxm -17-18 b: bbbbbbbbbbbbbbbbbk -11-20 k: kppkqkftkgkkknbtglkb -13-14 t: rtcfrkjvtgnrtf -5-6 z: kdzjxzjgmd -2-3 p: rxppj -9-12 b: mtpbbbbbbbbgp -8-9 b: rbbbbbsbbbbxb -13-17 r: rxgbrrnrrrrrrkrrlrrr -8-11 w: pzqswqwcfln -3-4 x: xxxx -6-9 j: fjhkjjklc -6-7 m: ctmzmfm -8-9 l: lllllllgllpts -8-9 t: hgpwblqkvqtb -4-7 d: dddpddd -4-5 c: ccccwcccg -1-7 q: lvvtpqqvnsqbzqpr -8-15 q: qqqqqqqqqqpqqqlqqq -4-8 f: frfffffffxf -7-12 r: rrrrrrrrrrrkprrtrrrp -14-15 j: jsjjjjjjjjjjjjl -6-17 b: khgflbrbrjbgzjtjt -5-7 j: jjknjpw -2-9 h: rhlqbdklh -5-7 j: lrtvccjbzgjh -12-14 t: tltwtxtctttnttttft -8-9 q: qqqqqqqqx -4-15 p: ppppppppppppppc -2-3 v: vvvvv -5-7 h: djvplxb -11-12 g: gjxlvggsgggxsgfgp -5-6 g: gggggfg -1-6 x: wxtxxxxxxxxxx -1-4 r: rqrcrvrzbrxrwjr -9-10 w: wwwmwwwwpww -7-15 z: pzrbrxpzzzzzntzv -4-5 q: qjqwqqnlqhclq -12-16 g: ggccgzggggsggjgg -11-13 b: phbmbsgkvszbbrbb -2-3 l: xhlbhl -1-7 q: qwdqmtv -5-9 x: xxxxjxxxxx -6-8 p: kvpwqbdp -11-13 t: tqttttttttttmt -9-16 l: wzdxdmlxlkfjknnz -1-11 j: vjjjjjjjjjjj -2-18 t: tsttttttttttttttthtt -6-7 n: fnnncnl -3-5 s: lssvgfssgsshsvstsss -3-5 h: hhhbhhh -4-10 x: tsxxxxxxbls -2-4 n: nnjw -17-18 p: bptpftnxjchrwthtppk -14-15 d: dddddddddddddddd -10-14 m: mmmwnmmgmdmmmmmmmmm -8-9 k: pkpqffpkktbgkbk -7-11 l: lllllllllqplllllllll -11-15 n: nnnzngknbnzdnsnnn -2-4 l: vbqm -10-11 w: wwwwwwwwwwq -3-5 x: xxtxxxxx -3-15 b: spbcxjlbbbrbbbbb -4-5 n: nvfsn -13-16 n: bppjnncnbgjndnnntwgs -1-8 t: mttttttttt -6-9 d: jvmssdkdhxsd -9-10 d: gdrllcfdnd -7-11 c: cscxccccnztccccz -15-16 p: pppppkphpppppspg -2-4 n: vnkjlwwsswscmxktnj -9-11 r: rrrrrkrzslr -7-10 t: tttgqtnttttttttt -4-10 b: bbrzbzpbsbnbbjnbsb -7-8 j: jlljxtsj -5-15 z: lzzzfqzzzzzqzzzzzz -10-11 r: rrrrrrrrrrcrrrr -6-8 t: tztpbttttt -2-9 c: vcgtfxfbr -9-16 r: vgjrwcxhrrhbzxnj -17-18 r: bczjtmjwrtzwvmgbrl -5-6 d: dqgddvd -1-2 r: krzrkr -8-9 j: rxjjjjgbj -8-9 c: cjccccccc -13-14 b: bbbbgbbbbbbbbvb -5-6 p: hbhwtp -1-2 w: wfhrfsfbjtpkqcjrwdb -10-13 q: qqqqqqqnqrqqzqq -3-4 m: xcmcz -11-15 d: dldddcddddjddqd -4-10 h: khhlhhhhhhhhhhhh -2-4 d: bdfpmxzqzbzmxmmwg -4-5 l: lgrbl -9-13 s: ssssssssfsssss -7-8 p: pplkpmkppppppxp -3-8 j: jjjjjjjj -7-8 f: jfffffhzfff -2-5 p: pppppppp -8-9 l: tlclllmlz -4-5 m: mtrmx -13-16 x: xxxxsxmxxxxvwxxw -5-8 n: jknnngnv -4-7 p: ppptppgpppp -12-15 r: rrrrrrrrrrrxrrrhr -2-9 s: sssssssssss -5-6 z: zphzzr -13-17 m: mmlmmsmzmsddbxmkb -5-7 g: gggggggg -8-9 f: ndzfvfkfz -2-10 g: wtngwdkcxgrth -6-13 r: rrqrrqrrqrrrcrrrr -1-6 z: hfzzzz -10-13 j: jjjjjjjjjjjjdj -5-11 m: wfqvmhbjhhnmzdlmpjc -6-8 d: clddzxcdghn -8-12 n: qfqbbvkpjbznrz -3-6 r: rrbrrrrrrx -9-10 r: rrrrrrrrrrr -4-5 m: chltmcm -7-8 r: rrrnprrzrhr -3-4 j: jfcj -16-17 n: nnnnnnnnnnnnnnnnwnnn -7-8 r: rrrrrrnfr -4-12 n: nnnnspnlcnmsnnnn -11-12 v: vvvvvvfvvvhvvv -2-8 h: hlhhkhhchhhghh -4-5 t: stntztttmp -3-5 v: vvvmbvhvvvlvn -9-14 x: srxmtbtgxgmqxxxc -4-5 z: zrlgz -10-11 p: phxkvklpmdp -8-15 m: mmmmmmmpmmmmmmm -1-13 h: mzwqkhhhphsgh -17-19 s: qssssmssgfmssmmpssk -6-8 b: bbbbbbbjbb -3-4 l: rllr -2-4 j: kvjj -2-5 n: lnnkrm -15-16 w: wwwkwwwwwwwwwwwc -1-3 c: ccncc -2-5 s: bhppmsttzcscss -1-4 t: tttxtttt -1-9 r: rfrrrbhtxrrbrmrmr -12-13 s: qplrssssmfswrsswss -2-4 h: zrhhhhzhzhch -1-5 g: rgjgg -11-14 t: ttttvftttttqlsttt -3-4 s: sskss -5-15 m: mmmmnmmmmmvmmmm -1-8 j: sjjjjjjj -1-4 c: ccclcc -5-7 d: ddddhdd -2-8 z: tczzjzzzzzzzgz -1-5 s: qsqdz -8-11 z: zhzpzrvzhzkzzgm -5-9 g: nvdfgshgbgltlqggbp -1-12 r: rrrrrrrrrrrrr -3-4 m: xmmb -8-10 j: jjjjdjmjshqjzk -2-4 t: tptttftt -4-13 t: ggqscfggftnxgjpn -4-12 q: hvzjzqsqwqjlqx -7-8 q: qqqlqqqkqq -9-10 f: ffffffffdfff -2-7 k: kgkkkkkk -7-11 t: xbpdkrtplmfbtkwgp -4-7 c: ccccccccc -12-14 d: dddddddddddqdddddd -6-7 k: xhnntkpnbkfwlr -3-5 q: qqxxq -13-17 d: ddddddddddddvddddd -2-3 g: smglpgpflsrbwxcjctb -5-9 z: zjzzznfzf -7-13 l: lmrkvvxtltcnj -15-16 r: vjrrrkzxrrrqrtrpzv -2-7 x: xsxxxxxx -7-14 m: npmnmgdvnqmgrmm -2-4 x: pxxl -7-15 k: nkkkckgwdkffkmb -7-11 n: dznnmcnssmcn -8-10 s: skssgswssmsss -14-16 n: nnnnnnnncdnjnnhwnnn -4-7 g: kggmgggbggggwggcqgng -4-7 g: gggqggggg -1-2 c: cccc -4-8 j: mzzvwjgrbrv -11-12 x: pksjnwlltskxlj -1-9 k: zfkkkksrkkkkkkz -1-6 k: xkkkkknkk -1-6 c: gccccncbccccc -14-15 h: hhhhhrhhgkhhhmhh -7-8 f: qffgnfhf -2-6 m: vmqwxzgsm -5-8 k: kkzjkwkvk -3-4 s: dcsss -2-4 p: jjbps -2-11 z: zjzzzzzzzzzz -4-7 f: bnkhvjfff -13-16 m: mmmmmmmmmmmmjmmmmmm -5-10 t: kdwjmcgtvtdttmtvw -3-12 j: jjljwjfjjjjjnhjjjjc -13-14 f: fffffflffxfffbf -2-6 m: zmhmsm -4-18 n: nnnvnnnnnhnnnfnnnhnn -3-6 n: xznnsnn -7-11 g: ggggpgggggggsg -6-8 l: llllltllll -4-5 s: ssnttsrs -6-14 w: wwwwwwwwwwwpwlwwww -9-12 q: pxqvswnqqbsqvgsd -1-4 j: mjjjjz -9-19 f: fffffffflfffffffffff -2-6 t: rttqtstct -6-9 d: dddddtddddd -7-12 l: lllllllllllllll -1-12 p: gppppppplpppppp -1-4 s: fslssssssfcd -6-7 v: wvvzffggdfvbvvv -2-7 t: kkwgspt -6-16 n: nncbnnnntwrxlzzwdrsj -3-4 z: zzszzhrqwngprjt -4-5 v: vkvvvcfjc -4-5 j: hcjtj -2-4 k: kqkkkkkkkksk -7-9 g: gzgmgpgkv -5-9 s: kjnwsrjrzssssdlnsqs -2-8 j: jtjxxgmjkjx -5-12 r: bfrcrtjkzqffsjtvwj -1-2 v: xvvvmvvvv -5-9 v: vzrgdldfvx -3-5 m: mqsfmmlmvdfj -12-15 v: wswvvbqqhlvqvwx -6-7 b: bbmjdhb -2-4 b: hbjmjr -6-7 n: pnnnnln -13-15 z: zzlgzpmztfzqzzl -5-6 c: pcppscccccc -6-7 z: zzzzzzz -6-14 l: lllllllllllllqllqlll -13-16 r: rrrrrwrrrrrrhrrr -11-12 r: rrrrhrvhqmqrwr -15-19 w: wwwwwwwwwwwwwwwwwwdw -3-6 w: wwqxkw -17-18 z: zzzzzzzzszzzzzzczvz -3-4 g: lgxx -4-5 x: nsdxdskjxtrz -11-12 w: wvdgqppfwwdf -2-3 w: qgrz -7-8 w: wwrppwfwwrcwr -2-6 n: gtspnngz -3-7 j: jjpjjjzjjjjj -1-2 l: pllblvgmfjvv -15-18 r: rrlgctrrrcrqqgldpr -3-6 v: vvvvvt -2-10 s: vslltcxpbg -5-8 j: blvzjtjnfmjnjtsrzmc -9-13 b: bbbbbbbbbbbbsb -3-4 w: wwfjw -6-7 x: xxxxxxmx -7-15 g: ggggggrgggggggfggg -16-18 f: zffffffffffffffwfff -3-4 q: qcqn -3-4 k: kvzqk -4-18 z: wpclkbsxwbmbmkdpzzcm -1-8 z: zkzzzzzgzzzzz -7-16 x: xxxxxxxxxxxxxxjkxxx -3-6 t: xwcjztz -8-9 r: rdrprrtrs -1-7 v: dvvvvvcvvd -6-8 t: tttttkttt -1-5 w: xzwww -6-7 c: ctdjbwcc -3-4 t: ttnttt -9-10 q: qmcqqqsqqqvqqq -11-12 d: dpftdmdmdmld -7-8 j: tbjmbjlj -3-6 t: tttttqtt -6-8 t: tdttthbnqt -2-5 q: qqqqp -1-3 t: ttht -13-17 n: nnnnnnnnnnnnnnnndnn -4-6 j: ftkvjj -5-10 c: hvccfcsccb -7-11 v: vmqvqnnnvzglvvvv -5-8 k: kkkkkksckkk -1-12 z: rzzzzzzzzzzzzzzzvzz -17-18 t: tttttmtttmttttttpttt -16-17 z: xljjnngmjmhprcqzw -4-11 d: dtddbpddlhn -17-18 t: tptttttttttttttttbtt -9-12 w: wwwwwwwwwwwcw -3-4 z: zdzj -1-8 q: qlqqkqqhqtqhxqbbwcp -6-8 r: rkrrlrrmzrcnnrk -13-17 b: dbsbbbbbbbsbmkbbb -5-16 q: gqnvqwwgqshmtrdbplfb -7-9 c: mcvccccczc -10-11 p: pppxppppppc -1-6 v: vvvvvmvvvvv -5-6 s: ssssks -6-14 r: prgrbvrjrgrkrrr -2-11 c: qbnxcvxgldcvdd -11-15 d: ddddddddddsddddd -13-14 w: rwwwwwwwwwwwwsw -12-15 t: ttttttttttttttt -5-8 g: skjgxsjpgvsgr -5-11 g: ggddglggxgqgg -2-4 c: cccc -2-3 h: rvdg -9-13 r: rrrrrrrrsrrrjrrr -2-7 f: dflmgzsdftgkgc -1-5 f: jffffffnfcff -3-4 c: cccrqc -2-7 m: kblcghm -3-4 r: rscrnbbpfkr -2-3 d: wdtqpd -5-6 q: qqqpqnqq -13-15 d: ddddsdddddddddjd -3-4 c: cmcw -2-7 q: qqqqqqjqqqqbqfqq -11-14 x: txxxxpxdxxkxqcv -10-11 b: bbbbbbbbbkbb -7-11 p: ppppppppppmpv -5-6 r: dnxrcvrrr -1-4 d: rdddddd -5-9 f: lxgfvffdf -8-16 k: vmfksjkwkrkkkhkkvknk -15-16 v: vvvvvqvvvvvvvvgv -2-5 p: xpctr -11-15 w: wfwwwwwkwwwwwpr -11-13 x: xxxxxxxlxrfxxs -18-19 b: bbbbbbbbbbqbbbbbbbb -2-4 l: fgwl -8-11 m: xmjnmmmmnmh -4-6 g: lgvpksgq -5-7 t: jtgtvttjlfhpljtzzstd -7-11 p: mjcgvcmxgqpntxkpb -2-3 r: rrgrrnr -6-7 r: rrrrrcr -4-14 d: dddjdddddddddpdddd -5-7 q: qqqqkqqqq -1-4 t: qttqt -4-10 f: hbfjbzrfgvffq -16-17 j: wjjwjwpsjjdvfjnhv -3-4 v: vvtwv -5-6 s: ssdswspdss -1-2 r: rnrrmskrr -4-7 h: rqxbjjhsfh -4-9 l: llllllllhl -4-6 w: sgtwwmcpwd -4-11 l: fjdllznlllmdnll -4-5 k: kkklk -4-6 s: sszrssssssss -12-14 w: wwwwwwwwwwwvwww -2-4 b: vnzb -7-18 g: ggggggggggggggggggg -1-13 s: srjdvvpqnrsnnkzfj -14-15 g: bmhbclmqcgtqxgg -8-12 g: gggfhxgglgzb -3-5 c: scrkcshctccmhm -7-12 q: qklqqqhqvxqqqqw -1-6 m: mlmxzwkmm -3-16 r: rswggrrrrczxfpjt -14-16 l: llldlblllqllllns -2-5 w: wwwwmw -7-9 r: rrrhrprrr -2-3 j: zjmdfcth -3-8 w: xwgwwwwww -1-5 l: plllllll -2-4 b: fbqp -2-3 p: jwpmp -3-4 c: kscm -2-5 b: mbpbnfkvh -4-15 m: qrswmmmgmvmfqtmrrn -12-15 r: rxrrrrrdrhpfrrrrcrrr -10-13 j: jjljjjjjjnjjjjj -8-20 w: gjccptmwtrwxjtskrdfp -11-14 j: jjjjjxjjjjgjjk -1-4 g: gggzzgg -4-8 q: wqqqqblsmsk -1-11 h: lhhhfhhhhbvhhtjwrbh -4-8 x: xlxqxxtxxxxx -13-14 x: xxxxsxxxxxxxqxxx -12-16 b: bxvbbbqbbbbfzbblb -1-4 j: jzbd -5-6 q: qqqqwqkkqqq -2-5 x: xxxxgx -8-10 n: nnnnnnnnnhn -5-10 m: mmmmrmmmmmmmm -2-3 c: qwcz -3-5 n: cckvz -18-19 q: qqqqqqlqtqqqqqqqjqv -5-13 k: kkpkkkkkkkkklkkk -5-10 q: jfjgqllmqzv -15-17 l: llllllllllllllhll -4-10 b: pgqbfrsnvbhzfmtbtw -1-4 c: mccc -6-16 f: fffffpfffffffcfffff -4-9 j: qjbjlcsgljtbvv -11-12 z: dstqbtxxvdchsg -3-8 d: jvdpnvqs -2-3 n: nfvnnnn -6-12 r: zdbfdrvtmpkrjkr -1-15 k: kbdckwtkfhvrbjk -6-8 v: fvhsvgcv -2-3 p: ppkppp -2-14 r: drclhnrdhtcbmnr -7-10 p: vchpmlpjfxbfnwsdxjr -1-3 v: lvvv -1-3 b: bbjbb -2-12 q: qmxbbbgqlscqvdtpq -7-9 l: lllllkllqlllclll -16-17 r: hrrrrrrrrrrrrrrrr -8-9 g: gggggggfg -6-8 v: zvqffmkv -9-12 t: tttttznttjtfrtsjxtd -5-12 q: bqhbltqnjlhqqhtkq -8-9 d: ddddddddkd -2-8 q: tvpqmrrq -13-16 q: qqqgmqqqqqsqmqqpqqqs -7-9 p: pppppplppp -4-6 h: hhxhlhhhxhp -6-8 g: gggggdggggg -4-5 j: jjjkjj -4-5 x: xxxfg -2-13 x: xxhrhxwbrgrdskghtkj -12-19 x: cxxxxxxxxxxhxxxxxxx -1-4 m: tmmmm -5-11 x: mgqnkjxxscxdxr -3-4 t: tttctt -4-13 b: bfkbfbbwbcbpvcbkdqww -5-7 d: dwddddqd -4-15 l: lvvlfclwbssvsdl -9-14 d: ndkfnddtdddfjpvdqt -8-9 s: ssssssssk -9-13 l: dlljknlsllbslhlml -4-5 n: lnnwn -8-12 v: rlvbqlwvfhvv -6-7 f: rcpfwfvffqfcpf -10-11 g: rnqgxbtnxqfzgggtn -8-11 d: ntdzzddkbdhcdddrgdld -5-6 s: xkmssxscvbpwj -1-3 r: rrmr -9-14 p: pvppppppppppppppp -11-15 t: vhftnbtmwpgbcvt -2-7 t: pmbwnrj -10-11 c: cccccccdcvcc -9-14 s: ssksssssssssslsss -2-5 t: ctrtqpn -4-6 t: mttjftttt -4-5 z: zfbzz -2-3 x: xwxlwstzmvvt -4-5 b: vbsbjwpbsbbb -3-4 x: cwxxlmdf -5-6 z: zzzqszzzzzz -1-4 c: ncczc -3-6 k: kkkkkkk -2-3 z: rjzkpxxdvzlzxjzz -8-10 z: fzjzszzdnzbzkzzfz -1-9 c: ccccxccjpccccc -3-12 j: jjjjjjjjjjjcj -10-14 l: llplllvbllllsp -8-12 r: hnrcrxfzrkcjcprrzjbr -17-20 q: qqkqqqqqqqqqqqqbqqqh -6-9 l: lllljlrlpxllllll -8-9 v: vzzmtwfgv -3-7 v: fqdbsshw -12-13 f: fwffnjfbfffzzqfxfffx -1-3 m: zjmdvjjg -5-7 r: nrswrlbw -8-11 c: crzfvzpcbcbchgxbln -9-17 g: ggggggzgwwjpggpgvgrk -6-9 k: hhkrvkkqfhqwbdb -10-16 q: mzzjqfmtkqwvgdfttj -11-13 m: mmmmmmmmmmtmm -1-2 j: jjhrrj -3-12 h: hhhhhhhhhhhhh -8-11 w: zwkrwznrppw -7-14 d: dpxjnddbvdbcllqr -5-8 c: ccccfcccccc -12-16 p: tnptbppgwxxpppjb -1-14 t: qktttttttttttttt -9-12 t: tttttcttgjtt -3-5 p: tcpdgwhrkxkzjjhvsgqp -13-14 k: kkkkkkkkkkkkklk -11-13 x: xxxxxxsxxxxxt -5-12 n: nxxnnznnnnmlnnn -12-14 h: hhlhhhhhhhzcnnhhhhkh -8-10 j: jbjbjmjvjj -6-9 c: ccccccccsc -5-12 j: jjjjjjjjjjjcj -1-2 f: fhffff -13-17 x: xnlxxxxsxxxxxxxxp -2-5 d: sddzn -2-4 q: qqqt -2-6 p: fmxfxnkp -9-11 k: nkdgncqkkgwjp -2-5 p: hpmgcfcmz -1-3 f: ffczf -5-9 r: rtrrprrrrrr -2-4 p: pnpprdn -9-11 l: ltllbllvllc -4-5 x: xxxmxxx -5-9 x: xxxxxxxxxx -16-20 b: hgcbhbbhbgbbdxhdgjwb -10-15 c: qcccpcccdcccccfccwcf -10-11 x: xndsgkwqpxb -15-17 f: wwbqxrffgfvffdmdffw -5-6 q: qqqhqvqqqq -3-4 h: hhhchc -7-9 x: xxxxxxxxgx -7-8 f: fmfflfgf -12-13 v: vvvvvvvvvvvcvvvv -3-7 g: gggbggsgg -1-5 w: wpswsggtw -3-5 h: hhhhkhhhhhdhw -6-7 w: wwwwwmwwwww -5-11 m: mfdmcwmlvpmfc -14-15 j: jjjjjjjjjjjjjjrjj -3-5 v: rvtvkdvqv -3-6 p: frppxpdpg -3-5 t: ttttrt -2-7 x: xxwxxkfxxxxxxxxxxgxr -6-8 k: kkkkkpkgkkkk -10-11 f: fffffpfffkfdf -11-12 g: gggghgnggflg -1-7 x: xxnxxxxkxx -3-4 h: rhhx -6-8 r: bcwrrrrrhrxmqgrhrzm -2-6 l: mpdlnnp -2-4 j: jbjjdhx -2-15 d: dfdddddddnddddfzddjd -5-12 h: gbngwvffshph -1-2 t: txcpth -14-15 f: ffffkfflfffffgf -8-9 b: bbbbbbpbj -5-6 f: zffhfz -8-15 j: qjjfrtjllqfjjcj -3-5 l: llxllll -10-15 z: tpdzhnzkzrtzrzzzrfrz -3-5 q: qqlqq -3-4 d: vmzddpm -8-11 c: cmvzlxtqxcvckxqm -2-13 r: drpppdsqsmvnlkjb -7-9 w: wwwwwwkww -3-6 s: svfspfnpzq -3-4 b: fqpbbbbzpgqf -2-4 s: smssm -8-9 q: qqqqqlqbq -4-7 s: stcssbw -15-16 k: kkkkkkkkkkkkkkkk -10-13 x: xxsxxzxzxxsxphxxxxx -4-5 p: drpsx -7-11 v: vvvvvvvvvvvvv -14-15 n: nnnnnnnnnpnnnbnn -5-8 k: blgkkkkc -12-16 g: ggggggggggvggggggg -1-8 c: cccccccdc -3-9 p: ppqppppppp -7-9 q: cxqqqbhqqzhjqv -1-12 m: mrkvwmmsjmkmw -2-4 s: xrrj -2-4 w: mbww -7-14 v: vvvvvvvvvvvvvbv -3-8 p: kppjprpxppb -4-10 n: znncndnnjncnrnkn -5-7 k: kktnkks -10-13 r: rrrrrrrrrrrrnr -1-6 k: kkkkkrvk -3-5 k: jhjzkbqsjwkxsvd -5-8 p: pcqpprckrp -2-5 f: fsjwf -6-9 l: jxhtplclr -4-13 x: gdxdcdmmxlfxxs -2-10 v: vvvrvvvvvhvvvvvvvv -11-12 v: wqnwrlvjsxvs -1-4 m: mfqm -3-5 d: bmddv -8-10 h: hbhhdhfchh -4-5 s: sssdb -2-3 l: lsll -10-11 k: kkkkdcpnkkgkk -6-8 r: vrrrrxrrrrr -3-4 s: gxsbfr -17-18 p: ptppppppbbpbprpcqpp -16-17 s: gpgwvvnjbdqpksnsd -5-10 f: gfkfzqflfzffvf -6-18 m: kxxfrxjmwmltdvxwmmb -5-6 d: ddntbd -11-15 b: bbbrbhbgbbltbbhb -6-7 r: krbrrrp -5-6 q: qqqqqkqqqqq -3-6 k: kfkmjt -8-10 d: drbwtrdshdbg -13-15 n: tqnprfnndhplcjn -2-4 w: wjwg -10-11 p: xprpnpvhppp -9-10 r: rrrrrrrrqrrr -2-8 w: wjwnwhwwwwwww -12-13 g: gggggggggggwggg -1-6 s: sssssss -1-9 k: xkkkkkkkkkkkkkv -2-4 c: ccccc -3-7 s: ftssfrm -12-13 k: kkkkkkkkbkksk -9-16 q: qqqmqbbqhzqwtlwqb -7-9 p: ppppppppdppp -4-6 b: pcvbvkhb -9-10 g: qmchkfggmgpqgxxgxq -2-9 t: sthtnttthtlsq -3-4 x: xxxx -8-14 s: ssssssssdssssssss -1-3 m: gmbmvbmqbxvm -10-15 s: sgwkdvnsswsszwrn -3-4 s: gmgs -5-11 f: fffffffffffffffff -7-9 v: vvfvsvzdhvv -4-8 l: lllllllpllllllllll -11-16 x: xxxplxxxxxpxxxxxxxxx -9-13 t: tdtftttjdtttc -9-13 g: rknsckngkvdxg -3-4 d: sdqwddmr -1-3 l: lljl -7-17 r: trhrpmrqswrmnrbrrhb -7-8 g: ghkxwgttgk -5-7 b: fbnbtbndb -6-7 v: vnxlvgv -1-6 t: txtkttg -2-13 n: ljnnnnlpsnscfnnnnnnf -4-11 b: bbbbbbbbbbfb -6-9 x: wxdkxxnnnx -2-4 w: wswww -5-13 j: jjsjjjjjjjjjkjjjj -1-4 f: fszhf -5-9 z: wzgfpzzzzjszfvfpwz -5-9 x: xxxxhxxxsx -15-17 b: bbbbbbbbbbbbbbkbqb -2-7 x: xvdmgxxwgxx -3-4 q: qqqq -6-7 m: mqmlltc -8-10 k: kkkfkhkkkpkkkk -2-6 n: cnxnts -1-6 s: gsssssssssscssss -1-9 n: bbvkmnkdn -2-5 p: nmlhpv -4-6 g: vnggdpgm -7-12 b: bbbbbbvwsbbbbbbbbbbx -2-3 b: lgbjjr -7-12 n: chqccgnwsznngz -4-6 v: nntkvvv -2-5 g: qkrjgkqgljh -1-5 f: rffffsfzxfjfzffff -15-16 z: zpzzzzzzzzzhzzkszz -3-4 l: lmflkl -7-8 f: fffvzxff -2-4 r: rrrgrrrr -12-14 w: tjwgwkkwwwwwwwwww -2-12 m: mzmkmmmmmhmmcmmmrmf -5-7 q: nfqbgqqqpqqgjq -1-4 r: ktpr -5-6 j: jjjgbj -9-13 d: ddpbdddwbbdmd -8-9 r: rphfrrrsrr -10-12 f: fffffffffffbffpff -5-12 b: xhbbcbbbbxtbbb -9-10 j: jjjjjjjjqjjj -3-4 q: qqqn -3-9 r: srrtqqprjmqgnp -2-3 c: gcqc -3-4 c: bclc -3-6 n: jnxhshghnnqncgncn -2-4 h: ckhh -9-12 t: tdjjqcdbtkbtmb -11-13 x: cxxkxbxktxxxkxxxpxxh -4-14 m: hjqmqjvqgjdjzsssdkm -6-12 r: rrrrrlrrrrrrrr -14-16 g: gngggggkfglzgggv -9-13 h: hvhhdzhhmhhhh -3-15 x: xxjxxxxxxxxxxxbxx -10-12 z: zzzzzzzzzpzzz -3-4 h: dnhv -13-14 g: gggggggggggggg -7-11 r: rrrrrrrrrrr -6-9 x: czxxlsxxx -3-5 h: hhchh -1-9 j: jjjjjgdjjjjjjjf -7-10 b: ctsbpxrvwbkbjklghnbn -10-11 g: gggggggggglg -1-7 x: xnpsxfm -9-10 q: xxxzqbpdqj -4-10 q: pqsqbqcvllfn -11-12 x: xxxkxxxxxxgxxxx -3-12 s: pstrsssntsssssbssj -9-12 s: wnsdfrtssllsfbsssccb -1-6 r: nrrrrmrc -11-13 k: kkskkkbkkkzkkk -4-5 h: hhhhshh -5-19 f: ffffffffffffffffffcf -3-4 z: zczzz -5-8 l: ghlllsllfw -3-9 g: ggpngglkkf -7-9 b: xwbbbhhbmgjhbbbhnbb -4-5 c: cjmgczcccpzqr -15-16 j: jqfqsnnvffpjjjqj -5-6 z: zzzztvws -3-7 t: tftxtvfzs -1-5 l: tlllll -5-18 n: nnnngnnnnnnnnnnnnnn -5-6 m: bchzqm -9-10 p: lmpsbqgzpxggltl -2-9 h: hqdpjwpxhg -4-6 n: nqbnbnknnzd -2-7 q: qbqqqvq -7-8 c: cccccclc -8-12 r: rrkrrrprvrcqnr -14-15 j: jkpjjnjjjwjjjjjjhjwj -7-9 s: stsstspsn -8-11 h: hhhhbhhhhjhhhh -5-6 d: dddtpdd diff --git a/2020/inputs/day_3.txt b/2020/inputs/day_3.txt deleted file mode 100644 index 0fe60b0..0000000 --- a/2020/inputs/day_3.txt +++ /dev/null @@ -1,323 +0,0 @@ -...........#..............##... -...#....................#...... -.....####...........#.#..#.#... -....##.#....................... -.......#.##......#.###......... -.#.....#.......##.......#.....# -...........##....##.#....#..... -......#.........#....#......... -..###....#.........#....#.#.... -....#....#.#..#..#.........#.#. -..........................#...# -.##...........#...#.#.......#.. -#....##...#.#....#............. -....#..##......##..#.#....#.... -#..........#.............#..#.# -...#.####.....#..#.#.#..#...#.. -..........#......#........#..#. -............#.....#..#..#....#. -.................#...#......... -..#...#...................#.... -..............##...#........... -..........................#..#. -#...#...#............#...#..... -.................#..##.......#. -............#....#............. -.#......#.#...#....#...#....... -.....#.....##..##.....#.......# -.#..#..##...............#..#... -#...#...##............#........ -.......#....#.......#.......... -............................... -#................#...#......... -...#...#..#..#.............##.# -......#........#..............# -...#.....##.#...#...#.......... -.........#..#........##.#...##. -#.........##..#.......#........ -........##.#.#................. -.#....#............###....#.... -...#.##....#.....##..#..#....#. -....#..#........##..#...#..##.. -..........#............#....... -.........#........##....#..##.. -#....#.........#.#.......#..#.. -...#....#......##.#............ -........#..#...............#... -..............#.....#........#. -......#..#.#........#..#..#.##. -..#........###....#.#.......... -...#..#...#.#....##..#........# -........#..#..............#.... -#.####.................#....##. -.#................#............ -....#....#....#................ -#......#........##....#...#.... -......#..##..#..###...#.#.#.... -.#..........##................. -...#...#....#...#.....#.....#.. -............#......##.........# -..............##............... -##....#....#...#...#....#..###. -...................#.......##.. -#.....##........#....#......... -...#.......#...........#....... -...............##.............. -##.......#......#.....#........ -#....#..#..##..#.......#..#..#. -.....#.............#.......#... -......#..#........#.......#.#.. -..#...#...........#.##......... -..#................####.#..#... -......##....#.........#........ -..#..#.......#...##....#......# -#.#..........#..............#.# -.#.#..............#.##...#..... -................#.....#.#...... -##.........#.........#.....#... -....#.#.....................#.. -..#..#..#........#.......#..... -.....#..#.#....#....#.....#.... -..####....#.#.........#........ -#..##...##..#.#............#..# -.#........#..##.#.....#......## -.##.##.....##....#.#........... -....#..#.#..##............#.#.. -........#.#...#....#.........#. -.....#.#.#.....#....#.....##... -#...#..#....##..#.............. -..#...#....#...##..#.......#... -.#....##....................... -.........#............##.#..#.. -....#................#...#.#... -...................#..#...#.... -#..#...................#....... -..##..............#..........## -...#.##......#.............#... -.........#.#.........#......... -...###......#.................# -..........#....##.............. -.##..#....#.........#.#........ -.........#.......#.......#.#... -#........#............#......#. -....................#.......... -.......#...##..........#...#... -....#.#.......#.#...##..#.#.... -...#..........#..............#. -........##..............#...... -......#...##......#....##...... -....#.....#.#.##..............# -...#...........#.#............. -...........#......#.#.......... -...#.#......#......#...#...#... -..#.......................#.... -...#...#..#..................#. -##.....#.....#..#..#.....#...#. -.#..#.......##.#.#............. -......##.......##............#. -.......#..#..#.......#....#.#.. -......#.....##..##...#........# -.....#........#.##..........#.. -#....##............#........#.. -.....#..#...#............#...#. -##.#....#........#............. -.##...............##......#.#.. -###..#..#.......#.#..........#. -.....#...........#...##........ -..#.#.#.........#.....#....#... -.....#....##.......#..#.#...... -......#.....#...#..#...##..#... -.....#....#................#... -......#....#.#...##......##.#.# -.....###.............#......... -.................#......#####.. -.#.......#..........#.#....##.. -..#..#.......#.....#..#......## -..........#.#.##.......##....#. -##...#...##.##......#..###..... -..#..#..#......#....#.......... -..#...#....#......#....#....#.# -.#...#........#.....#......#..# -#.........#......#.##.##....... -#.##..#.............#.....#.... -....#.......#..#..##...##...... -...#.............#.#......#.... -#.....#..........##...##.....#. -...............#........#....#. -#.....#...#..#.............##.. -.#....##.#.......#.#..........# -....#....#.#.....#....#......#. -......#......#................. -.#.#..#.#.#...#...#..#.##.#..## -.............#.....#........... -............#...#..#..#.....#.. -.#..........#.......#....#..... -......#..###.#...#............. -......#..........#............. -....#.................#..#.#.#. -...##.##.#....##.##............ -####......#........###......#.. -..#.......#.#..#.##............ -.....#.....#.#.......#.....#... -.....#..........#.#............ -#.....#.............#......##.. -......##..........##....#...... -.#..............#..........#... -......#..#...#........#..#....# -.#......#.......#..#........... -..#..#....#.#.......#....##..#. -........#.#................#... -#.......#.##.#......#...#.....# -..#...#.#.....##............... -..........#.....##............. -.......#............#........#. -...#............#......#......# -.#..#.......#...#...#..#..#.... -#....#.#...#......#...#......#. -.#.......#..#.#...........#.... -...##.#...#.......#..........#. -.....#..............#..#...#... -...........................#... -.............#.....#........... -....#.#..#..#...#..#........... -.....#.#.#..#.#....#.#.#....... -.......#..............#.....##. -........#..#..#.#..#...#.#..... -.....#.#...#.#.#.....#..#...#.. -.....#....#.......#......#.#... -.#.#...........#........#...... -.##..##......#......#......#.#. -.....#.###.#.......##.#..#..... -#.......##..#.........#....#... -.#.............#.........#.#.#. -..........#..#..#....#....#.... -#....#...........##..#.....#..# -......#....#...###..#...#...... -.....#....#........#....#..#... -...##..............#.##...#.... -.#............#........##...... -..##........#.#...........#...# -..#.#...##...#..#..........##.. -.................#.......#..... -......#.....#............#..... -.#.....#.........#.#..#.#...... -.............#.#.#..#.......#.# -#......#.....#..##...#.......#. -.......#.#..#...#.........#.... -...#..##...#.........#.#....#.. -........................#..#... -....##..##................#.... -.......#..#.......#........##.. -.....#....#.##....#............ -.#....#............#.....#...#. -..##.....#......#......#.#....# -...#...........#...##....#..... -......#.##.#..##...##.#.#..##.. -.......##....#......#....#.#... -.....####..#............#..##.. -......##..##..##.........#...#. -.#.#...............#.........#. -......#......#...........#..... -.....#.......##.....#..#....... -.....##..#..#....#.#.......#... -...........###.###.##..#.#..#.. -.#...............##.........#.. -......##..........#..#.....##.# -.............#....#....#..##... -.#..............#........#..... -.#..#.........................# -.##..............#..........#.. -..#..#.#.#.#......#............ -....#...#.#.#....#........#..#. -.....#........#....#.....#..... -.#...#.#......#..#........#.##. -.......#.....#................# -.#.#........................#.. -............#..#.......#....... -....##.#........#...#.#.#.#.#.. -.....#.......##................ -...##...#....#.....#.#......... -#...#..............#.......#... -...#.#.#.#..##....##........... -.....##...#....#.....#......... -#......#.....#....#............ -....#..###....#.##.......#...#. -..................##.#......#.. -.....##..............##.#....#. -.........#...#........#..#....# -.##..#.........#....#..##...#.. -#.#.##................#.##..... -..#.#....#.#.......#....#...... -..#.#.##.#.......#............. -..#....#.#..##.#..........#.#.. -#.....#.....#.....#.........#.. -#.......##.....#....##.....#... -..#...#.........##.#..##....... -..#.#.........#.......#........ -#.....#.....##.#.#..#...#..#.## -.........................#.##.. -..#.#..#..#..#........#......#. -..#..............#............. -.....#.......##.##.....#....... -....#...#...............#..#... -....#......#.#........##.#..#.# -....................#..#....... -.....#.......#......#.##....... -#.......##..........#.....#.... -.#.......#....#.#......#....... -......#...#...............#.##. -....##.#.....#.............#.## -#..#................##...#..... -....###......#.#.........#..#.. -...#...#......#...##....#...#.# -..#...#.#.##.#................. -.....##......#..#.#....#....... -##.......#......#.#..#.#....... -.#.#.#.........#...#.#..#...... -#...#.#........#....#.#.....#.. -....#.......##....#......##.... -.....#..........#......#....#.. -#...#....#...#.....#.#......... -...#..##.....##....#.....#.#... -..................#.....##..... -.....#............#............ -...#.....#..#........#.#..##... -.......#.#..................... -......#...#.......#..#...#..#.. -.#..#...#.....##.....#.#.#....# -....##...#.#............#..#..# -...........#............#..#... -.......#.....#................# -..#......#.#.......#.#......... -.....#..#.#.##................. -.....#..#...................... -...#....#...#..#.#..#....#..... -.#............#.....#.......... -#.##..#..#.......#......#.....# -.#.........#....#....#......... -...#.#.#........#.#....#...#... -#........#..#..#..........#..#. -.....#..#.....##......##..##.#. -..............#.......#..#..#.. -....#........#.##.#...#........ -..#.#..#....#........##.....##. -...##.....#...#.......#.#....#. -#.....#..##.##.#...##.......#.. -.....#........#.#.#....#....... -.#................#####..#.#... -..........##..#..###....#...... -.....#.......#..........#..#... -..#....#....................#.. -#.....#..#.....#...##.#.....#.# -...#..##............#.....#.... -##.#..#.......##............... -........##...#.#.....#......#.. -........#...#.................. -#......#................#.#.... -...........#...#..#.........#.. -...#.##..#.##.................. -.....#......###......#..#...... -..#.#.....#...#..#.##........#. -....#..........#.#.....#....... -..#..........#..........#.#.... -..#.##.......#......#.......... diff --git a/2020/inputs/day_4.txt b/2020/inputs/day_4.txt deleted file mode 100644 index b17cdcd..0000000 --- a/2020/inputs/day_4.txt +++ /dev/null @@ -1,1023 +0,0 @@ -ecl:#eef340 eyr:2023 hcl:#c0946f pid:244684338 iyr:2020 cid:57 byr:1969 hgt:152cm - -pid:303807545 cid:213 ecl:gry hcl:#fffffd -eyr:2038 byr:1951 -hgt:171cm iyr:2011 - -hcl:#c0946f byr:1933 eyr:2025 pid:517067213 hgt:173cm -ecl:hzl -iyr:2018 - -pid:5253256652 byr:2009 hgt:152cm iyr:1989 eyr:1968 hcl:64cb63 ecl:hzl - -iyr:2013 -pid:862607211 eyr:2020 -hgt:174cm -byr:1990 -ecl:blu hcl:#888785 - -ecl:grn byr:1955 -pid:608098408 eyr:2027 iyr:2020 hcl:#b6652a cid:264 -hgt:181cm - -byr:1998 ecl:hzl eyr:2021 -hcl:#866857 hgt:189cm iyr:2030 -pid:013735467 - -pid:075417314 hcl:#b6652a byr:1957 -iyr:2011 -hgt:154cm -eyr:2025 -ecl:amb - -iyr:1993 hgt:74cm eyr:1960 -byr:2029 -hcl:293244 ecl:#3cb5e5 pid:4861232363 - -hgt:153cm hcl:#6b5442 pid:065240897 byr:1932 -cid:196 ecl:blu eyr:2028 iyr:2019 - -eyr:2024 ecl:amb -hcl:#866857 byr:1922 pid:496904942 hgt:164cm iyr:2020 - -pid:847705161 byr:1951 cid:124 iyr:1991 -eyr:2028 ecl:dne -hcl:6b2d28 hgt:172cm - -byr:2007 iyr:2029 ecl:hzl eyr:2026 hgt:168in -hcl:z -pid:63151612 - -iyr:2027 hgt:172in -cid:174 byr:2014 hcl:z eyr:1921 -ecl:grt pid:#cebdc2 - -ecl:amb hcl:#d09c0f -iyr:2015 hgt:156cm eyr:2026 byr:1962 -pid:086120872 - -cid:125 -pid:837849996 -byr:1958 ecl:brn hgt:166cm hcl:#ceb3a1 eyr:2028 iyr:2012 - -ecl:gry hgt:180cm -pid:939059935 eyr:2023 byr:1977 hcl:#b6652a - -hgt:190in byr:2029 eyr:1984 -ecl:gry hcl:z pid:055092916 iyr:2010 - -hgt:63in ecl:blu byr:1940 iyr:2012 eyr:2029 hcl:#7d3b0c -pid:163033394 - -eyr:2040 pid:181cm -iyr:1928 hgt:76cm hcl:d8aafb byr:1949 cid:275 ecl:xry - -hcl:#cfa07d ecl:oth byr:1948 eyr:2021 -pid:719690182 hgt:179cm iyr:2020 - -byr:1939 cid:266 -eyr:2026 iyr:2017 hcl:#f116d2 -ecl:hzl pid:522421825 -hgt:68in - -hcl:z hgt:61in -cid:115 pid:180cm iyr:2030 byr:2014 eyr:2032 ecl:hzl - -ecl:xry -eyr:2028 pid:191cm iyr:2015 hgt:150cm byr:2029 - -eyr:2027 -hcl:#a97842 pid:997937480 hgt:61in iyr:2019 -byr:1921 -ecl:grn - -hgt:163cm -pid:912318455 iyr:2016 byr:1988 ecl:brn hcl:#a97842 cid:221 eyr:2029 - -cid:333 hcl:#c0946f -hgt:163cm iyr:2018 eyr:2027 ecl:oth - -cid:70 hcl:#c0946f -pid:961507902 byr:1949 ecl:grn iyr:2017 eyr:2029 hgt:69in - -hgt:169cm ecl:amb -iyr:2013 pid:496169901 -byr:1943 eyr:2028 hcl:#ceb3a1 -cid:249 - -ecl:blu cid:343 -iyr:1998 hgt:154in hcl:#efcc98 byr:1972 - -pid:508213120 iyr:2012 eyr:2025 hcl:z hgt:70cm byr:1976 -ecl:brn - -iyr:1924 -eyr:2005 -hcl:z -hgt:167 pid:154cm -byr:2007 - -pid:761333244 hgt:180cm iyr:2017 hcl:#18171d eyr:2021 -byr:1983 -cid:67 ecl:oth - -eyr:1993 -byr:2003 -hcl:#602927 -ecl:grt -cid:84 hgt:178 -pid:1847086637 iyr:2026 - -hcl:#866857 hgt:162cm pid:483774485 iyr:2010 -byr:1946 eyr:2028 ecl:gry - -pid:726639691 eyr:2028 -hgt:171cm hcl:#ff65a6 -iyr:2011 byr:1989 - -hcl:z iyr:2026 ecl:xry -eyr:2037 byr:2005 pid:#f09a0f -hgt:68 cid:156 - -hgt:71in ecl:blu eyr:2026 hcl:#18171d -byr:1981 iyr:2017 -pid:698636544 - -eyr:2021 -byr:1957 ecl:brn pid:365378126 cid:93 iyr:2019 hcl:#18171d hgt:179cm - -byr:1996 iyr:2014 hgt:64cm -eyr:2034 -hcl:z - -pid:629486472 cid:140 -hgt:192cm eyr:2020 hcl:#b6652a iyr:1988 byr:2021 ecl:brn - -byr:1955 iyr:2015 eyr:2030 -ecl:gry hcl:z pid:6550198754 -hgt:158cm cid:305 - -ecl:gry hcl:#a97842 -hgt:176cm eyr:2022 pid:810146585 iyr:2020 - -byr:2027 hcl:#cfa07d -iyr:2011 ecl:#f07598 -cid:293 -hgt:150cm pid:#fa948d eyr:2029 - -eyr:2028 iyr:2013 hgt:69in ecl:gry pid:317170371 -cid:147 hcl:#bfe1f1 - -byr:1976 -pid:059341891 hgt:174cm -ecl:oth -eyr:2029 iyr:2017 hcl:#733820 - -iyr:2018 hcl:#ceb3a1 hgt:188cm cid:308 -pid:792826885 byr:1948 ecl:blu eyr:2028 - -iyr:2017 cid:94 hcl:#95c7dc -pid:231757803 eyr:2022 -byr:1992 hgt:153cm ecl:amb - -eyr:2027 -iyr:2011 hgt:186cm -ecl:brn pid:996347346 hcl:#866857 -byr:1960 - -eyr:2025 byr:2001 -ecl:blu pid:755715478 iyr:2019 hgt:61in - -ecl:gry -eyr:2038 -hgt:81 hcl:z iyr:2028 -cid:214 byr:1965 - -pid:412744447 byr:1979 hcl:#cfa07d ecl:blu -eyr:2029 cid:157 -hgt:180in iyr:1948 - -hgt:170cm -pid:623557081 byr:1924 eyr:2024 hcl:98d623 iyr:2012 ecl:amb - -cid:311 ecl:grn -iyr:2011 byr:1982 -eyr:2002 hcl:#ef318a -pid:0548169957 -hgt:87 - -eyr:2030 hcl:#733820 iyr:2016 pid:558470391 -byr:1936 ecl:oth hgt:185cm - -iyr:2019 -ecl:amb byr:1949 -pid:376468392 -hgt:178cm - -pid:019195245 -ecl:grn hgt:171cm -byr:1978 iyr:2011 eyr:2022 hcl:#733820 -cid:134 - -hcl:#623a2f hgt:192cm eyr:2026 byr:1977 -ecl:grn cid:308 - -ecl:hzl pid:715816358 hgt:69in iyr:2014 hcl:#623a2f -byr:1996 -eyr:2027 - -iyr:1947 -ecl:#39a697 -hgt:183cm byr:2029 -eyr:2022 pid:7951883913 -hcl:z - -ecl:gry byr:1950 -hcl:#18171d hgt:168cm iyr:2020 pid:677187333 eyr:2027 - -byr:1969 ecl:blu hcl:#18171d iyr:2011 -hgt:162cm -pid:701349891 - -cid:269 byr:1966 -iyr:2011 -pid:905940527 eyr:2023 hgt:190cm -ecl:brn hcl:#ceb3a1 - -eyr:2027 pid:454627395 ecl:brn -hcl:#ceb3a1 cid:302 hgt:184cm -byr:1959 -iyr:2015 - -iyr:2011 -eyr:2028 -hgt:166cm -hcl:#733820 byr:1938 ecl:blu pid:857984986 - -hcl:#c0946f ecl:brn pid:226877822 -hgt:182cm byr:1998 -cid:160 - -hgt:186in pid:26499164 byr:2017 -hcl:z -iyr:1998 eyr:2026 -cid:331 ecl:#236556 - -pid:328866543 -hgt:165cm eyr:2039 iyr:1987 ecl:amb byr:2018 hcl:z - -iyr:2016 eyr:2036 hcl:#888785 byr:1976 pid:160402352 hgt:76cm ecl:blu - -ecl:blu -hcl:#fffffd eyr:2025 hgt:66in pid:979788527 -byr:1957 iyr:2013 - -ecl:grn pid:279357265 iyr:2019 eyr:2021 byr:1953 -hgt:177cm hcl:#c0946f - -ecl:oth hcl:z eyr:2025 byr:1949 hgt:189cm iyr:2020 pid:901383503 - -byr:2019 hcl:#733820 -pid:31022828 eyr:1929 -hgt:75cm iyr:2012 ecl:grn - -pid:080462937 -ecl:blu hcl:#866857 -cid:102 -iyr:2013 eyr:2025 byr:1975 hgt:64in - -iyr:2016 -eyr:2028 -cid:125 -byr:1979 hcl:#866857 -ecl:brn hgt:173cm pid:814947616 - -hcl:z byr:2020 pid:#c3b54b hgt:174in eyr:2038 -iyr:2016 -ecl:gmt - -cid:132 -iyr:1958 -pid:61543452 hcl:z -ecl:zzz eyr:2039 byr:2006 - -cid:55 eyr:2022 byr:1954 iyr:2015 -hgt:188cm hcl:#a97842 pid:49143631 ecl:amb - -hgt:152cm -byr:1982 -iyr:2013 ecl:blu -hcl:#341e13 -eyr:2026 pid:440841976 - -iyr:2019 ecl:blu pid:553456616 hcl:#733820 hgt:160cm byr:1932 eyr:2030 - -byr:1980 hgt:169cm hcl:#7d3b0c cid:312 iyr:2010 -eyr:2026 pid:028550304 ecl:grn - -ecl:amb eyr:2021 iyr:2014 hgt:71in pid:986053283 byr:1981 - -ecl:oth -eyr:2023 hcl:#888785 -byr:1949 -iyr:2016 pid:699325656 - -hgt:63cm cid:297 eyr:2020 pid:990390922 -hcl:#602927 ecl:lzr -iyr:2012 byr:2016 - -hcl:9ea2fa eyr:2023 pid:088680493 -byr:1998 iyr:2017 ecl:utc hgt:170cm cid:175 - -cid:316 iyr:2016 eyr:2026 hcl:#79ff1d hgt:65in -byr:1997 pid:215466710 ecl:oth - -cid:213 byr:1983 hcl:#888785 iyr:2016 pid:767747981 eyr:2025 -ecl:hzl hgt:168cm - -eyr:2030 byr:1972 -cid:282 -ecl:gry hgt:178cm -hcl:#a97842 -iyr:2018 - -hcl:#6b5442 ecl:amb -eyr:2028 cid:104 hgt:159cm pid:446429120 iyr:2012 -byr:1938 - -byr:1940 hgt:178cm ecl:oth -hcl:#ceb3a1 -pid:845683663 iyr:2015 eyr:2024 - -byr:1940 pid:496262233 -hgt:184cm hcl:#b6652a -ecl:grn cid:152 iyr:2012 eyr:2029 - -hgt:185cm pid:455744229 byr:1954 eyr:2022 ecl:gry hcl:#6b5442 iyr:2012 - -hgt:182cm byr:1966 eyr:2028 ecl:#a5b7fc -iyr:2029 - -pid:343591896 -cid:58 -ecl:hzl -eyr:2022 hgt:180in byr:2021 -hcl:#6b5442 - -ecl:utc hcl:#b6652a -pid:635147657 byr:2020 -eyr:2022 hgt:157cm iyr:2018 - -ecl:grt cid:312 iyr:1959 pid:154262836 -hgt:171cm -hcl:#fffffd -eyr:2024 -byr:1982 - -hcl:#7a12b4 pid:223424149 ecl:hzl hgt:175cm -byr:1930 iyr:2010 eyr:2028 - -hcl:#c0946f pid:633476454 eyr:2026 iyr:2011 -byr:1934 -hgt:186cm -cid:289 ecl:gry - -hcl:#fffffd pid:376300524 hgt:155cm byr:1964 iyr:2017 eyr:2021 ecl:grn - -hcl:a5d4dc byr:2006 cid:165 ecl:#db800f iyr:2029 pid:0199789970 eyr:1961 hgt:61cm - -eyr:2027 hgt:170cm iyr:2010 -hcl:#c0946f -ecl:grn pid:415726530 -byr:1985 - -cid:197 byr:1957 hgt:192in hcl:#a97842 ecl:hzl eyr:2029 pid:958973455 iyr:2011 - -iyr:2015 pid:933689314 hgt:162cm ecl:amb -cid:122 eyr:2021 -hcl:#6b5442 byr:1973 - -eyr:2026 hgt:172cm -iyr:2012 -ecl:brn hcl:#733820 pid:004474632 -byr:2000 - -hgt:191cm eyr:2030 byr:1999 pid:9155071477 iyr:2026 hcl:#602927 cid:315 -ecl:grn - -iyr:2010 pid:182884251 hcl:#18171d hgt:154cm -eyr:2020 -byr:1926 ecl:oth - -iyr:2019 eyr:1920 pid:132839546 -cid:283 hgt:188in hcl:#efcc98 byr:2027 - -iyr:2011 hgt:177cm -cid:117 byr:1976 -ecl:gry -hcl:#623a2f eyr:2030 pid:134592046 - -byr:1968 hgt:146 -iyr:2013 hcl:eefdc4 eyr:2028 -ecl:xry pid:722120008 - -iyr:2016 byr:1941 hgt:67cm cid:51 hcl:#b6652a ecl:hzl eyr:2034 pid:994005715 - -hcl:#cfa07d ecl:oth -hgt:182cm eyr:2021 pid:612583941 -byr:1983 -iyr:2019 - -byr:1922 -hcl:#602927 hgt:161cm ecl:gry eyr:2020 pid:190170808 iyr:2013 - -hgt:63cm cid:136 -iyr:1999 -pid:8235748647 hcl:z -byr:2022 eyr:1933 -ecl:#304383 - -cid:273 ecl:blu hcl:z -iyr:2011 byr:2007 -eyr:2020 -pid:942473857 hgt:178in - -ecl:grt byr:2029 hgt:187in eyr:2030 cid:160 -hcl:#efcc98 pid:#39f22b -iyr:1966 - -byr:1978 ecl:oth iyr:2011 hgt:164cm eyr:2027 hcl:#cfa07d - -hgt:75cm hcl:#1e8137 byr:1986 ecl:blu eyr:2022 pid:796688423 -iyr:2012 - -eyr:2026 -ecl:#3013af hcl:z pid:#e8597f hgt:123 iyr:2025 byr:1942 - -hcl:z hgt:177in -iyr:1993 pid:#4c9348 byr:2008 eyr:1989 - -pid:123524366 byr:1935 -hgt:156cm hcl:#7d3b0c -iyr:2020 ecl:brn eyr:2020 - -hcl:z eyr:2038 pid:7663741757 ecl:gmt hgt:174 -byr:2008 iyr:1939 -cid:225 - -hcl:#888785 hgt:172cm -ecl:oth pid:500711541 eyr:2027 -byr:1931 iyr:2012 - -pid:575447108 ecl:amb byr:1943 -hcl:#888785 hgt:173cm eyr:2024 - -eyr:2021 iyr:2010 pid:178773264 hgt:157cm byr:1965 hcl:#bb7bcf ecl:amb - -iyr:2023 ecl:#35bd84 byr:2020 -hgt:72in -eyr:2037 -hcl:#6b5442 -pid:421311669 - -byr:1921 iyr:2011 -pid:146088688 -eyr:2023 hcl:#15ed24 hgt:183cm -ecl:brn - -hcl:#b6652a cid:243 -byr:1993 eyr:2024 -iyr:2014 hgt:172cm -pid:771275594 - -eyr:2024 -hcl:#cfa07d pid:858807920 cid:293 hgt:157cm ecl:hzl iyr:2013 byr:1984 - -ecl:blu hgt:193cm cid:73 hcl:#18171d eyr:2026 -iyr:2016 pid:124151812 byr:1945 - -ecl:amb iyr:2018 -pid:214555737 hgt:157cm -eyr:2028 -byr:1925 hcl:#866857 - -pid:5633250409 -hcl:4ef7d8 -byr:2004 iyr:1958 -hgt:96 -eyr:2038 ecl:xry cid:274 - -byr:1972 pid:401239851 hgt:184in hcl:z iyr:2017 -eyr:2030 ecl:#cb289a cid:140 - -hgt:175cm -byr:1926 hcl:#cfa07d eyr:2029 ecl:gry pid:325039730 iyr:2017 - -cid:101 hgt:166cm byr:1986 ecl:amb -hcl:#7d3b0c iyr:2013 -pid:413769688 eyr:2024 - -hgt:159cm cid:311 -byr:1993 eyr:2028 pid:188cm ecl:oth hcl:#602927 iyr:2013 - -pid:565831038 -ecl:amb -hgt:155cm hcl:#fffffd cid:335 iyr:2016 -eyr:2029 byr:1997 - -hgt:122 -byr:2022 -eyr:2028 ecl:blu iyr:2017 pid:269710626 hcl:#b6652a - -cid:196 -byr:1953 hcl:#6b5442 iyr:2010 -pid:216121215 hgt:188cm ecl:blu - -iyr:2011 hcl:98166c hgt:62cm -byr:2028 -eyr:2024 -pid:792478385 ecl:grn - -hcl:#efcc98 iyr:2012 pid:020039675 eyr:2021 byr:1974 hgt:156cm -ecl:hzl - -cid:123 hcl:#7d3b0c -byr:2026 eyr:2004 iyr:2012 ecl:oth pid:349203133 hgt:160cm - -pid:085461475 -byr:1962 iyr:2020 hcl:#623a2f -eyr:2024 -cid:80 ecl:brn -hgt:154cm - -ecl:oth hgt:156cm iyr:2016 -hcl:#6b5442 -byr:1973 -eyr:2021 pid:539898580 - -iyr:2026 hgt:191cm -hcl:z -byr:1930 pid:#abc2f0 ecl:blu cid:242 eyr:2024 - -cid:167 -hgt:179cm -iyr:2017 eyr:2021 pid:756797571 byr:1949 ecl:brn hcl:#a97842 - -byr:1975 eyr:2030 -ecl:oth hgt:169in pid:4031206183 hcl:#733820 iyr:2017 cid:244 - -ecl:#54cfeb hgt:152cm -iyr:2026 hcl:36b4b9 -byr:2030 -pid:#fa1cb9 eyr:1964 - -byr:1974 cid:99 hcl:9e3296 -eyr:2032 -pid:686747414 -iyr:1995 -ecl:amb - -iyr:2030 ecl:oth hcl:z byr:1979 -pid:114661006 hgt:191cm eyr:1941 - -hcl:#341e13 iyr:2014 byr:1953 -pid:188326193 ecl:gry hgt:189cm cid:283 -eyr:2030 - -byr:1975 -pid:092061576 hgt:73in eyr:2023 -ecl:brn cid:227 hcl:#5e9d91 -iyr:2011 - -hcl:#7d3b0c hgt:167cm cid:141 -eyr:1957 byr:2012 ecl:gmt iyr:2019 pid:#1b7c8a - -hgt:168cm hcl:#c0946f pid:599500784 byr:1930 eyr:2023 ecl:hzl cid:113 -iyr:2013 - -eyr:2030 hcl:#b4cb4f -hgt:68in -ecl:brn byr:1923 pid:699162086 - -iyr:2013 -ecl:dne hcl:z eyr:1971 -pid:#580add byr:2020 -hgt:190cm - -hcl:#ceb3a1 -byr:1976 eyr:2020 -cid:162 iyr:2016 -hgt:168cm -ecl:hzl - -pid:050478613 hgt:59cm -iyr:2017 -ecl:grn byr:2030 hcl:#cfa07d eyr:2025 - -pid:352943968 eyr:2025 byr:1980 iyr:2014 ecl:gry hcl:#c0946f -hgt:193cm - -pid:328621931 cid:310 hgt:170cm -hcl:#733820 byr:1955 -iyr:2016 -eyr:2028 ecl:hzl - -hcl:#866857 -pid:095858739 byr:1956 -iyr:2018 hgt:193cm -ecl:hzl -eyr:2029 - -pid:70973661 eyr:2039 ecl:gry -iyr:2016 -cid:291 -hcl:#623a2f hgt:97 - -hcl:4d51a8 -eyr:1978 -ecl:gmt -byr:2029 iyr:2022 -pid:34507041 hgt:61cm - -byr:1989 ecl:brn pid:769582914 -eyr:2026 cid:218 -iyr:2020 hcl:#866857 hgt:184cm - -ecl:brn -iyr:1998 cid:227 -hgt:162in -byr:2026 -hcl:#602927 eyr:2027 pid:236998728 - -ecl:gry byr:1984 hgt:157 cid:295 -eyr:2020 -iyr:2018 hcl:#733820 -pid:037871534 - -hgt:166cm hcl:#c0946f pid:412146401 -iyr:2011 -eyr:2022 -byr:1938 -ecl:brn - -ecl:brn cid:95 byr:1981 eyr:2030 hcl:#efcc98 pid:777041035 hgt:152cm iyr:2011 - -eyr:2024 hgt:89 pid:3761913749 iyr:1939 byr:1967 hcl:a222f6 cid:165 ecl:#7fe574 - -cid:339 hgt:156cm -ecl:brn iyr:2013 byr:1951 hcl:#efcc98 eyr:2026 -pid:863566946 - -ecl:brn hcl:#6b5442 eyr:2023 -pid:787129723 byr:1949 iyr:2015 - -pid:#7f615a -cid:202 hcl:#6b5442 eyr:2028 -ecl:#a5419c -hgt:75cm -iyr:2011 -byr:2001 - -pid:864001133 -cid:236 -byr:1943 hcl:#733820 ecl:dne eyr:2025 hgt:171cm iyr:1989 - -pid:193073684 ecl:grn byr:1962 iyr:2014 -hcl:#cfa07d hgt:189cm -cid:321 eyr:2029 - -byr:1959 -hcl:#b6652a -eyr:2026 -hgt:159cm pid:815014918 iyr:2011 ecl:amb - -iyr:2017 hgt:182cm -hcl:#a97842 eyr:2023 ecl:grn pid:656177536 -byr:1973 - -eyr:1923 ecl:grn -cid:138 iyr:2020 -hgt:164cm byr:1958 hcl:#c0946f pid:783366277 - -iyr:1932 hgt:172 ecl:blu -hcl:#733820 byr:1962 pid:554221464 - -cid:169 pid:922622614 -byr:1942 hcl:#ceb3a1 hgt:169cm eyr:2024 -ecl:gry iyr:2017 - -cid:219 ecl:grn -hgt:156cm byr:1998 eyr:2021 -iyr:2017 hcl:#ceb3a1 pid:450186263 - -ecl:amb hgt:179cm pid:768428582 iyr:2010 eyr:2023 byr:1952 hcl:#fffffd - -eyr:2024 -hgt:193cm -iyr:2017 pid:469033795 byr:1979 hcl:#18171d cid:67 ecl:amb - -iyr:2016 byr:1937 pid:798267514 hgt:155cm hcl:#866857 eyr:2026 -ecl:oth - -hgt:172cm hcl:#866857 iyr:2018 pid:662186551 -byr:1996 -eyr:2025 ecl:amb - -pid:2854521962 -iyr:2021 -ecl:zzz -hcl:12f1ba eyr:2037 hgt:159cm -byr:1937 - -ecl:oth pid:488050418 byr:1927 hcl:#a97842 hgt:153cm iyr:2013 eyr:2024 - -pid:119536312 ecl:#2036ad -hcl:543178 iyr:2020 -byr:2013 -hgt:177cm -eyr:2022 - -pid:788908662 hcl:#602927 eyr:2029 -ecl:oth byr:1930 -iyr:2020 -hgt:179cm - -byr:1972 -pid:053386972 iyr:2014 ecl:grn hgt:65in hcl:#cfa07d - -pid:9828921035 ecl:blu -hcl:z hgt:152in -eyr:1949 byr:2010 - -cid:157 pid:097910554 byr:1999 -hgt:159cm hcl:#6b5442 ecl:blu eyr:2024 -iyr:2010 - -hcl:#a97842 -eyr:2040 ecl:#f8ad77 -hgt:173cm -byr:2019 iyr:2010 -pid:#d16a6e - -ecl:dne hgt:191cm iyr:2020 hcl:#b6652a -eyr:2021 pid:571971509 byr:1983 - -hcl:#18171d iyr:2016 pid:159074622 -eyr:2027 hgt:163cm byr:1954 -cid:257 - -pid:243560302 cid:58 -hcl:53a4cf byr:2012 -ecl:#fdbfb8 eyr:1920 hgt:179 iyr:2026 - -pid:040606106 eyr:2030 hgt:188cm -byr:1969 -iyr:2012 hcl:#ceb3a1 ecl:amb - -eyr:2022 -hgt:175cm hcl:#b6652a byr:1967 pid:269969031 -iyr:2018 - -hcl:#18171d cid:278 byr:1931 -pid:134809791 -eyr:2035 ecl:#44e6cd iyr:1993 - -hgt:177in -ecl:utc cid:289 -iyr:1923 -hcl:13a67a pid:3045345984 byr:2030 eyr:1944 - -pid:839901650 eyr:2030 -ecl:grn -byr:2015 iyr:2017 hgt:168 hcl:131f4e - -iyr:2015 pid:529736732 ecl:brn hgt:176cm -eyr:2026 byr:1952 hcl:#6b5442 - -hcl:#c0946f -cid:323 pid:303966428 iyr:2019 -eyr:2027 hgt:170cm -byr:2001 -ecl:brn - -pid:193678728 hgt:72in eyr:2027 iyr:2015 byr:1951 ecl:gry hcl:#18171d - -eyr:2026 cid:283 -iyr:1938 pid:687430885 -hgt:186cm -byr:1949 ecl:#521638 hcl:d13b2f - -eyr:2024 hcl:#ceb3a1 iyr:2013 ecl:brn -hgt:168cm pid:792088241 - -hcl:#888785 ecl:amb -byr:2009 iyr:2015 -hgt:151cm -eyr:2020 pid:223927808 - -byr:1926 -pid:717704850 -hcl:#623a2f eyr:2022 hgt:64in iyr:2018 ecl:gry - -eyr:2023 byr:1954 -hgt:169cm -ecl:hzl -iyr:2010 pid:116868997 hcl:#18171d - -ecl:hzl byr:1965 hcl:#a97842 iyr:2011 pid:506354451 hgt:172cm eyr:2029 - -eyr:2022 pid:994565705 -iyr:2013 ecl:brn hcl:#623a2f -byr:1979 - -iyr:2011 -byr:1931 hgt:183cm hcl:#284f26 cid:306 -ecl:amb eyr:2021 -pid:977533079 - -eyr:2027 -iyr:2011 ecl:gry -byr:1993 -pid:272334781 hgt:161cm hcl:#9a35b6 - -eyr:2026 -hcl:#602927 ecl:blu -pid:212300161 byr:1946 -cid:193 iyr:2020 hgt:157cm - -pid:538594567 byr:1976 eyr:2027 hcl:#efcc98 iyr:2011 hgt:154cm ecl:oth - -byr:1949 -hcl:z ecl:#ce67aa -eyr:1942 pid:7978941589 iyr:2025 hgt:161in - -hcl:#c0946f -cid:55 -byr:1963 ecl:blu hgt:161cm -pid:547120453 iyr:2015 eyr:2021 - -hgt:173cm eyr:2022 -iyr:2016 byr:2001 -ecl:hzl pid:239803460 - -hcl:#b6652a ecl:oth eyr:2021 hgt:167cm pid:401266644 iyr:1969 byr:1974 - -eyr:2030 pid:581963885 -hcl:#64cb23 -ecl:blu -byr:1928 hgt:181cm iyr:2018 - -pid:186338247 -ecl:hzl hgt:193cm hcl:#ceb3a1 -eyr:2022 iyr:2010 - -iyr:2015 ecl:gry hgt:159cm eyr:2027 hcl:#ceb3a1 -byr:1925 pid:715902111 cid:149 - -iyr:2018 hcl:#623a2f eyr:2020 hgt:162cm ecl:grn cid:135 -byr:1922 -pid:373216777 - -eyr:2020 pid:749899012 hcl:#888785 ecl:brn -iyr:2010 cid:225 hgt:172cm -byr:1972 - -iyr:2020 hgt:178cm ecl:grn hcl:#18171d pid:613792489 cid:240 -eyr:2028 -byr:1972 - -iyr:2015 byr:1938 eyr:2026 -cid:113 ecl:grn -pid:846231640 hgt:161cm -hcl:#b6652a - -ecl:gry -hcl:#ceb3a1 -byr:1956 cid:338 pid:936012518 -hgt:62in -eyr:2029 iyr:2016 - -pid:730866353 ecl:brn byr:1986 -iyr:2014 -hgt:190cm -eyr:2021 hcl:#a97842 cid:126 - -eyr:2021 -cid:180 pid:958310635 ecl:brn iyr:2015 hgt:189cm hcl:#efcc98 - -hgt:188cm ecl:hzl pid:179001863 iyr:2016 eyr:2029 hcl:#341e13 byr:1932 - -cid:77 eyr:2027 hcl:#623a2f iyr:2016 ecl:brn hgt:170cm -byr:1947 - -hgt:66in pid:617518313 iyr:2013 byr:1977 hcl:#b6652a ecl:brn eyr:2025 - -pid:787861420 -iyr:2014 hcl:#623a2f hgt:61in -ecl:oth cid:78 -eyr:2022 byr:1975 - -ecl:hzl -iyr:2017 eyr:2028 hcl:#602927 -byr:1958 pid:985208714 -hgt:160cm - -byr:2002 -iyr:2013 -hcl:#341e13 pid:188110633 ecl:gry hgt:169cm -eyr:2025 - -byr:1981 -eyr:2028 -hcl:#341e13 ecl:amb hgt:160cm cid:121 -iyr:2015 pid:963848397 - -iyr:2013 hcl:#866857 pid:#db8648 eyr:2021 ecl:gry -byr:1975 -hgt:153cm cid:114 - -hgt:109 -cid:287 hcl:#6b5442 -iyr:2028 byr:1926 eyr:2036 pid:2378208387 -ecl:#245a62 - -pid:857722366 -byr:1975 eyr:2027 -ecl:grn iyr:2019 hcl:#0afad1 -hgt:66in - -byr:1935 hcl:#cfa07d hgt:173cm ecl:brn eyr:2021 iyr:2019 - -cid:66 eyr:2024 hcl:#efcc98 byr:2002 iyr:2010 -hgt:176cm pid:697153153 ecl:amb - -iyr:2019 -hcl:#cfa07d ecl:blu -pid:695914972 -eyr:2024 -hgt:158cm -byr:1943 - -ecl:xry hgt:62in -pid:14733148 cid:148 -iyr:2016 byr:1925 hcl:#6b5442 -eyr:2028 - -iyr:2025 -cid:53 hgt:132 ecl:gmt hcl:159b19 -pid:156cm -byr:2025 eyr:2001 - -hcl:#623a2f ecl:oth byr:1974 iyr:2018 hgt:161cm eyr:2029 pid:6826285172 - -ecl:gry -byr:1956 hcl:#7d3b0c hgt:170cm iyr:2020 - -eyr:2020 -pid:#946a88 hgt:186cm hcl:#733820 byr:1946 ecl:#016645 iyr:2015 - -hgt:181cm hcl:#888785 iyr:2013 pid:634152817 -byr:1982 cid:245 ecl:grn eyr:2021 - -ecl:brn -pid:737531770 iyr:2010 -eyr:2020 -byr:1929 hgt:189cm hcl:#c0946f - -cid:158 iyr:2019 hcl:#341e13 eyr:2027 ecl:amb -byr:1986 pid:834976623 - -pid:976934668 cid:61 eyr:2020 iyr:2020 -hgt:76in byr:1927 ecl:amb -hcl:#e05ee3 - -pid:526042518 iyr:2019 eyr:2027 hcl:#623a2f byr:1976 ecl:amb - -pid:279367290 hcl:#a97842 hgt:158cm -eyr:2027 -byr:1959 -iyr:2020 - -ecl:xry byr:2028 -pid:357216861 hcl:#a97842 eyr:2024 hgt:66cm -iyr:2012 - -hgt:188in -ecl:lzr cid:64 eyr:1958 byr:2014 hcl:z pid:285207570 iyr:2026 - -eyr:1973 iyr:2017 ecl:oth cid:282 pid:695814158 -hcl:z - -iyr:2010 pid:661168409 -hcl:#53c696 -hgt:186cm ecl:amb -byr:1960 -eyr:2029 - -eyr:1982 hgt:169cm -iyr:2002 byr:2025 hcl:327f93 pid:831648100 - -byr:1967 ecl:oth -eyr:2021 -hcl:#602927 iyr:2014 -pid:274974402 hgt:183cm diff --git a/2020/inputs/day_5.txt b/2020/inputs/day_5.txt deleted file mode 100644 index 11800ca..0000000 --- a/2020/inputs/day_5.txt +++ /dev/null @@ -1,901 +0,0 @@ -BBFBBBBRRL -FBFFFFBLRL -FBFBBFFRLR -FBFFFBFRLR -FFBBFFFLRR -FFBBBFFRRR -BFBBFBFLRL -BFFFBFFLRR -FBBBFFBLLR -BBFFBBFRRL -BFBBBBBRLR -FBBBBFFLLR -FFBFFFBLLR -FFBBFBFRRR -BBFBFFFRRR -FFBFFBBLLR -FBBFFBBLRL -FFBBBFBLLL -FFBFFBBLRR -FBFFBFBLLR -FFFBBBFLLL -BFBBFBFRLR -BBFBBBFLLL -FBBBFBBRLL -FFBBBBFRRL -BFBBBBFLRR -BBFBBFBLRL -FFBFFFBLRL -BFBBBBBRRR -FFFBFBFLLR -BFBFBBBLLR -FFBFBBBLRL -FFFBFBBLRR -BFFBFFFLLL -BFFFBFBLRL -BFBFFFBRLL -BBFFFFBRLR -FBBFFFBLRR -BFFFFBFLLL -BBBFFFFLLL -BFBFFBBRLL -BBFBFFFRRL -BFBBFFFRLR -BBFBFBFRRL -FBBFFBFRRL -BFBFBFFRRL -FFBFFFFLLR -FBBBFBBLLR -BBFFBFBRLL -BFFBFBBRLL -FBBFFFFRRR -BFFFBBBLRL -FFBBFFBLLL -FFFBBFFRRL -FBFBBBBLRR -FFBBBFFLLL -FBFBFFBRRR -FBBFFBBLLR -FBFFBFFRLL -BFBBBFFRLR -FBFFBBBLRR -FBFFFFBRLR -BBFFBBFLRL -FBFFBBFLRL -FBFBBFFRRR -BFBBBFBLRL -FBFBFFFLLR -FFFFBBBLLR -BFBFFBBLLR -BFFBBBFRLR -BFBBBFFLRR -BBFFFBBLLR -BFFFBBFLRL -FBFFBFBLRL -FBBBFFFRRL -FBFFFFBLLL -BFBFFBBRLR -BFBFBBBLRL -BFFBFBBRLR -FBBFBBBLLR -FFBFBFFRLL -FFFBBBBLRR -BFBFFFFLLL -BBFBFBBLLR -BFFFBBBRLR -FFBFFBFRLR -FBBFBBBLRL -BBFFFBBLLL -FFBFFBBRRR -FBBBBFBLLR -BBFBBFFRLL -BFBBBBFRLR -BBFBFFBRLR -FFBFFFFLLL -BBFBFBFRLL -FFBFFBBRLL -FBBFFFFRLR -FFBBBBBRRR -BBFFBBBLRL -BFFBBFBRLL -BFFFBBFRLL -BFFBFBFLRL -FBFFFFFRRR -BFFBFBBRRL -FBFBBBFLLR -FBFBFBBRLL -BBBFFFFRRR -BFBFBFFLRL -FFFFBFBRLL -FFBBFFBLRL -BBFFBFBLLL -BFFBBBBRLL -BFFBBBBRRR -BFBBBBFRRL -BBBFFFBLRL -FFBBFFFRRR -BFFFFFBRLR -FFFBBFBLLL -BFBFBBFRLR -FBBBFBFLRL -BFBFBFFRLR -BBFBBFFLRL -BFFFBFBLLL -BFFFFBBRLL -FFBFFFFRRL -BFFBFBBLLR -FFFFBBBLLL -FBBFFBBRRL -BFBFFFFLLR -FBFBFBFRLL -FBBBBBBLRR -BBFFFFBLRR -FFFFBFBRRR -FBBBBFBRLL -BBFBFBBLRR -FFBBFBFLLL -BFBBFFBLRL -FFFBBBBRRR -BFBBFFFRLL -BFBBBFBRRR -FFFFBBFRLR -FFBBFBFLRR -FFFFFBBLLR -BBFBBFBRLL -FBFBBBBRLR -BBFFFFBLRL -FBBFFFBLLR -FFBFFBBLLL -FFFBBBFLLR -FFFBBBFRRR -FFBBBFBRRR -FFFBBFFRRR -FFBBFFBLLR -BFBFFBFRRR -FFBFBBFLLR -BFFFFFFRRR -FFBFFBFLRL -BFFBFBBRRR -FBFBFFFRLL -BBBFFFBLLL -BFBBFBFRRL -BFFFFFBLRR -FBBBBBFRRR -FFBBBBFLRR -BBFBBBBLRR -BBFBFBFLLR -FFFFBBFRRR -FFBBBBBLLR -BFFFBFBRLR -FBBBFFBLLL -FFFFFFFRRR -FFFBFBFRRL -BFBBFBBLRR -FBBBBFBLRL -FBBBBFBRRR -BFFFFBFRRR -BFFBBFFLLL -FBBFBFBLRL -BFBBFFFRRL -FBFBFFBRLR -FBFFBFFLRR -BFFFBFBLLR -BFBBFFBRRR -BBFBBFBLLL -BFFBFFFLRR -FFFBBFFRLL -BFBBFFFLLL -BFFFBBBRLL -FBFFBBFRRR -FFBFBFBLLR -FBFFFFBLRR -FFBBFFFLLL -FFFBBBBRRL -BBFBFFFLLL -BBFFBBFLLR -BFBFBBBRRR -FBBBBFBRRL -FBFFFBFLLR -FBFBBBFRRR -BFFFBFBRRL -FBFBBBFLRL -BBFFBFFLRL -BBFBBFFLLR -FFFFBFFRLL -FFFBBBBLRL -FBBBFBFRLL -BBFFFBBLRL -FFFBFFBLRR -BBFBFBBRRL -FFFFBBBRRR -FFBBBBBLRL -FFFFFFBLLL -FBFFFFFRRL -FFFFFBBLRR -BFFFBBBRRL -FBBFFFFLRL -FFFFFBBRLR -FFBFFBFRLL -FFFBBBFRRL -BFBBBFFLRL -FFFFFBFLRR -BFBFBBBRLR -FBFBBBFLLL -BFBFFBFLRL -FFBFBFFRRR -FFBBFFFRLL -BFBFBFFLLL -FBFBFBBRLR -BFFBBBFRRL -FBFFBBBRRR -FBFBFBBLRR -BFBBBBFLLR -FFFBFFFRLR -BFBBFFBRRL -BFFFBFFLRL -BFBFBBFRRR -FBBFFBFLLL -FFFFFFBLRR -FBFFBFBLRR -FFBBBFFLRR -FBBBFFBRLL -BFFFBBBRRR -FFBFFFFRLL -BBFFFBFRRR -BFFBFBBLLL -BFBBFFBRLR -FFBFBBBLRR -FFFBFBBLLL -FFFBBFFLLL -FBBBBBBLRL -BFBFBBBLLL -BFBFFFFRRL -FFBFBBFRRR -FFBFBFBRRL -FFFBBBBRLL -BFFBFFBRLL -BBFFFFBRRL -FFBFBFBLLL -FFBFBFBRLL -FBFBBBFRRL -FBFFBBFRLR -BBBFFFFLRL -FBFBFFFRRL -FFFBFBFRLR -FBFBFBBRRL -BFBBFBBLLL -FFBBBBBRLL -BBFFBFBRRL -FFFBFFFRRR -FBBFBFBLLL -BFFFBFFRLR -FBFBFFBRLL -BBFBBFFLLL -FBBBBFFLRR -FFBBBFFLRL -FBBBFFBRRR -FFBBFBBRLR -FBFBBFFLLR -BFBBBFFLLR -FFFBBFFLRR -FBFFBFFLRL -BFBFBFFLRR -BBFBFFFLLR -FFFBBBBLLR -FFBBFFBRLL -BBBFFFBRLL -FBFFBFBRRL -BFBFFFFRLL -FBFBFBFRLR -BBFFFFFLLL -FFBFBBBLLR -FFBFBFFLRR -FBBBBFBRLR -FFBFBBBRLR -BFFBBBBLRL -FFBBBBBRLR -BFBBBFFRRR -FBFBBFBRLL -FFBFFFBRRL -BBFBFBFLLL -BFBBBFBRLR -BFBBFBFLLR -FBBFBFFRLL -FFBFBBFLRR -BFFBFBFRLL -FFBBFBBLRL -FBFBFBBLRL -BBFFFBFLLR -BFBFBBBLRR -BBFFBBBLLR -BBFFFFBRRR -BFFFFFBLRL -FBBBFBBRRR -BFBFFFBLLL -FFFBBFFLLR -BFFBBFFLLR -BBFBBBBLRL -FBBFBFFLRR -FBFBFFBLLR -BFFFFFFLLL -BFFBBFFRLL -BBFFFFFLLR -FBFFBBFRRL -FBBFFFFLLR -BFBFFBBRRL -FFBFFFBLLL -BFFFFFBLLR -FFBBBFBRRL -FFBBBBFLLR -BFBFFFBLLR -FFFFBFFRLR -BFBBFFBRLL -FFBBBBBLLL -FBBFBFFRRR -BFFFFFFLLR -FFBBBBBLRR -FFFFFBFRRR -BFFFBBBLLL -BFFFBFFRRR -FFBBBFBRLR -BFFBBBBLRR -BFBBBFFRRL -BFBFBFFRRR -BFBBFBBRLR -BFBBBBFRLL -FFBBBBFLLL -FFFBBFBLRR -FBBFBBFRLR -BBFBBFFLRR -FBBFBBBRRL -BFFBFFFRRL -BFFFFBFLRR -FFBFBBFLLL -FFBFBBBLLL -FBFFBFBRRR -FFFBFFBRLL -BFFFFBFLRL -FFFFBFFLLR -BBFBBBBRLL -FBFBBFBRRR -BFFFBBBLRR -FBFFFBFRLL -FFBBBFBLRL -FBFFFBBLRR -FFBBFBFRLR -FBBBBBFLRL -FFFFBFBLRR -BFBFBFBLRR -FFBBFFFLRL -BFFBBBFLLR -FFFFFFBRLR -FFBBBFBLRR -FBFBBFFRLL -BBFBFBFRLR -FBBFFFFLLL -BFBBFBFRRR -BFFBBBFRRR -FBFFFBFLRR -FBBFFBFLRL -BFBBFFFLRR -FFBFFFFLRL -BFFBFFBLLL -FFFBFBBRRR -BBFFBFFLRR -BBBFFFFRRL -FBBBFFBLRL -FBBFFBBLRR -FFBFBFFLLR -FFFBBFFRLR -FBBBFBBRLR -FFFFBBBLRR -BBFFBFBRRR -FBFBBFFLRL -FBBBBFFLLL -FFBFFBBRLR -BBFFFFFLRR -FFBFBFBRLR -FFBFBFBLRL -FBBBFBBLRL -FFFBFBBLRL -FBFBFFFRRR -BFFBFFFRLR -BFBBFFBLLR -BFBFFBFRLL -FBFBFBFRRR -FBFFFFBRLL -FFFFFBBRRR -FBBBFFFLRL -FFFBFFBRLR -BFBFFBFLRR -FBBFBBFRRL -BFBBBBFRRR -BFFFFBBLRR -FBFFFFFLLL -BFBFFFBRRL -FFFBFFBLRL -FFBFFFBLRR -FBBFFBFRLL -BBFBFFBLLL -BBFFBBFLLL -FFBBBFFRLL -BFBBFFFLRL -FBBFBFFLLR -FBFBFFBLLL -FFBBBFFLLR -FBBFFBFLRR -FBBFBBFRRR -BFFFFBBLLL -FFFBFFBLLR -FBFBFFFRLR -FBFBFBBRRR -FBFBBFBRRL -BBFBBFBRRR -FFFFBBBRLL -FBFFBBBLRL -BBBFFFFRLL -FBFFFBFLRL -BFFFFBFLLR -FBFBBFFRRL -BFFBFBBLRR -FBFBBBBRRL -FBFBFBBLLR -FBFFBBFLRR -FFFFBFFLLL -BFBFFFFRRR -BBFFBBBLRR -FBFFFFFLLR -BBFBFFFRLR -BFFFFBBRLR -FBFFFFFLRL -FBBBFBBLRR -BFFBBFBLLL -BFFBFBBLRL -BFFBBBFRLL -FFBFFBFRRR -BFBFBFBRLL -BBFBBFBLLR -FBFBBFBLRL -FBFFFBBRLR -BBFBFFBRLL -BBFFFBFRLR -FBBFFFBLLL -BBFBBBBLLL -BFFFFFFLRR -FBBBBBFRLL -BFFFBFBRRR -BFFFFFFLRL -FBBBBFBLRR -FBFFBBBRLR -FFBBFBFRRL -FFBBFBBRRL -FFFBFBFRRR -FFBBBBFLRL -BFBBFFFRRR -FBFBBBBRLL -FBFFBBFRLL -FFBFFFFRRR -BFFFFBBLLR -FBFBBFBLLR -BBFFBBBRRR -FBBFBBBRLR -BFBFBFFRLL -BFFBBFBLRL -BFFBFFFRRR -FFBBBFBRLL -FBFFBFFRRL -FBBBBFFRRR -FFFBBBFRLL -BBFFFBBRLL -BBFFFBBRLR -FFBBFFFRRL -BBFFBFBLRR -BBFBFFBRRR -BFBBBBBLRR -BFFBBFFLRL -BBFFFFBLLL -FFFFBFBRRL -FBBFFBBRRR -FBBBFFFLRR -FBBFBBFLRR -FBBBFBBLLL -FFFFBBFLRL -FFFFFBBLLL -BFBBBBBLLR -BFBFFFFLRR -FBFFFFBLLR -BBFFBBBRLL -FBFFBFFRRR -FFBBFBFLLR -BBFBBBFLRR -FBBBBBBRLL -FFFFFFBLLR -FFFFFBFRLR -FBFFBFBRLL -BBFFBFFRRR -BFFBFFFLLR -FFBBFBBLRR -BBFFBBBRLR -FFBBFFBRRL -FBBBBFFRRL -BFBFFFFRLR -BFBBBFBLLL -BFBFFFBRRR -FBBBFFFRLR -BFBBFFBLRR -BBFBBFFRLR -BBFFFBBRRR -FFFFBBBRRL -FFBFBBFRLL -FBFFFFBRRL -FBBBFFBRLR -FFBFFFBRRR -FBBBBBBLLL -BFFBFFBLRL -FBFFBBBRLL -BBFBBBFRLR -BFBFBFBRLR -BBFFFFBRLL -FFBBFBBLLR -FFBBFFBRLR -BBFBBBBRLR -BFBBBFBLLR -FFFFBFFRRR -BBFFFBFRRL -FBBFBBBLLL -FFFBFFFLRL -BFFFFBBRRR -FFFBFBFLRL -BBFFBBFRRR -FBBFFFFLRR -FFFBBBFLRL -BFFBBBFLLL -BFBBFFBLLL -FFFFFFBLRL -FBFFBFFLLL -FBBBBBBRRR -FBBFFBBRLR -BFFFBBBLLR -BBFBBBBRRR -BFBFBFFLLR -BFBFFBFRLR -FBBBFFFRRR -FFBFBBFRLR -FFFFFBFRLL -FFBFBBBRRR -BFBFFBBLLL -FBBBBBFRLR -FFBBFBBLLL -BFBFFBBLRL -FBBFBFBRRL -BFFBBBBRRL -FBBFFFBLRL -FBBFBFBLLR -FBBFBBBLRR -BFBBBFBRRL -FBBBFBFLLL -BFFFBFFLLR -FBBBFBFLRR -FFBFFBBLRL -BBFBBBBLLR -BFFFBFFLLL -FBFFFFFLRR -BBFBFBBLRL -BFBFBBFRRL -FBFBFFBLRR -BFFFFFFRRL -BFFFFBFRLR -BFBBFBBRLL -BBFFFFFRLL -FFBBFFFLLR -FFFBFFFLRR -FFFBFFBRRR -BBFBFFBLLR -BFFBFFFRLL -FBFBFFBRRL -BFBBBFFLLL -BBFFBFBLRL -FBFBBFFLRR -FBBFBBBRRR -FFFBBFBRLL -FBBFBFBRRR -BFFFBBFLLL -FBBBFFBLRR -BFBFFBBRRR -FFFFFFBRLL -BBFFFBFLRL -BFBFBFBRRR -BFFFBBFRLR -BFBFFFBLRR -FFFBFFBRRL -BBFFFBBRRL -BFBBBFBRLL -BFBFFFBLRL -FFFBFFFLLR -BFFBFFFLRL -BBFBBFBLRR -FBBBFBBRRL -FBBFBFFRLR -FBFFFFFRLR -FBBBBFFRLR -BFBFBBFRLL -BBFBFBFRRR -BFBFBFBRRL -FBBBBBBRLR -BFBFBBFLLR -BFFFBBFRRL -BBBFFFFRLR -BBBFFFBLLR -FBFBBBFLRR -FBFFFBBLRL -FBFFBBBLLR -BFBFBBFLRR -BFBBFBBLRL -BFFFFFBRRL -FFBBFFFRLR -BFFBBFFRLR -BFBFBFBLRL -BFFBFBFRLR -FFBBFFBRRR -BFBBBBBLLL -BBFFFFFRRL -BBFFFFFLRL -FFFBBFFLRL -BFBBFBFRLL -FFFBBBBLLL -FFFFFBFLRL -FFFFBBFLRR -FBFFFBFRRR -BFFBBBBLLL -BBFBBFFRRL -BFFFBBFLLR -FBBBFFFLLL -FFBFFBBRRL -BFBBBFBLRR -BFFBBBFLRL -BFBBBBBRLL -FFFBBBFRLR -FFFFBFFRRL -FFBFBFFLLL -BBFBFFFLRL -BFFFBBFLRR -FFFBFBFRLL -BFBFFBBLRR -FFFBFBBLLR -BBFFFFFRLR -FFBFBFFRRL -FFFFFBBLRL -FBBBFBFRRL -FBBBBFBLLL -FFFFBBBRLR -FBBBBFFLRL -BFBBBBBRRL -BBFFBFBLLR -FBFBFFFLRL -FBFFFBFRRL -FFFBBFBLRL -BFFFFFBLLL -BFFBFBFLLL -FFFFBBFRRL -FFFBFBBRLR -FBFBBBBRRR -FBFFBBBLLL -FFBBBBFRRR -BFFFFBFRLL -BBFBFBBRLR -BFFBBBFLRR -FBBFBFFRRL -FFFFFBFLLL -BBFBFBFLRR -FFBFBBFLRL -BFFBBFBRLR -FFBBBFFRLR -FFFBBFBRLR -FBFBBBBLLR -BFFBBBBLLR -BBFBFBFLRL -BBFFFFFRRR -FFFBFFFRRL -FBBFFBFRRR -BBFFBFFRLL -FFBBFBFRLL -FFFFBFBLLR -BBFFBBFRLL -BFBBBBFLRL -FBFFBFFRLR -BFBFBBFLLL -FFFFBBFLLL -BFBBBBBLRL -FFBFBFBLRR -BFFFFFBRRR -FBFBBBBLRL -FBBFBBFLLR -FBBFFFFRRL -FBFFFBFLLL -FBFFBBBRRL -FFBFFFFRLR -FBBFBBBRLL -FFFFBFBRLR -FFBFBBBRRL -BFFBFBFRRL -FFBFFBFLLL -BFFBFBFLRR -BBFBFFBLRL -BBFFBFFLLR -BFBBBBFLLL -BBFBBFFRRR -BBFFFBBLRR -BFBFFBFRRL -FBBFBFBLRR -BBFBBBFRRR -FFFBBFBLLR -FFFBFFFLLL -FBBBFBFLLR -BFBBFBFLLL -BFBFBFBLLL -BBFFBBFLRR -FFFBFBFLRR -BFFFFFFRLR -BBFBFBBRRR -BBFFFBFRLL -FFFFBBFRLL -FBBFBBFRLL -FBFFFFBRRR -FBFFBBFLLR -BFFBFFBLLR -FFBFFBFLRR -FBFFBFBRLR -FBFBBFFLLL -FBBFFFBRRL -FBFBFBFRRL -FFBFBFBRRR -FBFBFBFLRL -FFFBFBBRLL -FBBBFFFLLR -FFBBBBFRLL -FBFFFBBRLL -BFFBFFBLRR -FBBFBBFLRL -FBFFFBBRRR -FBFFFBBLLR -BFFBFFBRRR -FBBBFBFRRR -FBFFFFFRLL -BBFBBBFRLL -FFFBFFBLLL -FFBFFFFLRR -FBFFFBBRRL -BBFFBFFRLR -FBFBFBBLLL -FBBBBBBLLR -FBFBBFBLLL -BBFBFFFLRR -BFFFFBBRRL -BBFFFBFLRR -FFBFFFBRLL -FFFFBBBLRL -BFBBBFFRLL -BBFBFFFRLL -FBFBBBBLLL -BBFBBFBRLR -BBFFBFBRLR -BFBFFFFLRL -FBBBFBFRLR -FFBFFFBRLR -FBBBBBFLLR -FFBBBFBLLR -BFFBBFBRRL -BBFFBFFRRL -FFFFFFBRRR -FFBBFBBRRR -FBBBBBBRRL -BFFBBFFRRL -FBBFBFBRLR -FBBFFFFRLL -FBBBBBFLLL -FBBFFFBRRR -BFFFFBBLRL -FFFFBFBLLL -FBFBFFFLLL -FBFBBFBLRR -FFFFBFFLRR -FFFBBBFLRR -FBFFBFFLLR -BBFFBFFLLL -FFBFFBFRRL -BFBBFBBRRR -BBFFFBFLLL -FBFFBFBLLL -BFFBFFBRRL -BBFBFFBLRR -FBFBFFFLRR -BFBBFBBLLR -BFFBBFFRRR -FFFFFFBRRL -BBBFFFFLLR -BFBFFBFLLL -FBBBBBFRRL -BFFBBBBRLR -FFBBFBFLRL -FBFBFFBLRL -FFBBBBFRLR -BBFBBFBRRL -FFFFFBFLLR -FBFBFBFLLL -BFBFBFBLLR -FFFBFFFRLL -BFFBBFBLLR -FFBBFBBRLL -FFFBBFBRRL -FBBFFBBLLL -FFFBBBBRLR -FFFBBFBRRR -BBFFBBBRRL -FBBFBFFLRL -FBBBBBFLRR -BBFBFFBRRL -FFFBFBFLLL -FBBBFFFRLL -BFFBFBFLLR -FFBBBBBRRL -BFFBBFFLRR -FBBFBFBRLL -BFFFBFFRRL -BBFFFFBLLR -BBFFBBFRLR -BFFFBBFRRR -FBFBBFBRLR -FFFFFBBRLL -FBBFFFBRLL -BFFFFFBRLL -BFFFBFBLRR -BFFBFFBRLR -FFFFBFBLRL -FFBFFBFLLR -FBBFBFFLLL -BFFBFBFRRR -BBFBBBFLRL -BBBFFFFLRR -BFBBFFFLLR -FBBFFFBRLR -FFFFFBFRRL -FFFBFBBRRL -BBBFFFBLRR -FFBFBBFRRL -FFBBFFBLRR -BBFFBBBLLL -BFBFBBBRRL -BFFFBFBRLL -FFBFBBBRLL -FBFBFBFLRR -FBFFFBBLLL -FBBFFBFLLR -BFFFFBFRRL -FFBBBFFRRL -FFBFBFFLRL -BBFBBBFLLR -FBBFFBFRLR -FBBFFBBRLL -BFBFFFBRLR -BFFFBFFRLL -BBFBFBBRLL -BFFFFFFRLL -FBFBBBFRLL -BFBBFBFLRR -BFBFBBBRLL -BBFBBBFRRL -BFFBBFBRRR -BFBFFBFLLR -FBFBFBFLLR -FFFFFBBRRL -FBFBBBFRLR -FBFFBBFLLL -FFBFBFFRLR -BBFBFBBLLL -FFFFBFFLRL -FBBFBBFLLL -BFBFBBFLRL -FFFFBBFLLR -BFBBFBBRRL -FBBBFFBRRL -FBBBBFFRLL diff --git a/2020/inputs/day_6.txt b/2020/inputs/day_6.txt deleted file mode 100644 index ae67ede..0000000 --- a/2020/inputs/day_6.txt +++ /dev/null @@ -1,2199 +0,0 @@ -nvlyak -nyvha -yaen -qynia - -kend -endk - -atxcykpvmb -pcvmthyxbak -ayvpcbtkxm -cvpkyabtmx -typbmvckxa - -s -s -s -s - -on -aoqc -owq -coa - -pw -wpi -pwxlhqor -pw - -nx -xn - -dlevrzpucfmsq -pceimlrfsquvd -dpceruqsfmlv -hgxudfpqyvbcslrjname - -kczmswvorg -uryvlqaogmdixs -rmostvg -gsrmovb - -ref -fer - -vmwdhgnlfiyoepsujbk -epudykjwhignmfbovsl -fjvuimnwbkogsldhpey -ibmhuscpgeolfkynvdwj -psjgubfvlhaknodeiywm - -fmnpljusix -vqrefngyjdahclk -lfjons - -y -uiwl - -lsuqkmjinrzhgevfpwto -gkmodihnsjtful -ciguflhkojmtsn -thkjnoufsimgl -oskgmdfljntuhi - -gaktdwxhmqvfrpsuc -hmtwkgipdvaurxqf -akrmpxtughdqwfbv -gumqniswhrdkvftaxp -hagouqxpzrjlmedftywkv - -zkbyecw -kczeybw -wbeyakuzc - -iwdkjlarzfynvechgbxsq -jetfxrzdbcksnavilmwgyh -wvexlryjbizfgkhanqdcs - -vk -kv -kv -vk - -yrguw -rguyw -pwuryg -gnuwry - -dyhkusanvjwc -ukaywncj -uyqjknwac -aknyjcuw -jnukwaytxc - -toczmkldrevywiajgn -jyldmgewcvrozinkat -iynkmatdjerlogzwvc - -pthyrfjgqelxa -qfejxtrynlh -xwdfkuziyhejtqovrmlc - -osjrgc -vohfpa -goc -gjo - -j -jon -j -xdj - -bpqhmgwzakfrtjvuno -eafupgombqnwrkzth -frwqtdngpbhuaklzmo -wgtnuchpkqibfzmravso -mfbtvkghauzopnrwq - -xiocgdwpastbmyj -rdzgcbtfaomsy -dstgbcymozkqal - -xvc -cvx -xvc -xvc - -dhvtlqkeniymjzoa -eoazjnhvtkyqdlm -koltmeyqjhzdva -doumkhrlyzjqeagtcv - -mn -mfhw - -kx -x -jm - -x -xv - -tdhyubvwqfxejslpringc -xqhvtbfwrygsdapjiulnec -vnwbsurdiexghpjtlycqf - -pqtdgsmkolzryca -qjguxdratfeclpmoy - -twnviyzmlk -gknjmyqvziwl - -deoabzihqvycxn -iqcxadpehvry - -dbflcxvnapwgei -pchmodnafl -hadcflpn -dlcfanp - -tk -kt - -peuroxtzyg -iwdcnlqfskmbavjh - -mjfh -ynkbrsdpwoqtagci -lvx -ujxez -xl - -gyuszwb -sioduawzrglb -tsbumxwzg -zwgeuxbs - -tujvkwpy -tyvrpmjfk -vwpkuyjt - -wdkqailvjmfcshugy -qugwvlxdsikhfmyjac -dkiscawvyfqhmjlug - -noblsu -snloub -sulobn -lonubsm - -osecqjbfg -fljbmiose -ojesfbt - -zmctviabre -ajzmicetrvb -ctmivabzre -yrztbmieavc -mivcbtazer - -tyql -osmjgxzrcakn -iwftdbl - -nmqflphkvyjcatgbzd -jxzemtvdknwqr - -ilxrytkdpmsevfjchozqw -tpdrjxwihvlycozemsfkq -hitwfmzvjpylcodbqxsrke - -flhp -pflh - -ao -a -o -o -gljzn - -ajmkvwqu -ogvjzwta -whalvuj - -mhktpynfrjgblaqueox -anmjxplvibukhztqersy -tabljcpemkyrxhunwq - -lnkvfawqo -nofpsqwavylz -vofwalqen -hcnowiaqlfv - -dofxbaqrtnyvkpljmhsu -uklstfynmbxhapojqi -tufmnpaqyojsklxhb -oanlusqmxftkpjbhy - -tpjle -the -vtpez -ytern -ouecxwfkt - -jbna -xepqbmufn -ybjni - -jklhaxoqysbt -tzwpcf -tenfcvdmpzu - -kyqumgfrdiapzwojtvch -fvczqjrgadiwhnpluomk -dpwkmrjzauiqvfgcho -nkpwrmzidfahcvjuogq -azrkxioghpvcudmwqfj - -udjshwgpeaozimcl -fylwnoevcza -evlakborcfwz - -xhued -iubgewo - -lywovcemagd -ahveyomxsl -oqzyfljavbe - -pkyn -befycqpi -pysk -yp - -mgi -mgi -digm -gmi - -cgdqeoyfjranxuv -lwnkzeptsdqihvcujmg - -wzqrhgibdxuyl -ludbwqxgiyr -yruxibwdgql -bgtwqxruylid -buyrwlidgxq - -gqwvxspbl -xvbwpsgql -bspgxwvql -cwlxsvqgpb -sgpxqblwv - -camqk -onaslperix -jauw -yatm - -z -z -z -z -z - -fx -fxe - -goemcr -roegm -sgmxiero -ogmert -germo - -czgdxtiprhnwqeujkfl -dyhmkanzwbv - -n -e - -dkcjqbw -o -gp -h - -zbwcu -ubf -mveurnab - -tqwbxuc -qcwutxb -ucbxwqt -xqwutbc -xqtuwcba - -uwhqrt -wrtq -trwq -crtqw -wrtqc - -rqfntm -nrqm -rqmn - -limsht -alstikh -ilhst -uhitls -lsahti - -oaex -vsgyo -lziu - -cwqdlxbst -cdxtlwbsq - -hgqc -hgdq -qhg - -eh -he -eh - -zfutalwkxms -ukxltsfzmwa - -zpklocsqgwyhb -zobyqhlcksgpw -zhspqwovjylkgbc - -ymkudfqethwgji -emtuyfwghjdqki -zwyeumktfhjdirgq -wymqgifkudjteh - -edhqnrxtpz -tqdxznrhep -qzepndrthx -exzrhnqptds -zetyhrpdqunx - -vmleax -valxum -vpmlax -axlpvumz -clvamxbn - -ebt -xr -rl -u - -vzny -nz -nz - -ywebzj -ywefjzb -bxwnjcyzkep -zjeywfpb -yldrbhsizajewvu - -hfd -dmf -fadh -dvmf -fcousnld - -egar -hwnrgzcp -bgofedjr -jkruvsylg -rdvgue - -jsge -hesqg -esug - -xaoz -ocuqev -fwgrlp -otxv - -fzemjdhwb -xhdmjzbe - -ytsfpumedxqvzhl -fdteschymvxqlpz -phyrfwtqlaxgvznesd -hvlextsbqpzyfd -jydlhetzoqfpsvix - -jxkrobp -rsplxbgk -yxmbpkorhj - -injbuyktrcs -bcsriktuny -skyrhbtnucxe - -duck -cykuv -osfcurnlwax -uvmc - -vpt -tpv -pvt -vpt -vtp - -dacxvsi -icaxsd -xdihcneas - -nf -nkf -fn - -yrewaxckd -wtydesfcr -erdftwqyc - -hmfezapkqjyri -ekqajhyzfpmri -raikjeqmhfypz -qjmyrekfzphai -frtjeqkimhazpys - -ryxmsbqovuidphfwecajnz -hdjmiqbxnpvouyfcewsazr -vubyrcmqeswafxjzhinpdo -cbjmnaoqurlhsifvwzdexyp - -iu -ui -isutlr -iu -iu - -lftaziorb -rvamfeyjgqnx -frtak -aifr -aftzr - -us -schk - -bjafywgieth -tifbhyjgwade -imhwefbgatjy -wgtyifejbah - -a -yj -b -iab - -qkgazumerlhb -syritxopfvd - -gdiakrne -ygdpcwqfbmikzanver -dolarkigen -gtkanierdh - -axv -axdvl - -erpjfh -prgjfeh -hrejpf -pejfhr -ejrhfp - -zijsrtcqdxmy -mtxdfyji -timydgxj -jtmhvakxidyn -iyjmwdvxnt - -rh -har - -tdoyugpljirwenzx -nurlzgjtyopide -jnrlitgpzdoyue -zlptnudjryogie -pzgyeoliturnjd - -ivcyexsotkzqmr -sgfjhqnpy - -omw -joq -mop - -welbhpzftgjinqyk -gwpdjqacitshlbykfzmrx - -sygqwn -fwyqsdg -scgwqy - -gdjzwbhltxs -dlkojzbq -jfavyipcembun - -cydkuqlhan -uavstnychbqxk -azqntcuyhk - -k -bf -z -w - -gyh -e - -rhmpg -pmhgr -rpmhg - -pas -vhtsaqfgnu -kpjsa -sab -jcopska - -tsjabirpehudncx -custniapedhxrb -cepnuastxhdirb -shbpetcdaxuinr -dbtiepaucrshnx - -tuswfrqpgxk -kprjsdtqxunf -pxwfrtuqske -xwskmfprqut -pfrtxqskhu - -szirxjtu -zuxjtsi -jutsxiz -usjitxz -ijstxuz - -zqesxfbmrivokl -mevkzirbfol -fbkomeyvilrz - -rlwoeckxnh -xebkornwcl -xcoknwler -wnlkrcoex -kecronwxl - -fmdbraihnpxytkcgezu -kbeyxmadczhritnpuf -pnhfmubicxteadrzyk -updrybtmhzefcnxkia -kbezfjwmhytnixacudpr - -w -w -w -w - -fgwdoctvpzymhbrkjxn -yaqjctxvsrozmwk -xkwozitrvmeqjcyl -cwkazxtrmlijyov - -vnym -bvmy -yvm -byvm -vym - -mxjblongrfahycqvpu -ncywhdpxefajbrgloqu - -sgukdmfqvbwcei -zigahlxojdnpc - -fudobaklngyjqpstmiz -psflydzmbtkiqaojgnu -itgzqsfdyabnolpjkum -sitlkyuqnjodzmpbagf -ytdijopqublaksmngzf - -vhaobfn -ohbnfav -vahofbn -naovhfb - -tfhsqwcbrv -iqrbzspnwyhtfc - -pfbwotesuyhkvgx -vnrlcxayzdmih - -nbyhpfklvtqo -qbtjopfyk -qpoeybfkt - -uvmgzs -pvsmizrug -ghvmszu -mugszcv -kusmvzg - -mua -amu -uma -mua - -d -m - -s -s -yuk -s - -gtjqp -pfotsh -pshgbt -wpeztyr -bqjtplo - -zwbvestiaoljy -gmnzshupfqre - -anvsdkbltiugc -tqsdcanuibgvkl -stkrvabegidclxun -takcsgnuvmdibl -cvqsklngiubadt - -txvfnuwcljpqkeryoamigd -jgarvmodftpniekquxszcyhb - -htu -hegb -whf - -jn -nj -jn - -vcjlxekmqzoduphynw -hkyeojlvndumcwzx -ozhdnvjeckwlmuxy -ujxdyznvlcmokhew -vdywzekucjnhoxlm - -blxuhyvjrzow -uzlwokmsripy - -rum -mrl -rbwfmz -durmq - -obcpqvkitduelwf -ahcrwiltpuedfobxkv -cvijgzoukptwdfble -kpqjduetilovfcbw - -irfqsp -wifas - -xvgyrpq -yrpqvhgzx -fspxmrivkwgycnequ -axhyqrpvgz -xdygqvrpa - -xrlmcsibvea -bdcveasxzip -esvbclaxi -vaxsbcei -xaeibsvc - -songrtmwhpydqizlf -halvzroefxcsubt - -uqozritygam -kmtryqvz -qfmjstkyrz - -rqtepcofhuylnxaj -xoptqwruhijsmnzcylfe -hxqcpyfjntleuro -brjyuoetfxpndlvcqh - -prltixwohdmfjukgqzsv -orluxtzpvjafdqwkhsgbe - -iyhuarewvbfjmlz -vramijyfzhbew -zyehbmwvifjra -vjmweybazihrf - -duixtbqyhomsla -suinmaxtlqdoyhb -htiquxmaybosld - -pselyhov -zhwpovekt -snheopv -ivxophe -nhpoeuv - -amqcriebkojlwyuxnhfdptgzvs -uovdszkygbjhanefqxplimtwcr - -ozngukih -nvksbd - -grkotivmcxnyubwleqspjzhfad -ekmqxnfabwiduopjsgclzvyhtr - -jzv -wzxfivmjb -zjvp -zjv -jzvs - -js -evqis -qxs -swyct -s - -n -n -zn - -udjtxws -usdwixj - -lf -l - -cdsaxzlv -jcsxlnydtrzvk -lvdqamzsxhc -udlxwczvgs - -gutwbrhjxyeam -jrleawgbsnxthimyu -rbjexdythumwag -hrwjmoexytqaubg -uwymabxrhjqgdect - -vipjrlbsmcogxznty -vetpngyzsbmoxcrijl -hoxvbsnjlfygmrczpti -pmlgzyasvxticjbrknod - -xzakbvtehnlciswmyufjdrgo -kocmslwbgvuxijernzydfhat -vcdxgkslnzoarmjwutyiefbh -tzhugvbcnokyxsfliwardmej - -up -u -pu -fu - -cbzjelmqivw -ickezvjlqm - -srwnt -nwrtj -rswnt - -hfjxoskd -dlpzeyjai - -mt -tm -mt -mt -tm - -rpxenfzmhwdvacbygiujkqot -lhbvkwmpfyazrtojcquxind -qtcjdairznhuwxmpsvyfkob - -apvk -qvapk - -ujscpqtgbyezdfhnwoil -bftognyujilpwhsqzdce -zbhslwipdjeqntcfouyg -tyuqdlfepgzshcoiwnbj -dzqxjblenucpwshtoiyfg - -cdxtsaunbwkezlrp -vbdpsuktlxczerwan -pnxudwaclrtebksz - -tq -t -zt -t -jtqg - -fvmhiloanbgjzptryucdkxw -jzhwtkbdpoxfacirngluyvm -pwnybcjmgxurfzivoklhdta -brtavopdklnhxwgzmifyjcu -ncifvypdtgwxbzakhjrmulo - -kwhiguft -uxyo -ux - -ruyoe -ezqhbi -clndewsfta -e -qrke - -doa -doa -doa - -xt -tx -xt -xt -xt - -roxwktbmgiyc -qtbejyxzlpcaighfod -oscgtuyiwvrbkxn - -agcdevxkmbnzqjl -jrdzmnclbgkvexqwa - -pqjtyenfmxdaorw -qayjpxmfdterwon -frdtlawxmjnoeqpy - -aze -zea -veaz -yzxdequoa - -eq -uetqs - -jsmezrk -zskmer -zmkers -krezsm - -mfzqsukgcw -cmskguzfqw -gksucwfmqz -uwqsgfzmck -wfzucmgsqk - -wftx -fwtd -twf - -bizwg -gzwosd -afzqrwun -cjpzwb - -qjntchmdbgpe -nqtephjgmdbc -qjeltdcphgbmn -nqtbcjhepmdg - -g -g -gr -g -g - -yulnpwc -uplcwn -nplemufywc -calkisogupw - -sigh -igsh -ghski - -naqpd -xydrsjwlibzm -qdevh -cd - -mraejinsdp -mierdjansp -qpsmrianjde -npirjedams -ridpaejmns - -o -o -o -o - -lhfqsxm -xlmsqfh -slfqmxh - -jhivsoabqlfpeuw -fvxrelbhuncowqjtsz - -yajhetclfk -jnqbylmpwgxcf -azchyrsivjeltdf - -n -n -n -n -n - -hkuaq -hkqua -uakqh -khqtalu -ahxkuqy - -tguprf -pfu -ufp -uofp - -lnmtjo -njolmt - -qymzdw -vjckmtl -oipreghfausnxb - -niswjectqkldzyg -wunjdetklisczyqg -gldcysiqznjtekw -iqwdczjsytkleng -lgyiezdncjqktws - -dntm -atm -tma -tm -txm - -ntpcwask -skcna -nksac - -prai -pria -arpi -irpa - -mzldgbrtovj -tbjgldozmvr -ogzvdlrjtbm - -ft -fq - -jgstdlzarcemiopynukfw -ywlhakgzeoxdnjmsirc -moicgebadzlwkysrnxj - -jpeiqxbz -xipjebzt - -rnpf -fqhu -agprm -wedyzci -bxur - -aynswjoklfeqzcitxudbrvh -ihrbxwvdqsyoejpnfkzc - -hrqliwxtfbk -qiwfrxbtkhl -kihqxrftlwb -wrhlxbtqkif -tfbqriwlkhx - -bwdhnqk -wbhkqtd -qwbkhdx - -fpcboialrdgqkejntyzm -lmieayocqpkznbrtdfgj -mbtdrpozfljkeyangiqc -pmdjlerfkybgnaoqzitc -pganmcfbtedkrzloyqij - -zfrvn -zfnr -znrf - -nuq -ltiuacgjs -aug - -xj -lyzixn -eaxwuf - -aeywqjkl -eanklwju -kjelzaw -ealjwtk -azklwej - -ncqxulrmfvedao -eodqxlvmrncu -elrmnuqpcdoxv -qloxudmvnecahr -lcdxqwmurvznjeo - -aijnhvxemsqztfk -xnvkehsiqmzft -tehvxnfskiwqzm -epsmzhixqvtnkfr -htkinzvqefxmrs - -wgfzomlbhujxs -ezvrxmkycafwob - -lhyrq -ylfherq -hlreyq -wqlyerh -hgsqlyru - -acnkurdevm -duernacvm -nteaducorvs - -hxvqtsjzgn -iakeoyr - -id -i -di -hkxi - -fqunm -funxikw -xfiuknz - -wvgpqlzxnui -livzmwyqgpnu - -eanbkcjlxpsm -ofmdwrqe - -w -ws -wr -w -w - -aylsbi -lyaiqsgb -vyeblmasuhi -yblsia -ylbsiaq - -fpbhozqdljytwcnxsvr -zarwdgqhtvyxcnpbsofji -dbzhsfwrvqnyjxtpoc -qwxpbnycrfjsozvhtd -tsoypwnmzfjhbvdxcqr - -bezfskqut -egbpkdflqtmouzs -kxzenfustqb -tsebufkzq - -hoekryzuqt -oreuqhyktz -teorhukzqy -kyqehortuz - -d -uqwgitdaj -dz -vod -fvd - -smjqnlt -jsqmlnt -ntsqlmj -jqntslm - -saxdlkjwvyctqenrio -wqnvsoyaextcilkrjd -krdqwevyliojxcntas -ywlnkcafdoirsvjxetq - -ryae -yaq -ya -ya -ya - -epvy -nvyqu -vnxy -oyvh - -kschegfmla -lgfmscaehk -gshfalcemk -lcgemshkfa -mkgaselhctf - -bfxqtegnoismrk -mnuivtxasgbjqyfkp -mkxgrnltfiqbhsw - -s -s -s - -zoe -eoz -oze -eoz - -q -kuprd -gvmbn -vctx -oi - -nbrjveycdlw -jyhfcwnglerv - -vkoxqwfhubrcsnme -bqkexhovswmntfrc - -aidoznexygkjlqs -neysaiudmoqklgxzc - -ypsn -eyp -yp -iyp - -gol -olg - -rypjohwvxkisnldatuzfb -btpxvolknwdhuryiafjsz -vkahgbsitwdoyjplfruznx - -mipqtk -nikqpvu - -kztifpne -yzit -rigtz -zait - -jxgvt -gfjoky -kvygh -dmwgqsrcp -ounalgyze - -nypvuiseqtjwxchlbfogdamzr -apqnbzhwmjldotfsvexruicyg -bpyjzomwahcrgsutlefxkqdivn - -qumcbsvlpthfwyda -hagwiucnvfdypqlzs - -tog -otg -gfto -gto - -ctp -uda - -vlbi -swmiujf - -xbi -upsdbi -bizr - -ltw -we -wzavnymh -iw -wfe - -caqjdphelmtvyfbxo -acxmtljedhoqbsfyp - -fyqthpe -bmrceljqy -eyqt - -frjdhuyqsgon -krouhsfgydnj - -ltopekjnacgbms -elngjotmpsca -splcgnatmoej -egjctspmlaon -jtealcmpongs - -fvsmiotkb -fbnupmcsxd -fmkvjysb -qbksmywrtf - -mklqnp -mqnlk -mwqnlke - -jykqrlaocvunfpix -rcymsnwuafdtvgbqoieh - -c -c -ct -c - -mlv -lyfpq -vsli -vrdwl - -srtaq -nuptlr - -hcfjdaqwo -qmoefalzdh - -zxyksijbeahgvc -xgvjhsczeyikba -yxickjesbhgavz -sjvgibeczxhkay -hvgizjmaxsybcke - -wjmypxi -jipmx -pjmix -bjivamxp - -dytnalmqkbpruef -qplfuynbdaertm -rbnetqdupamlwyf - -e -e -m -p -e - -b -eb -b -b -b - -yieovwqukxcnbfjpdg -qjvunkgywpfoidbxec -jupowqfbiknvdgeycx -dqeicgjfpxonbukwvy -gociquxvjbfdwnpkye - -lwrch -huosc - -somiywgdbf -fbmvdwgzsy -ufrltkydsnwm - -epvfduyh -vfpeyuhd -epdchvyuf -udeohyvpf -evhpyufd - -b -b - -szfgmlxwd -eapoqydvi - -puedtjkqbwfznhvycxrolamsgi -cvqeyszrwdfnkutjihxmlapbgo -nfdpoukvizgctxwmeaqjrhlbys - -nuf -je -uieq -ctodh -sbx - -psrwqlgd -lrwdqgpzs - -qheijmngzsrdawbvucolxpy -vhqnlcouibjdarzxpmeygs -edlixjhrquamovnpbsgycz - -jkphyr -urycxn - -snbcyoe -nuewpy - -gbnsoirkwyhp -iogsqbkymwp -fzbwkeyutdxp - -w -w -w - -jsbp -bjsp -jspb - -jfbdpv -pfjvb - -wfhvsjloznb -gmupxcnrakelfsvzqd - -dbsuoriacgnwxtzveyhqfkmp -adwcifzvsgnkphyburtexomq -wzbkmsdpfrhiaqxyecuonvgt -athzyrgbwckvomqudsnexfip -vidbhyqesancrzugkxfopwmt - -nl -ln -nl -osnl - -iewcxgqtf -gtwmfieqc -icfvqwyhadgkn -qcgwerfli - -wyj -jy -atycnje -qyjg -yzjsg - -ivjwfeuz -jvcw -mbhvwj -rswvhjd - -zmjlpeia -eimrlpzaj -jmealyqpi - -zgkf -gkz - -zuosdlvkxm -tlxskcvpumo -kuyomrxlvs -uvosxmldyk - -yuilcqhgmazts -swhvdcigltmakzuy -stojxiflyghnazcpum -gkhqtyciuwszmal - -nzhlyu -hngc -ngcah -anch -nvkhj - -xhfvwbkn -nahwxfo -fhgnwx -dmfuxnht - -vbhpedluncftoxys -cydfsolpejhbntux - -vkilx -pvxskd - -hvwuecgs -guvwcsh -sgrwculmvhb -wcpznuqsvghi -vhwcsulg - -ndfapjlztc -npoacfjtld - -jzd -xaulvyksp -zeh - -ck -ck -ck -kc - -kiroh -rh - -euxdrkvtfbqon -ytfvurxwheokqn - -sirznatbxkghm -skaiqzrmhnx -ztgmhrsikanx -hksxmairnez -ywdiracnfsuzhjxmpk - -bacgwvmxrdfne -pdcofwbza -cfqdwuptzabo - -dqmp -dqpm -qvmpd - -kczxnlerm -vqrzjmf - -qmuorwspx -dywcxarilegkh - -gqzph -qhapozk -zhqp - -fastkjnl -jsnafkt -jfnacskt - -fxgpiadjrvhs -smfwbejadh -hjmfyaods -fzdqsjham -hlcbyfjkaunsdt - -dqlevpahscoyi -iypldavhsqoce -clhvyaisoepdq -eayqiosdlpvch -epodliqvhcsay - -nhxbmlqv -qylkhmnxvbj -xbnlvqmh -vxmbhqln -lbvhxsqmn - -exrtdq -tderq -djretq - -lwqj -jmwlr -zbswtx - -pxi -ipx -ixp -xip - -vgfscwrqzdojxhe -xfvqhzsjecgownd -qdopyzjwegfsxchv -gosqeckhvzdjfxw -gszxpfveocjhqmdw - -gvlyuiscaewfpx -gfwjtapuoynvqzi - -ycsdnbzjoki -wfpvogmqhautlx - -tbjliqdfzgny -zjwilpghqdyekc - -yftcnao -ncfytaio -conyfta - -yslactbwhjfvnomiue -mbyiavojlwtunces -eontumvircsalbjwy -jguvcxylitsbmwenazo -bayolijwqcevpmsktdun - -ynmki -ykinm -inymk -iykmn -yimnk - -vzjnpybg -vjqfyno -rnvity - -ilxkjhcfpdmeb -hwdjleirc -aiulechdj -dljiwehc - -rptom -ife -nuli -yized - -loe -eg - -fprtvcgkwnasljebhm -nvbltrckumfhpgjew -grpuefzknmblovjw -bjwgykpinqlemrd -mrlegnjwbkp - -xtquyrjnszl -ysrqzj -zsqyjpr - -ft -fjt -ft -tf - -ejli -l -l -rl - -lwgrihbdvno -ydbrvhgolniw -rivdongwhlb -ndhbrgwilov -dwvrnlhbgio - -fc -fc -cqfo -fc -fc - -nhaoi -nioha -osijah - -hgrec -gchre -cehrg - -higmvfbtjre -ikhxjbrefvq -brjiefhvl -ivfeqblhrj -hrkifjvbe - -vsgqmibordtznkl -dehupjlcxtsrnfawy - -t -crfi - -nrai -hjcmpzla -dveria - -krp -achvofx -kbp - -vfdzhuskanm -lhucb -uh - -qu -uqj -quh -qu - -tokmzyuxjsbvic -zegday - -wqfxlhyapcdtv -vctalwmjdpqyfh - -nqge -vneiqt -hqvfenwj -nksqcrlmde -vqgbone - -f -w -w -f -oq - -qziwcdjyepvhn -wvypijednqzc - -uwjflbhoq -dwxublig - -c -lc -ec -c -txcjrkd - -cglvpyadf -rqfvgaplc -kgpatsxuelvh -oapgvliwc - -ln -st -bs - -sfra -dskrnf -mzhjrfpx - -phu -uph -uph -hpu -phu - -pcxhvbf -hxbtyk - -jdzsaiwbphmftqxrlngcyoe -mqbrsplojgyheznxcdtfwia -pitajxzhsonwygrfblecmqd -nyliauzgfbcprewhdtjmsxoq -taxnylhvgjqewcksfpmzdbior - -h -c -om - -ruplsfnhyjqigwkzexbtoc -newjivhyckdagob -ywocjmnkbghie - -jdrtpbvohaxy -dnjxyrfsv - -lq -nsulxvmhj -l -lk - -fdsxhvqaiblt -fihykrdlsoaqx -laqgpznecjiuxfsdhmw - -capkzueqjmdv -ckdvymqazu -fklcmdbuxqarzv -zkcsvmqhiadgeu -jotqkuzndvciwam - -lzqbrgkp -grvpntoz -ozwvpg -suefagcp -pkjygd - -zbangyoqjlkdevrxti -gzniebarjloykqtdxv - -xviqehycstgjladuoznfwp -odwplyiqnxghutezcvsj -ersxgqtcjouvdiznlyhwp -cpshuoijtxvelqynwmdgz - -tnzkdmgqci -mqkzgydtijn -mtikzqdng - -d -ad -d - -k -iof - -otkvualrqdsixf -nkhwid -dbkiwpj -ikd -ekziydgm - -wjvgqsxinfburh -wxgqsurjvflnhbi - -hebmgftkpcq -owektbpfhqcmg -egtfbpckhmdq -qmcetgpfkhb - -exukswmlgznjoqhvabid -dkgmeoahtxpzflnwru - -lf -fl -lf -fle - -zblhfjqpr -rzp -uprzo - -wmktipjq -twmikp -jmtwikyp -azcempwtkiv -itkmpw - -qwodjmelanykpxuh -weqnajoxmupklyihd -pjodermlyuknwxhqa -mqbaoxylgdshtnjpwuvkfe -lnaxijmwqhukodpye - -azxw -xazw -zwax -wafqztx -zaxw - -ydzmvpskfjiqneluabgtrw -vyfdpqrkbistwlaxzjum -ukortizjvdwhlpafycmqsb - -cno -y -no -y -bqe - -zlcotxyhfeij -xtlvhifkszoj - -kczqegopj -qupzjod - -hpclqaktjmbnyxw -iqphxcamk - -rebc -qcbra -brc -crb - -flkoiavp -aduhjeqtyrmzkn -cslwgfaokp - -qmnzcjb -bmeqzjsc -jxochgfbmwzvq -zqcbmja - -deyifvsxw -evdyw -edbhzyuqv - -xmhknbcwdaztvl -mruslxozyangpj -xgszalnm -aoqmleunizxs - -eh -he -eh -nxeh -eh - -cjbx -jxsub - -yusezdlpgxtm -dyrkmstuegpx -pdxmyeutvkjsrhgaw - -ruz -rzu -zur -zru - -wgbdctzlsmh -peglstyhcd -adtqlhcgvs -tylndgrcujhsbx -odltpshecg - -ylntchparijwfo -wtrjpiaohylcf -wlfyvrehcutapgko - -tkbpfhjzravmquxewgl -goxphazbfvrqkijlwtm -mkrbzqphvawtyjfxilg -plhcnwgqmrxfvdzabjkt - -pfhtlqawckegij -wjpaksdctfghlo - -jqctpgrvu -qkvgjuprtc -vutcqpgrj -gpruvjtcq -gvqprujct - -dkevisf -kfei -mlukicwfje - -nsoyjcwzife -spnocteji - -cfuzsbtvdkq -rcasmqzkpdxuo -drxzwqckus -zqsrndeukxic - -vkgpbz -zkpvg -zkvpg - -eqhpyasvnumzgclitofjw -ofsgpaijzqmtvcuwhlbe -ujiewctamfxqdghslpvzo -qivnwtlfcmpgaeouhjzs - -lfahbowz -ryxcwtvs -mytucdivw - -lqetdskgyznojharxvufpwimbc -kpcoqugdvxibftjmywzslnreh -mxjgcinhobeldrwfukyvptqsz - -jxhc -fjsqglzwhu -mhcj -hecj - -ihdsbckn - -siponk -sikonp -psinkfo - -qbvdrutoan -qbcftunvoi -qvkoxzbtushny -qtwojubnv - -eu -u -xtujdms -ehu - -jkqdoner -eyxnkuaoqfg -kqenxmyo - -wk -wk -ykw -kw -kw - -gvrebwq -erkflnbjhagv -givrybues -itpvegsrbz - -hlykfbqnexots -tqhgfonkzeyxsbl -qkcybxtsnloefh -fxalqkntsuobyech -hvyjefkbitrqoplwxns - -paxu -parnkxu -pxua -xupa -uxpa - -ytzjokcqlmviha -sykbmizchvq -aocvizymhkq -ivhkcqlzym -iayelkzqmtchv - -aekxzstuc -czetkxsau -zqpakexsuct -zuxtacske -kuszetcax - -czlkiprvydnmsoxqwajgb -byszdijkplawcvnm -ikmwandcjzlvybsp -nbvwlikjscdmpzay - -fpuxqtigly -hpuqkfxigyt -tifpygqkux -uygqftwpxi - -gvdwnrefpj -nwgapvedr -egdvwnrp -xshwezgipdvr - -joefgnu -tknuhvfy - -rjo -rpjyos -rjo -roj -jro - -zxvatmfbujgryinokwehsc -xjzdusehibgtvncmkflyao - -fpnkyo -nopfky -kpnyof -ponkfy -tnpfoyk - -mevhflgowbkqdjutrzys -qrgmkeohvstnbwfdjluy - -pejhrgwtmcny -hjangqtbprsmwe -umiegvdprwtznhj -nhgptresjwlm - -ohgmls -othljm -jmhtlso -mhxlcnp - -dtufxjrbq -rdfjxtqbu -qjtdufbrx - -iexvaok -kexu -xkje -xkfe - -dpursykgo -ugkrsqpody -sokpgyrdnu -kwsuoyrpdg -sovjiydkagmuptbrhcf - -mwxcqs -mcwxqs -mwxqsc -tcswmxq - -cqatfowbvmirly -woibncaylqgvsf - -bico -izdt -tiz - -af -fkq -f -fyb -f - -wxftpjclsrhm -sdzuvanek - -jr -rjp -rj - -zhpknlosiadcfbjweuqvy -ulbkhapqzisefdyonjc - -oivjy -djvwbofy -kvlqyxrj -bsivdyjf - -kifcamqwgy -amfkgicyq -miygkcafq - -egslifrtvcnhk -vymgiprjzcxasbqn - -gji -g -oar -jgk - -gxtkohsqcvmrjzie -jfghvuxokznqwsdmarcl - -xvlnpjdar -vldnopxaj -dtnpsayjvlc -dgjvalnmp -mfnvjdpal - -mnaxd -xmda -kdaxm - -szpeac -ezpsac -aesxpcz - -vgpldyruqmfbsehzkxjwa -wrxmvtqgyjsdazlkbofeuhc -ablmzyevqgswfnxkdrphuj - -aoedxnzjqsbyihtpkcfuwl -dsbeyathwxjupozlqncikf - -mwzkrnhp -okqj - -s -s - -erjyvcwhuitdaogsnfb -dculesyjotbwhavfirn -swfbohtjdciaurenyv -ubsvfamrjoynwchitdke - -yb -yb -by - -pbrhzvjcsgeylfxt -sjcyezvxfgbhtplr - -rphvaxw -zhjapvrxw -xahvwspr -lpdqrvwahmx - -rpmild -vlrpswnb -ylrezfpi -pbraslm -utxgqhpjkorl - -pizbmcxreftywhdq -pqyezcxtidgmhfrw -ixrctphwqydzfme -fxdhpyctwrinmazqe -pctzyrhdiqwmxef - -wasjdyzgfu -zfdyujgwsa -wbyzjgadufs -afzswydguj - -zqanmksjruhx -qljaunzmkrshx -jrxqsmzknhua -rjazknumxqhs -kuzqxhjmasrn - -virdpbztchkgo -hdiopebvzaw - -ziwscmotk -jwmas - -h -h -h -h -h - -qhywbkuvnst -zmynwxvufqarkbeht - -onfvrqxa -xrvqnofa -fiuarnvoxq -qvzafonrx -fqvxebnaolr - -kmfulryg -bkswufgylmr -myulgjrfk -gouyxrlkmf - -skerjmgbvtcphdzafniyxo -ljybizemsvhokxrdcagptnf - -oyt -hytx -mdtyjrslkczu -bvyto - -mpwv -acvbp - -m -ftz - -kvtmidlngo -edznioyvkx -kofvirdn diff --git a/2020/inputs/day_7.txt b/2020/inputs/day_7.txt deleted file mode 100644 index 04950b5..0000000 --- a/2020/inputs/day_7.txt +++ /dev/null @@ -1,594 +0,0 @@ -striped white bags contain 4 drab silver bags. -drab silver bags contain no other bags. -pale plum bags contain 1 dark black bag. -muted gold bags contain 1 wavy red bag, 3 mirrored violet bags, 5 bright gold bags, 5 plaid white bags. -muted teal bags contain 2 pale beige bags, 5 clear beige bags, 2 dotted gold bags, 4 posh cyan bags. -posh coral bags contain 1 light silver bag, 2 dull blue bags, 3 dim fuchsia bags, 2 dotted magenta bags. -faded black bags contain 4 light silver bags. -muted lavender bags contain 1 pale gold bag. -clear fuchsia bags contain 1 dull gray bag, 2 shiny indigo bags, 3 posh olive bags, 5 vibrant plum bags. -shiny olive bags contain 1 dotted gold bag, 5 bright violet bags. -vibrant lavender bags contain 3 dotted aqua bags, 4 pale chartreuse bags, 5 mirrored blue bags. -pale fuchsia bags contain 5 pale crimson bags, 2 dull teal bags. -clear lavender bags contain 5 shiny fuchsia bags, 5 wavy teal bags. -light chartreuse bags contain 5 mirrored yellow bags, 3 bright maroon bags. -mirrored white bags contain 1 bright gray bag, 4 plaid blue bags. -dark teal bags contain 4 bright maroon bags, 5 plaid bronze bags, 1 dark brown bag. -wavy yellow bags contain 4 dim silver bags, 1 striped tomato bag, 5 clear chartreuse bags. -dark turquoise bags contain 4 clear plum bags. -posh gray bags contain 2 faded purple bags, 2 faded orange bags. -wavy tomato bags contain 1 dark purple bag. -vibrant gray bags contain 3 muted gray bags, 1 dark fuchsia bag, 5 posh white bags, 5 posh tomato bags. -light crimson bags contain 2 dotted chartreuse bags. -dull gray bags contain 4 muted brown bags, 2 shiny blue bags, 4 dim crimson bags. -drab red bags contain 2 bright cyan bags, 1 pale brown bag. -dotted salmon bags contain 5 mirrored indigo bags. -vibrant green bags contain 2 dark coral bags. -light magenta bags contain 4 clear bronze bags, 4 dull teal bags, 4 posh salmon bags. -vibrant purple bags contain 4 posh plum bags, 2 bright gray bags. -posh lime bags contain 3 plaid yellow bags, 4 posh salmon bags. -bright white bags contain 4 dull aqua bags, 1 shiny silver bag. -faded blue bags contain 5 muted cyan bags, 2 mirrored coral bags. -dim green bags contain 2 posh lavender bags. -faded gray bags contain 2 dark gold bags, 1 drab turquoise bag. -wavy black bags contain 4 dim fuchsia bags, 1 muted orange bag, 4 drab salmon bags. -plaid plum bags contain 5 dotted tomato bags, 1 shiny beige bag. -bright tan bags contain 2 posh salmon bags. -wavy gold bags contain 1 faded olive bag, 5 vibrant black bags, 3 dull orange bags. -dull fuchsia bags contain 1 faded crimson bag, 5 vibrant white bags. -shiny maroon bags contain 5 dull lavender bags, 1 dim white bag. -wavy white bags contain 5 light teal bags, 4 dim salmon bags, 3 dotted red bags, 5 dark red bags. -dim cyan bags contain 1 muted orange bag. -muted cyan bags contain 4 dull turquoise bags, 5 posh gray bags, 5 clear turquoise bags, 1 shiny plum bag. -posh violet bags contain 5 plaid crimson bags, 5 muted purple bags, 1 wavy beige bag, 2 mirrored orange bags. -faded purple bags contain 3 plaid blue bags, 1 dull lavender bag, 1 muted orange bag, 2 dotted tomato bags. -wavy beige bags contain 1 dotted beige bag. -dim black bags contain 1 wavy blue bag, 1 plaid black bag, 3 pale lavender bags, 2 light violet bags. -dotted lavender bags contain 1 plaid blue bag, 5 dim crimson bags. -dark yellow bags contain 3 posh green bags. -wavy salmon bags contain 1 clear aqua bag, 3 mirrored crimson bags, 3 pale magenta bags, 2 dull teal bags. -clear silver bags contain 3 faded tan bags, 5 faded aqua bags, 1 clear tomato bag. -vibrant bronze bags contain 1 faded maroon bag, 4 plaid indigo bags, 2 bright purple bags, 5 dim violet bags. -pale brown bags contain 1 dull lavender bag, 2 clear turquoise bags. -faded salmon bags contain 1 pale silver bag. -dark gray bags contain 2 pale teal bags. -posh red bags contain 3 faded black bags, 2 dull red bags. -dim indigo bags contain 3 bright green bags, 2 dotted tomato bags, 5 bright magenta bags. -dull maroon bags contain 5 light green bags. -wavy teal bags contain 5 faded tan bags, 4 clear orange bags. -pale chartreuse bags contain 5 bright blue bags, 3 light indigo bags, 3 shiny white bags, 3 wavy bronze bags. -mirrored gray bags contain 4 vibrant tomato bags, 1 dark red bag, 5 drab silver bags, 3 posh magenta bags. -dark lavender bags contain 4 dotted white bags, 5 vibrant chartreuse bags, 2 dim teal bags. -shiny turquoise bags contain 3 dim lime bags, 5 bright cyan bags, 2 pale green bags. -shiny indigo bags contain 2 dark fuchsia bags, 4 posh chartreuse bags. -pale crimson bags contain 5 mirrored silver bags, 2 posh black bags. -light salmon bags contain 2 vibrant orange bags, 2 dotted red bags. -plaid orange bags contain 1 dotted turquoise bag, 4 vibrant brown bags. -dim maroon bags contain 5 shiny gold bags, 4 mirrored maroon bags. -muted green bags contain 1 plaid plum bag. -faded indigo bags contain 3 faded purple bags, 4 vibrant indigo bags, 1 light coral bag. -dull blue bags contain 5 dull salmon bags, 2 wavy magenta bags. -vibrant black bags contain 1 light coral bag, 5 vibrant cyan bags, 3 dim magenta bags. -striped lime bags contain 1 striped maroon bag, 2 vibrant brown bags. -drab brown bags contain 1 faded olive bag, 5 dotted beige bags. -dark plum bags contain 5 faded brown bags. -clear olive bags contain 3 dull aqua bags, 5 drab yellow bags. -wavy crimson bags contain 2 posh plum bags, 2 dull aqua bags, 5 shiny teal bags, 2 vibrant purple bags. -mirrored olive bags contain 2 wavy gold bags. -dim crimson bags contain no other bags. -faded plum bags contain 1 plaid indigo bag. -light maroon bags contain 3 vibrant orange bags, 2 clear olive bags, 3 clear brown bags, 1 pale black bag. -posh white bags contain 3 dull green bags, 3 clear brown bags. -drab black bags contain 2 shiny turquoise bags. -light purple bags contain 2 pale black bags, 5 light silver bags, 1 drab coral bag. -pale yellow bags contain 2 vibrant orange bags, 5 posh black bags, 2 vibrant tomato bags, 3 dotted lavender bags. -dull cyan bags contain 5 wavy beige bags, 1 dull yellow bag, 3 drab lime bags, 3 drab chartreuse bags. -drab lavender bags contain 2 plaid black bags, 4 dotted gray bags, 1 dim silver bag, 2 shiny gold bags. -striped brown bags contain 5 light maroon bags, 3 light red bags, 3 clear indigo bags. -drab tomato bags contain 2 light black bags, 2 clear salmon bags. -dotted red bags contain 4 dim salmon bags, 5 striped indigo bags. -vibrant teal bags contain 5 bright black bags, 1 dark purple bag, 2 bright turquoise bags. -striped teal bags contain 4 mirrored silver bags. -dull beige bags contain 4 clear olive bags, 4 light teal bags, 3 bright plum bags, 4 dotted lavender bags. -light violet bags contain 2 dull lavender bags, 4 bright gray bags, 5 vibrant orange bags, 3 wavy magenta bags. -dim brown bags contain 2 clear plum bags, 2 shiny teal bags, 2 posh salmon bags. -striped magenta bags contain 4 posh turquoise bags, 3 pale cyan bags, 3 faded indigo bags. -bright orange bags contain 4 plaid gray bags, 4 dark black bags, 4 faded red bags, 4 bright black bags. -muted olive bags contain 2 dotted crimson bags, 4 faded lavender bags, 2 vibrant gray bags. -plaid teal bags contain 2 light yellow bags, 4 drab cyan bags, 3 light green bags. -faded fuchsia bags contain 1 posh silver bag, 4 drab chartreuse bags, 4 drab teal bags. -dim silver bags contain 1 pale turquoise bag. -bright lime bags contain 1 striped silver bag, 5 muted teal bags, 1 shiny tan bag, 1 dark silver bag. -dotted green bags contain 3 posh green bags, 1 drab yellow bag. -drab purple bags contain 5 bright violet bags, 1 posh tomato bag. -dull bronze bags contain 4 mirrored black bags. -striped tomato bags contain 1 posh gray bag, 2 posh magenta bags. -bright crimson bags contain 2 light olive bags, 4 clear tan bags, 3 drab fuchsia bags. -bright turquoise bags contain 4 pale teal bags, 3 drab silver bags. -shiny lavender bags contain 2 striped lime bags, 2 plaid tomato bags, 1 faded orange bag, 5 wavy magenta bags. -light tomato bags contain 5 dotted olive bags. -wavy magenta bags contain no other bags. -vibrant fuchsia bags contain 5 posh brown bags, 5 plaid indigo bags. -dark tomato bags contain 3 shiny plum bags. -pale bronze bags contain 5 plaid black bags, 5 vibrant brown bags, 2 dim lime bags, 4 muted bronze bags. -striped fuchsia bags contain 3 muted brown bags, 2 pale chartreuse bags, 1 dim magenta bag. -dark brown bags contain 4 clear bronze bags. -posh teal bags contain 5 dotted plum bags, 2 drab gray bags, 3 dull fuchsia bags. -wavy turquoise bags contain 1 dull lavender bag. -striped maroon bags contain 4 muted yellow bags, 4 clear orange bags, 4 vibrant orange bags. -shiny green bags contain 3 muted brown bags, 1 vibrant black bag, 4 wavy cyan bags, 3 posh brown bags. -plaid salmon bags contain 4 mirrored indigo bags, 2 wavy white bags, 5 mirrored bronze bags, 3 light coral bags. -dotted magenta bags contain 2 light olive bags, 2 dark red bags, 4 clear green bags, 3 dim plum bags. -light orange bags contain 5 dark plum bags, 3 bright maroon bags, 2 dotted lime bags. -clear brown bags contain 3 dim white bags, 2 posh magenta bags. -vibrant turquoise bags contain 2 striped yellow bags, 1 mirrored crimson bag. -muted coral bags contain 4 wavy gold bags, 2 dim tan bags, 1 shiny green bag. -plaid crimson bags contain 1 dull aqua bag. -vibrant plum bags contain 4 striped tomato bags, 1 striped turquoise bag. -dark coral bags contain 5 posh black bags, 1 shiny beige bag, 3 pale brown bags. -mirrored brown bags contain 1 clear blue bag, 1 dull indigo bag. -bright blue bags contain 2 light violet bags, 1 dotted tomato bag. -drab cyan bags contain 2 dim turquoise bags, 5 clear violet bags. -dotted coral bags contain 3 dotted aqua bags. -shiny yellow bags contain 1 wavy cyan bag. -shiny red bags contain 5 shiny beige bags, 3 dotted lime bags, 5 dotted plum bags. -muted lime bags contain 3 dark turquoise bags, 3 bright chartreuse bags. -pale gray bags contain 5 dotted coral bags, 4 wavy teal bags, 2 clear aqua bags. -pale blue bags contain 5 dull salmon bags, 3 posh bronze bags, 2 vibrant tomato bags. -dim turquoise bags contain 4 posh aqua bags, 2 dark turquoise bags. -pale turquoise bags contain 5 vibrant brown bags, 2 shiny maroon bags. -dim gray bags contain 2 faded tomato bags, 2 faded indigo bags. -clear aqua bags contain 1 light turquoise bag, 3 dotted turquoise bags. -faded turquoise bags contain 5 muted lime bags. -clear plum bags contain 2 plaid indigo bags, 5 drab yellow bags. -vibrant white bags contain 2 bright violet bags, 4 dark plum bags, 1 dim plum bag, 4 plaid indigo bags. -dark orange bags contain 3 posh purple bags, 5 clear orange bags, 1 dim white bag. -light olive bags contain 3 drab green bags. -muted salmon bags contain 4 muted cyan bags. -clear maroon bags contain 2 muted yellow bags, 5 plaid crimson bags, 1 clear turquoise bag. -wavy orange bags contain 4 vibrant blue bags, 4 posh brown bags, 2 pale turquoise bags, 5 shiny orange bags. -dotted gold bags contain 3 posh magenta bags, 1 faded crimson bag, 3 dotted olive bags, 3 plaid olive bags. -dull purple bags contain 5 drab salmon bags, 4 dim lavender bags. -light bronze bags contain 2 wavy indigo bags. -muted turquoise bags contain 5 clear turquoise bags, 4 plaid violet bags, 4 clear orange bags, 2 posh maroon bags. -mirrored blue bags contain 4 clear chartreuse bags. -drab tan bags contain 3 striped violet bags, 2 bright silver bags, 2 dark bronze bags, 1 mirrored black bag. -dark maroon bags contain 1 vibrant orange bag. -drab yellow bags contain 1 vibrant blue bag, 2 dim violet bags. -light cyan bags contain 4 posh beige bags. -vibrant salmon bags contain 3 wavy gold bags. -muted orange bags contain 3 dotted tomato bags, 4 vibrant tomato bags, 5 dull lavender bags. -dull turquoise bags contain 1 wavy white bag. -dotted indigo bags contain 3 wavy bronze bags. -dark red bags contain 4 wavy bronze bags, 5 wavy turquoise bags. -light coral bags contain 4 clear tan bags, 2 vibrant beige bags, 1 dull lavender bag, 5 shiny white bags. -mirrored turquoise bags contain 5 clear fuchsia bags, 3 mirrored black bags, 4 plaid tan bags. -mirrored yellow bags contain 4 pale turquoise bags, 2 wavy orange bags, 3 drab coral bags, 4 dim chartreuse bags. -dotted fuchsia bags contain 4 dim bronze bags, 4 striped indigo bags. -dotted purple bags contain 5 posh maroon bags, 1 dim yellow bag. -clear coral bags contain 5 dark olive bags, 2 wavy bronze bags, 3 light red bags. -mirrored teal bags contain 3 drab yellow bags. -faded green bags contain 2 dark purple bags. -light lime bags contain 4 bright chartreuse bags, 5 clear tomato bags, 2 bright green bags, 2 faded teal bags. -bright yellow bags contain 4 dull purple bags, 3 faded beige bags. -bright maroon bags contain 2 vibrant blue bags, 5 bright violet bags, 5 plaid indigo bags, 3 vibrant orange bags. -faded red bags contain 5 pale brown bags, 4 striped tomato bags, 2 bright green bags. -muted maroon bags contain 1 dark tan bag, 5 drab teal bags, 4 dull maroon bags. -plaid coral bags contain 5 bright blue bags, 1 dotted indigo bag. -dotted brown bags contain 1 dull beige bag, 2 bright indigo bags, 2 striped chartreuse bags, 1 muted silver bag. -wavy coral bags contain 2 clear cyan bags, 2 muted teal bags, 1 faded red bag, 2 mirrored silver bags. -faded coral bags contain 3 bright green bags, 1 bright cyan bag, 3 plaid blue bags, 5 wavy lavender bags. -dim gold bags contain 5 dim teal bags, 1 vibrant tomato bag, 5 pale chartreuse bags, 3 bright indigo bags. -bright salmon bags contain 5 plaid chartreuse bags, 5 light tan bags, 5 vibrant maroon bags. -wavy violet bags contain 4 bright green bags. -mirrored lavender bags contain 5 drab plum bags, 2 drab turquoise bags, 2 dark magenta bags. -faded aqua bags contain 3 faded teal bags, 1 dark red bag. -muted yellow bags contain 1 mirrored silver bag, 1 striped white bag, 3 mirrored gold bags, 1 muted gray bag. -pale coral bags contain 2 striped gray bags, 2 clear beige bags. -mirrored cyan bags contain 1 pale beige bag, 4 dim crimson bags. -dotted aqua bags contain 4 dim crimson bags, 3 vibrant beige bags. -dark white bags contain 4 dim maroon bags, 1 light olive bag, 3 dull fuchsia bags, 4 mirrored maroon bags. -dotted chartreuse bags contain 5 clear tan bags, 2 clear white bags, 2 dark coral bags, 4 faded brown bags. -mirrored red bags contain 5 faded violet bags, 2 dark chartreuse bags. -drab maroon bags contain 3 bright violet bags. -dark violet bags contain 5 dark turquoise bags, 1 muted blue bag, 4 plaid bronze bags. -dull silver bags contain 4 dotted lime bags, 3 dotted silver bags, 4 dull red bags, 3 pale white bags. -striped lavender bags contain 5 drab silver bags. -light yellow bags contain 3 posh plum bags, 3 bright olive bags, 4 wavy crimson bags. -posh chartreuse bags contain 2 bright violet bags. -pale green bags contain 5 shiny lime bags, 3 faded teal bags, 5 posh gray bags, 1 posh chartreuse bag. -shiny lime bags contain 1 dull beige bag, 4 light aqua bags, 4 dotted tomato bags. -plaid tan bags contain 1 mirrored chartreuse bag. -drab coral bags contain 5 posh gray bags, 2 dull black bags. -drab salmon bags contain 4 drab yellow bags, 3 mirrored green bags. -faded yellow bags contain 2 mirrored beige bags, 1 bright turquoise bag, 1 vibrant black bag. -bright tomato bags contain 4 clear brown bags. -muted beige bags contain 1 clear turquoise bag. -striped black bags contain 1 plaid chartreuse bag. -bright cyan bags contain 5 clear tomato bags. -striped coral bags contain 2 muted red bags. -posh bronze bags contain 5 striped yellow bags. -mirrored maroon bags contain 4 vibrant tomato bags, 5 bright green bags, 4 vibrant maroon bags, 4 striped violet bags. -dotted turquoise bags contain 1 posh beige bag, 5 muted silver bags. -bright purple bags contain 5 drab silver bags, 5 shiny blue bags, 2 plaid bronze bags, 4 faded magenta bags. -posh plum bags contain 5 striped white bags, 2 pale brown bags, 1 wavy turquoise bag. -dark crimson bags contain 1 dull black bag, 2 dull yellow bags, 1 posh white bag, 3 dotted lime bags. -plaid bronze bags contain 5 striped indigo bags, 5 light indigo bags, 4 wavy magenta bags, 3 vibrant blue bags. -clear red bags contain 4 posh silver bags, 1 dim aqua bag. -striped salmon bags contain 3 bright violet bags, 4 faded olive bags, 5 dim turquoise bags. -dim bronze bags contain no other bags. -wavy brown bags contain 4 vibrant turquoise bags. -wavy maroon bags contain 1 mirrored bronze bag, 2 posh fuchsia bags, 1 mirrored indigo bag. -mirrored salmon bags contain 2 faded lavender bags. -dark aqua bags contain 4 faded teal bags, 1 dim tomato bag. -pale violet bags contain 5 clear blue bags, 3 plaid blue bags, 5 dim teal bags, 2 pale black bags. -mirrored crimson bags contain 2 posh magenta bags, 2 dotted aqua bags, 1 dim bronze bag. -bright indigo bags contain 4 bright violet bags. -muted violet bags contain 4 mirrored maroon bags, 2 dull red bags, 4 plaid tomato bags, 1 pale yellow bag. -shiny gold bags contain 3 vibrant blue bags, 5 plaid blue bags, 2 dark red bags, 1 dull green bag. -clear green bags contain 4 dotted lavender bags. -dark indigo bags contain 2 light lime bags, 3 wavy brown bags. -muted fuchsia bags contain 3 plaid green bags. -bright silver bags contain 4 dim tomato bags, 3 clear olive bags, 1 dull teal bag. -plaid purple bags contain 4 dark silver bags, 1 vibrant crimson bag, 4 dark black bags, 3 faded magenta bags. -clear chartreuse bags contain 4 posh plum bags. -plaid tomato bags contain 2 wavy aqua bags, 3 striped indigo bags, 1 wavy magenta bag. -posh cyan bags contain 3 drab green bags, 3 bright chartreuse bags, 3 muted gray bags, 2 light black bags. -posh turquoise bags contain 5 wavy teal bags, 3 light tan bags, 1 dull gold bag. -plaid olive bags contain 2 dim chartreuse bags. -shiny orange bags contain 4 pale brown bags, 3 dim salmon bags. -clear gray bags contain 4 bright salmon bags, 5 vibrant crimson bags. -shiny brown bags contain 1 bright gold bag, 3 clear tomato bags. -muted aqua bags contain 2 mirrored indigo bags, 1 dim tan bag. -plaid red bags contain 1 clear plum bag. -muted bronze bags contain 4 clear white bags, 3 dotted plum bags. -plaid blue bags contain 2 dull lavender bags, 5 wavy magenta bags, 1 light indigo bag. -shiny salmon bags contain 2 dotted black bags, 1 light magenta bag. -shiny cyan bags contain 5 faded violet bags, 3 mirrored bronze bags, 4 dark maroon bags, 2 wavy lavender bags. -drab magenta bags contain 2 light blue bags, 1 wavy orange bag, 5 posh chartreuse bags. -dim violet bags contain 5 dark red bags, 4 light violet bags, 2 dotted fuchsia bags, 2 plaid tomato bags. -faded crimson bags contain 3 clear silver bags, 1 vibrant beige bag. -plaid fuchsia bags contain 3 plaid red bags, 4 drab purple bags, 4 clear lime bags, 3 dim turquoise bags. -dull green bags contain 5 dotted beige bags, 4 drab silver bags, 4 posh magenta bags, 1 muted orange bag. -wavy indigo bags contain 2 pale tan bags. -plaid lavender bags contain 1 dark black bag. -clear bronze bags contain 3 pale teal bags. -clear blue bags contain 2 light teal bags, 5 dotted olive bags, 3 bright indigo bags. -posh aqua bags contain 2 light violet bags, 2 dull salmon bags, 1 vibrant violet bag. -dark gold bags contain 2 striped maroon bags. -vibrant chartreuse bags contain 3 wavy silver bags. -dark magenta bags contain 1 clear silver bag. -dim red bags contain 3 wavy indigo bags, 2 muted teal bags. -muted silver bags contain 5 pale crimson bags, 2 dotted tomato bags. -mirrored tan bags contain 1 pale salmon bag. -dull violet bags contain 2 dull black bags. -striped beige bags contain 4 dark maroon bags, 2 wavy orange bags. -striped turquoise bags contain 3 light indigo bags, 5 bright maroon bags, 1 light teal bag. -pale gold bags contain 5 dotted teal bags. -wavy olive bags contain 3 dotted fuchsia bags. -clear violet bags contain 1 dotted lavender bag, 5 bright tan bags, 5 dim violet bags, 5 drab salmon bags. -pale maroon bags contain 4 drab red bags, 1 wavy yellow bag, 1 muted green bag, 1 striped fuchsia bag. -drab bronze bags contain 4 light gray bags, 3 posh magenta bags, 1 dull yellow bag. -vibrant gold bags contain 4 dull violet bags, 3 clear white bags, 5 wavy chartreuse bags, 4 pale turquoise bags. -clear beige bags contain 4 plaid blue bags, 3 shiny plum bags, 1 light silver bag. -faded silver bags contain 5 drab turquoise bags, 4 plaid green bags, 4 posh yellow bags, 1 plaid blue bag. -light brown bags contain 1 dark red bag, 1 dotted gray bag. -shiny violet bags contain 5 posh cyan bags, 5 vibrant plum bags, 5 mirrored chartreuse bags, 4 plaid green bags. -dark bronze bags contain 4 bright gold bags, 2 striped maroon bags, 4 dark aqua bags, 5 pale chartreuse bags. -dull black bags contain 2 vibrant tomato bags, 1 vibrant blue bag, 3 pale yellow bags. -dotted beige bags contain 5 dotted tomato bags, 1 striped indigo bag. -clear indigo bags contain 3 dark violet bags. -bright coral bags contain 1 dark indigo bag. -drab turquoise bags contain 5 drab plum bags, 3 pale magenta bags, 5 drab red bags, 4 dull olive bags. -shiny fuchsia bags contain 2 dull lavender bags, 5 striped tomato bags. -dull indigo bags contain 3 pale turquoise bags, 3 faded tomato bags, 5 dim magenta bags, 3 drab indigo bags. -dim aqua bags contain 4 faded brown bags, 1 mirrored lime bag. -muted purple bags contain 3 dim salmon bags, 4 light violet bags, 2 striped turquoise bags, 2 shiny teal bags. -dotted black bags contain 3 dotted cyan bags, 4 wavy magenta bags, 4 posh chartreuse bags. -drab violet bags contain 4 dark gray bags, 5 dull chartreuse bags, 4 plaid gray bags. -plaid green bags contain 3 dark red bags, 1 wavy crimson bag, 4 light coral bags, 4 striped indigo bags. -faded brown bags contain 3 dark orange bags. -light teal bags contain 3 striped indigo bags, 4 dim bronze bags. -plaid black bags contain 2 mirrored crimson bags, 5 dim silver bags, 4 posh purple bags. -shiny blue bags contain 2 plaid green bags, 4 plaid crimson bags, 2 faded plum bags. -plaid lime bags contain 2 striped maroon bags. -pale lavender bags contain 2 mirrored indigo bags, 1 pale green bag, 5 dim chartreuse bags, 3 pale white bags. -drab chartreuse bags contain 1 bright salmon bag, 4 vibrant brown bags, 1 muted violet bag. -light indigo bags contain no other bags. -plaid violet bags contain 2 dim white bags, 4 faded lavender bags. -drab gold bags contain 5 dotted aqua bags, 3 muted beige bags, 4 faded black bags, 5 dark red bags. -mirrored bronze bags contain 2 plaid blue bags, 1 light orange bag. -dim olive bags contain 1 striped silver bag. -plaid white bags contain 5 pale turquoise bags, 4 mirrored orange bags, 2 vibrant aqua bags. -wavy purple bags contain 3 dark silver bags, 1 dull white bag, 3 dotted magenta bags, 2 dim salmon bags. -clear orange bags contain 5 striped indigo bags, 1 wavy bronze bag, 4 vibrant blue bags. -plaid gray bags contain 1 dull aqua bag, 3 dull olive bags, 3 posh black bags. -vibrant violet bags contain 2 vibrant maroon bags. -pale olive bags contain 2 vibrant fuchsia bags. -muted brown bags contain 5 pale teal bags, 2 light brown bags, 4 light tomato bags. -posh lavender bags contain 4 bright indigo bags, 1 striped indigo bag, 5 dark purple bags. -dotted blue bags contain 4 muted salmon bags, 3 mirrored red bags, 5 pale white bags, 3 clear red bags. -dim purple bags contain 4 muted cyan bags. -bright fuchsia bags contain 5 muted black bags. -vibrant lime bags contain 3 posh purple bags, 1 drab aqua bag. -wavy green bags contain 3 drab red bags, 2 faded brown bags, 2 wavy cyan bags. -dull lime bags contain 3 bright salmon bags, 4 posh crimson bags, 1 drab salmon bag, 4 pale yellow bags. -mirrored aqua bags contain 4 striped violet bags, 1 striped indigo bag, 2 striped tomato bags. -striped tan bags contain 4 light blue bags, 4 dull beige bags. -drab green bags contain 5 muted silver bags, 1 vibrant orange bag, 2 striped indigo bags, 4 striped tomato bags. -dotted orange bags contain 5 mirrored white bags, 5 muted orange bags, 2 drab tomato bags, 2 dull white bags. -dim tomato bags contain 2 dull lavender bags. -dull magenta bags contain 3 faded brown bags, 5 faded teal bags. -faded maroon bags contain 4 posh brown bags, 2 dotted aqua bags. -plaid cyan bags contain 4 faded crimson bags, 4 light chartreuse bags, 1 light crimson bag, 1 posh fuchsia bag. -dim salmon bags contain 1 dotted olive bag, 4 light indigo bags. -faded chartreuse bags contain 4 bright gold bags, 4 clear silver bags. -light plum bags contain 2 dotted chartreuse bags, 1 drab white bag. -posh silver bags contain 3 mirrored black bags, 4 dull blue bags. -dull salmon bags contain 4 dim white bags, 5 clear tomato bags, 2 mirrored maroon bags. -light green bags contain 4 plaid chartreuse bags, 5 vibrant aqua bags. -posh indigo bags contain 2 dull olive bags, 2 dotted lime bags, 1 drab red bag. -dark blue bags contain 5 dotted green bags, 3 wavy crimson bags, 4 clear silver bags. -bright black bags contain 5 posh bronze bags, 3 bright cyan bags, 5 muted black bags. -bright lavender bags contain 1 shiny indigo bag, 1 dim yellow bag, 1 wavy yellow bag. -faded white bags contain 1 dotted black bag, 5 wavy red bags. -muted black bags contain 1 mirrored aqua bag, 4 dark red bags, 5 dull yellow bags. -light turquoise bags contain 3 shiny plum bags. -vibrant coral bags contain 2 shiny orange bags, 4 bright olive bags. -vibrant aqua bags contain 2 wavy crimson bags, 2 muted orange bags. -dotted tan bags contain 1 light indigo bag, 2 dim magenta bags. -posh yellow bags contain 4 faded lavender bags. -pale lime bags contain 4 mirrored orange bags, 3 dull gray bags, 1 muted magenta bag. -drab white bags contain 2 faded tan bags, 3 wavy aqua bags. -shiny tomato bags contain 4 dim coral bags, 3 dotted lime bags. -wavy plum bags contain 1 bright orange bag. -dull crimson bags contain 2 pale silver bags, 1 light beige bag, 4 wavy violet bags. -dotted violet bags contain 4 light indigo bags, 1 dark black bag, 3 pale green bags. -dark salmon bags contain 5 light tan bags, 4 dim chartreuse bags, 5 faded green bags, 3 light brown bags. -dull brown bags contain 5 mirrored aqua bags, 5 dim magenta bags, 4 light brown bags, 5 plaid black bags. -shiny chartreuse bags contain 5 wavy yellow bags, 3 faded aqua bags, 1 bright fuchsia bag, 5 drab plum bags. -muted red bags contain 3 drab white bags, 5 dim beige bags, 4 bright olive bags. -posh blue bags contain 1 dotted beige bag, 1 vibrant cyan bag, 4 vibrant brown bags, 2 clear turquoise bags. -wavy bronze bags contain 4 wavy turquoise bags, 4 dim bronze bags, 3 shiny beige bags, 2 dull lavender bags. -posh beige bags contain 3 muted gray bags, 4 light salmon bags, 5 striped turquoise bags. -vibrant red bags contain 5 muted blue bags. -dark olive bags contain 5 dark maroon bags. -dotted gray bags contain 3 wavy magenta bags. -vibrant cyan bags contain 5 dotted lavender bags, 3 vibrant orange bags. -dark chartreuse bags contain 3 pale white bags, 1 dull lavender bag. -faded lime bags contain 4 clear green bags, 3 shiny plum bags, 2 light green bags. -vibrant blue bags contain 1 wavy turquoise bag, 4 dim salmon bags. -dull tan bags contain 3 dim chartreuse bags, 1 plaid tomato bag, 4 dark brown bags. -muted gray bags contain 4 clear tan bags, 3 wavy aqua bags, 5 dim white bags. -clear yellow bags contain 1 drab white bag, 5 dark salmon bags, 2 dull yellow bags. -clear tomato bags contain 2 dotted gray bags, 5 vibrant beige bags, 1 bright maroon bag, 2 drab green bags. -shiny tan bags contain 5 posh lavender bags, 5 pale yellow bags. -dark black bags contain 4 muted purple bags, 5 light gray bags, 5 drab red bags. -striped plum bags contain 3 dull red bags, 1 dark tomato bag, 4 dark yellow bags, 5 plaid cyan bags. -light gray bags contain 3 plaid chartreuse bags. -light aqua bags contain 4 wavy magenta bags, 3 light black bags. -vibrant brown bags contain 1 bright blue bag, 1 posh black bag. -posh tomato bags contain 5 wavy magenta bags. -dotted bronze bags contain 4 mirrored chartreuse bags. -mirrored violet bags contain 2 clear maroon bags, 1 light red bag, 4 mirrored gray bags. -dark purple bags contain 5 bright blue bags, 3 plaid blue bags. -faded beige bags contain 4 plaid bronze bags, 5 vibrant turquoise bags, 3 pale orange bags, 5 mirrored aqua bags. -mirrored green bags contain 1 dotted fuchsia bag, 5 light indigo bags, 3 shiny beige bags. -striped violet bags contain 5 drab silver bags, 2 dim crimson bags, 3 plaid blue bags. -mirrored tomato bags contain 5 light lavender bags. -posh purple bags contain 3 pale orange bags. -dim blue bags contain 5 dotted plum bags, 1 light orange bag, 4 dim maroon bags. -dark cyan bags contain 4 vibrant white bags, 4 dull white bags, 1 posh purple bag. -drab beige bags contain 5 dull purple bags. -vibrant olive bags contain 5 light silver bags. -plaid beige bags contain 3 muted silver bags, 4 vibrant orange bags. -wavy silver bags contain 2 dim crimson bags, 4 shiny maroon bags, 4 pale indigo bags. -posh crimson bags contain 2 light violet bags, 4 pale coral bags, 3 plaid bronze bags. -vibrant crimson bags contain 3 dull red bags. -dotted olive bags contain no other bags. -mirrored beige bags contain 2 plaid gray bags, 5 mirrored yellow bags. -bright brown bags contain 2 faded aqua bags, 1 dim tomato bag, 5 posh magenta bags. -bright magenta bags contain 2 posh gray bags, 3 dim salmon bags. -clear magenta bags contain 2 dim cyan bags, 3 clear red bags, 1 dull fuchsia bag, 4 wavy coral bags. -clear lime bags contain 5 dull green bags, 2 shiny bronze bags, 2 faded orange bags, 1 bright beige bag. -muted tan bags contain 4 vibrant maroon bags, 3 vibrant black bags, 5 shiny maroon bags, 5 vibrant turquoise bags. -pale beige bags contain 3 light tomato bags. -dark fuchsia bags contain 2 faded brown bags, 3 dotted lavender bags, 4 shiny teal bags, 2 bright blue bags. -dim magenta bags contain 4 posh chartreuse bags. -bright aqua bags contain 5 drab violet bags. -striped crimson bags contain 2 bright green bags. -dull chartreuse bags contain 4 plaid bronze bags, 2 shiny gray bags, 4 dull lavender bags. -wavy chartreuse bags contain 1 vibrant tomato bag, 1 dim tomato bag, 3 pale green bags, 1 posh plum bag. -dotted white bags contain 1 dark teal bag, 4 dotted violet bags, 5 bright beige bags, 3 dim silver bags. -mirrored purple bags contain 1 posh green bag. -faded bronze bags contain 4 dotted indigo bags. -faded lavender bags contain 3 muted purple bags. -clear turquoise bags contain 4 muted orange bags, 1 striped violet bag, 5 clear tan bags, 5 dim white bags. -shiny plum bags contain 4 dim crimson bags. -wavy fuchsia bags contain 3 dotted brown bags, 5 dark magenta bags, 2 dark bronze bags. -faded olive bags contain 5 plaid indigo bags. -mirrored orange bags contain 4 striped violet bags, 2 light violet bags, 4 shiny orange bags. -pale indigo bags contain 3 shiny indigo bags. -faded tan bags contain 3 shiny maroon bags, 5 posh aqua bags, 1 striped violet bag, 2 dim white bags. -bright chartreuse bags contain 1 posh black bag, 5 bright gray bags, 3 plaid chartreuse bags. -drab blue bags contain 1 pale violet bag, 4 vibrant green bags. -posh tan bags contain 4 shiny lime bags. -plaid maroon bags contain 2 dotted black bags. -dull coral bags contain 4 posh coral bags, 1 dotted silver bag, 5 drab beige bags, 1 plaid red bag. -striped yellow bags contain 1 plaid tomato bag, 1 dotted lavender bag. -muted magenta bags contain 4 muted black bags. -dotted cyan bags contain 1 vibrant tomato bag, 3 light indigo bags, 1 wavy turquoise bag. -dim lavender bags contain 1 muted black bag, 4 pale white bags, 2 mirrored coral bags, 5 pale brown bags. -bright gold bags contain 5 vibrant green bags. -light white bags contain 2 striped lime bags, 2 muted lime bags, 5 muted brown bags, 4 bright green bags. -wavy lavender bags contain 2 vibrant purple bags, 5 posh white bags. -clear black bags contain 2 posh turquoise bags, 3 dotted orange bags, 3 faded teal bags. -muted crimson bags contain 1 pale violet bag, 5 drab lavender bags. -posh green bags contain 4 vibrant beige bags, 5 dark purple bags, 3 dim salmon bags, 3 light black bags. -vibrant silver bags contain 3 posh coral bags, 4 posh white bags. -dim coral bags contain 2 posh violet bags, 1 dark cyan bag, 3 shiny green bags, 3 vibrant cyan bags. -striped red bags contain 5 muted olive bags, 4 wavy teal bags, 3 shiny gray bags, 1 mirrored coral bag. -bright violet bags contain 3 shiny beige bags, 1 wavy magenta bag, 5 light indigo bags. -vibrant magenta bags contain 4 striped salmon bags, 1 light tan bag. -faded gold bags contain 5 light tomato bags, 1 wavy black bag, 4 faded maroon bags. -muted plum bags contain 1 vibrant brown bag, 2 muted cyan bags, 4 muted salmon bags. -plaid gold bags contain 5 shiny beige bags, 3 faded fuchsia bags, 5 vibrant cyan bags, 5 shiny gold bags. -striped indigo bags contain no other bags. -wavy gray bags contain 2 plaid indigo bags, 3 clear tomato bags, 4 dull blue bags. -plaid silver bags contain 5 clear salmon bags, 5 faded lime bags, 4 shiny tan bags, 5 mirrored chartreuse bags. -plaid yellow bags contain 4 shiny chartreuse bags, 1 light lime bag, 2 dull green bags. -plaid turquoise bags contain 3 dotted aqua bags, 3 posh magenta bags. -striped olive bags contain 2 faded aqua bags, 5 dotted orange bags, 5 dull turquoise bags, 1 pale violet bag. -faded teal bags contain 3 striped indigo bags. -dull red bags contain 1 mirrored gray bag, 4 drab coral bags, 2 bright plum bags, 1 dull green bag. -dull gold bags contain 5 bright blue bags. -shiny magenta bags contain 1 light white bag. -striped green bags contain 1 clear blue bag. -dull teal bags contain 3 dark purple bags, 4 dim lime bags, 5 clear chartreuse bags. -faded magenta bags contain 4 shiny gray bags, 5 pale crimson bags, 5 light coral bags, 2 pale white bags. -pale tomato bags contain 4 dull black bags, 1 posh chartreuse bag, 1 faded cyan bag. -muted blue bags contain 5 striped white bags, 1 faded orange bag. -light blue bags contain 4 posh white bags. -plaid chartreuse bags contain 2 bright gray bags. -dull aqua bags contain 5 clear tan bags, 5 dotted red bags, 5 vibrant tomato bags. -light lavender bags contain 5 clear fuchsia bags, 1 striped olive bag. -bright green bags contain 4 vibrant violet bags, 2 vibrant maroon bags. -light beige bags contain 1 striped maroon bag. -drab indigo bags contain 4 posh tomato bags, 5 faded brown bags. -dotted yellow bags contain 3 wavy violet bags, 4 bright violet bags, 4 vibrant lime bags, 1 pale beige bag. -striped gold bags contain 2 light indigo bags, 3 dull red bags, 5 vibrant beige bags. -muted indigo bags contain 5 bright purple bags, 1 pale plum bag, 5 wavy black bags. -dark lime bags contain 2 faded blue bags. -shiny white bags contain 4 clear tan bags, 3 pale yellow bags, 5 plaid tomato bags, 4 wavy turquoise bags. -vibrant maroon bags contain 4 dark red bags, 2 dull aqua bags, 5 wavy aqua bags. -drab teal bags contain 3 shiny indigo bags. -bright plum bags contain 2 plaid chartreuse bags. -vibrant yellow bags contain 3 posh purple bags. -posh salmon bags contain 4 dim plum bags, 1 pale yellow bag, 2 shiny gold bags. -shiny black bags contain 3 dim magenta bags. -bright gray bags contain no other bags. -dull orange bags contain 3 dotted purple bags. -pale purple bags contain 2 bright cyan bags, 2 drab teal bags, 2 dotted gold bags, 4 mirrored fuchsia bags. -dull yellow bags contain 3 posh gray bags. -muted tomato bags contain 3 faded orange bags. -drab olive bags contain 4 dim maroon bags, 1 bright turquoise bag, 3 shiny indigo bags, 5 vibrant lavender bags. -clear salmon bags contain 2 dim chartreuse bags, 2 shiny black bags, 5 dotted indigo bags, 3 dotted aqua bags. -posh black bags contain 2 wavy turquoise bags, 2 shiny plum bags, 2 mirrored gold bags. -light gold bags contain 5 shiny tomato bags, 4 light cyan bags. -shiny coral bags contain 3 faded silver bags. -plaid magenta bags contain 1 vibrant black bag, 2 bright blue bags. -dotted teal bags contain 4 faded olive bags, 5 vibrant brown bags, 3 clear salmon bags. -striped purple bags contain 5 shiny bronze bags. -dim tan bags contain 2 light tan bags, 1 dotted gold bag, 3 shiny white bags. -light silver bags contain 5 dotted cyan bags, 4 dotted aqua bags. -dull white bags contain 5 striped turquoise bags. -plaid aqua bags contain 3 dim bronze bags, 5 dull brown bags, 3 faded plum bags, 2 mirrored crimson bags. -dotted silver bags contain 1 faded teal bag. -dull olive bags contain 1 dark turquoise bag, 3 muted orange bags. -clear purple bags contain 3 drab salmon bags. -mirrored plum bags contain 1 vibrant lavender bag. -bright beige bags contain 4 plaid magenta bags, 1 dull turquoise bag, 4 dim white bags, 1 light aqua bag. -pale red bags contain 1 muted lavender bag, 2 vibrant teal bags, 4 plaid cyan bags, 5 dull orange bags. -drab orange bags contain 3 bright plum bags, 5 vibrant chartreuse bags. -mirrored gold bags contain 2 wavy magenta bags. -posh maroon bags contain 3 dotted lime bags, 2 muted black bags, 3 faded green bags. -clear white bags contain 4 pale black bags. -pale silver bags contain 2 dim coral bags, 2 dull lavender bags, 2 dark teal bags, 3 wavy green bags. -vibrant tomato bags contain 5 dull lavender bags. -striped orange bags contain 5 shiny salmon bags, 1 pale gold bag, 4 mirrored gray bags, 1 plaid black bag. -dim beige bags contain 5 dim salmon bags, 2 striped yellow bags, 5 shiny orange bags, 5 light salmon bags. -clear gold bags contain 2 dim salmon bags, 4 vibrant cyan bags. -dim teal bags contain 3 light indigo bags, 3 pale green bags, 5 muted bronze bags. -shiny silver bags contain 3 drab red bags, 1 pale magenta bag, 3 plaid blue bags, 4 pale white bags. -dark beige bags contain 4 posh black bags, 1 dark maroon bag. -bright bronze bags contain 4 mirrored yellow bags, 1 vibrant salmon bag, 2 mirrored teal bags, 1 shiny beige bag. -dotted maroon bags contain 1 clear tomato bag. -bright olive bags contain 3 striped tomato bags, 3 plaid indigo bags, 3 posh magenta bags. -faded tomato bags contain 5 bright violet bags. -mirrored magenta bags contain 3 wavy coral bags, 4 dull tan bags, 3 wavy chartreuse bags. -striped aqua bags contain 3 drab teal bags, 3 drab crimson bags, 5 plaid gold bags, 2 vibrant aqua bags. -clear crimson bags contain 5 striped chartreuse bags, 5 vibrant blue bags. -striped blue bags contain 4 dull red bags, 3 vibrant white bags, 4 posh black bags. -posh olive bags contain 5 muted cyan bags. -plaid indigo bags contain 5 dotted fuchsia bags, 2 plaid chartreuse bags, 3 vibrant blue bags. -mirrored lime bags contain 2 dotted lavender bags, 2 wavy bronze bags. -wavy blue bags contain 5 mirrored green bags, 5 faded tomato bags, 1 posh turquoise bag. -light fuchsia bags contain 3 faded tomato bags, 5 muted beige bags, 2 faded beige bags, 4 wavy indigo bags. -dull plum bags contain 4 dark blue bags, 5 shiny maroon bags, 3 pale gray bags, 5 drab lime bags. -drab fuchsia bags contain 3 dark maroon bags. -pale teal bags contain 4 vibrant blue bags, 1 bright green bag, 3 dim crimson bags, 1 posh salmon bag. -dull tomato bags contain 3 dim maroon bags, 4 plaid gray bags, 5 striped gold bags, 5 striped white bags. -pale orange bags contain 4 drab yellow bags. -wavy aqua bags contain 1 dim bronze bag. -dim chartreuse bags contain 2 bright violet bags. -dotted crimson bags contain 5 vibrant orange bags, 4 wavy magenta bags. -faded cyan bags contain 3 mirrored blue bags, 3 shiny fuchsia bags, 4 bright indigo bags. -pale salmon bags contain 2 pale cyan bags, 2 muted lime bags, 2 vibrant plum bags. -drab lime bags contain 2 drab yellow bags, 2 light magenta bags, 3 dotted fuchsia bags. -shiny bronze bags contain 1 posh lavender bag. -dim fuchsia bags contain 5 dotted gold bags, 5 vibrant indigo bags, 4 shiny teal bags, 2 dotted silver bags. -dark green bags contain 2 shiny blue bags. -bright red bags contain 2 pale brown bags, 3 plaid blue bags, 4 drab bronze bags, 3 dim yellow bags. -clear teal bags contain 2 drab white bags, 3 muted beige bags. -pale aqua bags contain 4 light tan bags. -dull lavender bags contain 1 dim bronze bag, 5 dim crimson bags, 1 dotted olive bag. -dotted plum bags contain 1 light black bag. -shiny teal bags contain 3 light indigo bags. -dotted lime bags contain 1 shiny gold bag, 3 plaid crimson bags. -dark tan bags contain 5 faded tan bags. -vibrant indigo bags contain 3 shiny fuchsia bags. -light tan bags contain 4 pale yellow bags, 1 pale crimson bag, 3 light gray bags. -drab plum bags contain 2 shiny turquoise bags, 2 vibrant yellow bags, 4 muted brown bags, 2 drab lavender bags. -dim white bags contain 5 dark red bags, 5 dotted olive bags. -light red bags contain 2 vibrant indigo bags, 1 wavy salmon bag, 3 dull brown bags. -mirrored fuchsia bags contain 5 dotted tomato bags. -mirrored indigo bags contain 5 pale lime bags, 5 light magenta bags, 4 light gray bags, 2 dull red bags. -dim yellow bags contain 2 muted beige bags, 2 plaid olive bags, 3 faded aqua bags. -shiny gray bags contain 1 drab yellow bag, 3 shiny lavender bags, 1 posh white bag. -faded violet bags contain 2 bright olive bags, 5 clear gray bags, 2 dark orange bags, 1 pale magenta bag. -mirrored black bags contain 4 clear blue bags. -drab aqua bags contain 1 vibrant crimson bag, 4 clear fuchsia bags. -pale black bags contain 5 pale turquoise bags, 4 striped yellow bags, 4 dotted beige bags. -wavy cyan bags contain 1 vibrant brown bag. -dark silver bags contain 3 light tomato bags, 5 dotted lavender bags, 3 bright turquoise bags. -faded orange bags contain 3 clear turquoise bags, 3 mirrored gold bags, 2 plaid bronze bags, 2 dotted fuchsia bags. -drab crimson bags contain 5 clear blue bags. -posh magenta bags contain 1 bright violet bag, 2 dotted beige bags, 2 bright gray bags. -posh brown bags contain 3 dim tomato bags, 1 dim chartreuse bag, 5 shiny orange bags. -drab gray bags contain 3 striped violet bags. -pale cyan bags contain 5 dotted aqua bags, 3 striped tomato bags. -wavy tan bags contain 3 pale indigo bags. -plaid brown bags contain 2 dotted indigo bags, 1 dull indigo bag, 2 light brown bags. -vibrant beige bags contain 1 shiny teal bag, 3 vibrant cyan bags, 2 posh gray bags, 3 striped tomato bags. -shiny aqua bags contain 2 vibrant black bags, 2 muted coral bags, 4 vibrant coral bags. -mirrored silver bags contain 3 drab silver bags, 1 clear turquoise bag. -pale tan bags contain 3 pale magenta bags. -striped cyan bags contain 5 drab tomato bags. -mirrored coral bags contain 1 mirrored crimson bag, 1 bright maroon bag. -pale white bags contain 4 shiny beige bags, 1 shiny maroon bag, 5 dim bronze bags. -shiny beige bags contain 3 mirrored gold bags. -mirrored chartreuse bags contain 1 dotted tomato bag, 2 bright cyan bags. -wavy red bags contain 1 posh lavender bag, 1 vibrant blue bag, 3 muted brown bags. -muted chartreuse bags contain 3 dim lavender bags, 4 pale plum bags, 4 light magenta bags. -shiny purple bags contain 4 muted green bags, 5 light white bags, 2 faded tan bags, 5 light beige bags. -clear tan bags contain 3 dotted red bags, 1 striped violet bag, 4 plaid chartreuse bags. -bright teal bags contain 1 faded black bag, 3 faded maroon bags. -posh orange bags contain 5 light gold bags, 3 posh aqua bags. -striped gray bags contain 2 bright plum bags, 2 shiny gray bags. -dim lime bags contain 1 plaid blue bag. -posh fuchsia bags contain 1 dull indigo bag, 2 plaid blue bags. -dotted tomato bags contain no other bags. -dim plum bags contain 1 dim chartreuse bag. -dim orange bags contain 2 muted magenta bags, 5 faded aqua bags. -posh gold bags contain 5 light maroon bags, 4 dark turquoise bags, 1 posh white bag, 5 wavy beige bags. -striped bronze bags contain 1 dark magenta bag. -wavy lime bags contain 4 mirrored lavender bags, 3 pale bronze bags, 1 dull white bag. -pale magenta bags contain 2 dim crimson bags, 4 plaid plum bags, 5 muted silver bags, 2 dim yellow bags. -striped chartreuse bags contain 5 light black bags, 3 bright fuchsia bags, 4 pale black bags. -vibrant tan bags contain 2 dim tan bags. -shiny crimson bags contain 5 pale beige bags, 3 clear purple bags, 2 pale violet bags, 4 dotted chartreuse bags. -vibrant orange bags contain no other bags. -striped silver bags contain 5 clear orange bags, 2 dotted fuchsia bags. -clear cyan bags contain 5 muted gray bags, 3 wavy aqua bags. -light black bags contain 1 striped yellow bag. -muted white bags contain 3 muted tomato bags, 5 light black bags, 4 pale black bags, 5 shiny gold bags. diff --git a/2020/inputs/day_8.txt b/2020/inputs/day_8.txt deleted file mode 100644 index 5ef799e..0000000 --- a/2020/inputs/day_8.txt +++ /dev/null @@ -1,626 +0,0 @@ -acc +48 -nop +308 -acc +33 -acc +48 -jmp +379 -acc +27 -acc +23 -acc +29 -acc +3 -jmp +326 -acc -12 -nop +248 -nop +146 -jmp +293 -acc +8 -acc -16 -acc +18 -jmp +255 -jmp +390 -jmp +442 -acc +38 -jmp +451 -jmp +499 -acc +41 -acc +44 -nop +298 -acc +31 -jmp +337 -acc -3 -acc +34 -nop +266 -acc -19 -jmp +281 -jmp +232 -acc -9 -acc +25 -acc -8 -nop +228 -jmp +79 -jmp +58 -acc +38 -nop +318 -jmp +17 -acc +44 -jmp +298 -acc -4 -jmp +196 -jmp +249 -acc -9 -acc -3 -acc +17 -jmp +556 -jmp +1 -acc -15 -jmp +166 -acc +23 -acc +10 -acc +39 -jmp +475 -acc +28 -jmp +41 -jmp +322 -acc +48 -acc -11 -acc -13 -acc +12 -jmp +92 -jmp +1 -acc +9 -jmp -26 -acc +4 -acc -8 -nop +484 -acc -14 -jmp +526 -acc -13 -acc -2 -acc -13 -jmp +419 -acc +22 -acc -17 -jmp +1 -jmp +151 -acc +3 -acc +2 -acc -13 -acc -11 -jmp +352 -acc +24 -jmp -27 -nop +206 -acc +22 -nop +225 -jmp +360 -acc +48 -jmp +105 -jmp +80 -acc -16 -jmp +89 -acc +0 -jmp +339 -acc +37 -acc +41 -nop +156 -jmp +452 -jmp +208 -nop +60 -jmp +155 -acc -16 -jmp +274 -nop -77 -acc -16 -acc +21 -jmp +508 -acc -7 -acc -1 -jmp -83 -acc -11 -jmp +28 -acc +3 -acc +32 -acc -18 -jmp -89 -acc +4 -acc -14 -acc -1 -acc +33 -jmp -75 -nop +185 -acc +8 -acc +22 -acc +26 -jmp +164 -acc -19 -jmp +260 -jmp +174 -acc +2 -acc +34 -jmp -120 -acc -15 -acc +48 -jmp +165 -acc +5 -nop +240 -jmp -121 -jmp +114 -jmp -36 -nop +432 -jmp +1 -acc -18 -jmp +429 -acc +44 -nop +110 -jmp +198 -acc -18 -acc +32 -acc +41 -jmp +102 -nop +177 -acc +35 -acc +24 -acc +46 -jmp +121 -acc +20 -jmp +1 -jmp +407 -jmp +1 -acc +35 -acc +46 -nop -18 -jmp +6 -jmp +422 -acc -19 -jmp -85 -acc +33 -jmp -116 -nop +79 -jmp +284 -acc +3 -acc +49 -nop +317 -jmp +6 -acc +6 -jmp +295 -nop -141 -acc -4 -jmp -44 -nop +155 -acc +48 -acc -17 -jmp +188 -acc +22 -jmp +286 -nop +103 -acc -2 -acc +45 -jmp +20 -acc +21 -acc +37 -jmp +235 -jmp +42 -acc -11 -nop -15 -acc -5 -jmp +235 -jmp +178 -acc +12 -acc -15 -jmp +25 -acc +9 -acc +11 -nop +389 -acc +50 -jmp +146 -acc +26 -jmp +144 -acc -14 -jmp +304 -nop +254 -jmp +337 -jmp +17 -jmp +1 -acc +6 -acc -4 -acc +42 -jmp +117 -acc +25 -acc +50 -acc +45 -jmp -112 -acc +14 -acc +27 -jmp +347 -nop +15 -jmp +14 -acc +29 -jmp +236 -jmp -71 -acc -11 -acc +21 -nop +32 -jmp -162 -acc -15 -jmp +322 -acc -4 -acc +16 -jmp +1 -jmp +100 -jmp +1 -jmp -77 -acc +21 -nop -199 -acc +49 -acc -1 -jmp -231 -jmp +230 -acc -19 -jmp +1 -jmp -49 -jmp -11 -acc +6 -jmp -110 -jmp +331 -acc +44 -jmp +292 -acc -7 -acc -18 -acc +50 -jmp +221 -acc +33 -acc +7 -jmp -45 -jmp +342 -acc -19 -acc +36 -acc +15 -jmp -229 -nop -5 -jmp +57 -acc +26 -acc +43 -nop -175 -jmp +82 -acc +45 -jmp -161 -acc -16 -acc +35 -acc +46 -acc +43 -jmp +1 -nop +195 -acc +39 -acc +27 -acc +32 -jmp +227 -jmp -272 -nop +201 -acc +6 -acc +13 -acc +12 -jmp -177 -acc -9 -acc +46 -nop +199 -acc -1 -jmp +1 -jmp +3 -acc +42 -jmp +75 -jmp +305 -acc +49 -acc -16 -jmp -92 -acc +3 -nop +279 -jmp +54 -jmp +31 -acc +50 -jmp -125 -acc +21 -nop -178 -acc +40 -jmp +193 -acc +39 -acc -5 -jmp +261 -nop -3 -acc -13 -jmp -310 -acc +6 -acc -17 -acc +12 -acc +38 -jmp +267 -jmp -311 -acc -2 -jmp -7 -nop +77 -acc -2 -acc +39 -acc -16 -jmp +10 -nop +59 -jmp -296 -acc -4 -acc +41 -jmp -249 -acc +43 -nop +35 -jmp +95 -jmp +171 -acc +10 -nop +169 -acc -17 -jmp +47 -acc +49 -acc +38 -nop +199 -jmp +249 -jmp -53 -nop -194 -acc +19 -acc +18 -jmp -16 -acc +33 -jmp +194 -nop -194 -acc +49 -jmp +85 -acc +50 -nop -318 -acc -7 -jmp -49 -acc -6 -acc +48 -acc -13 -acc -14 -jmp +67 -acc +12 -acc +19 -acc +3 -jmp -371 -jmp -149 -acc +49 -nop -202 -jmp -315 -acc -6 -jmp -171 -acc -7 -jmp +113 -acc +34 -acc +36 -acc +17 -jmp -97 -acc +3 -jmp -244 -acc +25 -acc +30 -acc +25 -acc -19 -jmp +44 -nop +84 -jmp +124 -nop +17 -acc -11 -acc -8 -acc +4 -jmp +193 -jmp -388 -acc +36 -acc +17 -jmp +1 -acc -5 -jmp +166 -acc +39 -acc -10 -jmp -280 -acc +15 -jmp +1 -jmp -396 -jmp +113 -acc +37 -acc +13 -jmp -35 -nop +109 -acc +8 -acc +6 -acc +19 -jmp +39 -jmp +1 -jmp +1 -acc +39 -acc -14 -jmp -291 -acc +39 -acc +31 -jmp -231 -acc +41 -jmp -55 -nop -167 -jmp +105 -acc -8 -acc +34 -jmp -114 -nop +58 -jmp +1 -nop -270 -acc +31 -jmp -135 -acc +8 -acc +33 -jmp +1 -jmp -64 -acc +24 -acc +16 -jmp +117 -acc +35 -acc -11 -nop +44 -acc +18 -jmp +1 -jmp +88 -acc +29 -nop +34 -jmp +1 -nop -118 -jmp -404 -jmp -144 -acc -12 -nop -372 -acc -14 -jmp -209 -acc +12 -jmp +1 -acc -1 -jmp +132 -nop -93 -jmp -130 -acc +23 -acc +30 -acc +3 -jmp -209 -nop -381 -acc -19 -jmp +23 -nop +87 -jmp -277 -acc +39 -jmp -391 -acc +14 -acc +18 -acc +24 -nop -459 -jmp -267 -acc +35 -nop +84 -jmp -231 -acc +5 -acc +0 -acc +45 -jmp -210 -jmp -211 -acc +7 -acc +8 -nop -249 -jmp -8 -jmp -105 -nop -455 -acc -19 -acc +36 -jmp -368 -acc +33 -acc +10 -acc +9 -jmp -259 -nop +41 -acc -14 -acc +2 -jmp -336 -acc +46 -jmp -261 -nop -284 -acc +21 -nop -154 -jmp -485 -jmp -505 -acc +32 -nop -327 -acc +1 -nop +43 -jmp -23 -acc -7 -jmp -88 -acc +10 -jmp -440 -acc +12 -jmp -430 -jmp +1 -acc +46 -nop -105 -jmp -87 -acc +49 -acc -10 -acc -6 -jmp -411 -jmp -268 -acc +35 -acc +15 -jmp +45 -acc -14 -acc +0 -jmp -234 -nop -67 -acc +32 -acc +1 -jmp -476 -jmp -297 -nop -274 -jmp -435 -acc +36 -acc -2 -acc +33 -acc +9 -jmp -26 -jmp +50 -acc +23 -jmp -172 -jmp +1 -acc +34 -acc +32 -acc -4 -jmp -312 -acc -11 -acc +26 -jmp -150 -acc +41 -nop -79 -acc +25 -jmp -76 -acc -2 -acc +29 -acc +12 -jmp -549 -nop -357 -nop -438 -jmp -320 -acc +7 -acc -6 -jmp -149 -nop -74 -acc +7 -acc +45 -jmp -383 -acc -8 -acc +5 -acc +12 -jmp -463 -acc -17 -acc +5 -jmp -34 -jmp +1 -acc +18 -jmp -523 -acc +38 -acc +35 -nop -222 -jmp -424 -nop -365 -jmp -188 -acc +0 -acc +7 -nop -167 -acc +27 -jmp -351 -acc +26 -jmp -201 -nop -208 -nop -466 -acc +50 -nop -531 -jmp -273 -acc +21 -acc +25 -nop -397 -acc +29 -jmp +1 diff --git a/2020/inputs/day_9.txt b/2020/inputs/day_9.txt deleted file mode 100644 index 31690cc..0000000 --- a/2020/inputs/day_9.txt +++ /dev/null @@ -1,1000 +0,0 @@ -37 -7 -16 -34 -48 -24 -5 -40 -30 -35 -2 -45 -19 -33 -36 -49 -32 -1 -44 -21 -25 -3 -11 -38 -15 -4 -6 -7 -8 -16 -9 -10 -5 -12 -13 -17 -14 -35 -18 -19 -20 -23 -36 -53 -22 -21 -41 -28 -11 -24 -15 -25 -26 -27 -29 -64 -50 -31 -30 -34 -32 -44 -33 -47 -74 -35 -66 -37 -36 -38 -45 -39 -40 -41 -42 -57 -51 -55 -68 -70 -71 -72 -61 -88 -65 -75 -140 -77 -73 -82 -110 -81 -74 -116 -86 -80 -112 -83 -92 -128 -141 -106 -120 -146 -126 -147 -133 -134 -138 -139 -156 -209 -162 -160 -154 -155 -233 -216 -163 -313 -298 -273 -189 -198 -226 -253 -232 -265 -259 -260 -316 -267 -272 -277 -449 -428 -314 -309 -471 -318 -379 -430 -458 -387 -683 -475 -415 -421 -486 -525 -544 -575 -532 -519 -632 -539 -590 -739 -586 -623 -627 -688 -696 -697 -804 -1072 -1119 -940 -808 -896 -836 -990 -907 -1107 -1436 -1114 -1129 -1051 -1058 -1754 -1385 -1644 -1459 -1250 -2686 -1324 -2442 -1504 -1501 -1612 -1704 -1915 -1715 -1732 -1826 -1897 -2048 -2431 -2109 -3004 -2165 -2825 -2301 -3039 -2862 -3145 -2574 -2709 -2751 -3447 -4043 -3005 -4198 -3113 -3612 -4910 -3629 -3541 -4306 -4157 -4466 -4349 -4274 -5113 -5027 -5446 -6186 -7889 -8522 -5436 -5854 -5283 -5864 -6292 -6118 -6546 -6617 -6742 -6654 -7241 -7170 -7698 -8431 -11231 -8506 -8623 -9301 -9387 -10140 -10310 -12518 -11137 -10719 -11147 -11290 -11401 -11575 -12156 -12410 -12664 -16757 -13271 -13396 -19611 -14411 -14868 -17129 -16937 -29793 -17807 -17924 -18688 -27532 -23665 -21029 -21866 -23954 -22009 -22976 -30217 -34022 -25986 -27807 -29601 -30400 -26667 -27682 -28264 -40602 -29279 -31805 -34066 -41472 -45606 -41589 -47696 -48711 -55214 -43038 -57543 -69154 -45963 -77223 -66588 -68866 -55265 -115299 -58207 -54349 -95816 -68284 -62330 -115750 -61084 -100312 -90012 -116995 -100820 -84627 -139841 -94674 -89001 -97387 -98303 -190490 -178080 -109614 -112556 -113472 -115433 -116349 -225364 -116679 -122633 -194241 -123414 -145711 -158471 -150085 -173628 -268085 -179301 -198099 -182014 -183675 -186388 -391499 -207001 -207917 -222170 -223086 -229235 -323350 -228905 -530351 -233028 -239312 -262390 -304647 -308556 -389397 -295796 -344859 -415293 -352929 -380113 -430087 -405100 -365689 -370063 -393389 -545520 -431003 -530726 -445256 -456114 -462263 -533552 -524701 -472340 -846296 -535108 -674245 -763452 -604352 -640655 -758059 -697788 -718618 -733042 -1129053 -759078 -838645 -876259 -824392 -918090 -887117 -893266 -907519 -901370 -1591316 -934603 -1469711 -1359500 -1742482 -1139460 -1175763 -1245007 -1302140 -1362411 -1338443 -1571687 -1416406 -1963852 -1557434 -1583470 -1597723 -1663037 -1769525 -2032726 -1780383 -1827869 -3212193 -1808889 -2351009 -2908044 -2538174 -2384467 -3385303 -3352070 -2315223 -2420770 -2547147 -2640583 -2778817 -3886910 -2973840 -2999876 -4336251 -3140904 -3181193 -5009062 -4606686 -4229659 -5601963 -3589272 -3636758 -4124112 -4159898 -4666232 -4699690 -4735993 -4805237 -6183905 -4862370 -4955806 -4967917 -5187730 -5419400 -7370563 -5973716 -6589148 -7226030 -6322097 -10580402 -6817951 -7713384 -11509827 -7749170 -7760870 -7796656 -8824488 -8860105 -8895891 -10281770 -12554407 -15536208 -9667607 -16645061 -13548127 -9923723 -13692660 -10607130 -22222014 -12295813 -14531335 -12911245 -20092469 -19476293 -14567121 -15678056 -15462554 -15510040 -18356300 -30972594 -19141875 -34623804 -17755996 -18563498 -19591330 -25386277 -20274737 -20530853 -27240787 -22902943 -22219536 -30198460 -30667241 -25207058 -26827148 -27442580 -43742577 -32323117 -30029675 -34158451 -33218550 -33266036 -33866340 -36112296 -37347326 -36319494 -52721949 -44977607 -38154828 -39866067 -40805590 -42494273 -43433796 -68014567 -45122479 -55485572 -58425608 -52034206 -52649638 -76652724 -57472255 -128686930 -95216222 -73666820 -66484586 -67084890 -69378332 -91338595 -72431790 -137710495 -74474322 -78020895 -127917362 -84988546 -84239386 -83299863 -85928069 -111607065 -132899930 -135078332 -186342970 -104683844 -109506461 -110121893 -123956841 -124557145 -161700808 -256917030 -186081387 -146906112 -136463222 -141810122 -150452685 -158713708 -207374252 -157774185 -167539249 -168288409 -193421756 -169227932 -269381250 -197535134 -229240989 -214190305 -244584793 -214805737 -219628354 -177777905 -246585115 -286915907 -261020367 -278273344 -311038054 -335827658 -283369334 -292262807 -360961005 -396780238 -437669659 -325313434 -365074383 -448869343 -361710165 -347005837 -608295280 -392583642 -422362698 -391968210 -397406259 -424363020 -456051249 -503091339 -461147239 -893720908 -561642678 -589311398 -570536151 -675337544 -619196992 -575632141 -639268644 -707966842 -708716002 -672319271 -687023599 -821769279 -754293807 -738974047 -739589479 -1483032306 -1031683390 -789374469 -1036779380 -1233961949 -880414269 -1133466510 -964238578 -1022789917 -1809594090 -2272406775 -1164943539 -1209804795 -1214900785 -1194829133 -1247951412 -1461693740 -1359342870 -1791073187 -1411908750 -1651262177 -1478563526 -1493883286 -1821057859 -1776368859 -1753613047 -1954318008 -2156256427 -1844652847 -1903204186 -3010605047 -1987028495 -2129182117 -2187733456 -3196833290 -3284956473 -2359772672 -2404633928 -2409729918 -2442780545 -2607294282 -2771251620 -2837906396 -3920255304 -2905792036 -3747857033 -3323216373 -3247496333 -4630514001 -4802553217 -3598265894 -4510498468 -4307838114 -3831681342 -4174761951 -4116210612 -7346122927 -4316915573 -4597463374 -5652130261 -4847414473 -4764406600 -6236315270 -5050074827 -5214032165 -7618666093 -6369517514 -8918763829 -6153288369 -6229008409 -6570712706 -6921482267 -7422258284 -7714476506 -7906104008 -7915181467 -8148596915 -11663038500 -8679095815 -8290972563 -8433126185 -8914378947 -9081322173 -11168176080 -9611821073 -13362629080 -9814481427 -10264106992 -11203363196 -12382296778 -14284698981 -12522805883 -12724001075 -16834819698 -23726169079 -13492194973 -17995701120 -15136734790 -15620580514 -15821285475 -22196778205 -16439569478 -16724098748 -23306676400 -17514448358 -17347505132 -18728860374 -18693143246 -19426302500 -19875928065 -21467470188 -21017844623 -32651183148 -24905102661 -28002877292 -31949108383 -31860833538 -40450267827 -29313480448 -28628929763 -38018063680 -33616281634 -34238547106 -31441865989 -59143411073 -33163668226 -36040648378 -34071603880 -48956314347 -36243308732 -60070795752 -49020721915 -55083751822 -39302230565 -40893772688 -70744096554 -45922947284 -52907979953 -54218583109 -59951985675 -63385084328 -57942410211 -62477148674 -93101815502 -61792597989 -65680413095 -64605534215 -93919014663 -67235272106 -69204316604 -69406976958 -70112252258 -70314912612 -75545539297 -110813319904 -88322952480 -80196003253 -150800101154 -118824117324 -110098089292 -98830927237 -100141530393 -112160993320 -114170568784 -129027870095 -157729929438 -199136272384 -124269746663 -186062344652 -127473011084 -130285947310 -133809850819 -136439588710 -183374885388 -138611293562 -139519229216 -250332549120 -194366572037 -204465749916 -316348291962 -168518955733 -210481950563 -314563839208 -232640778056 -238752823955 -198972457630 -212302523713 -250610157494 -438833585871 -251742757747 -266992240300 -266084304646 -705825826171 -257758958394 -270249439529 -264095798129 -272421144381 -404848522600 -441133843782 -278130522778 -308038184949 -362885527770 -367491413363 -379000906296 -380821479446 -502352915241 -409454408193 -411274981343 -431613235686 -437725281585 -478386828359 -484723668094 -633575718009 -509501716141 -703809586231 -523843263040 -852408825125 -521854756523 -528008397923 -534345237658 -766448713370 -653242623827 -778766394706 -586168707727 -641016050548 -688859664395 -730376941133 -869844328604 -889661809702 -790275887639 -820729389536 -841067643879 -842888217029 -955456498726 -1110011970767 -1070892375821 -1573265158162 -1227184758275 -1031356472664 -1056199994181 -1045698019563 -1252231697656 -1162870807071 -1169024448471 -1264722178791 -1479135552034 -1239411331554 -1275028372122 -1427236351606 -1510860379152 -2589147522801 -2054998066430 -2180904346588 -1611005277175 -1631343531518 -1776185888262 -1683955860908 -1798344715755 -2077054492227 -2087556466845 -2116590395384 -3761010353135 -2101898013744 -2194227279735 -2208568826634 -2402282138625 -3878083902006 -2331895255542 -4408949747769 -3458949458526 -2514439703676 -2666647683160 -2702264723728 -2938096730758 -3121865656327 -3460141749170 -3242348808693 -4325159222018 -5090292990044 -3315299392426 -3482300576663 -5330434482961 -3992571995490 -4631030099060 -6603177027504 -4218488409128 -4296125293479 -6148948259823 -4402796106369 -6364214465020 -5884582715288 -4846334959218 -4998542938702 -5181087386836 -6017564116154 -5216704427404 -9033826205429 -5640361454486 -8698921399848 -6582007405497 -6557648201119 -9936627949262 -7718095498795 -9199882107714 -7307871387916 -9961464582021 -8838906954708 -10215247366106 -9477365058278 -8514613702607 -20151875315368 -9142460252697 -9401339045071 -9583883493205 -15142551968857 -19249073571535 -11234268543558 -10179630325538 -10397791814240 -15983346450568 -26198593816674 -12198009655605 -12948232842402 -15781889513211 -15724467658194 -13865519589035 -15025966886711 -17679560080816 -15822485090523 -16146778342624 -25939715024300 -30924441482068 -24924349765908 -17657073955304 -18098497195812 -18543799297768 -28913828624374 -18985222538276 -19763513818743 -20577422139778 -31707814108762 -21413898869096 -34325688810979 -27922477313799 -25146242498007 -38256982220594 -32409318886803 -31545079669851 -28891486475746 -53838178390282 -29688004679558 -30848451977234 -39957698166864 -50472467153603 -33803852297928 -68570964349415 -57805315100120 -37083719734088 -35755571151116 -36642296493580 -63239517435353 -38748736357019 -66735007697782 -44909756316750 -79219213969216 -46560141367103 -49336376182895 -57555561384810 -64647057626862 -78706434523883 -115861510462796 -62097323566361 -114974785120332 -78227862658641 -60536456656792 -66771724413646 diff --git a/2021/inputs/.gitkeep b/2021/inputs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/2021/inputs/.gitkeep diff --git a/2021/inputs/day_1.txt b/2021/inputs/day_1.txt deleted file mode 100644 index 42f77f8..0000000 --- a/2021/inputs/day_1.txt +++ /dev/null @@ -1,2000 +0,0 @@ -196 -197 -176 -182 -179 -177 -171 -172 -170 -147 -143 -153 -158 -157 -147 -151 -153 -159 -150 -167 -162 -160 -159 -161 -165 -150 -158 -157 -146 -141 -137 -127 -140 -127 -115 -114 -116 -118 -127 -133 -141 -151 -150 -148 -146 -170 -171 -168 -189 -194 -191 -205 -210 -194 -195 -191 -231 -241 -239 -241 -245 -255 -239 -244 -245 -246 -260 -262 -253 -262 -268 -289 -278 -279 -293 -312 -307 -308 -333 -336 -325 -329 -338 -334 -337 -330 -340 -341 -338 -344 -359 -361 -359 -377 -411 -450 -459 -458 -455 -450 -444 -460 -457 -458 -454 -456 -460 -465 -470 -469 -468 -462 -454 -446 -448 -449 -451 -448 -463 -470 -492 -504 -506 -508 -501 -535 -539 -547 -549 -548 -563 -565 -564 -571 -586 -599 -593 -588 -591 -597 -611 -610 -617 -619 -617 -618 -614 -604 -603 -604 -590 -593 -592 -581 -577 -604 -611 -612 -610 -634 -651 -638 -636 -633 -634 -629 -624 -611 -623 -626 -631 -632 -631 -659 -672 -686 -681 -682 -680 -666 -668 -682 -680 -681 -700 -701 -690 -685 -693 -692 -691 -693 -692 -700 -704 -713 -716 -715 -727 -726 -725 -713 -718 -714 -715 -710 -709 -718 -717 -719 -720 -716 -705 -716 -719 -735 -746 -729 -735 -726 -743 -744 -740 -739 -730 -735 -738 -736 -743 -752 -754 -758 -767 -753 -754 -756 -754 -758 -755 -750 -754 -750 -749 -745 -743 -740 -739 -740 -738 -740 -746 -747 -772 -775 -768 -769 -781 -782 -788 -799 -813 -792 -782 -783 -785 -770 -761 -771 -798 -808 -810 -811 -829 -840 -826 -833 -829 -833 -815 -816 -818 -809 -810 -813 -819 -809 -787 -770 -765 -786 -793 -792 -787 -790 -791 -794 -790 -801 -804 -803 -781 -794 -778 -779 -777 -778 -786 -773 -775 -783 -781 -790 -781 -782 -791 -792 -815 -816 -808 -803 -786 -785 -781 -780 -781 -785 -754 -741 -725 -724 -725 -724 -726 -725 -727 -721 -718 -706 -721 -731 -739 -759 -752 -749 -767 -766 -787 -788 -812 -826 -828 -829 -835 -834 -831 -818 -808 -813 -827 -847 -848 -853 -857 -859 -860 -864 -867 -871 -870 -877 -874 -858 -857 -840 -844 -848 -846 -853 -860 -866 -862 -867 -885 -898 -929 -935 -944 -946 -952 -961 -975 -974 -970 -966 -983 -981 -986 -1001 -996 -995 -982 -984 -991 -982 -990 -984 -991 -992 -997 -995 -994 -998 -1004 -1010 -1011 -1010 -1013 -1016 -1025 -1027 -1029 -1040 -1038 -1041 -1045 -1047 -1048 -1050 -1023 -1024 -1019 -1025 -1035 -1036 -1045 -1052 -1053 -1050 -1049 -1050 -1048 -1049 -1059 -1061 -1059 -1031 -1032 -1042 -1051 -1055 -1064 -1058 -1032 -1037 -1039 -1061 -1087 -1088 -1080 -1085 -1069 -1052 -1054 -1060 -1062 -1063 -1062 -1063 -1062 -1048 -1054 -1050 -1031 -1028 -1022 -1034 -1038 -1039 -1036 -1045 -1055 -1054 -1053 -1058 -1088 -1089 -1086 -1095 -1096 -1090 -1087 -1095 -1099 -1097 -1091 -1093 -1068 -1061 -1078 -1073 -1079 -1082 -1068 -1079 -1078 -1067 -1068 -1084 -1091 -1096 -1070 -1061 -1052 -1047 -1065 -1056 -1069 -1070 -1072 -1081 -1083 -1084 -1078 -1079 -1080 -1082 -1085 -1081 -1085 -1086 -1094 -1096 -1097 -1079 -1081 -1082 -1080 -1077 -1084 -1085 -1084 -1088 -1091 -1092 -1101 -1102 -1101 -1116 -1115 -1114 -1117 -1123 -1120 -1113 -1111 -1116 -1119 -1118 -1130 -1116 -1119 -1122 -1120 -1121 -1150 -1153 -1156 -1162 -1163 -1189 -1191 -1192 -1189 -1187 -1186 -1177 -1167 -1140 -1149 -1160 -1142 -1147 -1148 -1170 -1169 -1188 -1190 -1189 -1193 -1187 -1181 -1188 -1193 -1192 -1194 -1216 -1223 -1209 -1199 -1214 -1218 -1211 -1212 -1222 -1227 -1234 -1244 -1235 -1238 -1232 -1238 -1236 -1231 -1223 -1217 -1218 -1229 -1212 -1236 -1237 -1240 -1255 -1257 -1258 -1261 -1258 -1255 -1258 -1256 -1258 -1279 -1275 -1274 -1282 -1292 -1293 -1296 -1287 -1323 -1322 -1332 -1333 -1316 -1327 -1332 -1334 -1314 -1311 -1315 -1317 -1320 -1359 -1362 -1360 -1362 -1372 -1377 -1389 -1382 -1373 -1380 -1388 -1395 -1384 -1375 -1382 -1383 -1368 -1363 -1356 -1352 -1356 -1360 -1355 -1367 -1371 -1382 -1409 -1379 -1421 -1429 -1430 -1448 -1451 -1452 -1449 -1439 -1460 -1431 -1429 -1430 -1427 -1416 -1417 -1454 -1472 -1473 -1476 -1475 -1477 -1476 -1482 -1481 -1489 -1488 -1490 -1495 -1493 -1500 -1517 -1500 -1498 -1494 -1502 -1505 -1536 -1537 -1538 -1543 -1542 -1541 -1554 -1553 -1555 -1558 -1549 -1550 -1557 -1558 -1560 -1561 -1565 -1560 -1565 -1572 -1573 -1575 -1571 -1581 -1605 -1614 -1611 -1619 -1618 -1614 -1612 -1616 -1629 -1628 -1632 -1635 -1644 -1637 -1638 -1632 -1613 -1614 -1615 -1614 -1609 -1611 -1620 -1615 -1608 -1612 -1646 -1647 -1665 -1668 -1665 -1668 -1676 -1677 -1682 -1695 -1696 -1708 -1709 -1686 -1681 -1668 -1669 -1655 -1667 -1681 -1689 -1710 -1718 -1749 -1748 -1746 -1749 -1752 -1748 -1745 -1744 -1743 -1745 -1743 -1744 -1726 -1725 -1724 -1728 -1727 -1739 -1740 -1733 -1739 -1740 -1757 -1759 -1758 -1759 -1762 -1802 -1799 -1792 -1786 -1787 -1793 -1794 -1797 -1798 -1800 -1803 -1802 -1792 -1793 -1795 -1783 -1782 -1772 -1771 -1772 -1774 -1778 -1765 -1766 -1767 -1769 -1771 -1772 -1788 -1781 -1790 -1789 -1791 -1813 -1809 -1810 -1813 -1814 -1819 -1823 -1815 -1814 -1822 -1826 -1812 -1817 -1814 -1818 -1800 -1801 -1804 -1800 -1802 -1813 -1825 -1822 -1832 -1840 -1841 -1830 -1834 -1835 -1841 -1840 -1845 -1881 -1883 -1887 -1886 -1890 -1889 -1896 -1897 -1917 -1923 -1925 -1923 -1924 -1909 -1899 -1904 -1905 -1907 -1905 -1908 -1922 -1912 -1920 -1924 -1920 -1921 -1920 -1919 -1935 -1937 -1955 -1956 -1967 -1972 -1977 -1984 -1982 -1986 -1980 -1975 -2005 -2007 -2018 -2027 -2040 -2039 -2040 -2042 -2040 -2041 -2040 -2034 -2060 -2066 -2074 -2076 -2080 -2081 -2082 -2066 -2071 -2074 -2069 -2070 -2076 -2075 -2079 -2082 -2081 -2080 -2085 -2093 -2097 -2091 -2096 -2097 -2106 -2103 -2110 -2107 -2098 -2097 -2110 -2113 -2097 -2102 -2103 -2107 -2103 -2117 -2097 -2105 -2103 -2099 -2101 -2094 -2102 -2099 -2069 -2067 -2057 -2071 -2073 -2075 -2073 -2060 -2064 -2081 -2057 -2055 -2056 -2064 -2066 -2067 -2069 -2070 -2076 -2075 -2074 -2101 -2099 -2116 -2115 -2119 -2129 -2126 -2124 -2122 -2126 -2143 -2140 -2141 -2146 -2145 -2148 -2164 -2154 -2151 -2148 -2152 -2130 -2129 -2131 -2118 -2123 -2129 -2130 -2127 -2133 -2132 -2142 -2143 -2157 -2156 -2140 -2139 -2141 -2139 -2140 -2142 -2134 -2126 -2128 -2129 -2131 -2126 -2146 -2145 -2134 -2153 -2151 -2140 -2139 -2161 -2165 -2169 -2150 -2151 -2153 -2176 -2183 -2182 -2188 -2165 -2160 -2161 -2165 -2173 -2155 -2154 -2141 -2140 -2161 -2158 -2148 -2164 -2165 -2176 -2163 -2168 -2158 -2159 -2194 -2201 -2203 -2202 -2211 -2213 -2210 -2193 -2199 -2201 -2199 -2206 -2231 -2239 -2246 -2249 -2265 -2266 -2267 -2281 -2291 -2292 -2293 -2296 -2295 -2275 -2273 -2275 -2274 -2286 -2291 -2301 -2300 -2302 -2298 -2300 -2288 -2298 -2300 -2291 -2309 -2303 -2304 -2309 -2318 -2308 -2315 -2314 -2313 -2315 -2314 -2315 -2325 -2326 -2310 -2308 -2314 -2313 -2312 -2311 -2312 -2311 -2310 -2304 -2310 -2308 -2311 -2296 -2295 -2289 -2290 -2292 -2291 -2289 -2290 -2288 -2300 -2302 -2307 -2313 -2312 -2309 -2310 -2312 -2313 -2314 -2315 -2314 -2308 -2309 -2313 -2325 -2324 -2322 -2300 -2298 -2291 -2301 -2298 -2307 -2309 -2308 -2345 -2341 -2342 -2345 -2360 -2367 -2371 -2374 -2368 -2369 -2375 -2406 -2405 -2422 -2423 -2422 -2419 -2417 -2416 -2417 -2421 -2427 -2445 -2449 -2432 -2448 -2454 -2437 -2429 -2430 -2439 -2415 -2418 -2425 -2421 -2401 -2414 -2412 -2416 -2432 -2450 -2443 -2426 -2427 -2428 -2427 -2429 -2430 -2434 -2438 -2431 -2433 -2431 -2427 -2433 -2455 -2462 -2463 -2465 -2461 -2462 -2463 -2496 -2497 -2493 -2486 -2472 -2470 -2475 -2483 -2491 -2492 -2505 -2510 -2511 -2507 -2508 -2506 -2507 -2505 -2506 -2504 -2524 -2528 -2519 -2527 -2543 -2549 -2555 -2567 -2555 -2561 -2560 -2561 -2560 -2541 -2540 -2537 -2530 -2532 -2528 -2529 -2528 -2522 -2516 -2506 -2520 -2526 -2527 -2531 -2534 -2544 -2545 -2542 -2541 -2543 -2544 -2543 -2542 -2558 -2560 -2558 -2559 -2552 -2551 -2558 -2573 -2590 -2589 -2583 -2574 -2565 -2569 -2580 -2596 -2597 -2596 -2585 -2586 -2587 -2598 -2587 -2588 -2571 -2570 -2567 -2579 -2581 -2579 -2572 -2577 -2575 -2574 -2582 -2585 -2592 -2600 -2601 -2608 -2606 -2609 -2612 -2619 -2631 -2636 -2633 -2640 -2654 -2649 -2611 -2598 -2600 -2604 -2608 -2600 -2607 -2623 -2624 -2633 -2632 -2637 -2655 -2658 -2662 -2675 -2676 -2699 -2711 -2714 -2710 -2718 -2750 -2719 -2713 -2714 -2737 -2739 -2733 -2736 -2754 -2773 -2776 -2794 -2795 -2823 -2825 -2826 -2828 -2830 -2815 -2823 -2821 -2825 -2829 -2833 -2834 -2833 -2832 -2844 -2838 -2840 -2845 -2837 -2849 -2878 -2859 -2858 -2859 -2864 -2868 -2870 -2863 -2859 -2860 -2858 -2860 -2857 -2851 -2852 -2856 -2818 -2820 -2822 -2819 -2818 -2819 -2823 -2827 -2836 -2834 -2835 -2842 -2856 -2854 -2853 -2854 -2855 -2854 -2858 -2859 -2866 -2872 -2871 -2869 -2875 -2874 -2888 -2881 -2883 -2900 -2897 -2885 -2880 -2882 -2883 -2886 -2887 -2903 -2894 -2884 -2876 -2877 -2876 -2875 -2887 -2863 -2865 -2880 -2885 -2866 -2882 -2883 -2875 -2873 -2876 -2875 -2912 -2916 -2932 -2927 -2914 -2906 -2911 -2912 -2910 -2908 -2903 -2929 -2925 -2907 -2905 -2906 -2909 -2897 -2895 -2903 -2918 -2945 -2946 -2937 -2919 -2923 -2943 -2947 -2950 -2951 -2963 -2978 -2972 -2954 -2955 -2957 -2969 -2972 -2984 -2987 -2969 -2970 -2974 -2981 -2949 -2946 -2952 -2966 -2968 -2969 -2970 -2956 -2947 -2941 -2949 -2939 -2940 -2953 -2959 -2947 -2957 -2963 -2968 -2964 -2939 -2912 -2904 -2907 -2928 -2948 -2961 -2969 -2963 -2980 -2985 -2986 -2987 -3015 -3017 -3027 -3028 -3031 -3040 -3043 -3044 -3043 -3054 -3053 -3055 -3053 -3047 -3051 -3025 -3030 -3040 -3044 -3046 -3049 -3054 -3057 -3059 -3056 -3060 -3068 -3085 -3104 -3108 -3114 -3115 -3118 -3121 -3118 -3132 -3134 -3129 -3126 -3123 -3111 -3112 -3080 -3097 -3086 -3088 -3089 -3093 -3092 -3096 -3126 -3127 -3128 -3133 -3134 -3137 -3138 -3135 -3141 -3142 -3143 -3162 -3152 -3149 -3166 -3172 -3170 -3171 -3185 -3187 -3193 -3192 -3196 -3186 -3203 -3213 -3216 -3238 -3237 -3246 -3247 -3252 -3250 -3249 -3241 -3246 -3253 -3251 -3258 -3271 -3274 -3268 -3274 -3273 -3269 -3272 -3271 -3266 -3277 -3270 -3274 -3285 -3270 -3263 -3255 -3256 -3247 -3248 -3252 -3259 -3252 -3253 -3259 -3263 -3259 -3240 -3254 -3257 -3241 -3250 -3251 -3254 -3271 -3273 -3281 -3295 -3296 -3293 -3299 -3292 -3301 -3304 -3306 -3303 -3301 -3303 -3304 -3303 -3275 -3273 -3276 -3302 -3307 -3316 -3317 -3288 -3296 -3298 -3313 -3312 -3313 -3306 -3292 -3295 -3315 -3316 -3308 -3311 -3310 -3294 -3327 -3331 -3330 -3333 -3352 -3360 -3362 -3366 -3357 -3361 -3360 -3351 -3345 -3342 -3339 -3338 -3364 -3365 -3368 -3375 -3385 -3389 -3390 -3389 -3407 -3408 -3402 -3433 -3437 -3436 -3435 -3439 -3454 -3425 -3426 -3422 -3426 -3423 -3419 -3420 -3416 -3417 -3426 -3427 -3403 -3406 -3395 -3396 -3397 -3398 -3399 -3407 -3409 -3410 -3397 -3391 -3408 -3419 -3425 -3428 -3420 -3423 -3424 -3426 -3437 -3440 -3434 -3436 -3440 -3443 -3444 -3450 -3454 -3455 -3460 -3484 -3482 -3487 -3489 -3492 -3493 -3498 -3493 -3478 -3479 -3478 -3505 -3506 -3508 -3505 -3500 -3499 -3498 -3499 -3495 -3494 -3492 -3489 -3490 -3492 -3490 -3492 -3487 -3488 -3491 -3484 -3486 -3487 -3483 -3461 -3459 -3463 -3476 -3466 -3464 -3465 -3474 -3487 -3485 -3477 -3464 -3463 -3469 -3465 -3462 -3448 -3452 -3461 -3463 -3466 -3470 -3475 -3488 -3477 -3473 -3472 -3475 -3469 -3458 -3455 -3440 -3430 -3439 -3440 -3437 -3442 -3443 -3446 -3447 -3442 -3453 -3462 -3463 -3462 -3463 -3461 -3455 -3454 -3450 -3449 -3450 -3447 -3451 -3454 -3459 -3460 -3461 -3463 -3466 -3467 -3468 -3469 -3474 -3481 -3480 -3481 -3482 -3474 -3472 -3484 -3502 -3522 -3507 -3509 -3504 -3497 -3487 -3476 -3473 -3495 -3494 -3495 -3493 -3500 -3503 -3516 -3518 -3517 -3524 -3528 -3531 -3530 -3526 -3525 -3527 -3521 -3520 -3526 -3527 -3521 -3527 -3521 -3524 -3525 -3519 -3520 -3540 -3566 -3577 -3575 -3576 -3561 -3562 -3563 -3571 -3572 -3577 -3575 -3607 -3606 -3611 -3612 -3613 -3614 -3615 -3614 -3605 -3619 -3618 -3624 -3634 -3639 -3638 -3660 -3661 -3653 -3650 -3651 -3652 -3650 -3648 -3649 -3653 -3655 -3650 -3651 -3650 -3685 -3656 -3670 -3687 -3696 -3695 -3682 -3685 -3688 -3686 -3672 -3664 -3663 -3659 -3664 -3676 -3689 -3694 -3697 -3713 -3705 -3706 -3725 -3724 -3723 -3728 diff --git a/2021/inputs/day_10.txt b/2021/inputs/day_10.txt deleted file mode 100644 index 661c46a..0000000 --- a/2021/inputs/day_10.txt +++ /dev/null @@ -1,94 +0,0 @@ -{[<([<[[(<[({<<><>><()[]>}<(()())(())>)<(([]())){<()()><{}<>)}>][(((()<>)[{}{}]){<[]<>>({}{})})]>)[(({([{}[]] -{{[[(<[[[<[<<{()()}(<>{})>[<<><>>[[]]]>[{{[]<>}[[]]}<<[]{}>[<>[]]>]]([[[{}<>]]<<()[]>{()<>}>]([<< -([<{[[{{((([(<[]<>>{[]<>})<([]){<>{}}>][([<>[]][[]{}])])[[{{()[]}<()[]>}<{(){}}>]]]<{(<[{}< -(({(<{(([<[({([]())(<>())}{([]{})[{}{}]})]{(({{}()}{<>()}](<[]<>>(()[])))({[[]{}]<[]<>>})}>[[[{<<>[]>(() -[([<([{({{[{[([]{})[{}[]]][[{}{})]}<([<>{}]<<>()>)>]}([<{[()<>]{()<>}}[[{}{}]<(){}>]><{{{}[]}[()<>]}[{{ -<(([<{{<(<[(<{()()}>(({}()){()[]}))<[<[]()>[[]()]]<{[]()}<<>{}>>>](<[([]())]>(([()()][()<>])({()<>}<[]<>>)) -[{({<(<[{({{{[()[]](<>[])}{([]{})<<>{}>}}}{{<<{}[]>(<>)><(<><>)([]())>}<{({}<>)(<><>)}{[{}{} -([(<{<[<{[({[<[]{}><<><>>]<({}[])({}<>)>}([{{}<>}<[]()>]<<<><>>>)){({<<><>>[[]{}]}(<()<>>{()}))<{<[ -({{([(<{{{{{{([]{}){<>{}}}}{<<()>{{}{}}>[({}())(()<>)]}}[[[[{}{}](<><>)]{<()[]><[][]>}](([[]](()()))<[[] -(<<[<{{{({{<{{(){}}{<>()}}<({}{}){[][]}>>[{<[]{}>{<>()}}<{[]<>}[()<>]>]}}({([({}[])(<>{})][{<>}])[{[()<>]<{} -{[(<<((<[[<{<{<>()}[{}[]]>}{{((){})[()<>]}<{(){})[{}{}]>}>]({((<<>()>){[<>()]{{}()}}){{[()()][<><>]} -{(((([[(<[({({{}()}[<>[]])<(<><>)([]())>}{<[[]<>]><<()<>><()<>>>})<[[<[]{}><<>{}>]]>]<<{{[ -[{(<[[(<(<[{<({}[])<{}{}>>(<[]<>>)}]<{(<[]()>[()()])}>>{({<{{}()}[<>()]>})<[[(<>())(<>{})]{{{}[]}}][({{}[]} -{[[<([{[(<<[<<()()>[[]]>[{()()}]](<[()]<()[]>><<{}()>{()()}>)>><[[([{}<>]{{}()})<{{}[]}<()[]>>]]})[([{{{<>()} -((({[(<<{(((<<{}()>><{<><>}>)))[[{<({}[])[{}[]]>}(<[<><>][()()]><[[][]]<{}[]>>)]]}((({<(<>())>[({}{ -{<{{[(<<{(<{[({}<>)<{}[]>]([(){}](<>[]))}<(({}()){[][]}}[<()[]><{}()>]>>)}<<{(<[{}()]{<>{}}>[[[]()](() -{(<<({{([<[<[<{}<>>{[][]}]<[<><>][()[]]>>{(({}{})){<()><()()>}}]>(<({{()()}({}<>)}<([]<>){[]{}}>){([[]<> -<(<({{{([({{<<{}<>><()[]>>[{()<>}[<>{}]]}})({([{()[]}{(){}}]<(()<>)<{}<>>>)}<{{<{}<>>[[][]]}}<[{<>}[<> -{({{(<<([({{[(()<>)[[]<>]][(<>{})({}())]}})]{(<[<(<>()){<><>}><<{}()>[[]]>][{{<>()}{[]()}}{[()<>]{<>()}}]>) -([<({{{([[<<[[()[]][<><>]]<<<>[]><()()>>>(<{()<>}<()[]>><{<>()}<[]{}>>)>({(<()[]]<()()>)<[<>()][{}]> -{[{<((<[<<({<{[]{}}[()()>>({[][]}[[]()])})(([{()}{{}()}]<<{}()>{{}{}}>)<([<>()])(<{}<>><{}[]>)>)>{[{ -{{([([{(<[[{[{()<>}({}())][[[]<>]<{}{}>]}]<<[({}[])(()<>)]({(){}}[()()])>{{(())<(){}>}}>]{[<{[[]()]{<>[]}} -<(<({<{<<<([<([]<>)([]<>)>]<{{{}{}}<<>()>}>)<<{[[]()](<>{})}(([]())<[]()>)><[{<>{}}[(){}]]>>>>>(<{<[[[{ -(([({<{(<{[<({<><>}){{[][]}}>{<([]()){{}{}}>[([][])<{}{}>]}]}[((<{()<>}>)[{{()<>}{[][]}}])] -(<<<(({{{([[<{(){}}>{(()())(()[])}]{({{}[]}<[][]>]<{{}<>}{()}>}])<(({[[][]]{{}{}}}(([][])<(){}>) -{<{{[[({<<{{({{}()}({}{})><[()<>][<>{}]>}([<()[]>({}())][{()<>}[()]])}{<[{(){}}<[]{}>][[[]<>][[][]]]>([[<>] -{{{[(<([[[[{[[(){}}<{}>]<{<>[]}{{}{}}>}]<[[(<>())((){})]((<>()))]{(<[]{}>([][])){<[]<>>(()[])}}>] -(<{[([[<(<[<{[<>{}]}(<[]<>>{{}<>})>[{(())}]]>){<{(<(<>())<{}()>>]}({<<[]<>>[[]<>]>((()<>)[<><>])} -[<{[[(({([((({[]{}}[()()])))]>[((<<[<><>][[]()]>{[()<>][()()]}>({{<>[]}({}<>)})))]})){((<[<[<[<>()]> -<({[{{{<{[<[({[]{}}<[]>)(({}[])({}<>))]><{((()()))[[()<>]{<>[]}]}(<((){})<{}{}>><({}[])>)]][([<{ -<(<<<<<[(<<[{{[][]}{{}{}}}{{[][]}<()>}](<([]{})[()[]]>[[{}{}]{<>()}])>([{[[]()]<<>[]>}[<<>{}>{<> -<(<[[<[[[<<(<(()[])<{}()>><(<>{})>)[([{}{}]([]{}))]><<<[<>[]]{<>[]}>{(()<>)({}[])}>>><[[[{< -([[{[({<({(([<(){}><[]<>>]<{()<>}({})>))([([{}<>][{}[]]){[<>[]]({}<>)}][[({}[]){[]()}]])})>[({{(<(()[]){<> -<[<{<[{(<<[[{{(){}}({}<>)}<(()[])>]<<<()()>(()<>)>({{}})>]({[(<>{})<{}()>]{<{}<>><<><>>}}<<{()<>} -{[{({[[(({{{{<()()>{[]{}}}{[<>[]]<()<>>}}(<<<>()><{}<>>>({()<>}[()<>])}}{<{[()[]]{(){}}}>[<<[]{}>>[((){})<( -{{(<[<(<(<{{(<[]()><()<>>)}{((<><>))[<<>{}>{()[]}]}}>{{<({{}{}}[()<>])[<(){}>(<>[])]><<(<>{}}[{} -[{{{[[[[{(<{<[<>[]](()[])]{{<>{}}}}{[(()()){[][]}]{([][])}}><<{<<>()>([])}[[[]{}]<{}{}>]>(([{}<>]<[]()>) -{[[(<([[[[((({<>{}}(<>())){<{}[]>})[([<>[]](<>[])}[({}[])([]())]])([<{{}()}(<>())><[[][]][<>()]>][([()()]<<>[ -<[{[{({(<(((<<<>{}><[]()>][{{}()}{[][]}])[(((){})([][]))[[()<>][[]{}]]])[[(((){})[()])[[(){}]<{} -[{[[<[<{{(({([(){}]<()()>](([]<>)[()[]])}<<{[][]}([][])>>)<[[([]())<{}[]>]]>){[[[{{}()}[<>[]]]{<[]{}> -[[<([([[<<<{{[{}[]][<><>]}}{{{{}{}}}}>>>[([[(<<>[]>({}<>))<([]())<<><>>>]{{<<>[]>{<>()}}}][<{{[ -({[<<<((<<<<<<[]{}>[()()]>{[()[]]{()<>}}>[((<>()){()()}){<[][]]<{}{}>}]>{{[[{}{}]<{}[]>]([[]<>])}(( -({<<[[{{<{[[{<()><<>>}<<()[]>([][])>]]([[({}<>)[()[]]](([]{})<<>[]])]<[([]<>){[]}]>)}(((<<{}[ -<(<(<(([([[[{{[]()}{<>()}}{<{}[]>[{}()]}]{{[{}{}]<()[]>}({<>()}<(){}>)}][[{<{}()><[][]>}](<[ -[[<{<[<[<({<<{[]}<()<>>>({<><>}{[]<>})><([<>()]([][]))>}[({[{}{}]<{}[]>})({[<><>]})])>]([[{<({ -<([{[[<<[({<<[{}()]({}[])>{<[][]>{()()}}>{<(<>[])([]{})>([{}[]}[<>])}}{{[<<>[]>{[]<>}][([][]){{}{}}] -[([({((<[{{{[<{}><<>()>]<<()[]>>}<[{{}{}}([][])]{{()<>}<(){}>}>}<{<[[][]]>({{}<>}{()[]})}> -[[[{([({{{<{[[[][]]{()()}]}{{<<>[]>[{}[]]}[[[]()]<<>>]}>({{(<>[])[{}[]]}({<>()}[{}[]])}{{(()< -{<{{{<[{[<{(<{[]{}}{[][]}>{{[]<>}}}}[{((()[])<()()>)[<<>[]><{}()>]}<[{<>{}}[()<>]]<[<>[]][<>{}]>>]>[<[ -<[<{[[<{<[([{({}[])(()<>)}[[<>()]{()[]}]])][[<{[<>[]][<>[]]}<{<>{}}{<>{}}>>{<<()()><()<>>>{([]() -<[{{({<[<([[[([]{})({}())]]<[{{}}[()<>]]<{<>{}}{()}>>])<[<[<<>()>]{<{}{}>[[]<>]}><({[]()}<<><>>)[(()<>)(<>()) -{<[[[<(<[<{<({<>{}}[<><>])([{}<>]<[][]>)><<[(){}](<>[])>[({}[])<<>[]}]>}{{{(<>())(<>{})}}<((<>()) -<{(<<[{[{<{<<((){})[[]{}]><([]<>)<{}[]>>>{[[[][]]<()()>]}}{({{<>()}<<>()>}{<{}<>><()[]>})}>}<[<([<()()>{()() -{{([<{[[((<<{<<>()><<>[]>}<(()<>)>>><<[<[][]><{}<>>]>{<([]()){[]<>}>}>))]<{(((<[[]<>]([]<>)>[{{}()}<< -([{{({{<[[(((<[][]>{<>{}}){<()[]>{[]()}})(<({}<>)([]<>)>(([])[()<>])))(([([][]){()<>}]{{[]<>}{[]( -[{{<{({[<{<{((<>())({}[]))<{<>()}({}[])>}(<[{}()]<{}<>>>({[][]}{()<>}))}{([({}[]){{}[]}]<([][])>)}}{<{({{}( -[{(([[[([<<(<([]()){<>}>(({}<>)(()())))[((<>{})){[()<>]<<>{}>}]>>][<{{[<()<>>{{}[]}]<<{}[]><{}[]>]}[ -{<<<(<[<[{<[<({}[])>(([])<[]<>>)]<<<{}{}>({}())>{[<>{}}<[][]>}>>[{[<<>()><()()>]{[<>[]]<[]>}}[<<<>[]>{[]() -([(((<<(<[[<[<{}<>>(<><>)]>([<{}[]>{<>{}}]({<>{}}[()()]))]](<({<<>[]>({}[])}<[[]<>]{<>[]}>)(<{ -([{({{{[(((<<{[]()}<{}<>>>((<><>){[]()>)>({<{}()><(){}>}<[<>()]>))){((([[][]]{<>{}})[([]<>){<>[]}] -<(({{{[(([<[{<(){}>([]<>)}(<[]><()<>>)]><<([()[]]([]()))>{[(()<>}<{}>]}>]){{[{(({}{})<(){}>){[[]]{[] -[<{(<({<{((<<<[]<>>([]())>(((){})[[]()])>{[[<>]<{}<>>]}){[<[<>[]]({}())]{{()[]}<()>}]})<([[([]())<< -[[<<[<{{[{({<[()<>]{<>[]}>{([][]){<><>}}}<[[{}()]][<<><>>{{}[]}]>)}{<{{({}<>)(()())}[{{}{}}[{}()]] -({<({[{[{(([<<()()>{<>[]}>[([]<>)<()<>>]]{<{<>()}[{}{}]>((<>{}){<>{}})})([<([][])[[]{}]>(<[]()>{<> -{[[((<{[[<<({<[]<>>[()<>]}{[()]{<>}})>[<{<<>()><()[]>}{{()[]}<()<>>}>(([{}[]]))]>[[{({<><>})} -{{(<[{{[{<[({(()){{}<>}}(<{}[]>[[]()]))]>}({(<((()[])((){}))<{<><>}[<>()]>>)}(<<[(())<{}<>>]{[[]]<{} -<{{([<<<<[([<[<><>][[]]><<(){}>[()()]>]<{(<><>)<<><>>}([{}{}])>)][[([<()()><<>()>])(({[]<>}([]{}]){<[]><[] -{(<<[[<{{((([<[]<>>[{}<>]][([][]){{}{}}>)(<<<><>><[]{}>>{{(){}}[<>{}]}))({<(())[<>()]><{<>{}}(<>[])>}(({ -[[[([({([<<[[[<>{}]{<>{}}]<[<><>]{{}<>}>]>[({[()()]<<>()>}{[()()][{}()]}){({{}()}[(){}))}]>[(<{[()<> -[{{(<<<[{(((<<()<>>([])>({<>{}}<()[]>)))[{(([]){()<>})(({}[])<{}})}<{([]{})({}())}<(<>[])<<>[]>>> -{<<<<[{[{({{[<<>()><{}[]>]<[[]{}][{}{}]>}(<({}{})<()<>>>{{()<>}})}{[[{{}{}}[{}{}]]<[<><>](<>{})>]})(([{[<>() -<(<[<{(<{[{<{[[]{}]{{}[]}}>[{[[]<>][{}{}]}(([]())(<>))]}<{{[{}{}]([]{})}[({}())]}{<<<>()>>([( -<{{[{[<{[[<[{<[]{}><<>{}>}]{({()<>}(<><>)){[<>[]]}}>{([[<>{}]({}{})](({}{})<[]{}>))<{[{}<> -{{<<{<<<[{[[([[]()][()()])(({}()))][[({}[])<()()>]]]{<[<{}[]>{{}{}}]>}}[[[[([]())]([<>[]][[]{}]>]] -[[<<[({{{(<[(<()<>>[<>])]([(()<>){<>())]([<>[]][[]<>]))>{{[[[]()]([]())]{<[]{}>{()<>}}}[<([]<>)<()>>({<>{}}[< -([[([<{<[<((<(<>[])(<>[])>(<<><>><{}[]>)){<<{}<>>>({{}{}}<()[]>)}>[{{(<><>)(()<>)}[<<>[]>]}]>]<{{ -{{{((<<{[[{<([[]{}][{}<>])>}<[((()())<()<>>)[[[]{}]{[][]}]]<<<[]{}>{{}[]}>(<<>()><(){}>)>>](< -{(([[{{<[[<{(({}<>)[<>[]])}<{({}{}){{}}}[[()[]](()())]>>]([<[{()[]})({<>}[<>{}])>{[{{}{}}{(){}}]{<{}{}>}}]) -{([(<{<<({[<[{()()}<[]<>>]{<[]{}>}><[[<>][()<>]]>]{<{{[]{}}<(){}>}[({})]>{{<{}{}><()<>>}([{} -{{[[({{({[(([{{}()}[{}]]({{}<>}([][]))){({{}<>}[[]{}])<<()<>>>})]{(<[<{}{}>{<>()}](({}())((){ -{<({{<<{{([{{{[]<>}{<>{}}}((<><>)<()<>>)}[<[{}<>][()[]]><[<>()][<><>]>]]{{[[()<>]<<>[]>]<(<><>) -<(<[(<<[[<<<[({}())<[][]>](({}<>)[{}<>])>>[<{{{}}<()<>>}<(()<>){{}{}}>>]>({{<[<><>](<><>)>[(<>{} -[((<{[{{(<{[({{}[]}((){}))([[][]]{<>[]})]<{<{}[]>[{}<>]}[<{}()><{}<>>]>]>)}}]}{{{(<[(<{{()()}}>{[<{}<>><<>[]> -{([<<{(<([[({{{}<>}<(){}>}<<()[]>{<>{}}>)((<[][]>[<><>])<<[][]>{<>()}>)]((<{<>[]}{[][]}>[[<>()]{<>[]}]]{{[ -[<{(<{([{{(([<<>()>]{<(){}><()<>>}){(([]{}>)<(<><>)>})}({({[<>]{<>[]}}[[{}<>]])}[{<[()[]]<{}<> -{[(<(<{(<<[{[<[]()>(<>[])][{{}}[()[]]]}{{[[]{}]{()()}}<<<>>[[]()]>}]>{{<[<{}()>([]())]({(){}}(()<>))>([(<>( -{{([[([[[<(({<{}<>>[<>[]]}{([]<>)<<>{}>})<{{[]<>}{{}<>}}([()()]<<>[]>>>){{[[()<>]]<((){})<[]{}>>}{<<[]<>><() -<({([[[[[({[[{{}<>}({}<>)]({<>[]}[<>{}])][([<>[]](<>()))<([]())[{}{}]>]}(((({}[])[()[]])[{{}{}}(<>)])(<<<> -[({{<{[([(((<{[]{}}{<>()}><[{}<>>{<>[]}>)){([<{}{}><()[]>]<([]{})[{}{}]>){{[[]]<[]{}>}((()[])[( -(({<[<<{{[[<{(<>{})([]())}([[]{}]{{}()})><[<{}()><{}{}>]<<<>()>[[]()]>>]<[<<()[]><<>()>>[{{}<>}[<>]]]>] -((<[[<{{{[({<(()[])<()<>>>})]{<(([()()][[]]))({[[]()]{[]<>}}{[<>()]})><<(({}[])[{}{}])>>}}}[[[{{{{[]{}}({}[ -([<[<{{{{[<<{{<>[]}([]<>)}><{{()[]}[<><>]}{<[]>[()<>]}>><{[{[][]}<()[]>]({[][]}(()<>))}<{(<>())( -{((<(([[<[(<[{()[]}([]())>>[<[<>()]<[]{}>>(<()<>><[]>)])<(<{()}>(([]<>){<>{}}))<[[[]<>]{[]()} -[(<[([([{{{<([[]<>]<<>>)[{<>[]}{{}<>}]}({(())[{}()]}[<{}<>>{<>()}])}([<[(){}]([][])><(()()) diff --git a/2021/inputs/day_11.txt b/2021/inputs/day_11.txt deleted file mode 100644 index 674e736..0000000 --- a/2021/inputs/day_11.txt +++ /dev/null @@ -1,10 +0,0 @@ -8826876714 -3127787238 -8182852861 -4655371483 -3864551365 -1878253581 -8317422437 -1517254266 -2621124761 -3473331514 diff --git a/2021/inputs/day_12.txt b/2021/inputs/day_12.txt deleted file mode 100644 index c3ec81f..0000000 --- a/2021/inputs/day_12.txt +++ /dev/null @@ -1,23 +0,0 @@ -LP-cb -PK-yk -bf-end -PK-my -end-cb -BN-yk -cd-yk -cb-lj -yk-bf -bf-lj -BN-bf -PK-cb -end-BN -my-start -LP-yk -PK-bf -my-BN -start-PK -yk-EP -lj-BN -lj-start -my-lj -bf-LP diff --git a/2021/inputs/day_13.txt b/2021/inputs/day_13.txt deleted file mode 100644 index b551a62..0000000 --- a/2021/inputs/day_13.txt +++ /dev/null @@ -1,806 +0,0 @@ -527,872 -94,740 -502,586 -33,514 -349,784 -1292,133 -733,623 -305,336 -108,628 -1086,396 -845,128 -674,761 -768,317 -783,154 -731,697 -803,844 -865,96 -1263,567 -1141,141 -1218,644 -1115,429 -951,373 -748,326 -1088,422 -259,673 -885,885 -150,732 -181,19 -182,581 -1130,838 -647,386 -53,140 -27,726 -1198,105 -219,476 -545,779 -234,528 -1042,145 -422,852 -683,726 -636,40 -140,590 -415,824 -415,637 -238,478 -0,347 -1277,380 -1076,366 -984,112 -808,787 -321,480 -576,707 -999,810 -1283,392 -604,606 -610,724 -107,487 -657,497 -258,378 -392,224 -1044,498 -53,754 -706,606 -1191,753 -661,256 -895,637 -1015,373 -455,808 -825,753 -929,835 -581,205 -1236,30 -343,74 -207,813 -547,866 -1005,558 -113,420 -445,4 -562,326 -924,593 -209,621 -1078,42 -1265,798 -923,408 -1082,808 -910,889 -850,408 -1277,268 -984,809 -1191,813 -295,541 -108,826 -705,698 -97,666 -878,33 -1245,240 -1257,140 -1001,416 -252,478 -139,51 -75,732 -925,750 -388,502 -721,703 -509,254 -808,532 -478,386 -349,299 -328,85 -463,210 -254,126 -835,281 -895,569 -850,155 -513,782 -195,465 -1066,155 -119,529 -355,826 -1078,68 -176,350 -459,465 -1077,364 -47,567 -674,40 -169,141 -119,305 -541,485 -1009,642 -1212,894 -537,544 -674,754 -517,616 -25,38 -5,32 -191,572 -700,276 -1004,891 -492,547 -701,516 -65,45 -319,60 -1071,325 -621,575 -1131,834 -185,560 -693,571 -441,140 -157,533 -527,32 -915,221 -1212,780 -1131,501 -463,684 -1169,112 -1299,269 -832,350 -555,733 -1115,476 -432,422 -266,310 -835,393 -105,277 -820,499 -967,820 -63,894 -561,754 -301,642 -668,233 -182,600 -801,640 -502,532 -1134,554 -546,68 -11,625 -373,98 -1082,114 -654,771 -763,28 -92,102 -713,74 -869,409 -855,360 -1277,864 -1083,875 -604,288 -924,301 -11,269 -841,511 -1037,140 -868,670 -759,486 -604,222 -917,464 -1034,512 -806,126 -1004,865 -677,670 -763,866 -1305,862 -681,728 -1251,408 -955,390 -224,119 -465,598 -87,773 -442,670 -492,558 -1019,406 -929,59 -513,560 -1146,323 -947,646 -305,224 -656,632 -952,520 -639,82 -1200,99 -984,206 -951,93 -1283,502 -150,574 -825,164 -432,413 -965,579 -436,740 -445,778 -840,254 -1310,547 -93,759 -299,726 -761,725 -793,558 -1202,826 -1173,822 -951,476 -415,40 -423,226 -405,175 -813,529 -499,451 -254,630 -845,369 -73,653 -234,814 -855,808 -465,318 -12,162 -403,284 -730,478 -907,284 -224,396 -301,520 -186,590 -551,486 -832,116 -773,544 -956,362 -273,140 -234,379 -828,182 -306,865 -1193,574 -176,554 -1175,810 -711,617 -1015,541 -928,644 -426,808 -586,826 -535,753 -1173,72 -301,597 -311,532 -233,493 -838,28 -174,227 -219,110 -597,841 -884,780 -271,102 -65,240 -354,362 -932,522 -652,833 -720,894 -895,824 -371,779 -957,374 -293,799 -169,276 -791,532 -580,416 -711,726 -408,462 -239,396 -1077,135 -754,360 -609,322 -880,119 -497,500 -289,323 -875,784 -239,817 -455,154 -137,72 -1101,768 -212,126 -445,452 -1029,546 -108,68 -610,170 -579,162 -295,521 -1124,369 -797,334 -872,347 -137,822 -1202,266 -649,376 -984,645 -1280,150 -102,870 -485,164 -435,476 -924,28 -1289,819 -760,525 -483,3 -1029,348 -1255,168 -276,382 -808,219 -108,714 -1295,596 -1237,395 -556,222 -996,232 -440,341 -30,150 -349,336 -422,826 -113,754 -801,621 -811,239 -15,364 -748,568 -924,749 -661,638 -45,798 -281,546 -228,114 -359,476 -929,588 -1119,210 -470,254 -415,257 -70,698 -649,862 -999,74 -711,700 -381,140 -1305,704 -313,467 -70,366 -475,393 -1011,826 -945,634 -621,366 -1191,305 -288,728 -346,700 -513,112 -863,81 -883,161 -229,493 -507,396 -383,252 -579,732 -309,864 -324,425 -1163,501 -268,145 -1094,547 -579,396 -438,99 -157,365 -1260,606 -373,49 -266,502 -492,150 -1310,632 -381,59 -499,655 -838,313 -447,813 -420,515 -890,515 -961,670 -855,154 -199,422 -927,102 -1044,502 -1128,742 -408,581 -1223,773 -254,217 -764,628 -325,161 -902,581 -1017,416 -887,226 -1265,96 -1071,396 -535,141 -1265,123 -45,330 -562,120 -706,64 -119,813 -1205,277 -209,871 -753,661 -832,126 -53,280 -93,588 -731,396 -515,619 -473,173 -541,409 -326,533 -1163,53 -1101,452 -1285,297 -754,672 -455,740 -472,600 -1289,147 -960,640 -855,534 -311,74 -1009,252 -504,126 -53,166 -1257,754 -836,56 -758,422 -1173,476 -585,194 -465,185 -830,73 -1007,611 -633,670 -68,516 -1310,85 -955,68 -689,319 -1283,726 -513,334 -426,86 -669,427 -1049,586 -1280,744 -1125,831 -1292,854 -663,386 -1266,618 -748,341 -1148,547 -627,420 -1305,302 -268,637 -746,96 -1252,705 -232,42 -1155,239 -281,378 -351,611 -944,789 -731,249 -1004,193 -666,422 -147,277 -639,805 -991,834 -883,875 -713,841 -33,127 -924,252 -835,255 -1173,542 -355,68 -455,360 -937,116 -475,501 -549,169 -835,396 -18,488 -400,406 -523,877 -556,332 -222,33 -627,392 -301,710 -748,553 -818,150 -545,115 -584,196 -55,168 -870,341 -305,558 -634,451 -601,614 -45,123 -254,406 -393,308 -1101,871 -131,93 -970,662 -801,478 -415,817 -1119,322 -550,77 -1258,486 -1251,486 -224,567 -460,155 -1170,590 -238,416 -358,598 -835,501 -786,774 -353,168 -835,57 -855,740 -507,844 -811,655 -179,639 -1064,761 -633,784 -1029,378 -119,753 -326,85 -599,866 -1021,858 -1082,780 -1076,814 -1031,416 -385,750 -345,579 -233,530 -1078,490 -791,154 -145,142 -1056,453 -922,215 -283,331 -393,464 -1066,739 -117,621 -797,560 -609,798 -705,196 -982,137 -604,560 -957,168 -627,502 -557,681 -1128,600 -604,334 -793,542 -445,871 -386,642 -621,268 -1280,374 -231,226 -191,322 -445,96 -845,576 -1305,592 -218,42 -729,732 -435,110 -445,116 -181,478 -919,558 -525,402 -465,766 -806,574 -55,277 -731,809 -542,553 -753,681 -850,632 -1237,284 -25,616 -1265,330 -229,885 -759,72 -276,512 -472,581 -1233,623 -1216,740 -420,528 -1071,369 -1265,378 -556,534 -373,826 -917,430 -599,617 -475,709 -1310,123 -957,726 -191,292 -701,322 -295,373 -499,443 -65,849 -472,742 -682,793 -562,568 -605,698 -765,779 -865,173 -711,476 -837,875 -599,476 -597,302 -530,56 -730,416 -269,750 -1198,553 -726,196 -455,472 -524,344 -683,882 -1064,313 -431,502 -1130,607 -991,123 -361,543 -507,820 -628,793 -1173,128 -510,537 -65,654 -629,194 -432,33 -827,891 -1114,605 -182,742 -326,137 -1058,478 -962,417 -947,406 -1125,560 -738,267 -633,672 -584,698 -355,56 -227,19 -845,318 -396,378 -676,451 -72,574 -400,5 -542,341 -1163,165 -1098,126 -639,530 -436,404 -910,630 -353,642 -938,612 -884,114 -832,544 -1298,680 -1011,378 -97,213 -306,701 -12,680 -838,581 -1246,558 -1064,252 -937,49 -1108,504 -865,350 -174,362 -1094,347 -1237,205 -269,144 -325,733 -1235,732 -937,68 -1175,740 -803,820 -604,64 -601,140 -402,478 -1260,222 -468,590 -246,194 -305,523 -519,292 -1138,264 -319,834 -127,470 -415,854 -299,378 -959,283 -1223,413 -1081,885 -671,162 -186,369 -311,362 -1213,666 -1131,863 -1212,114 -649,638 -686,374 -723,445 -345,315 -565,823 -30,520 -348,254 -465,576 -801,721 -75,681 -214,117 -910,453 -1305,32 -103,408 -599,194 -580,478 -276,672 -1138,712 -689,864 -233,759 -18,133 -1059,661 -970,232 -962,254 -381,588 -922,663 -301,252 -1242,154 -519,602 -1009,374 -773,423 -117,273 -597,820 -556,0 -246,313 -1015,521 -502,308 -914,378 -82,627 -845,525 -902,462 -372,612 -918,808 -455,870 -1268,616 -517,542 -609,378 -1115,465 -874,42 -1094,795 -895,376 -1115,866 -1086,119 -656,470 -629,408 -1284,101 -105,617 -1266,276 -654,470 -714,136 -392,808 -918,224 -1015,821 -755,161 -1021,323 -1056,217 -1280,520 -87,481 -731,162 -1163,396 -244,155 -1131,498 -137,542 -937,826 -681,821 - -fold along x=655 -fold along y=447 -fold along x=327 -fold along y=223 -fold along x=163 -fold along y=111 -fold along x=81 -fold along y=55 -fold along x=40 -fold along y=27 -fold along y=13 -fold along y=6 diff --git a/2021/inputs/day_14.txt b/2021/inputs/day_14.txt deleted file mode 100644 index e84aae5..0000000 --- a/2021/inputs/day_14.txt +++ /dev/null @@ -1,102 +0,0 @@ -SNPVPFCPPKSBNSPSPSOF - -CF -> N -NK -> B -SF -> B -HV -> P -FN -> S -VV -> F -FO -> F -VN -> V -PV -> P -FF -> P -ON -> S -PB -> S -PK -> P -OO -> P -SP -> F -VF -> H -OV -> C -BN -> P -OH -> H -NC -> F -BH -> N -CS -> C -BC -> N -OF -> N -SN -> B -FP -> F -FV -> K -HP -> H -VB -> P -FH -> F -HF -> P -BB -> O -HH -> S -PC -> O -PP -> B -VS -> B -HC -> H -NS -> N -KF -> S -BO -> V -NP -> S -NF -> K -BS -> O -KK -> O -VC -> V -KP -> K -CK -> P -HN -> F -KN -> H -KH -> N -SB -> S -NO -> K -HK -> H -BF -> V -SV -> B -CV -> P -CO -> P -FC -> O -CP -> H -CC -> N -CN -> P -SK -> V -SS -> V -VH -> B -OS -> N -FB -> H -NB -> N -SC -> K -NV -> H -HO -> S -SO -> P -PH -> C -VO -> O -OB -> O -FK -> S -PN -> P -VK -> O -NH -> N -OC -> B -BP -> O -PF -> F -KB -> K -KV -> B -PO -> N -NN -> K -CH -> O -KC -> P -OP -> V -VP -> F -OK -> P -FS -> K -CB -> S -HB -> N -KS -> O -BK -> C -BV -> O -SH -> H -PS -> N -HS -> K -KO -> N diff --git a/2021/inputs/day_15.txt b/2021/inputs/day_15.txt deleted file mode 100644 index 7cd7dc4..0000000 --- a/2021/inputs/day_15.txt +++ /dev/null @@ -1,100 +0,0 @@ -2494188795949368426672935997553436999123973817111494977966298896479213563868828787114774871959993495 -7269295166912819128199218896192745233371189151296812199288995976199874739992471696989914173889976925 -5191212388827998986649912824634749279971948589689238817721846893532697679994545789897911889729995897 -2168589418228699841979496964487152857627622699771987389157912193827151789199146397936892984945186648 -6173939628157711976563997464999974959831921613389971361747448844585131388314689679172394799717331399 -5899695651247379821996866399919649874365217617874746871338598594867719518499554272189235565993897965 -7485394112785944858863361332818786294335182341788296167915326872949943697179245577456182671381554981 -9266892719919136231211827869936952321796769156938997799961743957799879299829979797999289996519698258 -7917921979835316979873649974359699969481697221634859899429669995158723957697928969198838877882679431 -1491236284143364659399923722198867919166499918548183212698729886479216469986191478946997662853172832 -3767398586846967844992213195183588959313371637243199793963993959286917791341794214391371939868871494 -9928742956264979397583828698198991474967144891939974212795669284197972936548635221944579878942359557 -2591296163233973188949425669798998818121787829476539915785989899996476991741928456884321481461491491 -9991453999117657667486988919926741998881973198189217569482699982656854861887538683949945599464996179 -7785121782479268191396996844959721953747843271399498791933669879859637175866291876796575659279993189 -7776716891792899824695392599338137499166496894838139256577699799459229235864327718998999599938889161 -5839791979939975731327544972918993669998884665789489989759759159981911739962619655578959489319651959 -9398937827918996618898187917114312218979818328154357119792473517498229889994917199791479298969989426 -9193149311416478995456723118877968917584864848296657785894974918318495982911493994794738911468372399 -9769827996996299982985113892343422898578915399986948881116926857688725599882867388823188133721994278 -8818187692494197511189732662739876774788519148132878987446213196194758987589658244842573992965369917 -9692985985717419377379789693788389987764679742169692881958792669418357791948997197357944583299997199 -1655589698936188425679138917313955276139596613919192843881592947255229449287767987981926864969859529 -9699242895916761696979961626847898651779897127819171988159298969595969856231117848529246839289723796 -6918899858935889816997979865999596479948574186514639447389189297279388214912422481934482758598686939 -9996124999974921628385339724671481964691768899569149945536398488739568172834846547989816384911492872 -8346834917676292979994979698956139979926678894814989654839981221562573298658346721681719173725669956 -7996658985879211759466921616176161867986927757827999273979469498688699982778999718998879599891187826 -6789987138357992752226589295829589178911828185979998763692162929329395765591169737899686919889788875 -7197637335578924955696669176672558865939999937795981568398933385959211553997726292683778819899973695 -7969119547891678248796699588889994968987939996198215675832711397499256187159534154919899797617918187 -6926911899812131895651119837176697797919392241689685965558165297919473987229989972939921478114978373 -5841994288699114592993125898675872864168987969699196889625973399229985914231352968138691482158881899 -6867891298189866894719212682879398889498489939663172817599835471792399556867597964989686389769859994 -9216183839556753967949862931537817787984781697457685114963135184139788699929447794287121297683798319 -5961184475118971259559817821178849966985528319614894877141814318889588689738389571282791915658998542 -7796517463682296191129934366199787898432878578178838999284446321338627649991196629939797121785891962 -6869179819567982969986839939999929197979374876888941369191219962943812332887931152176916191949337191 -9949555298548218159821548895199792894846453957998718924987391181922787245277994179172391848939291937 -9194554898149494418187494726757793324999959688688219769989897645955852991449724578587938397525559699 -9839395266191998228728197617917693697789375996118295993584569962144786399964589627981549488787733896 -8798892947496976899997799782965947775618684631612298893931561678929111719994767999284582998895629195 -5971923418391999545117998893871871449928897518896798992962997798871699831697768939889162189217948177 -5858919812839818645171731976975688955947178448898559483839791819932171192959869296448582448911965279 -1968371935371579114969391889167369857978852993227571182176195567113584591687978173852172998299297876 -9818595991179878228913865926959618915114684669669687682418328328426959971759423266149164699675299962 -7313169988896798377992637828717558819632818939589195963274459828798159996969414246778645986912959685 -7175987582985899179876194819674578385889199196894972994931968897971126896672969822346958482487693195 -3899899994999974339297695494999694587728925279418719657933319839559165236843874998959197285872898386 -9143179894278789613961188998997899879989984167462521348529727699979885411983992819969799931648899396 -8721719519784582186657994994597695787791988737117281949127388845793462485588977564523597916812662293 -8611192812559976315185196299139868529583964194698936966669193992848592369935883977685998128921958855 -9939897898864487468688938157636793892493993149941579971537776639995925839997995494499799341196996911 -8952975169934893855698711783493617877741259797391888882838674537287761499137286977596911311795914798 -5973819164498977729977283879968689716999899829329989552936969439956928519569699593711189175982816879 -8992169969711179987999697359795943869189334168512958869138486551393962896928198678797618959592667178 -5198893235999189515823758534932887297573118289138717189899951151794645128875863218397267732544682559 -1325921986621997358689228699823234199583753862125884477531428896914475773981149951219987772989777284 -1767578881144877899227864881927651792585225919996798399996398994171539489225941719236558689987289596 -1697693293932998829129311328298516993977484911198964347455679799762539363996979349779755395869958127 -3713898193499495896831949473519979859286519968829254986836974926445967798179318189714751879952896613 -9916216881218784598988194111975928978834317778788697936768819246855919484199948946983872997799989537 -5418692222281246379686836239999941778791771954439968621669899592193586891966947915978832988949879767 -5946329868375678638572651999898943139289184131912762798677877895898695944967941764178789929296788749 -6239775996391914149474397187426592989328499959996744188988177257137398164298656927588639947169611996 -7726974769124948598778698999782543243598997487367127713261541411788169989779736617197163837998429443 -6111148329281896798281927928447986973659988162159399599953814156215976289871288499437886599369129446 -5854951519241889185939295929639732174661849974497795351828153777386926499257888278938847986849719938 -5984221699399349924974897835513966246932291529259259986518919741383138819187699681468921932862191135 -7247744517283916799878894898841511684972958968888598899899528129686787319513181999663332357287917849 -9619575771852888429993998185894999449977654581892868719896632889994183982173959417945797894859792989 -9987887311965149698616929977895196273977999972615874679953263114467325584669891293619617955392613925 -3459233982935649168889415851457199862587819992969777358114793166474749199299992637999874364191376899 -7943688928864588361988811191325483948768896478821434855799291838959158636199538793219669994353374759 -7859289672994646496294159151719934379268389791695698878689997723696963668819627473895291179249595592 -9941314869878731534751835338688822211841761128799388619893279239832929889693971299176198322989988696 -8842227781495829982998213979935669336595995299977597191369528699162399363739696583936699198339998297 -4713836572615268829578998379651451979528877965188284221548263244343828575977462755943999496539416928 -8997969648694117619993817848699798391349937895138998191853188328148899863968896951342872529854299799 -4821998179179181915669967943833899175819993535997526988947429178781551978844594192169998492291957896 -4195189588992241478996816697172978669351926159581981999991898899275537372449313988179685677999419998 -7562897828594989799593999721399698168294159217347891591919627938573198351476731278382919975715726691 -5289289886391592468511382946949159281295428969892859956998441988997291849472619345291529291989934296 -2119968215975689967875154978999999387426829368331479442781739197214991219186498848963987197926389319 -2619398714969892292337865366952999489167916889966465489596798298768869549286862389939419119395283486 -5891141991985484321796885478397617796913878991923119711484499287684339488268919291995478738911979334 -8114983942818278171367398195885616828459999126819995888739198519259919986496918279919325994993862348 -9799778199299926255679191711375949221688768118898797284688592829217988489896761335847548468981782899 -3297828241798981838196692979721897463899191684523229918888914388941777196891967689798993724124799799 -6587642855381998719928875658181669971111961763447368283978979892939694984843414921587564196767985264 -8868499779173993666956935631879522347992698928849354893756692376863389161268189398695789183996886289 -4384313399189397465391981199547955659912476999789237991829967965898994592593315769962549121389114869 -3165989928816884816238178158923873189899685775749877366272667891986999279928649289915951524688386419 -2614193692887593891959411118711929833726848873925563723329796828281367982397811129881655482798978846 -8547195678964249376891881397319282899129476666886297539869668898819828797769638991899886419148826859 -8178778491299194939588873989868848883795996377199995921984895879486959879816117891527867619711458789 -2358691498849138995117937966497995947487954198989213589121699888997868911988859219584998799742529591 -4564249477614979424868747948799188548777892792598985751974975274769994898988419988258297291881465592 -9297979945165922849989776118448916916471698458557921916479112985169284661994778819637195998913985273 -4789996397188799369699683969576838983199839289799579353875318987692211979981993139884198857448759796 diff --git a/2021/inputs/day_16.txt b/2021/inputs/day_16.txt deleted file mode 100644 index 57468d0..0000000 --- a/2021/inputs/day_16.txt +++ /dev/null @@ -1 +0,0 @@ -A20D5CECBD6C061006E7801224AF251AEA06D2319904921880113A931A1402A9D83D43C9FFCC1E56FF29890E00C42984337BF22C502008C26982801009426937320124E602BC01192F4A74FD7B70692F4A74FD7B700403170400F7002DC00E7003C400B0023700082C601DF8C00D30038005AA0013F40044E7002D400D10030C008000574000AB958B4B8011074C0249769913893469A72200B42673F26A005567FCC13FE673004F003341006615421830200F4608E7142629294F92861A840118F1184C0129637C007C24B19AA2C96335400013B0C0198F716213180370AE39C7620043E0D4788B440232CB34D80260008645C86D16C401B85D0BA2D18025A00ACE7F275324137FD73428200ECDFBEFF2BDCDA70D5FE5339D95B3B6C98C1DA006772F9DC9025B057331BF7D8B65108018092599C669B4B201356763475D00480010E89709E090002130CA28C62300265C188034BA007CA58EA6FB4CDA12799FD8098021400F94A6F95E3ECC73A77359A4EFCB09CEF799A35280433D1BCCA666D5EFD6A5A389542A7DCCC010958D85EC0119EED04A73F69703669466A048C01E14FFEFD229ADD052466ED37BD8B4E1D10074B3FF8CF2BBE0094D56D7E38CADA0FA80123C8F75F9C764D29DA814E4693C4854C0118AD3C0A60144E364D944D02C99F4F82100607600AC8F6365C91EC6CBB3A072C404011CE8025221D2A0337158200C97001F6978A1CE4FFBE7C4A5050402E9ECEE709D3FE7296A894F4C6A75467EB8959F4C013815C00FACEF38A7297F42AD2600B7006A0200EC538D51500010B88919624CE694C0027B91951125AFF7B9B1682040253D006E8000844138F105C0010D84D1D2304B213007213900D95B73FE914CC9FCBFA9EEA81802FA0094A34CA3649F019800B48890C2382002E727DF7293C1B900A160008642B87312C0010F8DB08610080331720FC580 diff --git a/2021/inputs/day_17.txt b/2021/inputs/day_17.txt deleted file mode 100644 index 039df20..0000000 --- a/2021/inputs/day_17.txt +++ /dev/null @@ -1 +0,0 @@ -target area: x=206..250, y=-105..-57 diff --git a/2021/inputs/day_18.txt b/2021/inputs/day_18.txt deleted file mode 100644 index cc88c31..0000000 --- a/2021/inputs/day_18.txt +++ /dev/null @@ -1,100 +0,0 @@ -[[[0,6],[[8,9],[3,7]]],[[[3,4],[7,0]],[[6,9],[4,8]]]] -[[2,2],[[[7,7],5],[[0,7],2]]] -[6,[9,[[7,9],7]]] -[[[[5,1],[9,3]],8],[4,[2,[6,6]]]] -[[[4,3],[0,4]],[[[4,5],[9,3]],3]] -[[[[2,7],7],[[6,5],6]],[[[2,3],[7,9]],[0,3]]] -[[[3,[6,2]],[7,[9,4]]],3] -[[[[9,3],4],[3,9]],8] -[[[7,8],[[2,6],1]],[[[1,7],5],[[5,6],[6,1]]]] -[[[[0,7],9],[[6,6],[8,4]]],[[[9,2],[4,8]],[[8,5],[0,6]]]] -[[6,[[5,6],[3,8]]],[[8,9],[4,3]]] -[[[[0,6],1],[[2,4],[1,4]]],[[7,5],[8,3]]] -[[[[0,7],1],[[5,7],7]],[[[3,3],[6,7]],[[2,8],[2,9]]]] -[[7,7],[[1,[3,7]],9]] -[[8,[[3,0],0]],[[[8,3],0],9]] -[[[[6,2],[2,6]],3],[6,[[4,7],2]]] -[[[5,[2,3]],[8,[8,7]]],[[0,0],2]] -[[1,6],[7,[7,[9,0]]]] -[[[7,[7,6]],[7,4]],[[7,2],[6,5]]] -[1,[[8,[9,5]],2]] -[[[[8,2],[6,5]],[4,[9,2]]],[[0,[2,6]],[6,6]]] -[[1,[[7,2],5]],[[[6,0],[8,1]],8]] -[[[[0,6],[6,6]],2],[[4,2],[2,4]]] -[[5,[9,0]],[2,5]] -[7,[[9,7],[[9,9],4]]] -[[5,[[6,4],7]],[8,[[4,4],[9,0]]]] -[2,[[[3,2],[1,9]],[[3,8],[7,5]]]] -[[[[8,2],0],[5,[4,3]]],0] -[[[0,[7,8]],[[9,6],7]],[[7,[1,0]],[[0,3],7]]] -[[[[8,3],0],[[4,8],[7,9]]],[[7,1],[[8,4],[4,4]]]] -[[[2,0],[[6,6],7]],[[2,[3,9]],[[5,6],[4,6]]]] -[[[[1,4],8],[9,6]],8] -[[7,[9,1]],[1,[[8,5],[6,8]]]] -[8,[[2,6],5]] -[[[9,[7,8]],[[7,8],6]],3] -[1,[[[2,1],7],[[2,6],7]]] -[[7,[4,[6,1]]],[[[4,9],8],[[0,1],[1,7]]]] -[[[7,9],[[2,6],[2,4]]],[[2,[1,7]],[[3,9],[8,9]]]] -[[[[4,5],[4,7]],[[4,0],[9,9]]],0] -[3,[[[6,9],2],[5,3]]] -[1,[8,[[0,8],[1,3]]]] -[[[7,[9,2]],[4,[0,3]]],2] -[3,[[[7,7],6],[[8,4],1]]] -[[[[6,3],[2,6]],[[6,9],[8,1]]],[[[2,1],[7,5]],[[7,3],[7,3]]]] -[[[1,6],[[5,1],[5,0]]],[[1,0],[6,9]]] -[[[[8,6],[3,3]],[[2,1],[4,1]]],[1,[[7,7],[8,5]]]] -[[1,5],[6,[[2,3],[2,4]]]] -[[0,[7,[9,0]]],[9,0]] -[[[5,[1,9]],[0,[9,8]]],[[[6,7],[6,3]],[8,1]]] -[[[4,7],[6,[2,1]]],5] -[[3,[4,0]],[2,[4,5]]] -[[[4,0],[6,[8,3]]],[[0,6],8]] -[[[[9,9],0],[[1,8],0]],[[1,6],[3,4]]] -[[[[4,3],4],1],[0,[[2,1],[3,9]]]] -[[[8,[6,2]],[6,0]],7] -[[9,[6,[3,1]]],[[[5,9],0],[4,5]]] -[4,[7,[[2,5],4]]] -[[2,[8,[2,9]]],[[[0,1],[3,5]],1]] -[[[7,9],[7,3]],[[1,[7,1]],[1,2]]] -[[[7,0],[[1,0],8]],[[9,[7,6]],[9,[7,2]]]] -[[[8,1],[[0,6],2]],[9,[[1,8],[5,4]]]] -[6,[[[9,5],[5,4]],3]] -[[4,[[6,8],[8,3]]],[[9,[0,9]],7]] -[[[6,9],[[2,3],8]],[[9,[5,1]],[[7,6],5]]] -[[0,1],5] -[[4,[1,9]],[[8,0],8]] -[[5,[0,6]],[1,8]] -[[[[9,2],7],7],[4,[1,[5,6]]]] -[[7,[9,[6,5]]],[[6,9],1]] -[[[5,2],[0,[1,4]]],[[0,4],[[9,4],8]]] -[[[[7,1],[4,9]],3],[[[4,5],8],[7,[0,4]]]] -[[[9,[8,0]],7],[[[4,5],8],[[4,3],[8,5]]]] -[[9,[7,0]],[[3,[1,7]],[[7,0],7]]] -[[2,[[6,2],6]],8] -[[[8,[9,6]],[[5,8],[7,2]]],[4,[9,9]]] -[[[[0,5],0],[[8,4],4]],[[7,9],8]] -[[[0,[0,3]],[0,[8,8]]],[[[2,1],3],4]] -[0,[[4,1],[[9,9],2]]] -[[3,[7,[6,7]]],[0,2]] -[7,2] -[0,[3,[[3,4],[4,4]]]] -[[[[0,1],[5,9]],[[4,2],7]],[5,[1,8]]] -[[7,1],[[1,[9,9]],[[8,4],8]]] -[[[1,[8,3]],[[3,7],0]],[[2,0],[[1,6],[9,9]]]] -[[[1,4],[1,4]],[[2,[2,7]],[2,[7,1]]]] -[[1,[[6,8],[8,6]]],[0,[8,0]]] -[1,[[2,0],7]] -[[[[6,0],9],[[6,9],[8,3]]],[[3,[9,9]],6]] -[[[[9,8],[2,8]],[2,3]],[6,2]] -[[[6,[2,2]],7],[[3,[7,8]],7]] -[[[5,[3,7]],1],[[[4,0],3],[5,4]]] -[[[7,[4,3]],[9,[4,4]]],7] -[[2,[[1,5],6]],[[2,3],[[2,5],[7,1]]]] -[[[[3,9],[1,9]],3],[5,[[0,6],[3,2]]]] -[[[3,[7,5]],[[7,7],[2,8]]],[4,[1,[0,0]]]] -[[4,[2,[8,7]]],[[[0,5],0],9]] -[9,[9,[6,4]]] -[[5,[[4,9],2]],[9,9]] -[[1,[[6,0],[9,9]]],[[[8,4],1],[[5,2],[6,1]]]] -[[1,[[9,0],8]],6] diff --git a/2021/inputs/day_19.txt b/2021/inputs/day_19.txt deleted file mode 100644 index e2f977f..0000000 --- a/2021/inputs/day_19.txt +++ /dev/null @@ -1,856 +0,0 @@ ---- scanner 0 --- -785,-772,752 -548,703,908 -571,658,844 --654,-601,-321 -509,339,-583 -113,-24,5 --685,476,-691 --573,-837,487 -667,-785,773 -417,248,-660 -567,-853,-801 -531,655,675 -543,245,-584 --569,714,648 -520,-824,-758 --551,613,646 --6,-155,84 --645,452,-613 --665,-681,-424 --624,-798,555 -763,-844,821 --455,763,640 --583,-753,-380 -382,-897,-773 --550,444,-612 --567,-808,562 - ---- scanner 1 --- --762,-848,417 --470,575,-597 -510,-362,658 --452,659,-532 --951,675,325 -650,413,654 -653,-412,637 --847,-836,444 -525,-542,600 --952,-828,466 --534,-483,-635 -263,625,-879 -487,-833,-665 --478,-438,-584 --58,30,-29 -494,-775,-599 -576,364,635 -283,615,-897 --505,-387,-655 --450,583,-662 -289,498,-824 --955,537,301 -609,384,498 -505,-724,-559 --929,545,377 - ---- scanner 2 --- --4,133,0 -409,846,-912 -511,-669,287 --727,-315,505 -397,674,-855 --391,-664,-755 -455,-676,267 --681,708,805 --534,702,800 --840,-409,440 --455,-619,-732 -544,867,356 -469,-702,368 -391,832,420 --624,-616,-772 --547,811,-518 -410,-260,-715 -429,-224,-632 -397,616,-957 --814,-307,456 -534,-227,-752 --478,883,-540 --528,703,707 --526,824,-636 -509,845,344 - ---- scanner 3 --- -900,-493,416 --792,754,522 --424,262,-635 --368,454,-613 --746,-725,-569 --752,649,599 -456,-364,-590 --446,-588,509 --634,-755,-694 -839,573,-420 --749,645,413 -690,673,-399 -569,-382,-585 --725,-651,-724 --563,-606,561 --516,-779,510 -804,717,-336 -845,465,483 --362,321,-724 -772,-525,555 -406,-491,-567 -37,-7,32 -687,484,510 -821,-464,374 -751,405,481 - ---- scanner 4 --- --540,515,741 -856,756,328 -562,-779,560 -797,612,394 -482,-908,548 --585,-571,-807 -709,770,412 --478,433,677 --549,-545,527 -521,-609,-513 --505,-521,-879 --461,-510,-902 --337,-612,537 --32,43,-140 -644,-634,-445 --550,533,700 -766,728,-558 --14,-68,35 -814,686,-634 --712,690,-680 -781,596,-529 -676,-895,583 -559,-558,-534 --789,611,-631 --464,-655,596 --718,530,-751 - ---- scanner 5 --- -619,-451,-778 --517,534,-801 --617,683,-780 --379,406,390 -423,-502,-802 --704,-496,482 --69,-98,-19 -485,767,293 -470,695,473 --473,648,-864 -573,771,459 --389,301,412 --720,-612,534 -445,-434,-848 -532,321,-712 --364,382,382 --618,-586,385 -520,288,-704 --869,-518,-476 -725,-500,380 --736,-524,-587 --928,-580,-565 -614,471,-707 -779,-495,407 -671,-428,522 - ---- scanner 6 --- --665,672,665 --565,744,642 --933,-475,-523 -389,717,-914 -254,-687,-701 -523,758,561 --662,504,-786 -468,-298,310 -480,885,502 --960,-354,-558 -234,-687,-751 -439,637,-842 --173,107,-115 --647,682,706 -260,-481,-766 -413,673,492 -11,-28,-159 -418,-340,447 -369,-299,251 --736,-356,408 --727,-524,477 -378,761,-937 --904,-282,-562 --743,433,-666 --684,-386,371 --822,510,-715 - ---- scanner 7 --- -465,801,-361 --583,551,482 --521,633,546 --593,533,523 -434,583,-327 --451,-805,455 --611,-835,-355 -666,296,811 --574,648,-470 -30,-123,175 --119,-152,-16 -439,-652,399 -436,-717,520 -813,310,895 -413,670,-390 --618,484,-380 --515,-704,545 -406,-557,567 --581,-804,602 -754,454,829 --765,-854,-475 -573,-842,-568 --827,-846,-405 -718,-754,-533 -497,-753,-472 --626,481,-462 - ---- scanner 8 --- --834,731,729 --579,282,-466 --376,-761,734 -655,-969,-550 -641,575,492 --789,667,706 -722,-978,710 --530,-683,-261 -654,596,610 -693,-935,757 -538,441,-831 --124,-92,62 -532,588,-826 --477,308,-482 --448,-778,-293 --470,-760,768 --379,-837,860 --475,-627,-288 --485,395,-531 --786,498,746 -713,644,514 -719,-888,-497 -533,594,-733 -766,-950,895 -743,-966,-388 - ---- scanner 9 --- -374,-543,718 --699,-584,548 --401,-360,-681 --666,527,782 --147,-126,155 -695,385,-533 --735,442,672 -763,439,817 -395,-581,769 --676,315,715 -668,563,756 -808,-860,-376 --438,-462,-763 -740,483,806 --577,779,-632 -784,-767,-244 -797,-770,-315 --564,834,-466 --435,-398,-748 --687,-504,419 --12,-91,-12 -662,477,-577 --592,758,-411 -306,-666,693 --722,-698,432 -620,459,-474 - ---- scanner 10 --- --57,48,-5 -507,768,-684 -490,702,-604 -517,-605,-365 --442,-603,-255 --812,583,625 -692,-604,914 -369,691,-619 -486,386,918 --476,-772,765 -537,-625,-311 -353,-589,-374 --896,597,781 --904,615,790 --358,-698,669 --511,-531,-348 --499,749,-395 --332,-694,727 -624,-745,922 -398,356,966 -654,-852,912 -452,403,810 --467,856,-399 --477,-661,-349 -38,-3,171 --428,739,-376 - ---- scanner 11 --- -709,533,-849 --495,-544,650 --488,600,604 -736,464,642 --462,762,641 --325,776,-552 -153,177,47 --505,-304,-506 --423,591,584 -853,499,615 -540,-737,-707 -54,23,-83 -756,-686,346 --574,-217,-397 -808,608,647 --412,839,-613 --489,-491,547 -716,-646,426 --505,-414,-420 -834,555,-697 --518,-470,473 -800,-801,448 -683,420,-707 -471,-645,-649 -572,-781,-675 --282,894,-529 - ---- scanner 12 --- --438,505,-689 -630,785,420 --391,-486,434 -645,789,392 --436,452,649 -402,-547,-680 -37,27,31 -579,865,382 --460,493,-724 -818,609,-455 --599,491,705 --567,-453,350 -858,631,-541 -354,-422,756 --689,-808,-836 --442,-405,279 -760,549,-435 -407,-440,640 --631,-706,-836 --459,-763,-824 -344,-643,-802 --508,546,645 -393,-433,644 -87,142,-114 -332,-520,-754 --473,569,-842 - ---- scanner 13 --- --830,923,434 --517,-584,-423 -526,-422,-325 --820,786,372 -440,701,541 --740,-600,715 --884,499,-539 -597,-679,703 -358,548,-251 --727,442,-487 -697,-656,775 --741,-747,845 -302,544,-323 --704,-546,-468 -535,-491,-493 --640,-585,-311 --909,441,-436 -329,509,-444 --758,792,378 --640,-657,781 --53,73,94 -578,-385,-355 -615,-720,713 -519,652,464 -600,772,535 - ---- scanner 14 --- -574,-540,704 -285,381,-354 -515,-466,779 -300,317,-351 -471,-558,746 -733,689,881 --554,416,557 -416,-860,-493 -804,686,868 -367,279,-317 -582,-915,-480 -13,37,-48 --390,-407,604 --590,513,-476 --512,-378,568 -672,779,892 --491,-464,-576 --478,413,641 --551,-420,687 --508,525,647 --672,399,-455 --153,-91,69 --406,-483,-711 --675,542,-562 -637,-839,-508 --516,-428,-610 - ---- scanner 15 --- --654,605,-887 -290,437,636 --681,722,-852 -449,-680,271 --2,-62,-147 --655,-593,-589 -478,505,-851 -596,-674,276 -259,-587,-558 -396,-562,-499 -316,335,620 -364,504,-669 --675,388,841 --880,-861,605 --619,333,814 --692,-619,-751 -339,474,-774 --712,-554,-760 --961,-797,552 --958,-885,714 --770,306,809 -602,-675,369 --144,-143,-11 -341,-570,-441 --649,677,-743 -403,343,571 - ---- scanner 16 --- --692,-623,449 -543,-617,-551 -784,-472,679 -560,-738,-414 -803,723,736 --868,-717,-800 --756,-686,376 --6,81,-80 --528,436,506 -772,951,-366 -695,860,-458 -696,954,-492 -724,755,601 -80,-14,78 --732,541,-520 -514,-735,-636 --625,-757,393 --833,-698,-600 --534,586,602 --796,496,-497 --843,-726,-747 --536,485,620 --563,544,-480 -725,747,696 -739,-536,621 -630,-507,673 - ---- scanner 17 --- --754,753,-378 --683,-534,-954 -533,-622,603 -498,403,-673 --907,673,-415 -811,-522,-627 -650,-422,-612 --703,732,237 -569,491,723 -526,405,-595 -366,476,-633 -584,549,543 --724,652,-426 -535,-770,576 --880,-851,629 --907,-681,559 --680,-511,-926 -454,-669,691 -1,38,-78 --823,-796,553 --578,-470,-910 -799,-467,-509 --893,683,257 -712,512,673 --788,705,249 - ---- scanner 18 --- --844,226,329 -602,395,686 -478,-694,534 --348,-651,505 --613,490,-691 -348,-738,-528 -99,-39,-2 -368,-688,-528 --469,-664,619 --819,-510,-740 --790,-549,-933 --605,-684,511 -582,323,-917 --821,433,267 -465,-566,523 -483,264,-916 --846,-545,-861 -532,460,-875 --716,303,258 --622,421,-859 -579,362,756 --50,-119,-96 --570,384,-829 -625,314,789 -545,-638,566 -374,-753,-734 - ---- scanner 19 --- -878,378,296 --797,-402,-756 -718,453,-561 -862,-402,-635 --789,-416,-632 --580,-705,635 --512,590,-477 --786,752,516 --487,713,-545 --436,675,-566 -845,-482,-688 --773,558,551 -808,420,-666 --679,-738,771 -734,437,362 -962,-292,489 --23,-11,11 -865,-472,-504 -892,525,380 --737,-513,-660 -767,-284,520 --657,672,528 -841,-333,477 -162,-53,-105 -850,468,-590 --697,-659,753 - ---- scanner 20 --- -557,-760,464 --477,-322,-599 -525,781,-733 --396,-771,757 --418,-697,598 --517,-468,-611 -467,781,-835 -697,769,-790 -714,-334,-432 -765,-489,-513 --115,33,18 -718,634,478 --409,768,-593 --376,644,-630 --373,749,-510 -696,669,466 --818,667,409 --471,-462,-594 -40,-70,140 -683,787,542 --825,723,389 -589,-405,-480 --851,709,490 -648,-700,519 --440,-600,673 -720,-704,425 - ---- scanner 21 --- -748,-630,-477 -545,-599,511 -834,985,537 -887,764,-454 --703,755,410 --650,656,-642 -879,715,-541 --555,-682,-789 -617,-743,516 --462,-670,549 -916,953,632 --669,973,441 --568,653,-650 --497,-582,694 --625,-674,-851 -717,-707,-616 -889,958,481 -100,41,-32 -718,-525,-502 --675,-663,-635 --560,820,-598 --640,842,389 -785,780,-428 --558,-581,473 -500,-708,543 - ---- scanner 22 --- -791,545,-530 -816,515,-425 -896,-546,-641 --417,694,544 --399,436,-637 -379,650,683 -670,-910,856 -759,-521,-700 --833,-911,715 -359,617,546 --367,551,523 --461,-898,-819 --853,-721,764 -408,691,527 -6,59,88 --514,517,-738 --537,-841,-764 -814,-529,-758 -677,546,-348 --29,-122,-30 -532,-914,880 --531,-925,-649 --547,566,581 --841,-806,737 --487,515,-590 -540,-888,804 - ---- scanner 23 --- --600,-462,-505 -969,676,350 -539,367,-688 --757,638,-532 -659,-710,231 -589,-880,258 -420,-428,-674 --404,819,242 -476,551,-652 --504,-344,-579 --747,668,-425 -981,703,435 --768,-702,610 -514,-463,-616 --412,743,268 --749,706,-673 -961,654,245 --562,-318,-583 -513,-497,-746 -106,77,-23 --631,-761,635 --686,-819,627 --542,795,246 -665,-825,315 -530,531,-672 - ---- scanner 24 --- --319,-979,-426 --664,465,584 --793,385,596 --430,-646,617 -885,612,732 --705,449,-405 --372,-954,-417 -511,359,-469 -727,700,750 -533,-628,-549 -548,-575,467 -648,-647,444 -380,411,-440 -630,-637,403 -598,380,-406 -700,-680,-541 --780,579,561 -871,759,816 -6,-30,-98 --568,432,-526 -697,-672,-459 --540,-561,548 --497,-434,607 --483,403,-408 --519,-944,-445 -124,-106,71 - ---- scanner 25 --- -794,-593,-715 --657,696,404 --560,621,382 -743,-397,-739 --789,-588,481 -659,644,448 --852,-457,-625 -665,954,-502 -817,-645,585 --132,31,-22 -749,730,545 -52,-21,55 -811,-419,-785 --935,-576,441 -745,-699,443 -721,762,-524 --497,487,-593 -750,-753,470 -633,746,597 -727,895,-413 --923,-409,-750 --486,780,360 --768,-490,-801 --557,542,-684 --553,448,-756 --795,-571,435 - ---- scanner 26 --- --716,663,621 --706,477,-410 -823,361,-502 --749,-353,928 --770,-739,-500 -768,334,-558 -821,555,433 --767,-517,-454 --649,-602,-483 -464,-656,856 -922,-661,-636 -70,56,10 --634,666,629 --730,-553,893 -919,-787,-712 --769,564,-431 --626,499,577 -512,-673,623 --758,-406,903 -850,366,-653 --735,346,-462 -813,604,520 -828,-695,-635 -719,539,407 -509,-633,792 - ---- scanner 27 --- --781,-794,775 -523,883,-452 -491,838,-561 --497,635,-530 -497,-432,-715 --773,-768,699 -534,-458,-553 -690,830,848 --417,-426,-746 --905,811,422 -712,746,693 --643,-790,751 --954,737,441 -17,148,31 -591,-459,538 --499,-409,-863 -665,-488,517 --119,39,-120 --522,665,-635 --636,666,-453 -496,766,-417 -488,-465,591 --934,770,578 --554,-401,-805 -554,-393,-544 -792,786,733 - ---- scanner 28 --- -875,474,732 -751,669,-640 --354,949,-878 --553,986,-871 -567,-363,592 -894,-337,-815 --322,-415,-682 -786,-364,-722 -679,761,-750 --346,603,885 --375,-418,576 -492,-334,586 --419,-490,494 -902,-282,-642 -560,-373,535 -702,557,-769 -17,32,-102 --309,425,877 --335,-280,-784 --417,563,824 --328,-250,-663 -106,126,67 -815,410,807 --316,-570,505 -823,424,663 --456,959,-777 - ---- scanner 29 --- --741,-481,-792 --625,503,-421 -431,449,245 -585,319,-378 -460,-572,554 --482,-517,538 -512,336,-367 --738,270,467 --790,320,398 --574,543,-588 -504,-644,636 --693,-540,-696 -881,-472,-596 -564,370,-525 -401,-724,625 --730,256,323 -853,-428,-411 --672,-553,-814 --475,-527,595 -502,409,306 --23,-53,-119 --407,-488,544 --595,419,-588 -838,-501,-549 -394,271,253 - ---- scanner 30 --- -850,573,-382 --386,-445,574 -810,650,-487 -807,464,-491 -425,667,659 -631,651,711 -353,-371,673 --781,-369,-563 --746,-285,-419 --771,932,682 --632,-348,-463 --629,561,-652 -336,-301,499 --419,-437,586 -426,-562,-682 -482,-584,-874 --3,40,-88 --85,187,75 --693,532,-731 --569,-442,668 --787,534,-671 --699,946,479 --671,944,575 -404,-347,477 -504,638,724 -420,-673,-815 diff --git a/2021/inputs/day_2.txt b/2021/inputs/day_2.txt deleted file mode 100644 index 917f466..0000000 --- a/2021/inputs/day_2.txt +++ /dev/null @@ -1,1000 +0,0 @@ -forward 2 -forward 6 -forward 8 -forward 7 -down 5 -forward 8 -forward 9 -down 2 -forward 6 -down 9 -forward 1 -forward 8 -forward 6 -forward 7 -down 4 -down 5 -forward 1 -up 5 -down 7 -down 7 -down 1 -up 2 -forward 3 -forward 2 -forward 2 -forward 5 -up 5 -forward 4 -forward 9 -forward 6 -down 4 -down 9 -down 2 -up 6 -forward 9 -up 7 -forward 7 -forward 5 -up 3 -forward 4 -forward 9 -up 5 -down 3 -up 6 -down 5 -down 4 -up 6 -forward 9 -forward 6 -down 9 -up 3 -down 7 -up 1 -forward 8 -forward 3 -forward 8 -up 6 -forward 7 -forward 5 -forward 8 -up 2 -forward 2 -forward 7 -forward 7 -down 1 -forward 7 -up 7 -down 3 -forward 9 -down 5 -down 2 -forward 5 -forward 1 -forward 4 -forward 6 -up 2 -up 7 -forward 2 -forward 6 -forward 7 -down 9 -up 8 -down 9 -down 3 -up 8 -down 3 -down 2 -up 6 -forward 3 -forward 9 -down 4 -forward 5 -down 6 -up 8 -forward 1 -down 6 -down 6 -forward 5 -down 6 -forward 8 -up 7 -down 3 -forward 7 -forward 3 -forward 1 -forward 4 -forward 4 -down 3 -up 9 -up 5 -forward 1 -down 2 -up 4 -forward 7 -up 4 -down 3 -down 5 -down 8 -forward 4 -up 8 -forward 7 -up 3 -up 4 -up 9 -forward 1 -forward 1 -down 6 -forward 1 -down 8 -up 4 -forward 9 -forward 9 -down 6 -forward 9 -forward 8 -down 2 -up 3 -up 3 -down 9 -forward 7 -forward 8 -down 4 -forward 1 -up 3 -forward 3 -down 3 -down 9 -down 5 -up 7 -up 2 -forward 7 -forward 2 -forward 5 -forward 4 -down 7 -forward 7 -up 1 -up 3 -down 6 -down 4 -forward 9 -forward 8 -down 5 -down 4 -down 1 -down 5 -forward 9 -forward 8 -down 3 -forward 5 -forward 3 -forward 6 -down 6 -forward 3 -up 9 -forward 4 -down 7 -forward 3 -forward 7 -forward 1 -forward 5 -down 1 -forward 1 -down 6 -up 7 -down 3 -forward 2 -down 4 -forward 6 -up 6 -forward 8 -forward 8 -down 5 -up 4 -forward 7 -forward 6 -up 4 -forward 6 -down 1 -forward 6 -forward 2 -up 4 -down 6 -down 7 -forward 4 -down 4 -forward 1 -down 3 -forward 5 -forward 5 -forward 9 -forward 3 -up 7 -down 7 -forward 7 -forward 5 -down 1 -down 1 -forward 3 -down 8 -forward 1 -forward 2 -forward 9 -forward 1 -forward 3 -down 3 -up 4 -forward 5 -down 1 -forward 3 -up 7 -forward 3 -forward 6 -up 6 -up 3 -forward 9 -forward 5 -down 2 -up 4 -up 3 -forward 3 -forward 7 -down 1 -forward 5 -forward 5 -down 1 -forward 4 -forward 2 -down 1 -down 9 -down 7 -up 1 -forward 2 -down 2 -forward 3 -forward 8 -forward 4 -forward 6 -down 4 -down 1 -forward 5 -forward 1 -forward 7 -down 8 -forward 9 -down 6 -forward 3 -up 5 -up 1 -up 7 -down 5 -forward 7 -forward 5 -forward 5 -up 1 -forward 8 -down 8 -down 7 -forward 9 -forward 9 -down 3 -forward 7 -forward 2 -down 1 -down 6 -down 1 -forward 7 -down 3 -forward 1 -forward 1 -forward 6 -forward 6 -up 9 -down 3 -forward 9 -down 8 -forward 4 -up 6 -down 4 -down 7 -forward 5 -up 3 -forward 1 -forward 8 -up 6 -up 3 -down 2 -forward 2 -forward 5 -forward 1 -down 8 -down 8 -down 3 -forward 5 -forward 4 -forward 4 -forward 5 -up 5 -forward 2 -forward 5 -up 5 -forward 6 -forward 6 -forward 9 -up 5 -forward 4 -up 4 -forward 8 -down 8 -forward 5 -forward 2 -forward 4 -forward 3 -forward 1 -down 1 -down 9 -down 2 -forward 4 -down 3 -down 6 -forward 2 -up 7 -forward 6 -down 4 -up 9 -down 1 -forward 8 -forward 1 -forward 1 -down 9 -down 3 -down 2 -down 7 -up 5 -down 7 -up 9 -down 8 -down 7 -forward 9 -forward 7 -up 4 -forward 5 -up 9 -down 4 -forward 1 -forward 9 -down 7 -up 9 -forward 6 -forward 4 -up 8 -down 2 -forward 1 -up 6 -up 5 -down 4 -forward 8 -down 3 -down 5 -down 6 -up 1 -up 9 -up 7 -up 5 -forward 1 -forward 3 -down 7 -forward 9 -forward 2 -forward 6 -down 4 -down 7 -forward 3 -down 1 -up 5 -forward 3 -down 3 -down 1 -forward 1 -forward 4 -forward 8 -down 4 -down 1 -forward 3 -down 7 -up 9 -down 8 -down 1 -forward 2 -down 6 -down 9 -down 9 -forward 2 -forward 8 -up 2 -down 5 -down 9 -forward 1 -up 9 -down 7 -forward 8 -down 7 -up 4 -forward 8 -down 8 -down 7 -forward 6 -up 7 -down 4 -down 9 -forward 9 -up 8 -down 8 -down 8 -down 8 -down 5 -forward 2 -up 9 -down 2 -up 7 -down 7 -down 3 -down 6 -forward 9 -forward 1 -down 1 -down 5 -up 4 -down 5 -forward 5 -up 2 -forward 5 -down 5 -forward 1 -forward 9 -down 9 -forward 3 -forward 3 -down 8 -down 2 -down 8 -forward 8 -forward 7 -up 6 -down 4 -down 5 -forward 8 -forward 4 -forward 7 -forward 1 -down 9 -down 4 -down 2 -forward 5 -down 3 -down 7 -down 5 -forward 8 -up 1 -down 4 -down 7 -down 7 -forward 2 -up 5 -forward 5 -up 2 -up 4 -down 9 -forward 7 -forward 6 -forward 6 -down 2 -forward 7 -forward 7 -down 7 -forward 8 -down 2 -up 9 -down 1 -forward 9 -down 9 -forward 3 -down 9 -down 2 -forward 9 -forward 8 -down 7 -up 2 -forward 8 -forward 1 -up 2 -down 7 -up 7 -down 8 -up 1 -up 4 -up 2 -up 3 -down 7 -forward 1 -down 8 -down 4 -down 2 -down 4 -up 8 -forward 8 -down 2 -up 5 -up 4 -forward 7 -up 1 -forward 3 -down 8 -down 4 -forward 4 -down 8 -forward 2 -down 1 -up 9 -forward 9 -down 4 -up 2 -down 8 -up 9 -forward 6 -down 7 -up 7 -forward 9 -forward 1 -down 8 -forward 5 -down 9 -forward 6 -down 9 -forward 9 -forward 1 -down 8 -up 4 -forward 9 -forward 3 -down 9 -up 8 -forward 4 -up 8 -forward 7 -down 7 -up 6 -down 7 -down 2 -down 7 -forward 3 -forward 2 -down 6 -down 2 -down 7 -up 4 -forward 5 -down 5 -forward 2 -up 3 -up 8 -forward 8 -forward 1 -forward 7 -down 7 -down 2 -forward 1 -down 7 -down 7 -up 2 -up 7 -up 7 -forward 4 -down 5 -forward 5 -forward 7 -forward 7 -down 7 -down 8 -forward 8 -forward 8 -up 3 -up 9 -forward 2 -down 7 -up 3 -up 1 -up 1 -down 9 -up 5 -down 6 -up 8 -up 3 -up 5 -forward 7 -forward 3 -forward 8 -forward 4 -up 1 -forward 2 -forward 1 -up 5 -forward 9 -forward 8 -down 7 -up 1 -forward 7 -down 8 -forward 1 -forward 9 -forward 9 -forward 9 -forward 8 -down 1 -forward 8 -forward 7 -up 9 -up 3 -forward 8 -forward 2 -up 2 -down 7 -down 6 -forward 4 -forward 3 -forward 6 -up 7 -down 9 -forward 1 -forward 4 -down 1 -forward 4 -up 3 -down 8 -forward 1 -up 6 -forward 8 -forward 2 -forward 1 -forward 8 -forward 4 -down 7 -forward 4 -forward 6 -down 2 -up 4 -forward 4 -forward 3 -down 5 -forward 8 -forward 4 -forward 5 -forward 7 -forward 6 -forward 5 -forward 9 -down 4 -down 9 -forward 6 -up 7 -down 6 -down 3 -down 2 -up 9 -forward 7 -down 4 -down 5 -forward 2 -forward 3 -forward 2 -forward 9 -forward 7 -forward 8 -down 9 -down 7 -down 9 -down 7 -forward 5 -forward 2 -down 5 -forward 6 -down 1 -down 2 -down 6 -forward 9 -down 3 -up 6 -down 4 -down 5 -forward 3 -forward 7 -down 8 -forward 2 -forward 5 -down 9 -down 3 -up 5 -down 6 -forward 6 -up 3 -down 6 -down 1 -down 8 -down 5 -down 3 -forward 3 -up 6 -up 7 -forward 8 -forward 9 -forward 2 -forward 6 -forward 2 -forward 3 -down 7 -down 3 -down 3 -down 6 -down 2 -forward 4 -forward 3 -forward 8 -up 1 -down 9 -forward 5 -up 3 -down 7 -down 6 -forward 8 -forward 1 -up 6 -forward 3 -forward 1 -up 9 -forward 6 -forward 3 -down 9 -down 4 -down 9 -forward 5 -down 8 -down 3 -forward 1 -forward 1 -down 9 -down 6 -down 3 -up 7 -down 3 -forward 5 -down 2 -forward 7 -forward 2 -forward 5 -up 7 -forward 4 -forward 4 -up 3 -down 6 -down 7 -up 1 -down 6 -forward 1 -forward 9 -down 7 -down 8 -forward 5 -down 1 -down 9 -up 5 -up 4 -up 3 -forward 6 -down 6 -forward 4 -forward 8 -up 6 -up 2 -down 9 -forward 2 -forward 5 -forward 1 -forward 3 -forward 9 -up 3 -forward 2 -forward 1 -forward 3 -forward 3 -up 9 -forward 3 -forward 7 -down 6 -forward 2 -down 8 -up 9 -forward 8 -forward 5 -forward 2 -up 8 -down 9 -up 5 -forward 3 -down 4 -forward 1 -up 9 -down 4 -down 5 -up 4 -down 6 -down 4 -down 6 -down 4 -forward 4 -down 2 -down 1 -down 6 -forward 2 -down 1 -down 3 -forward 4 -down 3 -down 5 -down 5 -up 1 -up 4 -down 4 -down 4 -down 5 -down 4 -down 5 -forward 5 -down 8 -down 5 -down 5 -down 9 -up 1 -up 5 -forward 5 -down 1 -down 9 -down 4 -down 3 -forward 3 -down 2 -forward 9 -down 3 -forward 1 -down 9 -down 5 -up 7 -forward 3 -forward 1 -forward 2 -down 5 -forward 8 -down 3 -down 3 -forward 6 -down 8 -down 3 -down 8 -up 9 -forward 3 -down 6 -forward 4 -down 6 -down 4 -up 5 -forward 1 -up 6 -up 2 -forward 2 -down 8 -forward 7 -forward 8 -down 6 -down 7 -forward 7 -up 3 -forward 3 -up 6 -forward 3 -down 1 -down 7 -forward 9 -forward 5 -up 1 -forward 7 -forward 1 -down 3 -forward 1 -up 4 -up 2 -up 1 -down 8 -forward 9 -forward 3 -forward 4 -up 7 -forward 5 -down 1 -down 8 -down 3 -down 4 -down 6 -down 5 -forward 4 -down 4 -down 2 -down 4 -down 3 -down 3 -forward 4 -up 3 -forward 6 -down 7 -forward 4 -up 2 -down 7 -forward 8 -up 9 -forward 6 -forward 8 -down 1 -down 6 -forward 6 -down 6 -down 9 -up 8 -forward 8 -up 5 -forward 6 -forward 9 -forward 4 -up 2 -forward 3 -down 7 -down 8 -down 4 -up 8 -forward 8 -forward 1 -up 5 -up 4 -up 1 -down 9 -down 9 -up 2 -forward 9 -down 7 -down 2 -up 2 -down 1 -forward 6 -forward 2 -down 5 -down 8 -forward 6 -down 2 -down 3 -forward 6 -forward 7 -up 8 -down 4 -forward 5 -down 9 -down 2 -down 7 -down 9 -down 5 -forward 9 -forward 2 -down 6 -forward 7 -up 6 -forward 3 -up 2 -forward 9 -forward 2 diff --git a/2021/inputs/day_20.txt b/2021/inputs/day_20.txt deleted file mode 100644 index 758420b..0000000 --- a/2021/inputs/day_20.txt +++ /dev/null @@ -1,102 +0,0 @@ -##.....##.#.#####.#...###...#.##..#....##..#.##.#.#....##.....#.##.##.#.#.#...#.#.#.###.##..#.#.#.#..#.##.#...#..#.#.#..#####.##.#..#..##.#..#.#...#.....#.###..#..#####.##...#..##..##...#.#...##.##..##...##.##.#......#...##.##.#####.#....####....######.#.#.......#.############.###..#..#......####......#..##.####.##....#..#.#.###..#.####.####.#.##.##.##..###.#..#.......#....#..########....##..##.#...#.#.###.###.###..#..#.###..#....#.###..#.##.##..###.#.#####....###.##.###.....#######........#.#.##...##.#.... - -..##.#.#..#..##.###....######.####.....#.#..##..####......####...##...#.##..##.##.#.####.##.#.##.#.# -#.#####.#.#..#.#...##.......#.#...##.#..#.######....#.#####....####...##..##..#.#####..#.##......##. -....#..#...#...######...#.#.##.##.####..####....####.##.......#..##.#.##..#.#..##..#.##...##...#.#.. -.#..#####..#..#..#.#.....#..###.###.##.#..#....#..#...#....#####...###.....#.##.####.#######.##..##. -###.###...###..##.##.######..####.#.###..#....####....#...#.##.#.#....#..#....#.#.#.#.#.......#..### -.#.##.#.#####.....#...##.##..##.##...#####....#.##.###.....##.#..#.######.....###...#.###....#...#.# -##..##.##...#######..#..#.###.##.#.###..##.#.#.#..#..#....##.#..###....#..##.#..#.#....##.##........ -#..#......#.###.#####.##..#....#...#.#.#.#.###.##.##..#.#.##.#...#.##..##....#######.######..##.#.#. -.###.....#....###..#.#...##...#.#.####.##.###.#.##..##..###.#.##.####..##.....##....##.......#.#.### -..#.....#####.#.#..##..##..#.###..#.##.#..#.####....##..####.###....##.##.#.#...#..###.##......##### -#..#..####.#.#...#..#...#######.#......#.#.#..#.##.#......#......#.##.####.######....#####..##...### -.###.#...#..####.##...#.#####.##.#...#.#...#...#.#.##.###..#.##.###..#.##...######.#.#.##..#.##..### -####.#.##....#.#..#########.###.#.###.#..#.####.#..##.##..#.#.#....###...#..#..###..##...#..#.....#. -....#####.#..##.....###..#..#.##...#####..##...#...#.##.###....#..####.##.#####.##.#..##..##.#..#.#. -####...#..#####.#..#######.##.#.####...#####.#.#.##....#.###...#.###.##...#...##.##.##.#.#.....##.## -##..##.##.#.#..##..##.#..#.#..#.##.###.#..#..##.#..##..##.##.#......#.##..##.##.##.....##..#.#...### -#..#.#.#.#####..#.##..##....#.##.#.###.#.#...##.###.#..##.##...##..###.##...##.####...##.#..##..##.. -####....##.#.#........###..#..####.###..#.#.#....#####.#.#...#.##.####.#..#...#..#.#...#.#...#.##.## -#..#..##.##..#....#...#.#.....#...#...##.....####.#.###.#.#.####.#..#.#.#...#.##.###...##.#.##..##.# -##..##..#.###.####.#####.###..#..#.....####.#..#.##.#####.##.#...##...###.######.#.#...#####.#..#... -#...##.#......#####..##..#.....#..###.#.....##.....#####....#.##.###...##.####.#.#...#.##.######.#.. -##.#.###.##.......#.##.####..######...######...####.#..######....##.#.......####...###..##.##...#... -#.....##.#####.####..#.##.#.#.....##.#..#....#.....#.....#.#...#.###.#.....#####.#.###..##..##..###. -#.###..######..#....#...#.#.##..#.....#.###.....#..#.##..#..#.##....#.#..#..#..####.#.##.....#.#.### -#..##..#...##..##........#...#....###.###.#.########.#..#.............#....####..#..##.#.##.#......# -.###..#####........##..##.###.##..#.#.#.####.#..##.##.#...#..####..####..##.##..#.#.#.#......#.##.#. -#.##..##..######....#....##.....#...##..#.#.......#.##.#####.###..##...##.##.#..##.###...##########. -.##.########.##..###....#####.###.###.#.#.##.#.#.#..##.#.#..#.##..#....#.####..###.##..###.....##.#. -..##...#.###.#.#.#...#.##..#.#...#..##..##.##..#.#..##..#.##..##.###.##..##...#.###..##...#..#.#..## -.#.#.####.###.#.##.##.#.###.#.#....##.#........#..##..##..#...##..#.#.###.#.###..#...#.#.##.##..##.# -#.#.####.#.##...###.###.#...#.###.#.#.....#..#.##.#...#.#..#.#.##...###..###.#..#.###.#.####.###.#.. -##..####...#.#.####..#..#...###.##.###.##...##.#.#..##..#.###.#.##.##.#..#.###.#..#######.#....#.#.. -.#.#.######..##.#..###.##.#....##....#.#..###.....#.##...#..#...#.#.#.#.##....##....####....#......# -.#.#.#.##.###...##.#...###.#....#.#.#....##...#.######.#.#.#####..#..######.#.##.#.##.....##.####.## -..######...##..##..#.#.#.##.......##.#.#...#.#####...######..#######...####..##...#.##.##.#..#...#.# -##..#.#.#..##....#.##....#.....#.#####..#.#.#.#.#.#####....#..###..###.###...#...######...##..#.#..# -####.....##...##....##.##.#...#..##.#..###.#....#...###...#..######...####.###..##......##..###.##.. -##.####...#.#.#.#..#..#.#.###..##.#....##.##..#..##........##.##.####.##.#.###.#.#....#####.#.....#. -#...#.....###..#..###..##..#.#..#.###.#..#####.#.###..###..#...##.#..##..#...##...#.#.###.#.#.##.### -##.#...#....##.########..##....##..###.#....###.#.#....#...###.....###.#.##.#..#####......###.#.#.#. -###.###.#...###..#.##....#.#.#.........#.#####.#.#...#######.###.#.#.#..#.#...#..##.#...###.#...##.. -.####.###.#..#.###.#.#.######..#####.#...###..#...###..#.########.#.#.#..####..##.###..#..##..##.... -#..##.#.#...####.#..#..#..###.##...#####..#.###......#..####.####.##..###.....###..#....#.#######... -###..##.#.#.#..##..##...#..#.#......#..####....#.##..#.##.###...####..##..####...#...###...##..#.#.# -##.##..#....###.##......#.#.##.#.###..##...##.##.#....#.#.#.###....##..#....#.########...#.....##.#. -#.#..###.....#######..#.###....####...##......####..#...##....#..####.#....##.#...#....##.###.##.... -#....######..##.##..##.###.....##..#.....#....##...#....###.....##.##...##.#..##.####.#..####.##.#.# -.#.#....#..####..#..#.#...#..#..###..#........###.##...##.##....#.#..#.##..#.##...#####...#..#####.. -.##..####..##...##.###.#..####...#....#..#..##.#...##...#.###.....#.#..######.#.#####..#####..###### -.#...#.#..##.#.##..#.#.#...###..#..#....###.########..######.#.####...##..#..#...##.####...#.####### -.#####.##.#####.#.#.##.#.#....#..###.#..##......#####..#.##.#########...##..###.######.....#.#.####. -##.#.#.#.##..##.##...#.....#########.##.#.......#..#####.#..#.#.#######...#..##.#..###.#####...##.## -##.##...###.###...#..##.#..#.##.##.....##.#.#.###...##.#.##..#.#.#...####..#..###.####..#...##.##.#. -#...#.#.#..#.##..#..####.#..###.#####...#..#.#..#####.#..#.......#..#.....#.#.#.#.#.##.##.###....#.# -....##..#..####.##..#.#...#####...#...###.##.#.#...##.##.##..######......####.##.#..#.##..##...####. -##...###..#.##..##..#.##...#.#.####.####..#.#.###..#.#..##.#...#.#.####..#.#.##.##.#.###.#.###.#.#.. -#.#.#.#..#######.#....#..#.#.####....##...##.###.####.####.#..#..##...##..#..##....#...#..##.####... -.#####.###.##.##..##.##.##.#.##...##..#..##...#.#.##.#...####..#####..#.............###..#..#..#.#.. -.##..##..###.##.##.....#...#....#..#..#.#######....#...#......##.###..#....#.#.####.#....###..##..#. -.##.#.###......#.###..#.#..#.##.###.#.#..#.#.##......##.#..##.###..#.###.##...##.#.........###.#.### -.#.#.###......#..#####.###..#..#.##..........#..##.###.#.##.#..#.##.#.###.#.###..#.#...#.###..###... -.###.####.##.##.###..#.#..###..##..##....###.###..#...###...#.##.#...#.#.##..###.##.##..###.##....## -###.########.#.######..#.##.#.#####.###...###.###.#####.###..#...#.###..#...#..#.###.#......#......# -.##....###...##.####....#....#..##...#....###..#..#..#...#...#..##....#####.#..###...##.####....###. -.....#..##...##....####.#..#.#.##..####.#####..###...###.###..##..#...##.....#.#.##...#.....#.####.. -.#.###.#.#..#.####....#.#.##..#.####..#...#.#.#.#..#..#.####.###....#####.#..##..#.#..##.#.####.#.#. -#.####.#.....###..###.#..#.####.#..#.#.##.##..##..#.#.#..##...#.####..#.###...#....#.#...#.#..##.#.. -.#.####...#.#.#..###.##..#.#...##.##.#.....######...#....#.#.##.....###......##.#...#.###..#....###. -..##.###......#.##...###.#...######..##.#.#.#.#..#####.##...#......#....#.####..#..#..#.#.#.#..#..## -#.##.##.#.##.#.#..#.#.#..###....#####..#.#####.####.##.##.#.##.#..#.#.#.#.###..##.##.#####..##.##### -..#.#..##.#.##.#..###..##.#.#..#.#..#.##....#....##..#.#..#.#.##.##.#.#.#..##..###..##.##.#.###.#### -####.####..#..#.#....##.#...##....#.######...#.##.....#.##..#####.#####..##..#.####.#.##......#.#... -.#####..##...#....#.#..#.#.##.#...#.#..#..###.#..#.#..#..##.#.....#.####.#.#...###..#..##.##......## -###.#.....###...###########.##.##..#....##.#.####.#.#.#.....#...###.#.##..#.#.#...###..........###.# -#.#.##.##..#..#.##.#..##.#.#.####..###.#.#..###.#.#.###..###..#.##...#..#..#.#...#...#..##..#..###.. -..#.#####.###..#.......#..#.####.#.######....#.##.##.#..#..#####..#...#.##.##.##..#...#####.##..#..# -##..##...##...#.####...#.#....##..#.....##.###.####.##..###..#.##..#..##..####....##.#...#.####.#..# -#.#.##...####..#.##....##...#.###..##....##.#.#.....###...####..###.###..#...##.###.#.#.#.#....#.##. -..####.##..##.#.....##...#.#.##.#.....#.#.##..##.##..#.##...##....#.#...###..####.#.#######..##.#.## -#.....##...#...#...#.##.#.####.###..#.#..###.#.#..#######...#.##.###.#.###.#.##.#.##.....#.#...#.##. -#..#####.....#..#..###.#####..##.##....#.###.##.#.#..##...###...#######.##....#...###...#####..##..# -#..############.##.####..#..#..#..#.####........#.###.###..#.######...##..####..###......##.#.#..#.. -##.............###.#.####....##.##....#.#.....#.#.###...##.##.#.#..###.##.##..#.#.#####..#.#.#....## -.####...###.#.###.#..#.#.#.####.#......#..#..#.#...#..#..#....#.##..##.#..##.#..#....#..##.#..##.#.# -###.#..#..###.#...#....###..########....##....#....#.###.#.##...###.#.#.#..##..#.##....#.######.#.#. -#.###....#.##.#.#...#.##.###.##..#..###.##...####..#..#..#.####.#..#..#..#.###....#..#.##...##...### -#..#.##.#.#.#...#.#####.##.#..###.#.#.###........####.#####..#.##..###....#..#.#.#...#.#.#..#.#####. -#..##.##.#####...##...##.##..##.#...#.#..#...#..#..#.....#..####.#...#..#######....########.....#.## -#.....####.#.#.#..#.##..#.#.#####..#.#..######.#.#..#...#..#....#.##.##..##.#.###..#.##...##.#...##. -.###.#..##.##....#.##.#..#.##..####.......##..##.##.#####.###.##.....#.....##.###.#.##.#.#.##..#..## -##....#.#.##.###.#.##.#####.#..#####.#..#####.##.#..#..#..#####.##.###.#..###...#.#...#....######..# -####..#..#..#..######...#####..#..#.#...#.##....###...#...##......#...#####.##.#..#.#.##.#...##.##.# -####...##...#..#..##..#.#....#####...#.#....######.#.#.....#...##..##.##..##...##.###.....##....##.# -.#.####.#..##..####...#.##.##.##..#####..##.#.#..##....#..#.#.####..##.##.#.###.##..####......##.#.. -...#..####...##.##.#..#.#....#######.####.#...###....##.#...####.#.###.####.#.#.##.#.......###.####. -.......#..#..#.#..#..#...#.#####.#.#..####..#..#...##..#.#.####.#...#.#.#.#.#.#...#.#.##.#..#.#.#### -...###.#...#..#.#.#.....##.##.#.#..##.#......#.#######.....#..###.#####.##..###.#..#.#######.#####.# -.####.#..#.#.###...#..#####...#....##..####..#..#######.###.##.##..######.###..##...#####...#.##.#.# -#..##..####.#.#.#..#.####.###...#..###.#.##.##..####..###.####.....#..#.#.####...#.#.#.##.##..#.#.## -..#.###.#...###..#...###.###.####..##..#.#...##.#...#..#....#####.#####..##.####..##.##.##..#...#### diff --git a/2021/inputs/day_21.txt b/2021/inputs/day_21.txt deleted file mode 100644 index bfb2937..0000000 --- a/2021/inputs/day_21.txt +++ /dev/null @@ -1,2 +0,0 @@ -Player 1 starting position: 7 -Player 2 starting position: 5 diff --git a/2021/inputs/day_22.txt b/2021/inputs/day_22.txt deleted file mode 100644 index 1d6ce39..0000000 --- a/2021/inputs/day_22.txt +++ /dev/null @@ -1,420 +0,0 @@ -on x=-11..33,y=-6..40,z=-16..37 -on x=-44..10,y=-24..30,z=-24..22 -on x=-34..15,y=-21..27,z=-33..11 -on x=-42..12,y=-43..9,z=1..48 -on x=-31..21,y=-11..42,z=-4..49 -on x=0..44,y=-13..37,z=-30..14 -on x=-41..12,y=-32..17,z=-7..43 -on x=-21..27,y=-16..30,z=-33..15 -on x=-28..24,y=-12..42,z=-6..45 -on x=-15..30,y=-32..14,z=-48..5 -off x=-32..-17,y=-6..11,z=-16..-5 -on x=-29..17,y=-6..48,z=-27..17 -off x=-34..-20,y=-22..-6,z=-24..-11 -on x=-39..5,y=-24..22,z=-49..2 -off x=-48..-32,y=32..45,z=31..44 -on x=-40..5,y=-9..39,z=-2..43 -off x=15..34,y=3..19,z=-46..-30 -on x=-10..36,y=-8..43,z=-36..8 -off x=8..22,y=2..11,z=27..44 -on x=-26..22,y=-17..31,z=-23..30 -on x=55966..74708,y=9028..39775,z=-23782..-12392 -on x=46912..62342,y=34758..55202,z=5912..31510 -on x=63138..67807,y=40967..45502,z=-23583..-10004 -on x=-73495..-56406,y=41511..71705,z=5127..32006 -on x=-23106..-1748,y=-86112..-68506,z=-39397..-15794 -on x=-52779..-45652,y=19079..39796,z=49639..57070 -on x=-79175..-53055,y=34141..54701,z=4583..26379 -on x=26517..36583,y=-42144..-26773,z=-80939..-45310 -on x=-47044..-23501,y=-79682..-68957,z=-6125..20082 -on x=-54276..-29269,y=-45877..-28470,z=-59917..-38428 -on x=-23998..7268,y=55542..81737,z=42421..63898 -on x=-94509..-71314,y=-22686..18,z=-22100..-3746 -on x=-74781..-51149,y=-52534..-38370,z=3590..25687 -on x=-50373..-45841,y=-28285..-6170,z=-78397..-51064 -on x=65214..88034,y=24285..54786,z=-6183..23064 -on x=-31431..-12447,y=30325..57775,z=-63903..-49927 -on x=61099..80636,y=13112..36642,z=9225..37647 -on x=49227..58281,y=-72690..-46916,z=6114..26803 -on x=49316..61601,y=52184..69325,z=-34233..-8387 -on x=-8085..8021,y=-67231..-31814,z=-70317..-60600 -on x=43203..69568,y=-38081..-12285,z=-48526..-36342 -on x=67521..77200,y=-30319..-21173,z=-39992..-23255 -on x=-24435..-910,y=-28467..-9403,z=74299..85044 -on x=-68278..-46406,y=32963..49543,z=-36781..-5810 -on x=38044..59188,y=-39588..-15132,z=-78211..-59118 -on x=-16359..8709,y=-83601..-70086,z=-41614..-18943 -on x=-67079..-53633,y=-47134..-17665,z=-33888..-12731 -on x=-10203..25856,y=-65803..-37565,z=-80018..-48632 -on x=-20788..12729,y=-7421..3011,z=-96951..-78895 -on x=36480..60613,y=-69685..-56878,z=-42024..-22583 -on x=-81439..-53199,y=30801..58467,z=5317..21254 -on x=20078..46684,y=47464..77622,z=25360..46337 -on x=51573..75800,y=-51556..-33538,z=-48932..-30407 -on x=-19220..-9675,y=29516..54528,z=58963..71318 -on x=-89405..-71366,y=329..20658,z=17088..39485 -on x=48807..65272,y=-11182..-2515,z=33689..67952 -on x=-62185..-33194,y=-32027..-4968,z=47218..70105 -on x=-49260..-25903,y=-59470..-34424,z=-75405..-44239 -on x=-69424..-62899,y=37068..55605,z=-3476..5226 -on x=-24786..-21772,y=66159..77802,z=-51515..-13605 -on x=-37464..-7009,y=-24318..-14439,z=-88882..-56080 -on x=13491..48426,y=-86533..-69233,z=-11101..8820 -on x=18137..36596,y=56982..87194,z=-26391..-7218 -on x=-73986..-65455,y=-40459..-25641,z=5811..22531 -on x=56480..72410,y=-23085..373,z=-54884..-44893 -on x=-72..9616,y=33541..62581,z=-76024..-41529 -on x=5811..29667,y=76040..84275,z=3794..19078 -on x=31769..54691,y=-72297..-54884,z=11568..30599 -on x=38705..40732,y=53076..81496,z=-20757..9517 -on x=-13332..6003,y=-92149..-67470,z=13826..25305 -on x=-36361..-18175,y=-7198..5782,z=-85116..-65760 -on x=72099..89917,y=-35339..-6561,z=-18702..3529 -on x=14916..21176,y=-17870..14037,z=66567..80508 -on x=15650..31204,y=-65831..-46311,z=-71381..-47512 -on x=57185..76911,y=-2966..9137,z=39217..42970 -on x=-21218..-9089,y=60853..66598,z=-65895..-49482 -on x=12217..37563,y=-33737..3116,z=-79589..-71994 -on x=-24435..-1179,y=61379..96140,z=5111..13700 -on x=-47837..-24016,y=24730..38884,z=62380..65554 -on x=-79483..-69531,y=-3888..15433,z=-50484..-22944 -on x=-74982..-54797,y=-59699..-43075,z=1572..23991 -on x=22536..39698,y=-69795..-36738,z=47715..68342 -on x=-16003..-2396,y=70179..88747,z=17005..49146 -on x=22554..32407,y=-80100..-66240,z=-22164..-1729 -on x=-13583..-6556,y=61638..96038,z=-13494..-7490 -on x=12236..31240,y=-82560..-68788,z=-44096..-25380 -on x=-40040..-32781,y=-7855..12988,z=-87105..-60530 -on x=-50283..-24489,y=43700..58185,z=-45955..-26056 -on x=-62151..-46123,y=-75045..-45373,z=7112..34441 -on x=-56568..-39255,y=40679..69755,z=31070..49467 -on x=-6977..-4516,y=-50981..-37765,z=53142..81539 -on x=58949..79172,y=-38054..-11546,z=-55399..-43258 -on x=12967..29648,y=55993..84110,z=30089..48256 -on x=9968..38213,y=-75798..-54386,z=-28175..-12716 -on x=-44311..-7274,y=-80148..-59517,z=-14241..1861 -on x=18546..46490,y=-65733..-40860,z=-62118..-37572 -on x=-2271..26766,y=64511..83099,z=-51416..-25251 -on x=-90601..-71814,y=6192..25836,z=-32952..-14912 -on x=-26569..820,y=-10340..22351,z=61333..79466 -on x=-9709..3302,y=57621..71334,z=28122..53666 -on x=-75028..-52307,y=-3116..31441,z=33506..37957 -on x=35446..66149,y=25301..62450,z=-42423..-34112 -on x=-63763..-42164,y=-66010..-55301,z=-33540..-2074 -on x=-51080..-35163,y=-76248..-59521,z=22498..45227 -on x=48050..69664,y=48245..50439,z=-43346..-10038 -on x=61239..88801,y=63..10257,z=16547..29381 -on x=1461..12900,y=58310..67961,z=43110..67087 -on x=-64925..-51002,y=-47822..-29558,z=-38492..-17616 -on x=-30974..-14734,y=18687..30483,z=-86407..-67736 -on x=21136..43241,y=38836..54209,z=37478..60357 -on x=57476..77217,y=8846..25808,z=23991..44615 -on x=-23202..8649,y=-73327..-58989,z=-56906..-37911 -on x=58046..60268,y=-13295..4247,z=-61356..-39657 -on x=-71350..-45157,y=-41433..-31528,z=21203..44630 -on x=-94860..-69586,y=8228..33917,z=-6572..28035 -on x=24637..30475,y=51768..66115,z=39375..45973 -on x=-12988..12447,y=-80825..-60518,z=-20069..5301 -on x=-91600..-69209,y=-30521..-20316,z=11234..22677 -on x=-7421..-3636,y=-40727..-17229,z=64137..86775 -on x=59523..76484,y=6288..39603,z=-22000..-3094 -on x=63294..78222,y=-50184..-33082,z=-14565..19078 -on x=43627..60468,y=-52929..-40706,z=27002..50322 -on x=-32412..-6949,y=-90331..-73353,z=522..4134 -on x=-19932..-835,y=43302..58246,z=55217..67369 -on x=-22140..-1580,y=72424..88097,z=-30186..-4633 -on x=32994..47253,y=35570..47312,z=-74294..-42106 -on x=-60383..-49562,y=42559..74096,z=-23034..-766 -on x=47172..63440,y=-69364..-45568,z=-6117..10614 -on x=-81089..-61599,y=27441..62058,z=12608..35576 -on x=34923..69365,y=13653..38800,z=-77261..-43750 -on x=41054..61704,y=27512..34800,z=-57849..-40312 -on x=22144..34980,y=19631..29700,z=-86432..-55572 -on x=-12122..15745,y=-75805..-66340,z=36641..49918 -on x=30910..41979,y=-51045..-39883,z=40132..60580 -on x=16087..41362,y=69442..78280,z=-20140..-6620 -on x=-2498..12657,y=66055..88671,z=24902..37865 -on x=-53541..-33332,y=40522..63114,z=17690..23330 -on x=-25486..-14848,y=-22167..-10217,z=73479..81666 -on x=-49904..-21142,y=-32441..-19796,z=-65094..-48964 -on x=-77185..-52199,y=-43621..-29163,z=-2980..29505 -on x=47628..62285,y=-27324..-6159,z=54741..76523 -on x=-68672..-53382,y=13874..29953,z=-52436..-24787 -on x=24729..35483,y=-39432..-31141,z=55462..68911 -on x=-85643..-60966,y=-16215..708,z=27959..49870 -on x=-70023..-44399,y=28742..46887,z=-48656..-27334 -on x=13237..38992,y=72316..93275,z=9371..18339 -on x=3601..27855,y=-53221..-37588,z=-79390..-59309 -on x=73624..87421,y=647..26355,z=-30957..-5423 -on x=-70851..-47736,y=-45072..-24946,z=37815..58192 -on x=-19325..7381,y=-20048..-3907,z=70818..83270 -on x=65532..77053,y=-13023..4822,z=-55535..-29335 -on x=-77943..-60312,y=18202..34941,z=12108..41626 -on x=-76720..-58569,y=-42973..-22667,z=4073..29355 -on x=46174..59694,y=44339..51223,z=28653..59550 -on x=-44238..-29509,y=-87529..-58268,z=5760..16252 -on x=-62428..-54590,y=7475..19744,z=-69355..-39348 -on x=-40490..-24926,y=11223..28033,z=53505..73784 -on x=-61821..-41060,y=-65031..-26842,z=33274..53261 -on x=-89724..-64590,y=-19721..-327,z=-26607..-9599 -on x=-34431..-20563,y=50755..68833,z=-56541..-35697 -on x=55247..88432,y=7981..44436,z=7759..16910 -on x=-66628..-53580,y=-62370..-42076,z=16219..33691 -on x=14414..42406,y=-85437..-53970,z=17700..34996 -on x=-83467..-76235,y=5890..16777,z=-7053..13257 -on x=38443..46746,y=-76565..-51921,z=-7708..3586 -on x=-68726..-52259,y=32484..44835,z=25077..37882 -on x=-74597..-50281,y=-11754..6056,z=-62256..-26807 -on x=-33170..-16817,y=59734..75543,z=5119..42517 -on x=-37088..-7851,y=21070..40392,z=52712..84858 -on x=-38459..-5698,y=-80141..-51196,z=-42325..-17367 -on x=18454..47906,y=-85662..-56686,z=14396..33029 -on x=-41249..-27006,y=59650..74737,z=-35603..-18205 -on x=-35206..-18846,y=-12542..-592,z=-88090..-60234 -on x=62210..77161,y=-43088..-16886,z=24074..54283 -on x=-15430..13172,y=1904..22129,z=-80564..-70232 -on x=-29859..-12978,y=56105..82581,z=-48724..-23210 -on x=-56887..-50053,y=-29444..-16505,z=-61442..-38029 -on x=30604..54367,y=46212..53964,z=-52852..-34343 -on x=70181..78863,y=-45106..-13492,z=-9745..19529 -on x=8322..22435,y=42430..55347,z=52882..64672 -on x=-69478..-61259,y=1778..24792,z=-63998..-37991 -on x=16179..23834,y=49247..61008,z=51575..70785 -on x=-92447..-65736,y=-35679..-10409,z=-19722..-7466 -on x=-9579..2162,y=-80611..-59056,z=-42233..-29154 -on x=48383..66349,y=-12960..16968,z=-58258..-46009 -on x=-32357..-9984,y=-68069..-49239,z=31105..47676 -on x=66946..83179,y=-5224..11437,z=-43928..-24041 -on x=13814..39369,y=-76170..-41530,z=-56800..-40886 -on x=62282..72077,y=17785..48293,z=8677..37715 -on x=-44382..-29991,y=60002..79555,z=3843..17588 -on x=75247..83629,y=-28545..-6291,z=-10819..-2122 -on x=-956..26375,y=-81524..-71549,z=26313..43930 -on x=30012..36383,y=34248..52598,z=56265..66326 -on x=-48730..-24738,y=-80273..-57415,z=6805..13225 -on x=-58593..-47213,y=-18537..4027,z=54774..80145 -on x=3810..25698,y=70004..81369,z=-51070..-24151 -on x=-24437..-5093,y=-86059..-69302,z=3319..7790 -on x=-31365..-19431,y=-88889..-63893,z=17698..43049 -on x=19977..46038,y=4288..24488,z=65477..72640 -on x=9206..45518,y=-49253..-18169,z=-75545..-51533 -on x=-4478..11513,y=-3222..14383,z=71041..92715 -on x=-83552..-57412,y=-35665..-16854,z=15963..44817 -on x=34730..53067,y=44234..58027,z=31635..55954 -on x=33780..55108,y=-85336..-63582,z=-60..19260 -on x=-60709..-48773,y=27826..52995,z=47092..56789 -on x=4599..16485,y=59775..83142,z=-8444..14929 -on x=39634..47449,y=-10709..-3483,z=56673..65961 -on x=17954..21090,y=46398..64655,z=40116..72009 -on x=51479..62837,y=-27485..-1712,z=-59021..-32232 -on x=26397..48116,y=49913..64456,z=32763..46893 -on x=-40166..-6453,y=54294..88546,z=19469..46914 -on x=-11587..-3465,y=-76385..-45142,z=-55088..-47775 -on x=25337..58818,y=-73241..-50645,z=-60403..-31242 -on x=18670..27833,y=10699..25997,z=-78411..-53777 -on x=57409..75450,y=40962..60348,z=11226..25913 -on x=55748..74851,y=-54477..-43708,z=-28494..-15041 -on x=26830..53176,y=-67735..-51525,z=13985..45082 -on x=-8911..13239,y=-74882..-67577,z=-51935..-26067 -on x=63953..87466,y=35424..47855,z=-20625..-3868 -on x=-20694..2154,y=-3805..15541,z=68000..85521 -off x=-64858..-38773,y=-22979..-12516,z=-72865..-52375 -off x=-36214..-19494,y=-48856..-31044,z=55849..67059 -on x=18769..39214,y=59223..74065,z=-25526..-7466 -off x=4093..19302,y=65172..80228,z=-18875..4459 -on x=-72853..-64913,y=-44437..-23173,z=16546..27389 -on x=-74000..-63343,y=-17952..-11976,z=26071..46600 -on x=55718..89196,y=8034..31868,z=23749..41136 -on x=-61312..-25331,y=60154..82342,z=-29251..-12808 -off x=57932..88657,y=1045..32675,z=23992..37899 -on x=41352..50542,y=-36888..-13463,z=-58939..-54480 -on x=-51121..-21791,y=-6418..16683,z=54132..72199 -on x=22624..43927,y=-9683..12070,z=69475..91968 -off x=-23521..-7662,y=64707..75601,z=-43845..-16424 -off x=-42653..-21236,y=-21354..4353,z=-77029..-71014 -off x=-4664..4504,y=52543..79156,z=29919..46671 -on x=35818..65014,y=41342..70254,z=9185..33026 -off x=-52865..-28342,y=-58289..-33044,z=45771..63238 -off x=-16924..22809,y=60544..81137,z=-66967..-44290 -off x=-30590..-350,y=68584..95548,z=-15319..250 -on x=41065..61522,y=-21779..-15976,z=-79786..-53698 -off x=9525..33346,y=-80916..-56811,z=-61811..-23799 -on x=-85466..-61472,y=-42722..-26161,z=-7728..13705 -on x=29179..51220,y=41045..65007,z=-55867..-32532 -on x=-73524..-55904,y=32162..34120,z=34985..43261 -off x=-15158..643,y=-57242..-24535,z=-75496..-57777 -on x=-26523..-3554,y=-24061..-7071,z=66096..78008 -on x=-68958..-44626,y=43052..58235,z=-27098..-9342 -on x=-84084..-64394,y=-24045..-11011,z=-38978..-15498 -on x=62184..82898,y=-27380..-1888,z=-61447..-39051 -on x=635..23767,y=-54960..-40730,z=67501..86970 -off x=32259..60280,y=41478..46289,z=-55818..-39638 -on x=-52256..-32444,y=38811..69688,z=31521..54783 -off x=2128..5231,y=-81966..-55811,z=-38574..-17048 -on x=-65624..-36454,y=-49647..-30716,z=28718..58149 -off x=33334..50958,y=-3486..16115,z=53857..80381 -on x=-58284..-34017,y=47293..84420,z=-25796..-2948 -on x=-58130..-39664,y=53973..69546,z=2549..17650 -on x=-70876..-46014,y=-61557..-30740,z=19380..39271 -off x=64070..92955,y=7220..28103,z=-4003..32849 -on x=-17535..-470,y=-22144..-17298,z=61197..92477 -off x=13631..45033,y=48414..60988,z=-54682..-42444 -on x=-83453..-72620,y=-22121..-6685,z=-31229..919 -off x=-71588..-48104,y=23697..43494,z=32068..53528 -off x=-73315..-58835,y=29130..39683,z=1818..34677 -off x=-44335..-24761,y=-39652..-28447,z=41105..78848 -on x=1354..23297,y=-87726..-59186,z=16976..34498 -on x=-77045..-53438,y=-9837..13204,z=43872..53252 -on x=-58059..-39277,y=35454..70346,z=22294..32697 -off x=8134..22913,y=27396..53406,z=52828..84609 -on x=53526..67803,y=41292..59253,z=-35827..-26953 -on x=-72413..-43823,y=-58264..-44414,z=-9911..-2235 -off x=-27147..3300,y=2538..20789,z=-91151..-70237 -on x=46087..67095,y=-48984..-29278,z=-54699..-40903 -off x=63670..64821,y=-41248..-3363,z=24908..46333 -off x=2632..22202,y=24847..51542,z=-80467..-64757 -off x=-34027..-18196,y=-47105..-23465,z=-68869..-55326 -on x=41678..54255,y=2720..29359,z=46231..75450 -off x=-4213..20821,y=48132..81158,z=-63979..-27510 -off x=-2170..16894,y=56662..79540,z=44419..50160 -on x=-19834..2114,y=-46280..-10250,z=-77417..-57318 -off x=65385..89282,y=26089..56411,z=-28795..-1266 -off x=-86617..-60352,y=-34282..-6783,z=24678..35755 -on x=-51880..-22038,y=-48878..-34685,z=-54503..-34099 -off x=-6185..7523,y=-80929..-62538,z=-49136..-32906 -on x=-69472..-44311,y=-59766..-35060,z=7986..17809 -on x=-45836..-23351,y=34528..58283,z=-62062..-39907 -off x=-65989..-53476,y=-18..21291,z=45332..55683 -on x=57549..70543,y=6235..34900,z=18154..39248 -on x=-32196..-20894,y=-88953..-64565,z=17496..42389 -on x=-72208..-61402,y=-59142..-31400,z=-29975..-19314 -on x=-25537..-17772,y=63785..78096,z=38132..43670 -off x=-10614..4852,y=1037..34081,z=-88803..-72167 -off x=-71969..-40008,y=45531..61020,z=29194..44542 -off x=-97625..-62135,y=232..24412,z=-6113..4401 -off x=28968..62715,y=-63990..-41136,z=-34394..-16528 -on x=7127..29392,y=-25905..2139,z=67977..79951 -off x=47116..69445,y=43251..70092,z=-35789..-7878 -on x=46541..71892,y=4788..27226,z=31207..52344 -on x=-39441..-22248,y=19261..53073,z=-62518..-57715 -on x=56116..84722,y=-31369..-3302,z=-50073..-34755 -on x=-65536..-47632,y=22971..39112,z=25566..54444 -on x=-8629..13229,y=-55339..-45230,z=46953..70772 -off x=-91996..-64629,y=-22054..5640,z=-18034..3409 -off x=-79435..-68358,y=-50488..-21783,z=-23189..7130 -off x=-31853..-18496,y=35962..43812,z=-78415..-57499 -off x=-53097..-43476,y=-8868..6641,z=-76785..-54439 -on x=18376..52266,y=-11181..7160,z=-77629..-69712 -on x=-53162..-28262,y=-41919..-8199,z=-62348..-54228 -on x=2939..28130,y=61801..91442,z=-11519..4615 -off x=8319..29664,y=-14307..17453,z=59897..95416 -off x=46661..65036,y=-13305..7325,z=-75798..-62581 -off x=-37957..-23478,y=47391..59983,z=35372..55611 -on x=61515..88770,y=-17267..12084,z=-23518..7771 -on x=-48305..-25680,y=-81436..-53793,z=-2439..29818 -off x=-42779..-39019,y=51297..69812,z=37178..50350 -on x=40203..63867,y=-66235..-51382,z=-34991..-11770 -off x=55954..70659,y=33330..68709,z=-12043..-2384 -off x=-29487..-3952,y=-3496..10014,z=-79573..-61455 -on x=55711..74934,y=26358..37763,z=-46597..-28486 -on x=36775..62937,y=43496..55938,z=21471..41166 -on x=-27922..-2750,y=75238..84184,z=-16664..-38 -off x=50743..58719,y=-44526..-33474,z=-67293..-43466 -on x=9282..16932,y=-96919..-64095,z=10331..30664 -off x=-95473..-72710,y=-28988..-8136,z=-10970..9409 -on x=-85389..-67764,y=13685..19641,z=-9526..33 -off x=19898..50323,y=-68676..-46162,z=-62425..-39053 -off x=60425..65023,y=-8453..14534,z=-58877..-45278 -on x=-25428..-720,y=-80104..-62018,z=-1677..13124 -on x=-48530..-37691,y=52321..74595,z=-26453..-21715 -off x=-14126..19313,y=64721..76129,z=-54258..-25715 -on x=-24136..-16023,y=7633..27624,z=56759..87267 -on x=-41213..-21916,y=-34990..-16249,z=-76987..-54730 -on x=-22621..13916,y=62123..74807,z=39068..51378 -off x=-16365..-9094,y=-6481..22514,z=-93559..-64057 -on x=9583..36843,y=-71013..-49912,z=33751..53993 -off x=-65469..-44611,y=25911..46482,z=40095..65714 -off x=-57145..-39149,y=48498..63803,z=12913..42535 -on x=57651..61770,y=-28419..-6391,z=40364..49746 -off x=-75576..-61139,y=-10503..5482,z=-46770..-27191 -on x=-49397..-16777,y=54120..63032,z=-60010..-24837 -on x=-4249..14013,y=20636..52130,z=-75802..-60246 -off x=15523..45332,y=14920..27687,z=-85777..-65031 -on x=50324..75616,y=-58333..-39550,z=1860..9173 -off x=-10760..13032,y=63819..67101,z=30106..45713 -on x=-54735..-16505,y=27874..38730,z=57002..66636 -off x=70142..77459,y=-34967..-4642,z=-28373..-18318 -off x=12924..33851,y=50318..76053,z=33776..47995 -on x=16848..37045,y=39096..53275,z=-64850..-39585 -on x=-48828..-46005,y=-37976..-11049,z=49769..63745 -on x=46761..70212,y=7696..34085,z=-72620..-51191 -on x=-10919..12760,y=-7270..780,z=-93456..-79203 -off x=-12629..17924,y=-81153..-62978,z=-38501..-34017 -on x=33047..42293,y=21628..52131,z=-74825..-42520 -off x=-84656..-57493,y=-29917..-648,z=-39715..-19579 -off x=-39926..-16074,y=-75937..-72179,z=-10631..-2155 -off x=42338..63456,y=-10927..24423,z=-69719..-51820 -on x=-37883..-27447,y=-17784..-7063,z=53825..76661 -on x=72563..90078,y=-2936..19833,z=-26987..-9538 -off x=-61796..-59595,y=-52405..-15746,z=-41889..-25050 -on x=-72693..-53462,y=-25228..-8310,z=16685..25001 -on x=16133..36168,y=-81922..-62779,z=4714..35868 -off x=-38135..-35256,y=40495..63520,z=33859..50700 -on x=-46578..-23290,y=-38997..-19018,z=-80304..-53511 -off x=-68102..-46534,y=33132..63478,z=23336..43023 -on x=-46386..-13403,y=53450..62050,z=34840..56841 -off x=-69714..-58168,y=42581..60977,z=-43045..-15973 -off x=38139..58983,y=33227..67599,z=37065..46982 -on x=-68743..-57954,y=34901..65113,z=14186..30879 -on x=-27159..-2946,y=58211..72993,z=24144..40462 -on x=-12488..3541,y=24512..47183,z=61876..94098 -off x=-21147..-2889,y=12986..18356,z=-92621..-55775 -off x=35806..71388,y=1638..37737,z=-64849..-46796 -on x=-57793..-36707,y=58839..68998,z=-17534..3308 -on x=-59750..-40225,y=-69581..-44645,z=-9931..5157 -on x=-8485..20686,y=-65003..-40249,z=51991..65690 -on x=-39133..-20148,y=9640..31346,z=-93338..-57726 -off x=32301..60879,y=-67384..-38498,z=38892..50795 -off x=-17417..849,y=-29007..-5825,z=75615..94231 -off x=4371..14179,y=18655..31552,z=69630..80480 -on x=-30156..1315,y=-75493..-59188,z=-45573..-23628 -on x=-19974..-7274,y=48510..70738,z=55087..64610 -on x=21319..39947,y=-76865..-54489,z=-36911..-27790 -off x=19086..32378,y=42017..57587,z=-68959..-44763 -off x=-83..8471,y=-72344..-50195,z=36481..68586 -off x=-36375..-25938,y=-69174..-48526,z=-48854..-46853 -on x=-15285..11416,y=-76130..-59563,z=-46407..-22439 -off x=-69367..-52426,y=25391..46453,z=-10234..7828 -on x=-72727..-60225,y=-38827..-25690,z=-42223..-18667 -on x=42838..64386,y=12680..29933,z=-68831..-52183 -on x=18070..42298,y=-78992..-57543,z=-20906..-13301 -on x=-55875..-39308,y=-55098..-35781,z=30971..57698 -on x=35119..47623,y=-73663..-54295,z=-3539..26342 -on x=-84065..-61161,y=-3207..33256,z=-32001..-15249 -off x=-54756..-30571,y=58767..68023,z=12370..28119 -off x=-87490..-62979,y=5645..40459,z=-21364..-3385 -on x=24194..37541,y=-33900..-28321,z=-78880..-54593 -on x=-62478..-38761,y=22212..41436,z=36708..62622 -off x=56713..68194,y=-20789..-14297,z=-61095..-50322 -on x=-72902..-44221,y=-42793..-26280,z=-48733..-33791 -on x=64373..86115,y=15064..33167,z=16921..49077 -off x=24753..42194,y=-6759..12099,z=70552..85054 -off x=-12199..24098,y=49705..63058,z=-63860..-38435 -on x=3734..42354,y=61212..95571,z=-10562..17698 -on x=-17408..-5695,y=-609..8253,z=-97454..-74672 -on x=-42167..-22341,y=-71935..-42581,z=-50253..-24178 -on x=-54481..-38663,y=-16909..21415,z=-77181..-44426 -off x=-11477..9297,y=-50630..-26321,z=55462..79296 -off x=-84974..-60153,y=-48601..-19827,z=8848..26585 -on x=-62596..-36034,y=-58415..-41586,z=-55666..-27573 -off x=47430..67745,y=18197..49591,z=31865..42439 -off x=23925..32353,y=32122..54623,z=57938..79131 -on x=-16801..4162,y=-98731..-68459,z=4760..29002 -off x=20414..42287,y=44769..56648,z=-67173..-38591 -on x=57757..79682,y=-35686..-15384,z=37594..53205 -on x=43425..77866,y=-54033..-33577,z=-14291..1892 -off x=61941..77486,y=-15977..7549,z=-42755..-23589 -off x=-46801..-17722,y=-76833..-62069,z=-16214..21958 -on x=-33113..-17668,y=36644..50102,z=50787..74022 -off x=60521..75760,y=23551..43986,z=-20580..-6589 -on x=-14911..14191,y=57578..66612,z=-60746..-39130 diff --git a/2021/inputs/day_23.txt b/2021/inputs/day_23.txt deleted file mode 100644 index 3d20443..0000000 --- a/2021/inputs/day_23.txt +++ /dev/null @@ -1,5 +0,0 @@ -############# -#...........# -###B#B#D#D### - #C#A#A#C# - ######### diff --git a/2021/inputs/day_24.txt b/2021/inputs/day_24.txt deleted file mode 100644 index 9c0248a..0000000 --- a/2021/inputs/day_24.txt +++ /dev/null @@ -1,252 +0,0 @@ -inp w -mul x 0 -add x z -mod x 26 -div z 1 -add x 12 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 6 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 1 -add x 10 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 6 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 1 -add x 13 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 3 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 26 -add x -11 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 11 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 1 -add x 13 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 9 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 26 -add x -1 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 3 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 1 -add x 10 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 13 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 1 -add x 11 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 6 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 26 -add x 0 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 14 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 1 -add x 10 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 10 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 26 -add x -5 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 12 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 26 -add x -16 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 10 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 26 -add x -7 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 11 -mul y x -add z y -inp w -mul x 0 -add x z -mod x 26 -div z 26 -add x -11 -eql x w -eql x 0 -mul y 0 -add y 25 -mul y x -add y 1 -mul z y -mul y 0 -add y w -add y 15 -mul y x -add z y diff --git a/2021/inputs/day_25.txt b/2021/inputs/day_25.txt deleted file mode 100644 index 15fb35a..0000000 --- a/2021/inputs/day_25.txt +++ /dev/null @@ -1,137 +0,0 @@ -..>>.....>.v.>..v.v..vv..v..>.v.v.>>..>v....>.>>..v>vv..v>..vv.v.v.>>>..v...>.>...v..>v...>>.>>....>...vv..>>.v>>.>>.vv.v.....v.vvv>.>>.v.> -vvv>.>v>...>>.v>v>..>.v...vv..>>vvvv...v>..v>.>v>>..>vvvv>v.>....vvv.>.v...v..>.v..vvv>v>..v...v...>>>...vv......v>v....v>.>>.>.>.v.....v.. -..vvvv........>>..v>......>vv>>v...v.>.>..>v.>..>>>.>...>v.....v>.v....>v>>.>.....v.>...v.v>...>.>........v..v.v.>>v.v>.>v...>vv>..>>>.v..v -.>>v>vvvv>>v.>vv>v.....>.v..>...>..>v>>>.v.v..>.>>>.v.>...>v...v....>........vv.>>v..vv.>>.>..v.>.>>v.v.>>...>>>v.>v>..v...>..>...>>>v..v>. -.v..v.v.vvvvvv...vv..>>.>......v>..v.>>..>v>>.v>v.>.v.>>..vv...v.>..v>.>.>v>>.>v..v.>>.>.v>v>.v>>>vv>.v..v>v....v.vv....v.....v..v.>...>.v. -v..>..>.>....vv..vvvv.v..>>.>.v.>v>..vv>..>..>..>.vv.vv.vvvvvv.v>vvv.v>v.v..>..v.vv.vv..v..>>vv...v.v.v..>..>v....>.>..v..v>....v>>>..>..vv ->>..>..v.>>..>>>.v.>>.>v.>..v.v>..v..vv..>vv>..v.>.>v.v..v>...v.>v>.v>vv>v>.......v........>.vv>>.>.v>.>v>..v.vv>vv>>.>vv...v.>>v>v.vv...vv ->v>..>v.>v.vvvvv>>.v.v.v>v...>>.v>.v..v>>v...vv..>...v.v.v.vvv>.>>vv.>...>..v..v.>>.>.>..>...>....v.>v....v.v.v>>v..>v>.>.v>v.>v...>..v..vv -v..>..v..v>.>>.>v.....>v..>.v.v..>.>>.>>v...v>vv..>.v.>.v>.v>.v......v.>>>..>>>.>>..>.v>.vv>>..v...v...>...v>..>v>.>>v>...vv......>>v...v.. -.....>vv.....v.>v>...>>.>>.>>.vv........>v.>......vvvv...>v...v.v>vvvvv>..v.vv.>v>>vv.v.>.>.>....vv...v....>.v>.v>v..>v.v..>.>.v.>>v.>..... -..v.>>.>..v>v.v.v>.v.v.>v...vv.>v.vvv>.v>>.....v>>.vv..>v..vv>>.vv..>..>v.vv.vv>>vv....v..>.vv..vv.>v.>vv>v>.v>..>>.>v..>>.....>>v.....v>v. -v.>v.v...v....v.v>.vv.>..>>v>v>.>v>...>.....>.>>...>>..v...>..>v>>.v..>>......v>v>.v>.>>.>....>v.>..v...v.>>v>v.v..vv>>.v.>...>vvvvv.vv...v -..>v...>.vv.>.v.v..>v.v..>...>v.>>.v.v>..vv>>.v.v>.>v.>..v.>.v>....vv.v.>.v>......v>.v>..>>..vv..vvv.>.>..>.vvv....>v>...>>>.v.......>.>... -.>vv...v......>vv.v.vv>...>v>>v.>>>>....v.v>.>.>v....>.......>..v...vv>.v....vv...vvv.v.vv>.>>vvvv>v..v....vvv.v>....v.....>...v.v>vv.v...> -..>.vv>vv>>>v..vv.>..>>....v>v.>..>vv>....vv.v.vv>.>..>...v...vv>v.v>>>v>>...>v..>>.>..v>........v.vvv.v.v.v>..>..vv.>v.vv..vv>vv.>.>>.>>.. -....>...>....v..>v.>...v.>v.>v.>.>v>.v.v>>.>...v.>>v.>vv.v>>v..>.>>vv>v.>.>>..v....>vvv.v>...>...v>>>v>vvvvvv..v...vv....v.>.>vv....vv>...v -.>v>.v.vv..vvv..v>>>vv.v>..v.>vv>...>.>v>v>..>......>>v....v.>>.>>>>...>.v>.....v.v.>.>.>.vv>>.>.vv..>>v.>v...vvv..v..v..>........vv.....>v -...vv>v....v..vv..>.>...>>>>vv.>...>>.vv>..v..>....>.......v>.v.>>v>>v>>v>.v.vvv.....>>>>v..>v>>..vvvv.>..vv>v.>vv.v....v..v.v>v>>>v>v.>.vv -v..vvv..vvv>>.v>..>v>v>.>>.vvv.vv>..>>v.v......v....v>..v...>..v.>v>vv>.v..v>vv.....>>........>.vvvv>..>v>.vv.v..>..>v.....>>.>>v.>>vvvv.v> -..>.v>.v.>.vv.>....v.v.>v..>v..>v>.>...>.v.>..v>..>vv>.>>.......v..>>vvv..>>..>.v>..v...>....v.>v..>.>..>>.v>..>v.>..>.>....>v>..>>.>.v>>.> -..vvvv..vvvv..v..>.v..v...>>vv.>>.>..>.v>>>.>..v>>.vv.>>.v..>v.>..>....v>>v>..>....v....>.>..>v>>...v...>>.vvvv..>>..v...v>v>.v.>v>.>.>.vvv -..v>v.vv>>.v.>>.>.>v.v>..>>.v>.v.v..vv.v>....v....>>.vv..>.>vvv.v.v.v..>..vvv>>..v>vv..>>.vv...>.>>v.>v...v.>vv>v.>.>v>.v..>>vv>.>>..>>v>.. -....v>v.....>v>v.vvv..vv....>..vvv.v.>.>.>...v>.>..vv..>>.v....>.v.>>.>v>>.>>...v...vv.....vv.>.v.....>.vv>..v>vvv>....>...v>>>v>>>...>.>v> -.>...v.v...v....v....v..>......v>v..>>.>.>>.>vv.vvvvv.v>..v..v>..v.>v....>..v.vv>vv>.v.>v.>.....>..vv...>....vvv>....v..>.vv>.v>>>>.vv..... -v.>v..>..vv..v.v>vv>v..>...>....>vv.v>..>v.>v..>.v.v.vvv.>..>vv..v>>.v..>v>..v.>>v...>...v.>.>.....>..vv>vv...>..v..>..v>..>>..v>..v....... -.>v..v.>v>v..vvv>..>v....v..>.v>vv>..vv>>v...v.>.v.v>.>v.>v.>>>vv>v...v.>...>v.v>.v..>.>v..>...>.vv>>.v.v.>v..>v..>>.v..>vv..v>.v>......... ->..vv.vvv>.>..>v>>vv>...>v>>v......v.vv.v>.v..vv.........v..>...v.v>>v.>.v.v..v.>.vv>v.....vvv>..>.>v.>...v....>.>.>>.v...>.>..>.>v>vv..... ->.>..>>..vv>>>.>v..>vv>.>.>>v...>...>vv....v..>>v>...v.v>...vv.v...>>v.>v>.v.>>.v>v.v.v.v..v.vv>>.>.v..v.v..vv.v.>>vv>......v>>.v.>>.v>...v -.v>..v.>..>.v.>>v>>.v.>>.v.....v>.>.v.>.vv...v...v.vv.vv>..>v..v>..>.>.>v.>v>.v.>>vv>.v..vvv>....v.>>.>...>.v.v.>v....v..>>.>..>>.>>>...v.. ->.......v....>v.>>v...>...vv>vv......>..vvv>>v.>v....>vvv.vv....v.vv>v.>..>vv>v>.>.vv>.>>.vv..>.>>v.>>v..>>>vv>>v......>v...v>.>v.v..>.v.vv ->>v..>.>...v..>...>.v>.v>>.v.v>.vvv>v..>>vv....>vv>...v.v...v..>vv.....v..vv>.>..>....vvv....vvv.>.v.v.v.vv>vv.v......>v....>...v...v...>.> ->>v..>...>>vv.>v...v>.....v..>.....>.>>>>>>>.vv..v..v..v.v.....vv>>..>>.>.v.v...v>>vv.......>.v>.>.>vv.vvv..>v>>v.v>........>>>....>.vv...v -.>vv.vv>v>v.v.>...vv.v.v...>>vv...>>.v..v.>.v>...>.v..v...vv..>.v..v...>.v.v..v...v.v..v.v.>vvv.vv.....>.v>.>.>..vv..v>...v..vvvv>vv>v..>v. ->.>v..v...v>.>>.vvv...v..vv>>..>>>vv>vv.>...>>v.v>>v>.v>.v.>vv>v.vv.>>>...>.>.v..v.>v...vv..>v>..v...v>>>>..>>>v>.v.v>.>v.vv>vv..v>>>vv>.v> -v>v...v.>>v.>..>.v.v..>v.v.......>>>.>>v..v.>vv.....>>>v.vvvv..>.v.>.>.>v...>vv>v.>>vvv..v.v>....>v...>.>.v>...v..>v.>..v>v....>>v.vv.>v.v> -.>............vv>..v>.>..vv.v.....>>>v>.>.v...vv..>>v>>.........v..v.v.>...v>.>v>>.v.....v>.v>vv.>..vv>.v>v.v.v...v>...>v.v...>v.v.>>>.v.v. -.v.v>.>vvv.>.vv..vv..>..>...v>>v>...v.v.v>.v....>..vv..>.v.>vv>v>v..>>>....>.>..>.vv...>v>>.>......>.v>v....v>v.vv.v..>.vv...v..>>...v.>... -..v...>..>....v.v>..v..>.......v.v.>>..v>>vvvv.v.>v>>>v>.>v>...>.vv>v.>.vv.v>.v>...>>.v>v...>....v>........v..vv.>..v.v..v...>.>.>..>>v.vv. -.>...v..>.>vv>v.>...v...>v...>...v....>.>v>.vvv>..>>......>>.>>.>..v>..v.>>v>v......>>......>..v>>v.v.>.vv.>.v>>.>...vv...v.....vvv>>...v.> -vv...v.>>>>vv.>v...>.....v>>>..vvv.>.>vvvv>v.>.>v>>>v..v>.>>v.....>>...>.>v...>>v>.v..v..v>v.v.vv>v>>>..>vvv..v..>....>..v>>v.vv.>.vv..v>v. -....>>...>.v>..v>>>.vvvv>>.v...>vv..v.>..v>>v.v>vvv.>v>..>>.vvv>.v>.vv.>.>v>v>>.>.v..v>.>.>v.>v..>.>..v>...>>..>.....v>v.v.>v.>>>>vv.vvvv.. -..v.>vv....vv....v.>v>..>..v....>>vv.>>...>..>vv.>..>v>.v..v..v.v.v.v>v>..>......v..v>...>.v.vvvv>...v...>.>v...>v...>..vvv......>vv..v..>v -.>vv..vv..>.v...>v..vv>.>>vv.v>...v>.v..>>.>.>v...v>..v.v.....>>.vv>v...>..vv>>v..v.v..>v.v>.vvv.vv>.>vvvvv...>>>>v>v>>....vv>..v.v.vv...vv -.v..vvv.v.>>>v..>>v.>..>...>.>>...v......>.vv..>>v.v.v.>vv..v..>.>>..>.>v>.v>..vv.>v.vv>..>>>>vv..>..v...v.>>>>..>v.>v.v>.vv>....>>v>.>v>>> -..vvv>v....v..v>.>v.vv>>>vv..>..>.v...>v.v>v..>>>..>v.v......>vv>...>...v..>..>v...v.>v>vv..>v.v>v.>>>>v.>...v>>.v>>...>.v>..v..v>v...>>.v. -v.>>>>...v.>.v>.>v..v>..v.v.....>v...v...>..vv.>.v>vvv.....>...vv>...>.>.....v>.v.>>.v>...v..>.>..v...v.>>v...v>>..v>...v>..>..>....vvv.>.v -.v>.>....>vv>.v.>>vv..>>.>v...>.>v...>>>v.>.vv>..v>>..v>v..>v>...v>.v.>>v.v>.>v....v>v>..v>vvv..>..>v>>>..>v.>.vv.v....>.v.v>.vv...>.>>v.v. -.>v.>>...v>...>v...>v..>v.v....v.>.>>..>.v.vv>.>>v.....vvv.>....v..vvv.v..>v.....v....v.>.v.>v.>>>>..>v>v...vv.>.v>v>...v.>v.vv>v.>........ -..>>vvv....vv.v.>>vvv....v>..vv>.>v..v>v>.v..>...>.vvv.>>>>..>vv...>>>.v.v>.>.>v..>....>.........>v>v>.>v>>>v......v>>>.>..>>>.>......v>.v> -v.>vv.>>>>v.v...v>..>v..v..v.>>>.....v...>v.v..v.>.v>vv>.>....>.v>v>.vv.>v..vv.v>.vv.v>vv>v>...v.>.>...v..>.v..>..v..>>>>...>.>>v.v.....>.v -..v.>.v.vv..>>>v>>>...>>>.>....vv.....v>.>>.v>......v...v.>vvv>.>...vv.v>>...>v..v....v.>.v>v.v..v.>v.v.v.>.v>>vvv..>.v..>.v>v.>...v.vv>.vv ->...>v..v..>>.v.v>.v.v>.v....>v.vvv>.>>.vv>v..>.>>v>.v...v..>.v>.v>.>.v.>...>..>>vv....v.>>..>.>.v>.>.v>..v.>.>>>....>>.>v.>...>.>v.vv.v.v> -.>......>..>>..v..>.>v>.v...>.>.>.v.>v..>v..v>.v>.....vv.vv>.v.v..vvv.>>>v..v..>...v..>..v.>v>>>>.vv.vvv.>>v..v....>v....v.>.>v>..>>...>>.v ->..v..v.v>v.v.>.vv....v......>..v>>vv.>..vv.>..>>v.v.>>v.v>...>.>>....v...>v.vv>v.>.vv.v....v..>>>..v.>>.vv>>vv.v>.v..>..vvv>.>v..v>...>..> -v..v>..vv.>.....>.>>v>.>....v>>.>.v....vv.v......vv.vv.v..>.v.v..>...vv.v..>v>..>>v.>....>.vv>>....>>>v>>.>v....>>..v...>....>v.vv..v>.vv.v ->vv>v.v.>.>.>.>>....v.>>>v.>v.>...>.vvv..>v>.v.>>v....>vv..v.vv>vv..>.v>..v>>v.v>>..v...vvv...v.>.....v>v>.>>v>...v>.....>.>.>v>..>v.>.>... -..v>..vv....>.v..v>.>.>>.v>.>....v>.>v>....v>..>vv.>>.>.vv>.>....>>v....>vv...v..>...v..>v>>>........>.>.v.>vv...v.>v...>>>.....>>...v>.v.. ->...>vv..v.vv.....>.v.>.vv.>vv>>....vv..>vv.>vvv.vv..>v..vv......>..v...v.>......vv>.v...>>v..vvv.v>>..v.v>....v..>>..>v...v>>>v...v>.vv.>v -vv....>.>v.....vv>.>.v..v.v.vv>v>v.>..v....v>>.v.>.>>v>..vv..v.>.>.>.v..v>v.>>v>v..vv..>.>.>v>v>...v>.v.v>>v...>v.v>v>v.>..>>v>..vv>..v>v.. -.>v....v.>vvv..v>.v>>.>.v.v.vvv>.>....v.vv..>...v..>v...v>...>>vvv...>.v>v>..>.v.>.>..vv>v>v>.v........v..v..v.>...>>v>>v>..vv>v>..>>>.v.v. -v...v>....v....>>>v.v...v.....>...vvv>..v.>.>v>v>v>.>>...>>>>v>>.>>.......>....>v.>>v..>.v.>......vvv>..v..v>vv>..vvv>>v..vv.>v>v>>..>.>... -..v>.v>>>v.>...>v>v..vv>...>>.v.>>.v..v..v.>.>v..v.vvv.vvv>v>.vv>.>v>v......vvv>.>.v.>...>vv.>.v>>..>v>>.v>vv.v>>.v..>v...>..v>.>.v.>.>>... -v>vv>v>..>..vv...v.>.vv..v...>>vv>.>>>.v.....>vv>v>...v....>>...>v>v.vv.v...>.....>>v..>>.v.v.>.v.>...>>.v.v.v.v.>v..>>.....>v.......vv...> -..vv.....v.....v>.>.v...>..v.>vv.v.v>vv.v.v.v>..v>.vvvv>..v...>.>.>.vv>v...>....v.>...>..v.>v.....>>...v>>.>.....v>v....v.vvv...v..>..v.... ->.>>.v>>v>v>v.v..>.v...>.....>.v.vv.v.....>..v>v>..>v.>.>...vv..>>..>v.>..v>.>>.>>>vv>.>v>>..v..>vv>>.>.>>.v>>...>v>.v>v..v.>vv..v>.vv.v.v> -.v..>..vvv......>..v>vv.v.v>>v.v>.....>.v...v.v.....v..v..>...>.>>...v>>....>>v......>....>v..>v.v.>....>>v..v>v....v..v>...v.v>.>.....>v.v ->.>..v>v.>..v...>.v.v>.vv.>>.vv.>.v>.vv.vv>vv>v.>v.>>..v>.v..>>..>vv>>>>>v..>...v...vvv>..>>....>..v.>..v.v>v.....v>vvv..>v>.>v.....v...>>. ->.v....v.v.vvv...v..>.v.>.v>....>>v.v>>.>....v.vv..>.>.....v...v.>..>..v...v.>.>.>>.......vv..v>.>v>.v.>v.v..>v..v.....>..v..vv>.vv>..vv.>> -..>>.v..vv.vv>v.>v>>..v>......v..v..v..>>>>v..>.>..>.v.>..>......v.v>.>.>.v>>..v..v.v..>v>.>.>>>>v...v..v..>vvvv>.>vvv>....>.v.>>.>>.>...>> -.>v..>>..>.>v.>>>.>>...>...>..v>..vv.>vv.v...v..v.vv..>.>....>..vvv....>..>.>v.>v.>>v......>vv>v...>...>>>.vv..v..v..>>>.>>v>.....v.....v.> ->v.v>.vv..v>...>.>v..>>...v..>..>....>...v.>v..>...v..>>.v>vvv>..v>>......v.>>.>.>.v>v>v>...>>.vv.vv....v.>v>.v>.v..v.>v...v.>>.....>.v..v. -v....>v>v...>..v>>>>>>.>vv.>>..v....vv.>>>v..v.vv...vvv>.v..v..>v.vvv>>v.v.>v.v>.....vv>..v.v...>.>>....v>...>>>.>.v.vv.v...v..vv.>v>v...>> -..v..v..>..>v>>.>vv.v>...vv..vv.>vv.v.v..vv>.vv>vv>.>v.v>.....vv.v.v>v>v..vv..v>...vv.vvv.v.>.v.v....>>.....>.>..vvv>>...v.>.>.v.vv.......> -....>.>>..>..v>v..>.>v..vv>>>v...>.>...v.v.>.....vv..>.>>.>..>v.>>..>.>>>..v..v.>v...>v>>.>>..v.>..vv.vv>>v>.vv..>v>.>>vv...v.v.>vv.vv>.v.> -.vvv..v..>.>....v>vv>>v..v.vv.v>..vvv>vvvv....>>.v>>...v.v.v>>>..v>...v..v>>v.>>.v.v>>.>..>>vv..v..>.vv.v>....>.>..>>......v>>.>.v>>..v.>>v -.v..>.>v.....>>vvv.........v.v.v..>>.>>..>>.v..>>..>.....>...>v.v>.v..>.v>v>....>.......>>v.>v.v...>.>v....v..v.>.>v..vv.>..>>>v>..v.v>>>.. -.v..v.>.v>v>>..>..>v.>>v>>>v.v.v...vv>>.>>....>v.>vv.>...v>>.>v>v....>.>v..>.>.v.....>>v......v..vvv>..>v.v>v>>..vv....>.>....v...>v...v.>v -..v..vv....>v..>>...v>.......vv..>.>.v>>.>>.>>.>.v..vvv>v..v.v>....>vv....v..>...v.v>.>v...v..>.>>>...>v..>v..>>>..v.>>>....v>.vv.>v......> -..>...v.v.>v.vv>>vvv>v>.vv..>>>.v.v.vvv...v.>vv.>>.v>....v.v..>.>.v.v..v>..v..v.v...>....>>..>.v...vv.>.>v.>....v..>v..>>.>...vv>.v.v...>v. -.>.>>.>....>vv>>>v.v.>v..v.v>.v>...v...v>>>>>..>>.......>>>..v.>v>...v>.v.>..v>..>v.vvv.>v>v>.v>.>>..>vv....>>v.v.v.>v.v>..v..v>>.>.>..vv.v -...>..v.v>v>>.vv...v..>..>vv...>....v.v.v.v.>>.>v..v..v..>>>.>..vv.v.v..>v>.....>.v>vv....v.v>v.v...vv>>.v.>vv>...>>vv>>.>v..vv.....>v.v>vv ->>>v....v...>.>.>>vv...vv.....>v>>>>>.>..>>..vv..v>>...>.vv>..v...v>.>.>..v>.vvvv>>v>.>.v..>vvv>>>vv....>...>.vvv.>v>>.vvv>v>.vv>vvvv....v> -v..>.>v>>vv.v.........>.>v>..v....>>v...>>.v..v.v>v..vv>vv>>...>>>.>v.>..v>..vv.v>.v.vv.v.>v>.>...v.>.>v.vv..>>..v>........>v.>>.vvv.>>v>.. -...v>vv..>>>...>.......v.v....>...>v>>v...v...>..>>v.v....>vv>..>>.v..v.vv..vvvvvv...v>>.v...>.v....>.v>>.vv.v>....>..>....v>.>v.v>>.v>>.>> ->.>vvvvv..>>v..>.>v>>>.......vv>v>......>>>>.v.....>.>v..>v..vv>>vv>...vv....>>..>.>..v.v.v...v.v>v.v>v..v>>>.....>.v...>v>>>......>>...v.. ->vvv>..v.>vv.vvv>>>>>v>.>>vv.v>>...>v.>>..v.....v>>>.v....>>vv.>.>v>>...>>vvv.>..v>vv>.v..vv.v...vvv>>>.v.>v>>.v>>>.vv.v>.v>>vv...vv..v>..> -.....>.>..>....vv...vv.vvv.v.>...>>v....>.v....>.v>v.>......v....>...>>v..v.v>.v..>.vvvv..v>>vvv..v..v>.>.>...>...v>....v.>v>...>>>v.....vv -.v>..>.>...>..v.v>vv>.>v>..>>.v>v....>....v..v.v.vvvv>.v...>>>v.>v.>.v.v...>v...v....>>>vv>..>..v...v.vv.>v..v>...vv>v..>>>>v...>vvvv...>v. -...v.>...>.v..>v..>.>>.>......v.v..v>.v..vvv.vv.>...v>>..v..v......v..v.>....>.>>.>.>>..vvv>.>vv.vv.>.>vv>....>.>.>....v>>..>>v>..>>.v>>v>. ->v.v..>...v..v.....vv>.v>..v>.>.>v..v.>.......>v..>>v>v.v..vv>vv.v..>.......v>.vvvv>>>>.vv>.v.v.v>v>...>.vvv.v.v...v.v.v...v.v.>v..v.vv>>>v ->..>...>v.>v.>>.....v.>.vvv.>.>>..v.>......vvv.>>.v..v>vv.>>...v>.v...vv..v>..>..>>.>.>.vv.>.v..>vv.>>...v>v..>>v...>...v>.v.v.>>.v>>.....v -v.....v..vv.v......>...v>..>>.>.>..v.vv...>>vv>..>..>v.>vv>v.vv...v...vvv.>vvv.>.>>..vv.v>>..>..vv.vv.v....v.v>v.>v.>.>>..v>vv....>..v>.... ->..>.>v.>v...v>..v>v.>>>>>v.vvv...v>>>.v>v..v..v..>.....v....v>.>>v..>>>.v.v......>.....vvv>.v.v>.>....>v>....v.v..>v.v>.v.>>>..>vv>v.>>... -.>..>>....>>>.v>..>vv>v.>v...v.v.v>.>.>>>.v>>>>.>v>.>>vvv.>>........v>....vv.>...v>v....>>>....>..>.v.>..>v...v..>v>.v>.v>.>...v..>>.v>vv.. -.>..>v...>v..>vvv>v..........v>.....v..>.v>>v.vv>.....>v.>.>...v.>.>.vv..v.v.>.>v>.vvv>v>v>v.>.v.v....v.v.>...vv..>>vvv..>>....v...v.>>v>vv -v>..v.>v>..>>.>..>.v.>vv.>>v.v>>v.vvv.>v.>.>>.>....v..v.v.v>>>>.v>>v>>.v.vvvvvvv.>.>......>.vv..v.>>.vv.>vv.vv.v...vv>vv>.>>..v>.>.v.v...>. -.>...v.vv.v.v..>.vv.....>v>.v.v>..>........v>..>>v.vv>v.v..>vv>.>>>v...>...>...>..v>.>>.>>>>>.>v.>>..vv..>....>v>>.v>..>>..>......v....vv.. ->..>..>>.v....v>>>>.>.>v.v..>vv.v.v>..v.v>>v.>v.v..>v>......>v.vv>.v.>>>.vv>....>...>v.v.>.>..v>>.>v.v.......v..v.>.>.v>v...>v..v.>..>vv>v. -...........v>>vvv>..>>>v....v>v>.>....vvv>.v>>v>v>>>>.>vv>vv..>vv.>..>...>v.v..v.v....>vv...v>...>.....>>..>vv..vv....>>v>.v>>v>.>v>>vv>>vv -..>v.>.>...>....v.>v.v.....v>vv...v>>>>.>.vv....>.>.v.v..>>..v>.v>v.v....>.v..>v>>>vv.v.v>.>..v..vv>v>v...>...>>.>>.>>>v.v..v.>.......>>vv> -v.>...>>>vvv>v>v.>>.v.>vvvv.>>v.v.>>..v...>>.>vvv..vv>>>v.v>>>>.v>vv.>.v>.vv.>>..>..>.....>....>v.v.v.....v>>...>>..v.vv..>.>...>..v...>.vv ->...v....v.>>>v>..vv>v....v>v.>>.vvvvvvvvvv>.vv...v>..v>vvvv.>>>.>..>>.>.v.v...v>.v.....vvv.>.>>..>v..>.v.v...v.>.v>..vvv.vv..v.>v.v>>v>.v. -.v..v.v>vvvv..>>v>.v..>...>vv.v..vvv.>v.v>>v..v.vv>vv>>..>.vv>........v>.>..>>.v>v>...>..>...v>.>.....v>>..v..>...>>>...>v..>.v.>..vv..v..> -..>..v>v..v......>.>>>....vvv..vv..>vv.vv...vv..>.v.vv.....>.>>..>...>..>.>>>..v>.>>>.>v..v..>v.v..>..v>>vv...v....>...>v.v>.v>.v...>vvv>v. -...>>>>vv>.>.v.v..>vv>..>.v>>v.>vv.>>v.v>>.v..>.>....>>.v>.v.v...v.v.v.>>v>>>...v.>..>..>.v.....vv..>...>..v>..vv....v.>>.>>v....>v>..v.>>v ->.>.v.v....>v.>>...v.vv.>.>....v>.vvv>.v.>.v..v.>..v.>..>>.....v>..>..v.>vv.v.....v.vv..>v>vv>v>.v>..>.....vv>...vv....>...v>.>v..vv..>vv.> -.v.....>..>....v.vv>>vv.>...vvv>.vvvvv...>......>.v......vv.v...>.>...>.>..vv.v>..v>...v.....v.>v.>..>>.vv>.vv.>...>v.vv>v>.....>v.>....vv. -.v.>>.>....>.v.>.v.>.v>.>.>..>...vv..>>.>..vv>.>v.vv.vv.v>.>.>>...>vv.>..v..>.>v.v.>v>>.v..>vv.>..v>..........v..v..>vvvv>>.v.>.v.vvv....vv -vv>.>>v>v.>.>>>vv.v.>v.v....v.vvv.>>>.v>>...>..>>..v.v>..>>>vvv>>>..v.vvv.>v..>>..v..>>..v.v..v.>....>.....>...>..v>...v..vvvvv...>v.>...v. ->.>>>>.vv>.>...>vvv..>v..v.v.>..>>....>..v>v>v.>.......v....>v.v.>vv>v........v....v..>v.vv...>>v...>>v.>vv...>.v>.>vv..v.>...>.v>>v.v..>>. -.v.>.>>>.vvv..v>v.v.>>..>..>>.v.vv.>>v..>>>..vvv...vv....>..>v>..>>>...>>......v....>..>v.....v>..>.vv.>.>>..vv..v>v...v..v..v>.>v>..vvvv>. -..>.v>>...v>>....>.>>.>.vvv>v.>v>v>>.....v..>.v.v.vvv>.>.>.vv>vv.>.>......vvvvv.>..>vv..>.>....v>v..>>.>>>.......vv.vv.v.>..>...>..v.....vv ->.vv>v.v..v>v....v..v>...>>...>>.>>..v..>>.>>.>...vvv...v...>..>>>.v>.v...v...>.>.>.>.>>vv...vv>..v>v>vvv.>v..v>.....>>>>...>vv...>>..v>v.v -.>v.>v.>v.>v.vvvv>..v>vv>..vv...>.>...vv.vv.>...v>..>...>vv..v>..>.v.v...>v.v>>vv>vvv.v>vv.......vv>vv>v....v....v..vv..vv....v......v>v.>> -....vv..v>>.v>..v.vv..>.v>v..>v.>>v.>vv.....>...vv>>.v..>>.v..>v...v>>..v>.>.v.v.v.>v...v>>...v>.>.........>v>vv.v..>..vv>.v...>.v..v..>>.. ->v>.>>.....>..v.v>..>..>v>..>...>.>vvvv..>.v.>v.>.v.>v...v...v..>v>.......v....>v.v..vvv>v.>>>v.>v.vv.>v....v...>>.....>..v.v>.>>>.>v>>>>.v ->.>..>....>..v>v..>>..>>>.vv.>.v>v.v>>v.>....v.....>.>v>v.....>>v>..v>.v....>..>.vv..>>.vvv.v...>vv>...vv.>>.>..v.>..v>>v.>..v.....v>.....v -.>>>...>..v.>v>.>.v.v.v..>.v>.v..>.>v..v....v.v>.>>v.>.v.>.>v>>.v.>v...v.v>.v.>...v..>>.>.v.>...>.v.>..vvvv.v.v>.v>...>>.>..>...v..>>.>.>.v -..v.>>v>vvv.>.>v.>...v..>...>.vv..v>..v..v....vvv..>vv>.>v.>v>.......v>vv..v.>..v>...v.>>..>v..vvv.v..v>>>vv>v...>>>..>>...v.vv.>vv>v>.v.>v -v.>...>.>v...>vv>>.....v.>>>.v...v....v.v.....v>vv>.>...>.v...vvv..v.>.v....>v>vv>v...>.....vv.....v..v..>v>>...>v.>.v.....v>.......>>>>.>> -......>>..>v.vv>v.>..>>.vvvv..v..vv..........v.v.v.>>...>...vv>.>...>..>.>.>>.>>>>>.>v>.v.v.>v>vv...v.....>>.v>..>>.>>>...>.>>v.v.>...>...v -..v>v.>.v.>v>....v..>.v.vv.....v.>v>..v...>...>.v.v>.v>.v>..v>....>>.>v...>.>>v.>.v>v>v.>>.v>v..>.>>>.v...v>...v.v.>v.v>v.v.v>v>v...v.vvv.. -..vv.>.v.>..>>>.v..v>..>v>v...v>....>.>.....v...>>..vv..v>.>vv....>...>..v>.......v.v.v..vv.>>vvv.>.v.>.>.v>v>v>.>>.....>.>>.vv>v>>>.>vv>.v -..v..v>>>..>>.>>>v..v..v...v>>...>..>v..v..vv>v..>vv.v>>>>>..>.>>.vvv>.v....>.>.v.>>..>v>.....>vvv.>.v.v>v..>>...v>vvvv.>.>v.v>v>...v....>> -.vv..vv>.vvvv>v..>>..v.v.v.>...>.v..>...>.v>..>..>v..>v.....>.>..v..vv>.>.>v>v.v>>....>v.vv.>>v..>>v...>..>v....vv>v.>>vv.>..>>vv>..>v>v>.. -..>v.>.>..>vvv.>.v..>v.>...>>>>..v...>v...>.>.....v>...>....v..vvv..v.v...v....vvv>>vvvv...>.v..vv>v.v>.v...>>..>.......vv.>>..vv..>.>v..v. -.vv..v..>....v..v.>>>v>vv..v>....v..>v>......v>.>.>v.v>..>v.>v>..v...v..>..>..>..vv.vvvv>...>..>......vvv.vvv>.>>>v.v...v..v.v..vv.v>.>.>.> -.>>>.v.v>...>.>.v..>>>v>...>.vvvv>>>v...>.>>vv....>.v..v..>.>>.............>..>>..>.>>v.>....>.>v.>>>v...vv..>v..v.vv..>v>v.vv.>v.vv>..>>.v ->v...v>.>...>.>v>v>.>>.v.v>...>>..vv.......v.....>......>>.>>>>...v..>....>.>.>>..v>.>.v>>.v.>.v...v>vvv>..v..v>>..>v.vvv..v.v.>>v.>...>.>. -v>.....>>>...v.vv>.>.>..>..>.v...v>>.vv>v.>v>...v..>.v..>....v>.>>>>...>>>vv>>.v...vv...vvv.vvv..v.>>v>..>.>.>>.>..>>..v>.vv>>v>.v.....>... -.>v...vv.>vv.v...v.v>..>.>v>.....>v.>....vv..>v.>v...v>..v...v>.....v..>v.>>.>>..v>v>>.v...>>v>>.>v.v..>..>>....v>vv..v>>>....>.v>.>>..>.>> ->>.v>.v>>....>.vv>v>v>..>v..vv>v..vv.v.....vv..>..>vv>..>>>......>.v..v.>>...>..vv..v>.vv>>>v.vv..v.>.>..>v.>>..v>v.v>v..>..>>....>>>.v...> -v.v..>v....v.....v...>.v...>.vv..>vv.v.v>v>v>...vv..>>>v>...v>....v..>>>v..vv.v>..>v>v.>.>vvv...v..vvv>.vv>v..>v>.v>.vv.vv.v...v.v>v.vv.>.. -.>vv.v>v.>...>..vv..v>v..v.....>....>>..>..v>vv...v..vv.v.vv>v>.>>v>.v>.>.>......vv>>>.....vvvvv.>..v.>...vvv>..>>>v>>v>v>.v.vv....vv.v.... -......>>>..>..v.v>v...>v>...>>v...v>...>>v...v>v..v..vv.>vv>v.>>>......>.vv.v>v.>.v.v...>.....vv.vvvv.v.v>.vvv...>..>v...>>....>..v>>.v.vv. -vv...v...>.>v.....>.v>.v.v.>>v..v>..>vvv.v.v......>v.>>.v.v>.>>>..>v>>v..v....>>>.v..vvv.......>..>v>>....v>.vv>........v>>..v..>...>v....v -...vv.>v..v>>>.v.....>.v>...v>...v.>...v.v..>>.......>vv.>...>v.vv.>>.>.>.....>.v...v....>v.>.>v>>...>>>v.....v...v.>..>.>....v....v>.>.vv. diff --git a/2021/inputs/day_3.txt b/2021/inputs/day_3.txt deleted file mode 100644 index 7320494..0000000 --- a/2021/inputs/day_3.txt +++ /dev/null @@ -1,1000 +0,0 @@ -111100000101 -001110100010 -101110110011 -100000001101 -001101010011 -101111110000 -011101110001 -000000010111 -011011000010 -110110010000 -011101000000 -110010001001 -101110100111 -001001101111 -101001011010 -101001000001 -101110111101 -010100101100 -001000110010 -010100011110 -100100000001 -000110011000 -110100100001 -111000110000 -000111100100 -101100110100 -101111101001 -101110101001 -010010110001 -000111100001 -001100001000 -100011101001 -100010111000 -000001011000 -001011110100 -011110010001 -110000011010 -100011011111 -001001110101 -001010000101 -100000010010 -000011100010 -101010110101 -001110000101 -000111101101 -010100101010 -101111101011 -010001100000 -110101100010 -001001001111 -001101011010 -111010010101 -110001000011 -000011110100 -100010111101 -111100101110 -110110001101 -001000011011 -101110101110 -111011101110 -010000110001 -101111011111 -000001001110 -111101100011 -000100000000 -100001001111 -110010000010 -101111010011 -010000101000 -011010101111 -110101101100 -101101011100 -100101111101 -011101011110 -111001001000 -100111001101 -101101000100 -110111111010 -011001101001 -111101010110 -001111001110 -111100010111 -000100111100 -011100101001 -111100111100 -101000011100 -011100111100 -011010110010 -101111101101 -010111101010 -001011000111 -000010011111 -101000100110 -000100110101 -100101001100 -010100110110 -011111100110 -000000101011 -111111101110 -001011101101 -000010001101 -001100100100 -101010010111 -100010011001 -010100000110 -010000001101 -010001101011 -000111111001 -101110010010 -011100101000 -010101010001 -111011110111 -000010110001 -101111000111 -001101110000 -111111011011 -100010011010 -001011011010 -110111001001 -110101110100 -101100111100 -011110101010 -010000001010 -001111100001 -000110000110 -111010111010 -101110100100 -000001110010 -110111001101 -000001101000 -000010001111 -110000100011 -000000001001 -000111111110 -111101111010 -010110101010 -110101011111 -000111000110 -111001100001 -101111100000 -011011010111 -101011010111 -110011101111 -001110001111 -010001100100 -111001010000 -100111000100 -110101010100 -000011111101 -100010010000 -110110100100 -100111011110 -101011001101 -111011100110 -100000010000 -110000001111 -001000000111 -111011011011 -101111101000 -001110001010 -100110000000 -110001100110 -011110100010 -000001010110 -010100000101 -101010101010 -001101000110 -110100001111 -110000001101 -101101000000 -101101101011 -111001100101 -101010001111 -101101001101 -010111101011 -101000101101 -001010000111 -011110111001 -001011101000 -101101000010 -110111111110 -110001011011 -101111101100 -101110110101 -101100111101 -001110001101 -010111000110 -110101110110 -101001101001 -010100001000 -011011111110 -111010010001 -101110100000 -000101111100 -001111110111 -001010110011 -010011011001 -101111100001 -100101111110 -010001010011 -001101110001 -011100001000 -101100000101 -000111111101 -010101110000 -100110001100 -010101111100 -100101110100 -110111000001 -101110101000 -000011010000 -101011110101 -100011110100 -111100010110 -110100011001 -001001001100 -010110111000 -001000101111 -111101001110 -011110000011 -000111000100 -001101110101 -110111011101 -100000111001 -100000001001 -110110111011 -010011000110 -000100010101 -100101010001 -100100101100 -010001001100 -000010001010 -101100101101 -011011101111 -100010111011 -111111101111 -110001100001 -101011101111 -000100011101 -111000010001 -000001011001 -001101111101 -001000000001 -010100010100 -110010111011 -010100100011 -001010001010 -111111011010 -100101010101 -000111000010 -011010100000 -010100111111 -001011100010 -101010001011 -111011010101 -100100100111 -101110101010 -111100101001 -111010001000 -000100001111 -011010001000 -011011100100 -110011011111 -110111100010 -000100001100 -001001101101 -110111110011 -101111001001 -101010001001 -011011000111 -000110001001 -111011001010 -000110000100 -000000111011 -010110110110 -101000000000 -011100101111 -111101111000 -001110011100 -111110011001 -000010111000 -010111001100 -010010111111 -110101100111 -000110111010 -000001111110 -111000000000 -001110011101 -100000111100 -100010100001 -010011101100 -010001101010 -001001101011 -110100010100 -011000000110 -011000011001 -010001101111 -000101001111 -011101111101 -100010010011 -100101111000 -001101110111 -001000000000 -100100101011 -111000100011 -101100011011 -000000101101 -001110010011 -001010010000 -011000001110 -101011111001 -110101100000 -011011111010 -001000011111 -011000100000 -000010101100 -111100010011 -101010000011 -001100111111 -000001111000 -111101110101 -001010100111 -011100111111 -111010111000 -100101011111 -011100001101 -001011000011 -110001110110 -000011101000 -111110010111 -100010101101 -110001011101 -011010100010 -001110000011 -101001101111 -100110100100 -011010000111 -001111010011 -110111101111 -110101100101 -100011010000 -011110000100 -010110100010 -011000111001 -011111011010 -011110110101 -011011110111 -001111100101 -101110100110 -101010100000 -110100001100 -111010110101 -011010001111 -000010111110 -100110010111 -011100011011 -100101100011 -010110111100 -010011110111 -111001011101 -000011111100 -000111111111 -101000111010 -010110110011 -100110101111 -100010111010 -111001111111 -000110110011 -010010111101 -110001100011 -111100001000 -010011000011 -011011101011 -001010101101 -100011010011 -001100101110 -111000111111 -101001011101 -111011010011 -110101011101 -001011010111 -011001010100 -010011010100 -011100100110 -101111110001 -110111111101 -111110100110 -110001100000 -010110010011 -011100110001 -010111111011 -001010101000 -010100101111 -111101000001 -100000111010 -001010100000 -000001011011 -100111011101 -100011110010 -011111010000 -111001010110 -110111111100 -010110100011 -101111111010 -110111110000 -111100000110 -111101011110 -100101111100 -111110001101 -111110011110 -010101100010 -110101101101 -111100001101 -000100011100 -010011110011 -000100010100 -000110110010 -001010111000 -110111001111 -110101000101 -100011110000 -101010010010 -111110000010 -111011001011 -010110111010 -011101010100 -010010101010 -010011110001 -010000010110 -101111000011 -111111010100 -001111001001 -101001100111 -000011011111 -100111000001 -010111010110 -010100011100 -010100011101 -001111110011 -101100010111 -101110100010 -111101110100 -100100100010 -111010011011 -010110000100 -100100010100 -101000011010 -101001111101 -010000010001 -110111101101 -000001110110 -010001110100 -100100110001 -011111010111 -100000000110 -100001110110 -000001011110 -011000001100 -011001110110 -010010101110 -111100111000 -001010010011 -000001000001 -100010111001 -010001011111 -001110000000 -000010000000 -001101110011 -010100011001 -000001001010 -110001000110 -100010100101 -011100010001 -101100000110 -001001100000 -110100000000 -000010100010 -101101100111 -100001111011 -011000011101 -110100110010 -001011001101 -000111001110 -011100100100 -100010000100 -001101100000 -100010011111 -010101010111 -000101010011 -100011100000 -100001011101 -110011111100 -111010011001 -001011110111 -011010010100 -000011001110 -010110111001 -111000001001 -011100111010 -011111000010 -101100111010 -010100111101 -111001100100 -101111010110 -110111110100 -111110101010 -010011001110 -110101101001 -111101011000 -001010001101 -101111000010 -111110000111 -110000001100 -011111001101 -101001000101 -010111001011 -001010011110 -111010100100 -110000101000 -011101000011 -010010100110 -111010000001 -111101000111 -001010100101 -101011001100 -110010111001 -111000111100 -100101011101 -110010101001 -010010111000 -010101001110 -110000101111 -001101001101 -001000101011 -001110110111 -101111111011 -111001100110 -100101110000 -010000011011 -001010000000 -011001010110 -010101101010 -100100000011 -110010101110 -110011101000 -001010001000 -010000101100 -100110011110 -001010001111 -111010001101 -100100010000 -100100111001 -111111010110 -100010011101 -110100100100 -000110011101 -000101101001 -001011001100 -101000000001 -111101100000 -110110111000 -111111000010 -001010111011 -011011111000 -010111000101 -011100110011 -111111100010 -000000100010 -001000011110 -010001011001 -111100111101 -001111010010 -010110011011 -111110001110 -101111100100 -011100011101 -111001111001 -101001000100 -001011000110 -100011010101 -001101100010 -110111101110 -010101111000 -111010000111 -000110010111 -001100111101 -100000101101 -000110101000 -011000011100 -000101001110 -011010101100 -100010010100 -001001111001 -101100100000 -010011011000 -100110101011 -110111110110 -100111001100 -111010010011 -000100011110 -011100011000 -010000011001 -100110011010 -010000001000 -101010011010 -111111011100 -010110100111 -000110001101 -001011111000 -011010111001 -111011011101 -110000010110 -100110111001 -110010000001 -110001011110 -111100001010 -101110111100 -110011110100 -101111011101 -000101010010 -001111000110 -110010011010 -000010010001 -001110110110 -111101100101 -000000111101 -011110000110 -111011001101 -110111000110 -101100110101 -010001001001 -001010110101 -101100011010 -100011001010 -001011101110 -101000010110 -100100111011 -001011101100 -111110111010 -110011111010 -000001111101 -010000110111 -101101101100 -000110000000 -111110110100 -101100000010 -011000000001 -001000001001 -111101111011 -010100001110 -111100101000 -011000010111 -001000111101 -100000100101 -110111000101 -001111100000 -101110111001 -000100101111 -101011010100 -101111111001 -000010000101 -001100001111 -101001011001 -001110111000 -010011011101 -110110111001 -011111010010 -100111101011 -101110011000 -010011100110 -101111000000 -101000110111 -001100000111 -110001101111 -010011101010 -100100000111 -100011111101 -010111010010 -001010111010 -011111010110 -101101100101 -011110001000 -000100111111 -001010111100 -101101100000 -010010000011 -010011010111 -111000011110 -110111010101 -100100101000 -101001001000 -001111110100 -111011110101 -110001000100 -100111111001 -101010110100 -010111101001 -011011010010 -011111101010 -111100111110 -110011101101 -110110101101 -110010100101 -111110101111 -000011110011 -001100001011 -111110110111 -011011101100 -110111101011 -010111010000 -101000010111 -010100010001 -111101100100 -011101101010 -010000110110 -111001110000 -111111000100 -011001100000 -111100101111 -011001001011 -110100100011 -011001111000 -101010001100 -100010001110 -010111110110 -001011011111 -000001011100 -010010001111 -011101011000 -001010011010 -100010011110 -010011000111 -101011011111 -100101000010 -110111010111 -110111101010 -010100001011 -001001010011 -001011001111 -011000001111 -010100000111 -100011001111 -110100111100 -101110010000 -000010110010 -100010100010 -001010011000 -010101100101 -101100010001 -011011001010 -000101100000 -000101111010 -001001110010 -100011100001 -011110111011 -100000010111 -100001001101 -111000100010 -011000011000 -100001100010 -000000110011 -000101010111 -000101000100 -110111000111 -001100000000 -110100010110 -101001000011 -110111100100 -000111100011 -101110001001 -000010011101 -000011010111 -111101011001 -111010001111 -000100110100 -000011100001 -100100111000 -100111101110 -001110101011 -000111110100 -110000010111 -110010011111 -000001111111 -101011110011 -101100001101 -110101111011 -011111000111 -011110011011 -001000010110 -110110110100 -010101001011 -000100111000 -011101111111 -000111101001 -110101111010 -110000111001 -011000111101 -001101001010 -110100110100 -100110010001 -100000000100 -001100111000 -100000001110 -101000011000 -100010110110 -101011001001 -010010001010 -111011101100 -100010100110 -101101000111 -100110110101 -111001010100 -101000110000 -000101011010 -010001010110 -010111011110 -001101011110 -000100000101 -000001011101 -010010100000 -110110010001 -100111000111 -100010110000 -010110100000 -110111111111 -011111011111 -001011010010 -001111100011 -100010110100 -011010001011 -110011001010 -101110111000 -111001010011 -010011010101 -011100100101 -101010110011 -001001100101 -110010100000 -011000111110 -011101001110 -110110000100 -001111101100 -101100010100 -110001100101 -111111010001 -011001100001 -110100000101 -000000010000 -110101000111 -100100110100 -010010110100 -010010000100 -011000111111 -011001101010 -011111101110 -110110010100 -110001001110 -111111100011 -010001100001 -001001111011 -000101110010 -011111110111 -000011000110 -110101000001 -101110000011 -000000111010 -000101110011 -000011100111 -010010010011 -110011011010 -111100100100 -110010011101 -100001001000 -101000110001 -101001010011 -111000111101 -101011111000 -110011110110 -111110100011 -010110100100 -010101000011 -001010101100 -101010101001 -111100100000 -001111011111 -110101010011 -101111010000 -110011110010 -110110110001 -011010011110 -100010010101 -101000101010 -010111010001 -000001111100 -001000011001 -011110110001 -110100011000 -110000111110 -001001011100 -110110110101 -011011100110 -011110010100 -111011110110 -111110111001 -111010010100 -001000001011 -111101010011 -100111101010 -010100001100 -111101111111 -000111111000 -001010011101 -100000001011 -010010001110 -011011011101 -100000000111 -100101100100 -001110000010 -000000000000 -101000110100 -011010110001 -100001101110 -110001110011 -101100010000 -001111111111 -111110110101 -010111001101 -011001000001 -111110011100 -100100011010 -001000011000 -011101101100 -100110111111 -111011011010 -101001101000 -010011110000 -110010110011 -111000000001 -101101110110 -111000001101 -011111001001 -010010110101 -001100010101 -111011110010 -100011000101 -111010000100 -011001111101 -111010011110 -111011111011 -110110011010 -011111011011 -010010001100 -110100111110 -010100111011 -110110011101 -110011010000 -110001001010 -000011000111 -100011101101 -101010100010 -110111001010 -100101101110 -111100101010 -110001011001 -011010011001 -000001111010 -001010101010 -010001110000 -001001111100 -011110000010 -000100010001 -110100000110 -010110111011 -001100111100 -111100011000 -011011011010 -111001001010 -110110100111 -001011000000 -000001110001 -101100011100 -100011000011 -001100010001 -000100111011 -001001110011 -100111111100 -111010001001 -101001000110 -001101000100 -110000000100 -111010110011 -000101110000 -010000010101 -000110111001 -100100100000 -110010001011 -110111100011 -101101101001 -100001100100 -000111010100 diff --git a/2021/inputs/day_4.txt b/2021/inputs/day_4.txt deleted file mode 100644 index b01c04f..0000000 --- a/2021/inputs/day_4.txt +++ /dev/null @@ -1,601 +0,0 @@ -68,30,65,69,5,78,41,73,55,0,76,98,79,42,37,21,9,34,56,33,64,54,24,43,15,58,61,38,12,20,4,26,87,95,94,89,83,74,97,77,67,40,63,88,19,31,81,80,60,14,18,47,93,57,17,90,84,85,48,6,91,7,86,13,51,53,8,16,23,66,36,39,32,82,72,11,52,28,62,70,59,50,1,46,96,71,35,10,25,22,27,99,29,45,44,3,75,92,49,2 - -68 16 83 90 69 -14 89 72 33 6 -63 21 43 64 76 -79 65 87 98 85 -41 24 32 53 93 - -15 94 72 30 6 -14 80 66 4 78 -44 81 68 67 96 -65 21 64 97 35 -84 90 28 60 2 - -97 39 61 15 94 -75 14 66 98 31 -58 80 9 64 56 -19 42 16 85 37 -25 22 38 65 82 - -86 31 71 11 56 -99 12 17 10 46 - 5 33 85 61 2 -30 1 28 88 66 -15 38 21 54 64 - -38 52 84 75 91 -77 5 49 71 31 -45 1 60 0 10 -68 29 98 36 34 -61 90 93 14 12 - -91 66 28 41 78 -89 16 10 77 39 -84 57 44 32 47 -60 62 26 21 50 -75 61 24 54 93 - - 2 69 99 8 20 -14 35 61 85 73 -39 94 37 63 12 -57 23 30 50 17 -34 70 19 28 77 - -50 82 41 59 52 -43 76 85 63 48 -56 67 60 33 45 -42 9 91 23 16 -96 6 34 30 44 - - 0 41 24 42 83 -17 1 34 29 71 -46 67 86 64 21 -95 36 6 38 62 -93 8 30 77 44 - - 6 94 11 14 83 -65 85 97 37 55 -56 19 91 69 1 -26 59 13 96 68 - 4 28 7 45 53 - -96 78 2 32 65 - 3 63 74 17 4 -76 11 91 48 70 -71 55 69 13 49 -88 30 23 59 10 - -28 4 34 64 47 -99 86 44 59 43 -50 91 35 92 51 -32 21 19 74 33 -10 29 66 52 94 - - 0 27 12 23 71 -54 59 32 47 45 -22 85 94 34 31 -29 68 44 61 62 -96 46 52 33 69 - -37 79 34 17 56 -26 62 3 77 80 -88 35 71 87 36 -89 60 86 19 48 -82 97 95 85 0 - -62 49 48 98 10 -89 37 50 64 17 -80 5 26 42 51 -58 74 6 20 14 -72 2 9 40 69 - -71 37 47 21 39 -36 29 26 82 53 -10 17 96 15 43 - 8 92 19 6 32 -77 89 38 54 13 - -16 58 67 23 98 -43 42 26 46 13 -32 22 27 20 21 -37 33 55 86 1 -99 40 17 44 94 - -81 59 53 27 36 -11 88 92 57 44 - 2 26 93 94 77 -76 47 82 19 75 -99 34 98 37 32 - -28 13 57 99 7 -42 93 10 76 43 - 1 52 3 20 53 -82 81 51 2 92 -94 35 49 37 0 - - 5 30 61 77 44 -82 67 98 1 90 -18 62 27 24 15 -16 20 71 69 19 -85 96 25 7 55 - -39 51 4 32 30 -64 22 29 48 60 -78 31 44 59 92 -65 10 68 84 16 -40 70 35 26 56 - -54 83 12 79 66 -21 49 70 2 24 -20 51 71 99 50 -82 36 57 96 22 -78 52 67 33 72 - - 3 62 5 14 63 -54 75 28 22 51 - 1 55 86 30 70 - 9 6 92 83 85 -71 78 96 47 17 - -71 59 38 27 2 -90 6 97 75 84 -29 69 45 11 65 -46 31 79 4 8 -51 76 74 87 19 - -83 67 10 39 57 - 7 63 12 59 2 -54 99 95 88 40 -38 71 84 61 56 -81 90 36 58 19 - - 4 47 21 28 46 -22 40 94 83 86 -82 17 43 0 45 -55 36 68 35 84 -52 24 6 80 2 - -29 16 75 26 87 - 6 82 67 36 24 -13 95 35 43 40 -80 68 0 79 71 -34 44 21 30 85 - -91 25 24 15 23 -93 14 50 75 74 -88 30 64 52 8 - 1 7 0 4 80 -96 82 98 81 67 - -52 21 71 78 4 -45 73 27 30 56 - 7 93 67 6 1 -54 20 57 69 2 -94 36 89 46 68 - -86 95 15 7 18 - 8 87 29 11 74 -71 72 43 76 40 - 6 60 44 19 99 -97 85 5 39 77 - -49 14 5 48 33 -95 21 30 1 47 -87 84 85 10 24 -32 86 99 31 23 -69 2 43 37 60 - -57 48 99 49 73 -31 92 76 60 96 -47 28 15 70 26 -68 19 56 67 95 -12 23 45 88 6 - -77 49 23 42 62 -47 7 80 43 4 -59 72 87 14 84 -66 81 96 97 78 -61 91 8 17 48 - -21 25 1 82 20 -78 31 15 30 73 -46 11 13 35 79 -60 22 97 32 4 -23 88 63 17 75 - - 6 3 41 5 44 -91 21 32 49 81 -29 85 47 20 14 -99 31 43 22 69 -90 4 45 8 16 - -12 15 96 3 21 -38 71 16 39 24 -77 82 57 55 92 -27 17 19 73 31 -74 48 34 72 14 - -80 16 10 79 55 -93 60 4 0 29 - 7 97 3 9 86 -43 67 78 64 35 -44 83 40 33 12 - -36 88 22 21 70 -30 60 13 6 41 -71 89 86 17 39 -73 0 75 32 9 - 5 10 83 85 99 - -40 41 76 38 25 -21 49 79 47 39 -27 88 34 81 24 -69 64 36 32 4 -57 5 58 67 56 - -25 95 41 27 19 -93 0 29 56 8 - 2 17 66 11 82 -96 55 44 39 5 -67 4 33 62 40 - -85 12 46 59 36 -91 29 19 63 0 -72 49 14 6 95 -18 50 60 67 80 -10 62 39 82 58 - -11 87 4 76 75 -64 47 26 74 98 -89 30 68 21 88 -45 41 77 67 53 -96 92 44 1 18 - -33 26 21 8 76 -15 27 41 43 52 -64 85 56 57 66 -11 73 62 69 4 -36 13 94 86 55 - -93 80 67 23 6 -57 20 29 69 1 -76 96 72 95 33 -32 91 52 16 83 -26 54 13 94 47 - -56 0 58 15 45 -91 40 86 61 60 -14 47 30 5 24 -21 12 33 69 41 -78 98 9 99 46 - -59 1 63 96 14 -15 56 23 85 84 -29 98 44 87 46 -75 8 21 54 65 -80 30 40 45 6 - -99 40 87 4 63 -64 78 50 74 58 -37 47 61 48 59 -65 56 45 89 67 -18 70 71 90 32 - -42 35 1 9 90 -89 13 0 88 17 -67 82 31 77 91 -60 29 68 10 64 -20 92 46 71 95 - - 0 32 81 13 63 -87 17 2 56 69 -23 33 29 67 24 -98 95 86 36 31 -99 42 35 93 1 - -71 79 38 84 29 -26 31 73 1 48 -94 85 3 82 89 -19 17 98 92 47 -96 45 11 70 51 - -14 69 61 56 33 -98 88 82 76 66 -87 92 42 99 35 - 0 68 6 44 47 - 4 91 54 62 23 - -10 23 20 40 96 -33 0 21 94 25 - 4 67 30 88 54 -43 41 60 1 82 -18 78 74 98 91 - -60 95 53 7 11 -67 54 44 18 0 -89 98 24 55 37 -39 5 27 62 21 -75 25 43 47 71 - - 5 95 60 19 3 -13 15 42 97 67 -61 79 7 12 39 -53 58 89 25 34 - 9 11 96 21 66 - -89 97 45 84 67 -37 22 64 39 95 -68 63 6 90 80 -92 26 33 35 19 -29 70 5 72 31 - -52 46 53 6 31 -77 8 59 99 49 -11 48 4 90 91 -41 70 58 16 44 - 7 61 9 80 50 - -75 0 38 37 33 -99 66 98 14 62 -46 51 43 34 24 -71 92 80 32 22 -60 39 17 52 45 - -92 49 80 99 16 - 6 77 65 9 4 -34 91 86 43 21 - 0 3 27 84 81 -28 5 19 95 76 - - 5 40 26 89 1 -51 30 75 46 31 -35 58 86 80 0 -98 38 27 81 93 -63 60 39 65 87 - -27 56 90 44 60 -48 68 47 96 73 -75 13 80 12 38 -81 21 20 46 97 -67 6 72 76 2 - -33 96 4 55 49 -74 43 54 6 51 -30 0 75 28 62 -90 81 2 83 68 -39 95 70 84 42 - -97 22 15 30 45 -92 96 50 16 42 -39 23 89 21 2 -72 98 58 48 82 -94 11 1 86 84 - -41 13 84 51 76 -33 63 0 62 18 -81 32 57 68 21 -20 64 47 24 93 - 7 56 27 66 30 - -52 81 85 92 3 -15 91 19 13 93 -36 77 74 37 26 -67 16 73 89 33 -43 90 38 31 29 - - 1 52 96 66 86 -30 15 26 82 42 - 8 94 41 54 5 -84 23 72 77 7 -34 53 18 69 90 - - 7 67 35 2 36 -91 51 56 85 32 -98 22 76 97 71 -70 29 68 44 1 - 8 80 42 46 93 - - 4 13 90 64 97 -44 28 17 42 18 -72 77 11 35 22 -25 73 41 1 26 -51 8 92 43 2 - - 6 68 51 73 39 -32 60 34 74 18 - 5 95 11 8 62 -23 3 70 94 54 -36 20 29 10 26 - -66 80 77 82 62 -95 25 33 50 14 -94 0 91 46 23 -59 47 96 26 15 -69 6 2 34 75 - -72 66 35 81 69 -48 44 11 16 40 -94 5 3 51 54 -89 6 78 37 59 -76 45 8 18 10 - -30 46 96 56 69 -66 29 32 74 4 -85 84 99 87 92 -22 50 64 15 57 -78 47 1 48 10 - -66 48 90 67 23 - 3 21 73 71 18 -97 52 64 80 94 -49 42 75 47 38 - 4 28 19 68 57 - -53 46 56 84 57 -55 45 85 89 76 -80 26 2 36 23 -92 10 30 18 69 -67 49 21 8 44 - -51 47 85 41 8 -70 34 98 30 16 -82 22 18 95 73 -65 21 49 5 15 -56 19 17 23 46 - -25 28 47 84 8 -35 90 13 39 15 -50 86 41 33 51 -57 73 87 45 5 -31 22 48 7 27 - -79 71 64 87 21 -10 73 1 40 9 -36 84 80 6 60 -19 81 55 50 56 -67 23 62 86 63 - -87 45 56 67 13 - 8 79 31 48 86 -32 15 88 6 66 -62 27 44 26 99 -64 63 3 70 90 - -84 87 89 71 2 -63 67 72 3 75 -39 44 54 20 85 - 1 97 14 37 98 -25 66 92 17 57 - -27 34 64 60 87 -77 29 21 56 23 -79 53 75 72 69 -95 16 85 52 70 -92 65 62 33 15 - -42 87 96 79 90 -97 77 58 62 55 -11 86 68 44 52 -93 23 1 61 60 -47 72 14 28 13 - -14 78 68 48 74 -50 32 29 24 54 -73 99 57 90 64 -12 76 62 15 44 -70 58 22 1 85 - -49 2 75 88 87 -71 61 95 5 38 -99 86 67 8 83 -17 11 9 54 33 -70 78 62 1 58 - -11 44 53 73 13 -45 95 15 63 49 -94 34 99 64 10 -78 9 67 12 20 -50 97 96 89 14 - -55 3 72 93 81 -25 43 60 85 26 -96 45 53 19 40 -73 42 76 47 80 -74 69 22 23 89 - -24 59 62 91 5 -51 75 76 29 35 -86 96 94 66 55 -87 61 82 40 32 -28 22 27 21 49 - -66 80 82 46 13 -97 67 41 63 1 -65 89 22 12 15 -94 96 9 91 48 -85 3 60 95 8 - -57 90 97 56 33 -79 15 75 70 41 -21 26 20 98 81 -18 36 24 76 35 -42 27 11 67 0 - -89 31 86 10 13 -81 8 16 0 77 -92 67 39 96 74 -90 7 75 55 65 -51 2 97 58 17 - -92 55 4 83 93 -31 21 74 73 68 -18 41 32 17 77 -56 94 98 72 87 -19 6 49 11 37 - -15 79 24 60 91 -25 41 63 32 56 -13 83 69 0 57 -77 7 62 45 98 -64 37 94 55 9 - -81 42 29 98 44 -16 83 27 92 60 -22 63 79 64 45 -80 38 56 5 2 - 0 4 34 37 59 - -90 85 32 97 52 -69 37 57 29 51 -22 4 99 67 84 - 0 2 76 34 47 -63 96 94 83 40 - -72 68 70 40 39 -22 7 62 46 76 -25 31 41 71 9 -30 52 78 26 10 -53 17 45 16 98 - -66 39 96 16 67 -46 34 27 49 2 -93 25 50 70 57 -33 69 64 30 45 -10 91 20 18 3 - -32 35 71 62 43 -24 57 46 39 87 -28 21 26 31 52 -99 60 14 6 97 - 1 44 89 33 93 - -47 15 21 23 20 - 4 50 6 93 44 -38 53 2 45 42 -83 57 63 17 24 -99 5 34 66 0 - -65 91 60 50 62 -16 2 51 14 32 -81 17 58 59 77 -29 98 72 28 3 -15 99 49 37 5 - -62 23 48 80 28 -68 2 71 89 36 -13 95 64 98 8 -60 86 51 74 11 -35 27 66 78 7 - -65 9 57 85 30 -29 52 27 83 98 - 7 48 45 21 93 - 5 71 54 34 91 -96 87 25 84 63 - -38 94 65 69 18 -79 81 80 36 91 -17 2 23 53 98 -92 68 21 74 55 - 3 58 72 70 86 diff --git a/2021/inputs/day_5.txt b/2021/inputs/day_5.txt deleted file mode 100644 index 4fa6674..0000000 --- a/2021/inputs/day_5.txt +++ /dev/null @@ -1,500 +0,0 @@ -105,697 -> 287,697 -705,62 -> 517,250 -531,627 -> 531,730 -21,268 -> 417,268 -913,731 -> 271,89 -214,697 -> 82,697 -376,661 -> 376,177 -519,859 -> 977,859 -782,98 -> 184,98 -612,179 -> 515,179 -340,772 -> 352,784 -111,863 -> 111,298 -944,73 -> 594,73 -465,21 -> 970,21 -122,592 -> 111,592 -975,975 -> 16,16 -327,532 -> 561,532 -811,618 -> 811,945 -623,437 -> 623,202 -380,591 -> 871,591 -278,514 -> 125,667 -797,946 -> 953,946 -325,61 -> 484,61 -450,422 -> 450,862 -923,972 -> 119,972 -813,141 -> 69,885 -926,834 -> 926,687 -137,564 -> 595,106 -415,566 -> 274,566 -726,354 -> 251,829 -889,236 -> 470,236 -282,376 -> 282,193 -343,248 -> 932,248 -790,918 -> 790,528 -532,369 -> 222,369 -15,378 -> 820,378 -279,507 -> 279,719 -641,68 -> 220,68 -340,270 -> 340,680 -939,364 -> 32,364 -686,106 -> 568,106 -919,365 -> 255,365 -870,236 -> 879,227 -322,397 -> 397,322 -984,980 -> 350,980 -392,864 -> 31,864 -846,975 -> 243,372 -253,981 -> 500,734 -98,193 -> 280,11 -477,460 -> 350,460 -690,833 -> 48,191 -469,409 -> 218,409 -321,532 -> 321,106 -868,341 -> 223,986 -185,174 -> 801,790 -256,658 -> 800,658 -808,576 -> 931,576 -959,913 -> 959,785 -976,969 -> 47,40 -891,931 -> 572,612 -600,804 -> 866,804 -149,368 -> 680,899 -799,882 -> 157,882 -803,214 -> 803,668 -53,900 -> 940,13 -424,800 -> 424,261 -985,924 -> 80,19 -158,194 -> 158,281 -683,237 -> 683,341 -493,482 -> 493,921 -664,195 -> 664,824 -689,405 -> 616,478 -946,873 -> 846,873 -977,988 -> 28,39 -305,892 -> 662,892 -891,27 -> 891,440 -136,897 -> 35,897 -948,458 -> 935,458 -569,100 -> 599,100 -542,292 -> 974,724 -501,825 -> 104,428 -875,872 -> 875,441 -631,924 -> 43,336 -874,846 -> 874,389 -947,932 -> 81,66 -75,480 -> 75,403 -211,622 -> 211,482 -344,904 -> 699,549 -227,508 -> 698,508 -677,774 -> 385,774 -279,267 -> 391,155 -294,801 -> 547,801 -717,446 -> 614,549 -490,903 -> 490,225 -872,751 -> 278,751 -580,163 -> 61,163 -198,800 -> 389,800 -147,728 -> 516,728 -675,417 -> 675,752 -147,544 -> 134,544 -977,70 -> 164,883 -349,976 -> 349,23 -897,10 -> 14,893 -602,349 -> 602,354 -326,332 -> 355,332 -53,331 -> 34,331 -617,333 -> 466,333 -661,537 -> 661,131 -985,18 -> 20,983 -953,580 -> 953,124 -70,363 -> 74,363 -448,38 -> 141,38 -957,175 -> 957,634 -88,316 -> 88,899 -231,94 -> 857,720 -643,566 -> 643,832 -724,955 -> 243,474 -368,521 -> 537,521 -649,245 -> 406,245 -92,304 -> 399,304 -978,491 -> 819,491 -99,637 -> 765,637 -243,159 -> 803,719 -139,756 -> 305,756 -815,226 -> 79,962 -317,562 -> 491,562 -783,95 -> 783,277 -207,321 -> 133,321 -752,136 -> 185,703 -752,990 -> 752,433 -282,841 -> 466,841 -314,31 -> 314,829 -637,873 -> 637,854 -60,746 -> 563,243 -646,566 -> 119,39 -260,475 -> 124,339 -603,647 -> 327,647 -990,202 -> 342,202 -981,620 -> 606,620 -475,352 -> 313,352 -184,497 -> 143,497 -130,929 -> 329,929 -779,111 -> 779,975 -892,960 -> 11,79 -37,984 -> 919,102 -589,794 -> 589,548 -665,668 -> 385,668 -668,301 -> 281,301 -860,122 -> 623,122 -18,914 -> 782,150 -691,150 -> 25,150 -117,439 -> 462,439 -926,695 -> 926,651 -907,644 -> 708,644 -545,120 -> 229,120 -181,659 -> 181,820 -362,543 -> 575,330 -603,531 -> 603,142 -754,404 -> 754,678 -703,551 -> 450,551 -794,137 -> 581,137 -866,288 -> 327,827 -676,613 -> 676,470 -874,130 -> 23,981 -132,288 -> 360,288 -706,147 -> 706,433 -734,646 -> 588,500 -641,386 -> 598,343 -743,726 -> 79,62 -308,192 -> 859,192 -858,125 -> 603,125 -694,199 -> 653,240 -251,407 -> 79,407 -254,337 -> 254,310 -586,850 -> 17,281 -937,989 -> 17,69 -503,784 -> 584,784 -17,97 -> 906,986 -909,987 -> 23,101 -11,465 -> 953,465 -645,862 -> 251,862 -741,488 -> 856,488 -488,123 -> 488,641 -720,775 -> 79,775 -228,105 -> 702,105 -344,804 -> 873,275 -953,848 -> 669,564 -188,76 -> 524,76 -473,852 -> 137,852 -515,14 -> 515,183 -362,654 -> 362,335 -76,73 -> 969,966 -987,743 -> 468,743 -912,28 -> 912,31 -464,247 -> 380,331 -171,20 -> 171,863 -855,653 -> 855,941 -505,415 -> 505,808 -947,543 -> 947,821 -907,365 -> 726,365 -475,563 -> 475,63 -927,679 -> 773,679 -938,77 -> 26,989 -345,909 -> 299,909 -46,22 -> 972,948 -197,735 -> 288,735 -552,748 -> 756,952 -946,180 -> 946,695 -956,779 -> 216,779 -120,105 -> 950,935 -924,902 -> 35,13 -530,49 -> 451,128 -491,693 -> 340,693 -533,774 -> 623,864 -177,618 -> 177,123 -543,114 -> 637,114 -503,585 -> 344,585 -34,836 -> 34,625 -618,802 -> 212,396 -863,678 -> 349,678 -26,850 -> 768,108 -99,67 -> 988,956 -11,902 -> 871,42 -658,749 -> 507,900 -967,178 -> 218,927 -671,247 -> 671,525 -421,985 -> 541,865 -279,639 -> 754,164 -627,747 -> 627,290 -77,66 -> 977,966 -177,282 -> 617,722 -400,444 -> 451,393 -540,152 -> 540,888 -521,196 -> 36,196 -32,590 -> 32,537 -145,613 -> 279,747 -45,428 -> 45,12 -785,956 -> 785,728 -205,507 -> 205,539 -117,12 -> 117,221 -395,17 -> 479,17 -104,881 -> 933,52 -918,716 -> 570,716 -121,621 -> 937,621 -516,773 -> 516,917 -311,605 -> 311,168 -611,185 -> 611,976 -373,80 -> 373,295 -987,295 -> 515,295 -416,717 -> 416,121 -251,508 -> 196,453 -498,824 -> 428,754 -956,818 -> 153,15 -266,272 -> 266,748 -769,312 -> 769,387 -604,766 -> 184,766 -656,934 -> 520,934 -224,771 -> 162,771 -588,395 -> 133,395 -219,489 -> 219,948 -67,42 -> 979,954 -684,109 -> 920,345 -168,895 -> 762,301 -761,953 -> 59,953 -583,408 -> 592,399 -129,48 -> 931,48 -694,76 -> 404,76 -808,380 -> 808,886 -643,165 -> 643,757 -714,543 -> 714,913 -258,550 -> 295,550 -400,857 -> 400,38 -267,573 -> 267,779 -124,182 -> 255,51 -399,981 -> 552,981 -197,803 -> 197,275 -791,706 -> 791,373 -500,664 -> 924,664 -177,171 -> 177,935 -703,43 -> 696,43 -265,849 -> 889,225 -847,324 -> 661,324 -369,965 -> 369,780 -169,965 -> 935,199 -742,540 -> 742,355 -210,854 -> 204,854 -58,281 -> 954,281 -858,793 -> 666,793 -276,156 -> 733,613 -537,538 -> 80,81 -985,10 -> 14,981 -79,31 -> 692,644 -77,41 -> 77,502 -684,150 -> 17,817 -295,785 -> 920,785 -171,579 -> 171,16 -763,754 -> 763,86 -719,573 -> 719,71 -183,708 -> 227,708 -826,952 -> 835,952 -124,914 -> 975,63 -807,704 -> 653,704 -140,468 -> 140,874 -408,330 -> 408,291 -501,958 -> 501,302 -834,505 -> 686,357 -267,76 -> 267,526 -18,88 -> 863,933 -147,188 -> 147,454 -922,733 -> 277,733 -509,259 -> 957,259 -614,765 -> 238,765 -77,54 -> 77,252 -591,532 -> 591,384 -539,574 -> 729,384 -347,158 -> 347,10 -389,988 -> 989,988 -696,571 -> 662,605 -656,207 -> 656,883 -802,446 -> 802,693 -121,35 -> 121,66 -967,738 -> 949,738 -12,86 -> 809,883 -96,167 -> 758,829 -790,42 -> 790,549 -14,987 -> 986,15 -363,689 -> 363,386 -148,148 -> 807,807 -891,899 -> 891,710 -445,678 -> 445,464 -649,426 -> 649,452 -641,378 -> 967,378 -580,220 -> 300,220 -376,789 -> 376,572 -770,551 -> 647,428 -651,692 -> 399,692 -432,385 -> 432,835 -242,48 -> 512,48 -955,612 -> 955,520 -926,568 -> 938,556 -626,836 -> 626,266 -973,982 -> 39,48 -64,32 -> 64,653 -503,444 -> 641,444 -593,306 -> 11,888 -287,138 -> 287,891 -529,886 -> 529,826 -217,320 -> 217,875 -11,988 -> 989,10 -291,30 -> 488,30 -864,945 -> 113,194 -550,501 -> 550,89 -269,474 -> 269,40 -953,394 -> 908,394 -451,983 -> 451,293 -135,121 -> 455,121 -30,35 -> 915,920 -31,451 -> 31,936 -300,715 -> 42,973 -577,459 -> 577,700 -291,539 -> 456,539 -373,449 -> 855,449 -222,136 -> 358,136 -206,14 -> 206,211 -977,577 -> 977,535 -183,723 -> 183,900 -888,905 -> 821,905 -51,301 -> 388,301 -859,594 -> 859,227 -767,343 -> 767,472 -36,897 -> 565,897 -450,481 -> 855,481 -137,401 -> 137,643 -771,276 -> 771,61 -767,144 -> 767,562 -212,111 -> 978,877 -841,117 -> 234,724 -975,104 -> 263,104 -839,408 -> 839,588 -122,50 -> 911,839 -748,208 -> 748,929 -230,305 -> 645,305 -107,324 -> 175,256 -726,339 -> 726,968 -780,127 -> 664,11 -392,148 -> 392,133 -228,607 -> 228,689 -469,379 -> 739,379 -797,851 -> 841,895 -896,494 -> 896,568 -351,950 -> 566,950 -593,387 -> 492,488 -939,664 -> 843,664 -463,159 -> 197,159 -164,265 -> 164,16 -164,147 -> 510,493 -989,988 -> 11,10 -98,676 -> 693,676 -118,384 -> 118,544 -220,502 -> 220,593 -530,437 -> 802,437 -321,29 -> 321,819 -438,118 -> 438,531 -268,128 -> 802,128 -602,770 -> 602,183 -841,58 -> 846,63 -582,371 -> 592,361 -174,163 -> 296,163 -927,268 -> 927,391 -579,280 -> 12,847 -52,951 -> 52,772 -645,203 -> 985,203 -725,119 -> 725,367 -155,112 -> 779,736 -988,44 -> 320,712 -438,463 -> 914,463 -193,948 -> 292,948 -217,398 -> 638,398 -70,553 -> 465,158 -271,262 -> 867,262 -964,576 -> 442,54 -253,67 -> 972,67 -537,507 -> 290,260 -537,645 -> 213,321 -366,130 -> 913,677 -834,283 -> 834,523 -858,825 -> 858,391 -146,60 -> 146,701 -865,909 -> 162,206 -503,628 -> 326,628 -49,101 -> 583,101 -692,17 -> 692,218 -704,744 -> 210,744 -144,434 -> 587,434 -630,393 -> 630,870 -606,616 -> 606,330 -41,83 -> 916,958 -80,341 -> 706,967 -426,683 -> 426,173 -919,962 -> 499,962 -442,49 -> 442,970 -740,378 -> 498,378 -563,196 -> 563,442 -222,76 -> 614,76 -398,451 -> 851,451 -62,50 -> 243,50 -775,114 -> 775,234 -650,901 -> 650,195 -164,10 -> 164,149 -127,751 -> 67,751 -122,674 -> 780,674 -325,652 -> 70,652 -944,908 -> 99,63 -40,985 -> 977,48 -946,21 -> 126,841 -872,906 -> 872,136 -365,288 -> 827,750 -348,935 -> 244,935 -371,963 -> 499,963 -816,595 -> 392,171 -953,673 -> 953,585 -223,612 -> 223,362 -327,423 -> 553,649 -661,693 -> 258,693 -10,838 -> 10,859 -985,814 -> 985,25 -331,529 -> 87,529 -611,460 -> 355,460 -928,426 -> 748,426 -540,172 -> 365,347 -57,45 -> 57,129 -20,861 -> 628,253 -460,474 -> 297,311 -549,876 -> 131,876 -748,197 -> 287,658 -639,137 -> 741,137 -917,35 -> 917,273 -482,333 -> 975,826 -176,817 -> 89,730 -894,418 -> 806,418 -555,227 -> 349,433 -317,33 -> 432,148 -93,988 -> 93,479 -635,300 -> 870,300 -301,437 -> 301,760 -660,548 -> 660,909 -696,18 -> 60,18 -231,787 -> 165,787 -500,242 -> 371,242 -88,126 -> 405,126 -983,941 -> 61,19 -242,519 -> 242,489 -519,957 -> 926,550 -606,181 -> 606,432 -873,216 -> 851,194 -880,924 -> 880,844 -321,119 -> 801,599 -963,392 -> 726,155 -190,655 -> 190,305 -542,676 -> 542,819 diff --git a/2021/inputs/day_6.txt b/2021/inputs/day_6.txt deleted file mode 100644 index 4b2dc63..0000000 --- a/2021/inputs/day_6.txt +++ /dev/null @@ -1 +0,0 @@ -4,3,4,5,2,1,1,5,5,3,3,1,5,1,4,2,2,3,1,5,1,4,1,2,3,4,1,4,1,5,2,1,1,3,3,5,1,1,1,1,4,5,1,2,1,2,1,1,1,5,3,3,1,1,1,1,2,4,2,1,2,3,2,5,3,5,3,1,5,4,5,4,4,4,1,1,2,1,3,1,1,4,2,1,2,1,2,5,4,2,4,2,2,4,2,2,5,1,2,1,2,1,4,4,4,3,2,1,2,4,3,5,1,1,3,4,2,3,3,5,3,1,4,1,1,1,1,2,3,2,1,1,5,5,1,5,2,1,4,4,4,3,2,2,1,2,1,5,1,4,4,1,1,4,1,4,2,4,3,1,4,1,4,2,1,5,1,1,1,3,2,4,1,1,4,1,4,3,1,5,3,3,3,4,1,1,3,1,3,4,1,4,5,1,4,1,2,2,1,3,3,5,3,2,5,1,1,5,1,5,1,4,4,3,1,5,5,2,2,4,1,1,2,1,2,1,4,3,5,5,2,3,4,1,4,2,4,4,1,4,1,1,4,2,4,1,2,1,1,1,1,1,1,3,1,3,3,1,1,1,1,3,2,3,5,4,2,4,3,1,5,3,1,1,1,2,1,4,4,5,1,5,1,1,1,2,2,4,1,4,5,2,4,5,2,2,2,5,4,4 diff --git a/2021/inputs/day_7.txt b/2021/inputs/day_7.txt deleted file mode 100644 index 84d7622..0000000 --- a/2021/inputs/day_7.txt +++ /dev/null @@ -1 +0,0 @@ -1101,1,29,67,1102,0,1,65,1008,65,35,66,1005,66,28,1,67,65,20,4,0,1001,65,1,65,1106,0,8,99,35,67,101,99,105,32,110,39,101,115,116,32,112,97,115,32,117,110,101,32,105,110,116,99,111,100,101,32,112,114,111,103,114,97,109,10,1304,510,261,432,1,767,525,1663,1598,125,84,924,216,1049,365,4,21,226,131,178,666,1134,58,839,1065,670,419,11,297,28,80,258,811,659,1288,21,17,436,1184,823,667,7,499,249,406,157,112,715,220,93,710,148,152,1192,15,493,1551,473,760,503,177,124,123,236,848,221,658,771,347,23,264,739,1583,747,17,336,998,159,679,119,2,160,412,873,1480,337,92,369,136,3,188,683,496,214,131,330,493,649,136,503,249,342,240,728,494,150,25,146,95,1328,401,580,743,385,85,1011,466,36,228,1394,77,1009,46,751,782,1501,464,1046,4,317,1566,1661,822,107,487,208,727,53,55,355,370,1319,16,18,965,1582,190,38,386,169,766,111,262,229,248,318,368,70,18,302,87,218,404,265,2,109,62,557,714,1174,429,1082,786,37,470,195,408,598,935,1224,11,83,318,475,354,342,699,209,372,942,801,30,1065,4,110,969,449,266,50,314,771,890,314,394,316,211,1238,84,574,120,698,1382,1039,670,121,281,241,491,742,802,194,41,573,473,824,1283,59,371,1167,32,1645,115,58,845,11,408,1284,414,1618,240,364,991,111,517,146,256,616,968,130,98,414,13,152,332,96,816,366,214,69,1072,1225,98,122,554,236,14,499,89,793,119,945,511,476,112,1201,501,9,23,517,277,283,1600,581,290,248,472,38,144,178,645,477,1016,139,123,4,671,370,1025,290,20,1680,856,212,44,93,656,1163,384,852,461,1248,79,341,1125,812,746,511,1461,420,1070,22,126,274,1698,526,949,20,865,66,1244,157,275,670,384,1142,696,43,74,344,893,237,327,135,272,690,1032,395,1,16,521,1573,304,512,466,243,171,913,323,325,82,16,462,457,1609,24,98,22,528,158,79,1012,60,146,58,504,503,1,42,78,164,3,439,653,217,251,94,584,333,435,254,170,1213,671,548,799,332,434,487,61,710,136,551,556,722,316,365,1403,115,104,597,137,881,577,1334,41,649,177,196,434,191,101,248,14,71,1053,44,1074,51,607,65,161,922,235,132,247,1412,500,1409,15,86,72,327,878,507,1379,454,109,1250,184,19,284,1057,353,476,807,577,305,466,40,136,16,883,516,253,150,125,49,102,404,1606,518,94,1042,204,443,444,22,1197,168,766,1466,1053,695,565,77,406,694,102,84,414,686,800,157,7,516,440,139,1538,144,1327,851,1526,69,315,1078,678,247,1579,100,254,947,758,603,44,535,1242,1117,1119,645,203,97,88,437,886,408,566,351,36,0,461,1098,415,1381,1217,1763,202,1106,466,30,237,757,313,390,38,344,1254,1275,343,278,1064,1116,70,279,276,214,1153,306,67,488,683,432,53,128,91,1082,403,117,1169,568,60,578,475,657,43,509,434,128,1115,872,333,73,954,789,590,185,1305,352,574,266,1634,731,156,562,247,356,743,689,298,637,1125,590,761,123,1508,33,0,558,146,888,236,668,53,94,619,591,422,44,1114,1284,806,39,816,47,59,76,1090,1102,7,1307,676,1161,473,376,175,224,431,284,875,86,28,99,700,459,204,673,1001,31,302,291,386,259,4,181,1048,274,1661,347,614,760,187,1118,196,1076,219,1194,226,909,189,208,265,601,503,693,213,16,63,25,108,133,979,56,195,250,294,920,231,435,1004,352,469,55,1374,605,72,714,534,504,1411,128,724,1216,7,317,948,285,668,320,97,316,298,145,605,40,486,324,399,336,612,386,328,631,44,366,103,109,219,530,39,654,341,132,1090,50,15,654,801,791,169,746,1512,660,383,67,762,46,236,184,51,1051,1161,347,673,554,523,3,463,31,132,258,413,18,293,986,699,608,289,175,70,217,136,857,473,585,14,636,189,119,128,129,358,560,580,425,236,1194,1182,213,79,36,162,200,179,170,892,1398,336,1073,76,798,231,58,216,1134,175,392,688,342,28,300,672,1160,501,44,79,357,1411,856,27,471,600,303,35,546,1466,74,359,234,1200,657,224,431,802,0,584,784,1245,15,776,28,1464,191,275,639,569,179,908,173,1041,630,907,1520,248,1,34,596,53,44,9,782,777,295,818,1295,1115,468,34,530,349,271,99,344,923,733,124,170,208,20,744,530,582,35,58,938,721,253,934,326,528,722,123,0,623,382,889,929,454,457,1024,43,293,521,548,291,654,506,307,1031,1,390,321,727,937,1000,57,52,136,69,920,19,269,950,578,119,207,14,244,274,171,971,548,335,748,553,196,531 diff --git a/2021/inputs/day_8.txt b/2021/inputs/day_8.txt deleted file mode 100644 index 05a40c6..0000000 --- a/2021/inputs/day_8.txt +++ /dev/null @@ -1,200 +0,0 @@ -cgdf eagcbf fc adefg eacdb fbedga geafcd efc dacfe fdgaecb | dcefbag dgcf fc daefc -bdecf dcagb gbf gcbdf deacbf fg fdebgc fegdcba dgef bgefac | dbfec gbacefd gf bfg -cfeag becgda bag ab abcd ecgdb gdefba agcbe gdcebf fgebadc | ab cdegbf cbda cgfebad -gc bcfgea ebdcf cbedg edbfac ebfdgc bacfged ceg dfcg abdeg | eacbdf geabd dcbef fcgebd -fgbceda afdbge fbcad badgec cfde gfcba ebcda afd abfdce df | fad fdcab fda befcadg -gfacd dcf bacedg afgec afdbec df agcdb agcdebf gfbd cdgbfa | df df bceagd ecafg -gbdfe ag gda bfadcg gbedfa gdefcb beag gedaf cdaef bdgcfea | gacfdb gedfab ga gda -deabg cag cfdea bfgcda ecgb fcbedga cg dcage agebdc gdbfea | bacefdg bdcgfa adcgfb afedc -agfecbd gbcadf ce defc dabcfe fgeab gbdcae ecb fcabd bcafe | ebafcd ce ceb ce -fa adfebc gdacef bfeca begca bfad bdfce febcagd dfgceb fea | afe cfdgbe af eabfc -abge eb efbgadc cadeg cabefd gbced cgdfb abegdc acfged bce | dgeac ebdagc edagc gacbfde -cfbedg gdafbe fgebd bc cbgdae bcagfed ecgfa bcfge bgc bdcf | gafebdc bgfdce bcfged dfgbe -cafebgd gafdc bgcef bcagf fba cabefd ba baeg feabgc bdfcge | fba ab ab gaeb -ecgfbda afbeg fcdeg fecbga cea afbc abdegc befagd ac gcaef | beadgc eca cae gebacfd -cedag gf afbcd cbaedgf eacbdg acfegb fcadg fgedac gfed fgc | dacbf daecgb bagcef cgf -fagbd gdaceb ebf efbad gacebf fcde ef ceabdf aecgbfd dbeac | dbeac bagfd cbfdae fbe -begadcf aedb cgefa ebdgac acfdbg cdebfg agebc ba bac gdbce | ab faceg bac adbe -bgde gb abefcg fdaecg gcbdf ebdgafc dfgce gfebdc cgb acfdb | fdbcg gb dcegaf cfdge -efbagd gefcdb dgbefca badce cegdb efdgb gfcbae cge dcgf cg | dbeca bdaec ecg egc -begdca caef gfebd cgbefda cgf cf gdecf cfagde cagbfd agdce | dgfcbea fcae abcfgd acdgbf -cadfbeg acd egbad dcbf efcab cd agfbce daebc gefdac afbced | bdefacg cd abgfec dgecfa -fd bfd bgcfd bagcfe edgf fcbge acbdg cdebgf efbadc bgeacdf | df bdcga fbd gbedfc -fdgbca deca de edagbc ebadg gbfea bcgda bcdegf dge gcebadf | abgcfde de gdeba acde -df gdbecaf bdfe fbcgae fedabg fdaegc cgdba fdg adbgf egbfa | gdf fbgaec egafb gadbf -egfbd cefg gfdbac fbdea bedcg gadcfeb gdefbc gf bfg adgcbe | dfebg dbacfg gcafdb dbafe -bgadc bacfdg acbdge egafdcb ea deca cfbaeg eab dabeg fgbde | aecd bdcag dgeacb bafdecg -cfbeag febcgad cge dacbg facdbg ge gcbde eadg acbgde fcbed | cagbed gcabfe gdcfbae bdgec -cgefa eabf gbedc gcefb cdbfaeg dfabgc fb beacgf gfb gfedac | bf afceg bfg fgaec -fdg gd edfcbg gaed gfcda febcga ecdafg cgfebad fgcae dfcab | cafegd cedbagf gfcea aecgfb -dcafbe ebcadfg adcgbf abfcd bg fdaeg agfdb gcba bgd efbgdc | cgab ecbdgf agdbf efcbgd -adcbf dagfcb dfecb dagc feadbg ad bgacf cegdbfa bad gcafbe | cfdbage deafcbg fcagdb cedgbfa -afbecg fe egdcf gef afde acdegf feadgbc fdbgca gdceb fgdac | edcbg edafgcb afgcdb dbgce -gbdfc aecdgb ef bfe acdbe aefc fceadb bcaefgd agbefd bfced | fbe gcbdf fcea adbec -fcgae ebcfa becdagf fgadcb cba bfdea bedc ebacdf bfgead bc | egbfadc cb cb caefg -efbd abcde cfeag aecbdg daf df eafcd gcafbd fdeabc cgbefad | gbefadc fecga cgfae acdbe -afegbc becaf gaf fcagbd egbf adbcef gafec aedcg afdcegb gf | bcfae efacb bcaef fga -gf bgecdf gaebfdc fdcbg fdg ebfg agcdb cfdbe febacd efcgda | fdcbe gbcdf bcdga cgafde -fdebac dgac dfega dec feadbcg fdcgea cefgb dfaegb egcdf dc | decgf gdca ecd cfgaebd -fabdgc dceab dbfgc dagfeb begdfc bdgca dabfcge dga ga facg | gfacdb adgcbef bgedaf facg -cfeag cgdfa aegb fecdgb dfacbe dcgbfae ebfca ge egc gcbafe | ebgfdca aebg gcebfd cbfea -dcafg edcgba afebd faedbgc bgef edafbc fabdg bgefad dbg bg | ebdagc abgefd afcebd bfeadc -dfbgce efcbg efgbac fcbea abdfgce fecad bgac fba ba dfaebg | cafdgeb bcag adcef ab -acfb bec fabged gbeafc ecgabd fecdg gabfe bc cbgef gcbeadf | cbaf bafcdge baegf fagbde -fgebcad cgadfe agbdcf gfadc edfcg badefc efag ef gdbec efd | dcfeg becdfa bdecg bgdec -bafdgc fdcegba deafb dcbfe abf gedfa ab ecab cbaedf fecdbg | aecb ba baf dbefc -bgfeca cadeg adfgc gea ae bcdagef edba abdceg gbdec fcebdg | dcgefab efcbag fcdag beda -fcag afecbg cabdge dbefa cef ecbgfda begdcf fceba fc gbaec | gfca bdcegf cfe aebcfdg -cfbga df bgaed dgef eafdgbc cdabfe bdecag adgefb dfa agbdf | fd gdfe df df -edagfb cdfbaeg aecd gcbad dcgbef dbeagc da dcegb dab fgcba | cdae ecad abgdfec cfgab -ebc agbcfe eb bdfcag decgbaf agecd egdbfc egacb afeb bacgf | ebc cbe abfe fegbcd -dcefabg bfaed feg ebgfa eg egad cgdebf cgfab degbfa acdefb | edbfgca cdfaeb gfe feg -adfebc dbgce ecfdgb ba daegb beadgc dfgea dcegfab agcb aeb | cagb acebfdg cbga eafgbcd -afcbged gfdbc cd bdc edgfbc befacg edcf abdceg dgbfa cfegb | gfcdb gebcf bcd fdce -gbfceda bf bfd cedgf fgdeb gfab befgad gcebda debacf gbade | gfdbe fdebag adegfb gdeba -eacd cdegafb bac gbedcf gcebd afgdb ca gadbc gdcbae eabfgc | becgd fcbgea aedc edac -bagd bfgac adbfc aefcg gcbfad cadfbe dgecfb gfb gb gefdabc | fbg dcegabf bgad bdcfa -bfaedg bfcga cdgfe fcdgba gabcfe eacb debfcag eb fbe gcefb | bef efdcbag cbfaegd ebca -afcebg dbfag dabe dgbef cebfgd gdafc egadbcf ba abg afdgbe | bga bga gab ba -ecdabg defgc bdacgf dae eadcg cdbag gcbdafe aecb adebgf ea | bfedagc adcbg eagdc bdgeaf -acgde bcdea bfcd bface becfad afdcgeb dfaebg bd adb cfgeba | eacdb cbgefa fabcge bcdea -gecfad fbcegd dbfaceg fgabe dge gfbed fbdgca gdfcb bdec ed | gdbfec egd eagbf gadcfe -dagfe cbafdge bag dgebcf cfab dafcgb adgbf ab fgdcb geacdb | gacfdb fgbcd gafdb afbc -afecbdg bdc adefb eabdcg fcged bfdce bfgead bdafce bc bfca | dbcega bc dabgefc fcba -cdgafb bafcge fb bdfg dagcb cbgafed fcdba cedfa cbdgea fba | deacf dbecga fdbacg gabfdc -dcf bcadf ebgdfa bcadgf bedac fc dfcbeg beadfcg afgbd fagc | dcf bgdfa cbgdfe agebdcf -gadbf egdba gfdeca aeg cegdb gdbcfa faeb ae gdaefcb gebfda | ebdag eafb baged ae -ebfgc daeb cae gceba cgabfde cgabdf ea abcgd bdaecg ecgadf | ace eagbcfd ea efacgd -bdeaf ag bgdeca dag agfdb agcf dcgbf cfgbeda dfcbeg cdagbf | fbaed fgdabce beacdg ecabdfg -ecagf gcfdea ba gbfa badgce cab abfce fecdb bagcfe bafegcd | faecdg ab bedcf edcfb -geadf adgebf eda cdgfab bedg bfadec de gefbdca adfbg gafce | ecagfbd cafge de eda -fb agcbe gbfc cbaegd ecgfdab edafg bdcefa efgba bfa gabecf | bfa fcbade gceab fba -bdaefcg dgacfe fbgadc gfbea dcae aegdf ad gcdfe bgdcef dga | cdae da cade gdfcae -cbeg eacfg fbcage acfdge bgeafd gbfacde afcgb bga gb cbdfa | bg gabfde gba fdagbe -bca defgab bc gfcae gaebd dfebac bcage deafgcb gcebda cgbd | edbgfa cb gfcea cb -fcb cgadfeb bcagf abdgf cegdfa begcaf gcbe fcebda cafeg cb | cfeadbg cfb dfbga gdaecf -fdebag abdcge gfdb efbac gcefad eagfb agb degaf bg acfegbd | agefbdc gfdb gb bedafg -ec dce cgbaed egabdf dbeacf cagdf ebcg agcde gbedacf eagbd | bafecd eadgbc cdgfa degac -beg fageb bfgad ge abecf bdcfae caeg efadgbc egbfdc cgebaf | dfabg fabgd fbdceg beg -gdcfe bacfeg dfb db cfbdae bade aegfcdb fbecd bagdfc fceab | cbagfe bd bd bd -gab cagdfb fgecdb fgaed ab gcbdf baecgd abcdfge gbfad bacf | gbdfca gab bgdcea abg -ecfga afdbeg gdceafb gcedf ecgabf afc dcgfab ca bcae gbaef | cgeadbf fagec cfa aebfdcg -fgaebc aefcdg fdceb dfbeg gbf agefbd fegdbac bdga bg fgdae | bcdfe fgb acfgbe gdab -dgaecf fadbgc cdfeab cagbe cbd bd bdeac gadbfce afced bdfe | gfdace febd db cgfade -bfdgac efgdab abd edcbf baeg ab afegd dagecf cgbfdae edbfa | gdaef dbefc dab ba -acgb bda gdaefb eabcfdg ba abced gdcbe dacef gcdeab bcdefg | adefc bcade deagcb adb -fgabc cdfabg cga dgcfeb deagbc ag fgda dcfagbe caefb fgbdc | dagfbec bfacg gfdbac edgcab -gcfdeb fbgdca beagf fgbad ecfba efg egbfacd ge daeg defgba | fcbgade fbgae fbcae adgbfe -abe dgab defca dbeacg ba fgbdce cbdeg bfceag cebagdf eadcb | bgda dfgbce dfegbc gbcfaed -cbafg efdgcb cfaebg afecb aefg gafcdeb ecf ef becda fdgcab | cafgeb acgbf acebgf dcbfag -eb cebg dbe dceab dcbage ecgadf gcaed cbfda agbdef gadefcb | agebdc baedc dacfb gcebda -degcb cagbef dfceba gbf fg gbacdf gfeacdb fbgec fgae ebafc | bfcdga bfg fbaec fbg -dbgaf bca gacde cefbga acebgd edcb gbacd fbcagde cb cdefga | gcdea fgcebad cab cdebfga -bdgfea gb fcdeg gfcdae ecgfbd cdgb egcfb ebafdcg befca gbf | gb dagebcf dgfec dfgcbe -geacb fg badfc dagecfb bfcgad gfb fcbga gcdf efadbg befadc | dfbgcae badgcf dcbfa aebcg -febdc aecfd aebgfd gcdfbe dbgcf bef adbfcg dbefacg gbce be | feb eb ebdcf dceaf -acde cdegb decfbga gebac eag cegfbd ea cdbgea ebgafd cbagf | ae gea bgdafe cagbe -gefac egbfadc degbfa badgce gef fe efgbac agecb fcdag bfec | afdegb adbecg agbcde agfce -gfceb bg edcbf afcegd gacb fagec fegdbca gbaefc fgb edgafb | bgf agcb eagcf facged -bdcagef dcfbg ceafd bead adfcb fgeadc cba cefbga ba cfdeba | gcabfed decfag ecgdfa fgbdc -cdbfge bfgac efgad cbae daegbcf fgaecb ebg begfa be gdacbf | eb be efbga adefg -gfabd bgaed gf cebfga fgb eafcbdg degf aegfbd acdfb gdbeac | abged aebdfg bfgeca bdagec -gcafd efagcd edcg bafdeg bfgdeac ebcgaf gd facdb dgf efagc | fbadc fbcda cbeafg cdebgfa -dfeba cfb dbcgef dbceafg efgca cbeaf fecdag fbgcea bc gacb | aebcf fcb adgfce fcbea -badgf agdcef dafbec ag gabe dfeab dgfeab bdgaefc gfa gdbfc | eadfb dcefag cafdebg edfagc -bef eb abec fabgec facbdg afbcg defbag dcfge fcbge deafgbc | cgebaf eacb dcagbf bfcga -bdfe dgebcf bcgefa ed cbeadg gefdcba fbceg dcgfe facdg dge | dcfge de cgdabe dge -gbadc dgbefac cgbafd dfcg dfacb ecgabf cg gcb bcfdae bedag | cbdga cdbag gdabfc bdeag -bagecd cf fbedcg cefa cafbd bfc cbedfa gafbd baecfgd caedb | gfdebc cdeab cfae cfb -fgdab efbacd decb cgaefb dbcaf acfdge fbc fdaec edgabcf cb | edbc bc fgecab cfgade -dcbga adfbc df decfab fbed cfeba afd egfcadb dcaegf befcga | ebfd bgafec aebcgf ebdf -cbdaegf fdegcb cgbd dafecg dbfgae dfbce gdfec bdf bd eafcb | cbdg dcgb gdfaec ecabfdg -bgfade bdeagc befcd daecgfb efb abecd eacbfd gdcbf cfae ef | cfea ecdba agdcbfe gbaefcd -fagd dcafbe gdabfec df bgcfe cgfdba bgadce agdbc fbd gbcdf | bgcdf df edbcfag df -gfceb ae eac adbegfc gadcef dcbfge afceb adcbf gfbeca ageb | cbegfa cfdab ae ae -adgeb fcbdg fbdgec cbged ecb ce efgabc dgefcab bfcgad dcfe | abdegfc fgbcae cdbfag gfdbc -dfbegc cb dgeac afedbg cebf ebacdfg dfegb gdbce cbg fgbdca | efagdb gdbecf dbgec bacgfd -fdcgabe adfceg fegbcd bg cdefg bfg cegfb ebfca bfagcd edgb | gbf dbge fcedg gb -dgefc cdaef cbafgd dbgecaf egfb bcegfd gabced eg bdfgc gde | acgdbf bedgac dfgce adcef -fgeac dgbfeca gaecdf cb bcegfa cgbf ebc cdageb defba ecbaf | fbace ecb gface gbecad -abedfg cdefb gfb egafd bg ecagfd gbfde agcfbe bdga dgceafb | fbg efgbd bfg bdfce -gbfcde fb ebdga faced bfca eadfgc adbcef eabdf gedfabc bef | bfca bf bdefa fb -fbgadec gcbe bfgca cg bacfde egfdca cag afbec gadbf cagbfe | gbecafd bacdfe cga egcb -cfead fcdbge ebf bace eafdcg bagdf fgbecad be eadfb fecbda | efcdab feb aefdb ebf -dabfc cfeabd ec cae cagbdf fadeg cdafbeg dbecag bcfe efcad | bcef aec eac bfacd -fed fbdgea adgfce gfcd acdge acdef afbec df gcabed bdcefga | aebgfd afecd bcfae ecdga -fcabe da deac fdgeb fbead facebg gcdbefa fcabgd dfbeac dab | fecab bcfgae fcaeb ecbgaf -cdebg dgebac abe fagcbed ea cbagf adeg cfdbge gacbe edbcaf | dcebaf fgbca adeg cafgbed -gedfcb bg bgc gfacd fdgcabe dgba bfagc afbec bgacdf eadcfg | gfcab bcg bg dgba -fecga fgbeda fadec fdcbega cdefba becdf dgfbec ad dacb dfa | cedbfg gebadf agefdb bdac -bcgade agefd ebfg bag gfdbea afegdcb cfdba dagfb bg gfcdae | adfbg bga gb agb -fgaced bcdag dcbagef gedcbf dcfge fga af efda gacdf eabgfc | bdcga fga dcfeag fead -dega abd adbgc eabdgfc dbcefg da fadbec ebcgd cafgb adgcbe | cbdga cabdg adgefbc bfcgde -bfdacg eabgc bce abgdc cebgafd be ecadgb faebdc bdge gface | bdeg acefg gefbadc dcgba -fedgc cadefg cedagbf adcfe abfdc efa ae agfedb gace bfecgd | acbfd ae gcbafed cdabefg -egdcab egdfba gca abfec bafgd gcbefda gfbcad cg fcdg bcfga | gc gc edabgc cga -eb gdbfca befdc gdcfb ebdg efb edcbgaf ecfdbg fedac egbfca | gbdcf acfegb aedfc dafcebg -aebcgd bacg ecgbafd dafbec ga dcbae aedbg gad bdgef fadgce | adegb gad becagd edbcfa -cgad ceabdfg fedbc gd cfbage gfcba abgefd fdabgc dcgfb gdf | dcgfb gbdafec gbfadc dgca -acgebd fdebga cde cedfa gfceabd baefd cfeb cgadf ce fedcab | afedb deabf afdce fabged -gcabe adge bcdfea cgebf bgcfda aeb gdacb ea aegdcb cefagbd | bea gaed agbce dgfacb -cefad cadgbfe cgeafd eg agdbfe acgbf fge cged gfcea ebfacd | dacebf dceafb fabecd gcde -gbfcde fcg ecgadb cbdge eagdf edgfc bfdc bfecag fc dbcagfe | cfbd gfdecb gfc efdga -gebafc bcfae fcebd gfabed bea bfagc fdcgba ea ceag gacbefd | ebacfg egac bacfg febac -ed gfde dcgea cdagf ead cfdgaeb gcdafb aedgfc dbaefc ceagb | dae eda gfabcd gdbfca -cfbgd bfaecg dgbecf fgcdab dbgaf fba bdcefga af gebad cdfa | feadbcg fcad bfaegcd af -gbd eabfgc egdfbc dcge dg bdcgfae dbacf cdfbg fbedga cefbg | ecgd gbd dgce dbg -gac gcdaebf agfcbe gdebcf ga bcfdag adcbg bfgcd dafg cedab | gcafeb agcdb cbfdag ag -dfg bcfaegd dg gacef dgbefc dbcaef gfcbad ebdg efcdb degfc | efcga dfcgbe gbde cefdb -bcae aegfb egdaf gdcbfa eb fbcgae afgcbde ebg dbfcge bcfga | cdbegf ebg fbacg egb -ceafgb ab edbgfac aedcgf abfc fgaedb eab bcedg ebagc acegf | fbac ba ecagf abcgfe -geafd bgeacfd bcfgda bdca cebfga gdbaf fgdcbe dgfbc ba bga | efagd gfbda cebafgd agfde -gacfed agc cfgdbe ca ecfdg fagdc agfbced bacdeg bdfga eafc | egdfc badgf egcfbd bfadg -eca ac cadgef eacbdg fecgdba dbace gbca dfgbec afedb bgcde | gbecad bcag dcaeb cae -gfaebc fg fcaebd facbe fgeab cbdafg aebgd gfce caefbgd afg | gf cfbea edbag efgc -fgaed gacedf fbdcga ecfa degabf cga ac efabgdc gecad begdc | efca acg edbgc cag -afdbgec gcebad fecgad ecagd fdac af bfaegc fae efadg efgdb | acdge afegcb gafde fa -eadcf dbecgfa dfaegb gdcb ecg adbegc gc geacd ecabgf edabg | gdbace bcdg ebagfd cbdg -fgade dgb gcbe gafcdb fecdb bfacde ecgdabf bdegf febgcd bg | cdgfab cgbe gdb gacdebf -dcfbe dbfeag dgebca fbagcde gbafdc cagf bgf dcgfb fg gcbda | abcfdg bfg gcbfd dcfgab -bgf dgcbef acbefd egadcbf bafdge bfdae bg eagb acfgd dgbfa | deafb bdfae dfagc cdgaf -bafcd egcbdaf dg cfbgde eagd gfbea bgd adbgf gdeabf befgca | badcf fbaeg dfgab fdgeabc -gea fecdag gadbfe aegdc acfde dbcefa ge bcagd bgdacef egfc | ecgf defac gea defca -bfgdae gefabc fd edgcb gefab abgcdf aecgfdb fdea fgbed dbf | fbd cgedb fbd df -adbgec bc dabfge dafeb dcb cegfd cafb becfd cgdebaf bdecaf | febcd cbfa cb adbcgef -ecgdf fbdgcae acfbg fdgaeb adf afgcbd dagfc ad adcb acgbef | dbaefg cbfga cabgf gfacd -cefa ae adcbg gefbad eagfcb decbgf aeg gebcf gfdacbe abgec | cefdgb fedbcg cfeabg gbcea -ebfag fdbcge gdbaf fcdag fgbace bfd abde gfcdeba db gefbda | bdgecf ebad deafbg fbaged -bgecd edcba bgacef dgacbe fdcabeg fbeacd gbc fgdce dgab bg | decab bcdeg fcgbea caedb -bc abged abgfdc dgbac edfgca cfba gcdbef dafgc dbc cbgdfae | adebg bcefgd cabfedg cdgafb -gcfad fb bceadf cgaeb agfbdc fbc gfaced acdbfge cgbfa gbfd | afedbc cadfg gcbae ecbag -cgadb begfcad gdcbfe bdegc edab cabfg cagfde dca ad egbdca | adc da adc da -gfcbd cbegfda dbga da bgdcef bgdcaf gceaf cfebda fdgca acd | dcgfa fedagbc bgcfd afgdc -afge ge beg abcgd afgcedb fgcabe fcbae cdebfa dgebfc cabge | acefbgd geb fage eadcfb -fgecadb fcae edgfcb aedgf gdfce eagdb af dagcef fcdabg adf | adfecg ecaf dbafceg cgefbd -gabfd bedag abegcf df fad abcgfd bafgc bfgcdae fcdb gacfed | aefgbc agdcfb cagdfe afd -degbafc ga efcga age fdcgae agcd dgfeba dgefcb fcgde cbaef | eadfgb afcbedg degfcab fabecdg -beg aefgbc eb efbd cbagd gaedb aegcfd afdge dafecbg eagdbf | dagcb geb febd cefdga -da cagfd fbgcae fgbcda gfbcaed edfcg fad ebfcad dabg bgfac | fcgde daf cgfabe afd -gefdc ebafgd fgacbd agbc fdacg dcabgef ac cda bafdec abfgd | gacb gdfca fedcbga fdcga -gedfba bgdca dfgbc bcfgde bdace bacgdf cafg ga dag bdcafeg | debcfg cgbad acfg ecdgbf -fagde fdgeca agc gc afedbg ecgf agcedb dfaecbg acdfb fgdac | cg adfeg fdgae efcg -dgcbe fe abcfg cfgead gdcbfa efc egfbadc bgacef fbae gfbce | fbcag abef faeb cafbdg -beadfc eb gbef fbgda cfbgda gadbe gdace gefadb edb cgdabef | aedcg deb bde dgbaf -afbdge dbgfcea fadcbe cb febcd bcd gfdce cfagbd bcae bdfea | bdc gfadeb cebdf afdbe -degca adbfgec bfcgda fa eafb fac bafecd fedbc cfade bgecfd | cbdafg edbacf agcfedb fa -fabde egdacb bfd fdgbac ebcda bf bdecfa fadge dfegabc fcbe | feabd fdb cfdeba bf -aedbfcg fadbg cefgba ecdfga efg ge adefc dfebac afdeg dceg | bdfeca gcde aedcfb faecd -dgaecbf cefdgb bcgdfa edb ed beafc gfed bgfcd dacegb dcfbe | deb gdbcfa cfgdeb gfecabd -bdagfc bf gcdaeb dbgac gdfce cbdfg abgf bfc abfgdec bdacfe | dcgfb defgc bfga bf -gef bgcf dafbec bcfde decgf bcefdg fg bgcfade cedag fdbgea | bacefgd gcbf fg dbfagce -fagcdb cf bcafed cefa bdegf cdaeb edfcb ecdgafb daegcb bcf | dcfgba eagcbdf caebd afbdcg -ecd dcebaf bgeafdc adfbcg gdafe cbagde ecbf fceda ce fdacb | bgecad decfabg ec bfce -begda gfbd fbgade agdbcfe gfe gacebd bfega gf bcfae adcgef | efg fcabe geadcf abfcedg -cbfga ef efcgb befcga fcea fge cbdeg dgebaf fcbgad afegcbd | fadebg ef abefdg fe -dagbc dab fbdg cdfag efcbda gecba bdcefga gdbcaf cdefga bd | feabdc dgabc db cadgef -ge beg afcbed edbag fbgcea dgaebcf adbce fbadg bgacde gdce | gced egdc feadcb eagcdb -geafbdc ca gdafce adbeg cfab bagdc dcgebf adc gdfbc gbcafd | cegfbd adc ecfgbd cfdgb -adg afgdc gcedfba cadfb bgfaed agbc cabdgf dgfec ag febacd | fbecda cdgafb ga dga -abcdfge egc egfabc ce gedabc dgfcb edgab gbdec fbaged adce | ec gdbce ceg cbefga -acbgf ebdfg gefadc fae efbag gcaefb ea cbea cgbafd cagdbfe | bcae ea fdcgbae ecbfag diff --git a/2021/inputs/day_9.txt b/2021/inputs/day_9.txt deleted file mode 100644 index 9494363..0000000 --- a/2021/inputs/day_9.txt +++ /dev/null @@ -1,100 +0,0 @@ -6587893456954341398543210234567899875421012578932123459998764323569999996432345899989359878998654345 -5476894579873210197654328757678910976532323457891012398997653212998798789521256789879498764679795456 -5345679989864321349865479869799929987643498598932923987989543209876697654320145679965987653567989767 -3235678999965443567976567878999898997654587678949899876878994319965498765421236789764398532479879878 -0124789339897764678987878989998767898986798989298798765756989498754349899535456899879987691298568989 -1235693219799865889698989990987856789997899592139679984445678987643237998646567890998698989987457899 -2348789398678976789569999921976745678998985431095459873234569998765145689987899932349579768976567978 -4567899976599989895478999899875435899359876545984398765145678999843234567898976543998498657697798964 -7688999875487899976789298767986546789999988769873239876234567892954345678909997659876597646579899543 -9799998764325578987899109654397967999879999898764346984345678921986456789319889799989986534466989542 -9989879875413467998998923993239878998758999969975899876476789210987567895498779989992395421355678954 -9876569974324678959987899889101989987646489459896789976567894321297678976987667879893987510134569999 -8765498765456899769996798767992493499832367999789893987678965456998989989876546758789997921235678988 -9874349876567998998965689656789569989753458987678962398989879599879799992965434345678986437367889876 -8765456987678987987654678945679678979768667896569541239899998989965678901977321237899876545459993998 -9876567898789996796543489939798989764979778965499432345789997879974589919898934348901997668567892109 -9987998999896789899755569898987897653989899012378945497899965467893469898789895459919898877679954919 -9898919789965678989876798767346789762399943234569767989999854359932599787698789667899769989789899897 -8759105679654569878998899856235999321239854355878979879998765567893987654589678978998953599896798786 -6543214598979698968899999843123568910198765467989998767899976779964599643279567899687892498945697655 -7954323497898966556789987654013467892499976589099987756789987889995798732153456789576931987432398543 -9899435986577942347896598732123458999987899693239865347991298999989987643012348894345899876541239432 -8798949765456891238965439653234567898976798789399876456789459999879876532145457896876789987832396543 -7686799887347920145976549878347698987755679899989986567897667898965987674234668999987895498743987965 -6595789998967891247897656989498999876544587999879987678998778987864398765545979998998989359654599876 -5434678999298932346789767896569098987623456796567898989539899876543219876656897987889874298765678987 -4323576789399543456789978998789197898212345679335679999421921988754301998767986576569763189896789198 -3212345789987676577899899239899976789853458789124679878999890199865492999878975432478952076999893239 -4523456897898787689998789129998765698767569991012399865788799345987989899989896543578943145698994345 -5635567896789898799029569098899987999878978962193987654647678976799878799998798654567899239987989469 -8756678935978999898998678987799999899989989643989996543234567897898968678987698785678998998795878978 -9897889123467893967899789876678999768393498959878989654346778998987654567896539876789457789654769899 -6998993234679932456999899865589996543212347898765578995487899989998785678974323987992345678943456797 -4349965345789531345799987643499987664324456987654456789598999878999876789865434598943567889752589895 -6459876459999910239898798101989198976535967899532345678949988767899989899989545999759878997643569994 -9878987767899891398989543219879239987649898998721235789039879857999994978998769899998989498957698989 -7999999878986789997679654598768945798959799987632345892129967234678943567899898798767894329878987978 -6989987989345679896598995987654999899898679876543566943298654123487892389989987657656789210989876569 -5978996591236798789456789998743878998786567987664689954679942012456799459876799543234568921298975497 -9769889432445987679345699865432459987675478998785799895799842123867898967995698432123556932967964326 -8958778956759876531256789987543579876564367899896895789998763435798957899854597543012345899859873214 -7643568997969765430347893987654678976444259899987924556799878976899645798643498632124556789645995403 -8532456789879876321346932398767889987320145789699012345679989987896536899854987653246787896539876912 -7421345678989985442457893599898994598321237894556923966889999998998745698765698764345678954321989893 -6530496989498996584668999989999213469644345892349899897899999879799656789876789875456799987553598789 -7699989892397987676789998979992101278955456789498756789999898765688979897987894989667976599679699667 -8987979789986599987899887968989232349866667899976546689998765544567899956598923499878987698798986545 -9976867678965434598999765457678945458978878999895634578987654333456989645459012398989898789987654436 -8765454567897665679998654346567896567989989998764323689999765212345678932399923987698789892498742123 -6874343789799779789876543213458998678999799987653212387921976924566789543989899876554678943985431012 -5432102345678989999965432102349999799987678987654501276892989896677899959876798765432567899876543243 -7643412456789999989878676413456899989876469898876612345999898789998998899995439876753458976987654354 -7655324577897899878989654329567988764514345789987843456798766599889987689984323987764967894398766456 -8786734678976799767998765567978976543101234599998954567899954349778996569876212398876878999989877767 -9897645689565698757899887679999098654332345698999875678999843234567897678965104569997889798976998978 -1998756789434569943535998789899129786445689997999989899998785123456998789874315678998996567895329989 -2349967896513479892124569896788939896576898786789996921989632013667899892965326679019965456996210197 -3959879974323569769023456975767945987687987675678985439876543124589976920976434567997894346789321256 -9899989965434679658934567894556899998999876554567976545987654565697895439876565879876543235678932345 -9768999899565798747895879913445678989678965423456897656898765677796796549987676789998432126799543556 -6756897788979899656789989101236789676569874312345798968999879788954789678999789899987643235689699789 -4346796567898998767899894212345896545456965101276789879998999899432688989989892968998754345678988999 -5657893456987899878998765523466789634349876514567892989987656999543567899876901259789895466789877889 -8789932678976789989579865434567898722298765423698921291296545678957678998765432345678976989898656878 -9897643789865678996469876558778969810129895434789210199986534589998989349876553499899989999986543566 -8987654898754567902345998669899654323345987567994391987673323467899995456987694989999999999986432345 -7898765998843236899458998789998969834589998989879989876542012456945896678998989878998788898976521289 -6569976987654345678967999898587897655678999898765779765432135578935789789459976568986577667898432478 -9439898998765469989998987967476789767789988766434568976543234689124678992349865457997402456789543567 -8998789659989598898989876653345678978999876654323456897654345691012567891998754349876212398897654678 -7987679743497697767878965422234567899999875421012698998765676789323456789876542298765435678998865789 -6592578932398986656467897910123456979899986534123589239876797896454567997984321059876568789999976890 -9421349890199875433356789891954569456798986546254678998987898989765679545975472347998678899897989921 -8210445789987654321245898799895698969897698755378999467998949678976889439986567656999789998796597532 -7421234894599943210134987688789987898987549875489312359879234567987899998797678797899899989689459843 -6439345943239874321345798454698976767895434976678954598762123456899999897698989989989979876568998754 -6598997894999765633466954343567895456795323987889895689953234567999898789439899879876569965457998765 -7987889999889876545789875212398954346789412398998789998764348789898775678919789767996498754345689896 -9895678987676987986791995101457893244898901999975698789765459898799654567997637657984349843234569987 -8654567896565698997892983212346789123457899899894987699986567899654523456789521749873249654445678999 -7643298789434569898939865423567891012346798798795699789297978999543312978898430123965398979966989645 -8964345679323458789920977674578942199967989689589999892198989998662106899986521239877987897897895434 -9876798789012345699891988795689543987899876567477899943019799987543245679199542345998976545789999321 -2989899893123556798789599876897659896789765435356789942165678998765358989098993556799865434668998910 -1094945943238767987699432987999798765679976321234567893234569679878767899987689698899987323457897892 -9943237895445898958567941098998999654789897542348788954345689456989878999865567989989865412368956789 -8832146789556999543479892129987678932396789656569899995456791349897989987654349878878954323779768999 -7654258997697976432358789234987467890145698767678998789767890998756399899785498765469895965689979889 -8765767989989999751234689345986358943235699898989998689878999876543268799996789874399769898789898776 -9979979878879987642956796569875467894346789969799987578989998987654156678998992986987656789899787545 -9898998765968899799899898679989878976459894356678965467899887598721034567899321987896545678998676434 -9767897654656789988778999789398989997568999234579874356789756459842125788965439999999767899876545323 -8656789843234899876567899892127898987678988946698763244578942398763236999877898999899978975975432102 -6545678952123678975457989942016567898789767897987653123569321987654349989989987998799989764986548726 -2135678953234567894345678932123459989894356789796542012459432798789498978990196754678997653297659645 -6545699975545678943234569643234569878943234598679765423498943679899987867891985653589987654398799856 -7678789987656989434126678964365798569892125679569876536567894567998766756789873542357898765989923987 -9989890199788999321018999765456987456789287894379987789879976898987654347898762101237789889875210198 -0198931369899998732129678976569876345994399965456998897989197899599875456999854345345679998764321239 -1987642456910987654334567897679985456895679876597899956791098965431986567899965456786789459875643467 diff --git a/2021/readme.org b/2021/readme.org index 642364f..f2e71ba 100644 --- a/2021/readme.org +++ b/2021/readme.org @@ -1,2 +1,5 @@ * Advent of Code 2021 +In this year, I actually learned to use [[https://lib.rs/nom][Nom]] to parse inputs. This was +difficult at first, but worked out really well in the long term I'd +say. diff --git a/2022/Cargo.lock b/2022/Cargo.lock new file mode 100644 index 0000000..b3377f8 --- /dev/null +++ b/2022/Cargo.lock @@ -0,0 +1,123 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aoc2022" +version = "0.1.0" +dependencies = [ + "derive_more", + "nom", + "thiserror", +] + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "memchr" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "nom" +version = "7.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "proc-macro2" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba508cc11742c0dc5c1659771673afbab7a0efab23aa17e854cbab0837ed0b43" +dependencies = [ + "unicode-xid", +] + +[[package]] +name = "quote" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "semver" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" + +[[package]] +name = "syn" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "thiserror" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "unicode-xid" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" diff --git a/2022/Cargo.toml b/2022/Cargo.toml new file mode 100644 index 0000000..af8eee9 --- /dev/null +++ b/2022/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "aoc2022" +version = "0.1.0" +authors = ["Justin Wernick <justin@worthe-it.co.za>"] +edition = "2021" + +[dependencies] +derive_more = "0.99.17" +nom = "7.1.1" +thiserror = "1.0.37" + +[profile.release] +# debug = true diff --git a/2022/inputs/.gitkeep b/2022/inputs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/2022/inputs/.gitkeep diff --git a/2022/readme.org b/2022/readme.org new file mode 100644 index 0000000..c073fed --- /dev/null +++ b/2022/readme.org @@ -0,0 +1,2 @@ +* Advent of Code 2022 + diff --git a/2022/src/bin/day_1.rs b/2022/src/bin/day_1.rs new file mode 100644 index 0000000..bc988b7 --- /dev/null +++ b/2022/src/bin/day_1.rs @@ -0,0 +1,61 @@ +use nom::{ + character::complete::{line_ending, u32 as nom_u32}, + combinator::map, + multi::separated_list1, + sequence::pair, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_1.txt")?; + let elves = Elves::parser(&input).unwrap().1; + dbg!(elves.max_calories_sum(1)); + dbg!(elves.max_calories_sum(3)); + Ok(()) +} + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone)] +struct Elves { + elves: Vec<Elf>, +} + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone)] +struct Elf { + calories: Vec<u32>, +} + +impl Elves { + fn parser(input: &str) -> IResult<&str, Elves> { + map( + separated_list1(pair(line_ending, line_ending), Elf::parser), + Elves::new, + )(input) + } + + fn new(mut elves: Vec<Elf>) -> Elves { + elves.sort_unstable_by_key(|elf| elf.total_calories()); + Elves { elves } + } + + fn max_calories_sum(&self, count: usize) -> u32 { + self.elves + .iter() + .rev() + .take(count) + .map(|elf| elf.total_calories()) + .sum() + } +} + +impl Elf { + fn parser(input: &str) -> IResult<&str, Elf> { + map(separated_list1(line_ending, nom_u32), |calories| Elf { + calories, + })(input) + } + + fn total_calories(&self) -> u32 { + self.calories.iter().sum() + } +} diff --git a/2022/src/bin/day_10.rs b/2022/src/bin/day_10.rs new file mode 100644 index 0000000..6999c52 --- /dev/null +++ b/2022/src/bin/day_10.rs @@ -0,0 +1,103 @@ +use nom::{ + bytes::complete::tag, + character::complete::{i32, line_ending}, + combinator::map, + multi::{many0, separated_list1}, + sequence::{pair, tuple}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_10.txt")?; + let program = Program::parser(&input).unwrap().1; + let result = program.process(); + + dbg!(result.sum_of_signal_strengths(&[20, 60, 100, 140, 180, 220])); + + for y in 0..6 { + for x in 0..40 { + if result.pixel_should_activate(x, y) { + print!("#"); + } else { + print!("."); + } + } + println!(); + } + Ok(()) +} + +#[derive(Debug)] +struct Program(Vec<TimeSequence>); + +#[derive(Debug, Default)] +struct ProgramResult(Vec<TimeSequence>); + +#[derive(Debug, Clone)] +struct TimeSequence { + time: u32, + value: i32, +} + +impl Program { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, TimeSequence::parser), Program)(input) + } + + fn process(&self) -> ProgramResult { + let mut result = ProgramResult::default(); + + let mut current_state = TimeSequence { time: 1, value: 1 }; + result.0.push(current_state.clone()); + + for next_step in &self.0 { + current_state.time += next_step.time; + current_state.value += next_step.value; + result.0.push(current_state.clone()); + } + + result + } +} + +impl TimeSequence { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple((many0(pair(tag("noop"), line_ending)), tag("addx "), i32)), + |(noops, _, value)| TimeSequence { + time: noops.len() as u32 + 2, + value, + }, + )(input) + } +} + +impl ProgramResult { + fn value_at(&self, time: u32) -> i32 { + self.0 + .iter() + .filter(|t| t.time <= time) + .map(|t| t.value) + .last() + .unwrap_or(0) + } + + fn signal_strength_at(&self, time: u32) -> i32 { + let value = self.value_at(time); + value * time as i32 + } + + fn sum_of_signal_strengths(&self, times: &[u32]) -> i32 { + times + .iter() + .map(|time| self.signal_strength_at(*time)) + .sum() + } + + fn pixel_should_activate(&self, x: usize, y: usize) -> bool { + let time = (y * 40 + x + 1) as u32; + let sprite_middle = self.value_at(time); + ((x as i32) - sprite_middle).abs() <= 1 + } +} diff --git a/2022/src/bin/day_11.rs b/2022/src/bin/day_11.rs new file mode 100644 index 0000000..ffba6ab --- /dev/null +++ b/2022/src/bin/day_11.rs @@ -0,0 +1,154 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{line_ending, u64}, + combinator::{map, value}, + multi::separated_list1, + sequence::{pair, preceded, tuple}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_11.txt")?; + let troop = MonkeyTroop::parser(&input).unwrap().1; + + { + let mut troop_1 = troop.clone(); + for _ in 0..20 { + troop_1.monkey_game_round(true); + } + dbg!(&troop_1.monkey_business_score()); + } + + { + let mut troop_2 = troop.clone(); + for _ in 0..10000 { + troop_2.monkey_game_round(false); + } + dbg!(&troop_2.monkey_business_score()); + } + + Ok(()) +} + +#[derive(Debug, Clone)] +struct MonkeyTroop { + monkeys: Vec<Monkey>, + gcd: u64, +} + +#[derive(Debug, Clone)] +struct Monkey { + items: Vec<u64>, + operation: Operation, + test_denominator: u64, + true_target: usize, + false_target: usize, + inspection_count: usize, +} + +#[derive(Debug, Clone)] +enum Operation { + Add(u64), + Multiply(u64), + Square, +} + +impl MonkeyTroop { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(pair(line_ending, line_ending), Monkey::parser), + |monkeys| MonkeyTroop { + gcd: monkeys.iter().map(|m| m.test_denominator).product(), + monkeys, + }, + )(input) + } + + fn monkey_game_round(&mut self, worry_reduction: bool) { + for monkey_i in 0..self.monkeys.len() { + self.monkeys[monkey_i].inspect_items(worry_reduction, self.gcd); + + let items = std::mem::take(&mut self.monkeys[monkey_i].items); + let test_denominator = self.monkeys[monkey_i].test_denominator.clone(); + let true_target = self.monkeys[monkey_i].true_target.clone(); + let false_target = self.monkeys[monkey_i].false_target.clone(); + for item in items { + let target_monkey = if item % test_denominator == 0 { + true_target + } else { + false_target + }; + self.monkeys[target_monkey].items.push(item); + } + } + } + + fn monkey_business_score(&self) -> usize { + let mut counts: Vec<usize> = self + .monkeys + .iter() + .map(|m| m.inspection_count.clone()) + .collect(); + counts.sort(); + counts.reverse(); + counts[0] * counts[1] + } +} + +impl Monkey { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + preceded( + tuple(( + tag("Monkey "), + u64, + tag(":"), + line_ending, + tag(" Starting items: "), + )), + separated_list1(tag(", "), u64), + ), + preceded( + pair(line_ending, tag(" Operation: new = old ")), + alt(( + map(preceded(tag("+ "), u64), Operation::Add), + map(preceded(tag("* "), u64), Operation::Multiply), + value(Operation::Square, tag("* old")), + )), + ), + preceded(pair(line_ending, tag(" Test: divisible by ")), u64), + preceded(pair(line_ending, tag(" If true: throw to monkey ")), u64), + preceded( + pair(line_ending, tag(" If false: throw to monkey ")), + u64, + ), + )), + |(items, operation, test_denominator, true_target, false_target)| Monkey { + items, + operation, + test_denominator, + true_target: true_target as usize, + false_target: false_target as usize, + inspection_count: 0, + }, + )(input) + } + + fn inspect_items(&mut self, worry_reduction: bool, gcd: u64) { + for item in &mut self.items { + match self.operation { + Operation::Add(i) => *item += i, + Operation::Multiply(i) => *item *= i, + Operation::Square => *item = *item * *item, + }; + if worry_reduction { + *item /= 3; + } + *item = *item % gcd; + } + self.inspection_count += self.items.len() + } +} diff --git a/2022/src/bin/day_12.rs b/2022/src/bin/day_12.rs new file mode 100644 index 0000000..9190113 --- /dev/null +++ b/2022/src/bin/day_12.rs @@ -0,0 +1,174 @@ +use nom::{ + character::complete::{line_ending, satisfy}, + combinator::map, + multi::{many1, separated_list1}, + IResult, +}; +use std::{ + collections::{BTreeMap, BTreeSet}, + fs, +}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_12.txt")?; + let map = HeightMap::parser(&input).unwrap().1; + + let distance_map = MapExploration::explore(&map); + + dbg!(distance_map.distance_to.get(&map.start)); + + let min_distance_start = map + .heights + .iter() + .enumerate() + .flat_map(|(y, row)| { + row.iter() + .enumerate() + .filter(|(_x, height)| **height == 0) + .map(move |(x, _)| Point { x, y }) + }) + .filter_map(|p| distance_map.distance_to.get(&p)) + .min(); + dbg!(min_distance_start); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct HeightMap { + heights: Vec<Vec<u8>>, + start: Point, + end: Point, +} + +#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Point { + x: usize, + y: usize, +} + +impl HeightMap { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, many1(satisfy(|c| c.is_ascii_alphabetic()))), + |height_chars| { + let mut start = Point::default(); + let mut end = Point::default(); + let mut heights = Vec::new(); + for y in 0..height_chars.len() { + let mut new_row = Vec::new(); + for x in 0..height_chars[y].len() { + let height = match height_chars[y][x] { + 'S' => { + start = Point { x, y }; + 0 + } + 'E' => { + end = Point { x, y }; + 25 + } + a if a.is_ascii_lowercase() => height_chars[y][x] as u8 - b'a', + a => panic!("Unexpected character {}", a), + }; + new_row.push(height); + } + heights.push(new_row); + } + + HeightMap { + heights, + start, + end, + } + }, + )(input) + } + + fn adjacent_to(&self, p: &Point) -> Vec<Point> { + let current_height = self + .heights + .get(p.y) + .and_then(|row| row.get(p.x)) + .cloned() + .unwrap_or(0); + + p.adjacent() + .into_iter() + .filter(|other_p| { + let other_height = self + .heights + .get(other_p.y) + .and_then(|row| row.get(other_p.x)); + + match other_height { + None => false, + Some(&other_height) => other_height + 1 >= current_height, + } + }) + .collect() + } +} + +impl Point { + fn adjacent(&self) -> Vec<Point> { + let mut result = Vec::new(); + if self.x > 0 { + result.push(Point { + x: self.x - 1, + y: self.y, + }); + } + if self.x < usize::MAX { + result.push(Point { + x: self.x + 1, + y: self.y, + }); + } + if self.y > 0 { + result.push(Point { + x: self.x, + y: self.y - 1, + }); + } + if self.y < usize::MAX { + result.push(Point { + x: self.x, + y: self.y + 1, + }); + } + result + } +} + +struct MapExploration { + distance_to: BTreeMap<Point, u32>, +} + +impl MapExploration { + fn explore(map: &HeightMap) -> MapExploration { + let mut frontier = BTreeSet::new(); + let mut distance_to = BTreeMap::new(); + let mut distance = 0; + + distance_to.insert(map.end.clone(), distance); + frontier.insert(map.end.clone()); + + while !frontier.is_empty() { + let mut next_frontier = BTreeSet::new(); + distance += 1; + + for frontier_point in frontier { + for adjacent_point in map.adjacent_to(&frontier_point) { + if !distance_to.contains_key(&adjacent_point) { + distance_to.insert(adjacent_point.clone(), distance); + next_frontier.insert(adjacent_point); + } + } + } + + frontier = next_frontier; + } + + MapExploration { distance_to } + } +} diff --git a/2022/src/bin/day_13.rs b/2022/src/bin/day_13.rs new file mode 100644 index 0000000..b00d790 --- /dev/null +++ b/2022/src/bin/day_13.rs @@ -0,0 +1,146 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{line_ending, u32}, + combinator::map, + multi::{separated_list0, separated_list1}, + sequence::{delimited, pair, preceded}, + IResult, +}; +use std::{cmp::Ordering, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_13.txt")?; + let message = EncodedMessage::parser(&input).unwrap().1; + + dbg!(message.ordered_index_sum()); + dbg!(message.decoder_key()); + + Ok(()) +} + +#[derive(Debug)] +struct EncodedMessage { + message_pairs: Vec<(Message, Message)>, + ordered_indices: Vec<usize>, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +enum Message { + List(Vec<Message>), + Value(u32), +} + +impl EncodedMessage { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1( + pair(line_ending, line_ending), + pair(Message::parser, preceded(line_ending, Message::parser)), + ), + EncodedMessage::new, + )(input) + } + + fn new(message_pairs: Vec<(Message, Message)>) -> EncodedMessage { + let mut ordered_indices = Vec::new(); + + for (i, (left, right)) in message_pairs.iter().enumerate() { + if left <= right { + ordered_indices.push(i + 1); + } + } + EncodedMessage { + message_pairs, + ordered_indices, + } + } + + fn ordered_index_sum(&self) -> usize { + self.ordered_indices.iter().sum() + } + + fn decoder_key(&self) -> usize { + let mut all_packets: Vec<Message> = self + .message_pairs + .iter() + .flat_map(|(left, right)| [left.clone(), right.clone()]) + .collect(); + let divider_1 = Message::List(vec![Message::List(vec![Message::Value(2)])]); + let divider_2 = Message::List(vec![Message::List(vec![Message::Value(6)])]); + all_packets.push(divider_1.clone()); + all_packets.push(divider_2.clone()); + + all_packets.sort(); + + let index_1 = all_packets.iter().position(|m| *m == divider_1).unwrap() + 1; + let index_2 = all_packets.iter().position(|m| *m == divider_2).unwrap() + 1; + index_1 * index_2 + } +} + +impl Message { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + map(u32, Message::Value), + map( + delimited( + tag("["), + separated_list0(tag(","), Message::parser), + tag("]"), + ), + Message::List, + ), + ))(input) + } +} + +impl PartialOrd for Message { + fn partial_cmp(&self, other: &Self) -> Option<Ordering> { + Some(self.cmp(other)) + } +} + +impl Ord for Message { + fn cmp(&self, other: &Self) -> Ordering { + match (self, other) { + (Message::Value(left), Message::Value(right)) => left.cmp(right), + (Message::List(left), Message::List(right)) => { + for i in 0..left.len() { + if i == right.len() { + return Ordering::Greater; + } + let inner_ord = left[i].cmp(&right[i]); + if inner_ord != Ordering::Equal { + return inner_ord; + } + } + left.len().cmp(&right.len()) + } + (Message::Value(left), Message::List(right)) => { + if right.len() == 0 { + Ordering::Greater + } else { + let inner_ord = Message::Value(*left).cmp(&right[0]); + if inner_ord != Ordering::Equal { + inner_ord + } else { + 1.cmp(&right.len()) + } + } + } + (Message::List(left), Message::Value(right)) => { + if left.len() == 0 { + Ordering::Less + } else { + let inner_ord = left[0].cmp(&Message::Value(*right)); + if inner_ord != Ordering::Equal { + inner_ord + } else { + left.len().cmp(&1) + } + } + } + } + } +} diff --git a/2022/src/bin/day_14.rs b/2022/src/bin/day_14.rs new file mode 100644 index 0000000..ec5b1cb --- /dev/null +++ b/2022/src/bin/day_14.rs @@ -0,0 +1,184 @@ +use nom::{ + bytes::complete::tag, + character::complete::{i32, line_ending}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{collections::BTreeSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_14.txt")?; + let room = Room::parser(&input).unwrap().1; + + { + let mut void_room = room.clone(); + let mut room_is_full = false; + while !room_is_full { + let drop_result = void_room.drop_sand(true); + room_is_full = drop_result != DropSandResult::Settled; + if drop_result == DropSandResult::RoomFull { + return Err("The room filled up to the top!".into()); + } + } + dbg!(void_room.sand.len()); + } + + { + let mut floor_room = room.clone(); + let mut room_is_full = false; + while !room_is_full { + let drop_result = floor_room.drop_sand(false); + room_is_full = drop_result != DropSandResult::Settled; + if drop_result == DropSandResult::FellIntoTheVoid { + return Err("This room shouldn't have a void!".into()); + } + } + dbg!(floor_room.sand.len()); + } + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Room { + walls: Vec<Wall>, + sand: BTreeSet<Point>, + sand_inlet: Point, + void_start_y: i32, +} + +#[derive(Debug, Clone)] +enum Wall { + Vertical(VerticalWall), + Horizontal(HorizontalWall), +} + +#[derive(Debug, Clone)] +struct VerticalWall { + x: i32, + y1: i32, + y2: i32, +} + +#[derive(Debug, Clone)] +struct HorizontalWall { + y: i32, + x1: i32, + x2: i32, +} + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Point { + x: i32, + y: i32, +} + +#[derive(Debug, PartialEq, Eq)] +enum DropSandResult { + FellIntoTheVoid, + Settled, + RoomFull, +} + +impl Room { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, separated_list1(tag(" -> "), Point::parser)), + |wall_segments| { + let mut walls = Vec::new(); + let mut void_start_y = 0; + for wall_segment in wall_segments { + for point_pair in wall_segment.windows(2) { + walls.push(if point_pair[0].x == point_pair[1].x { + Wall::Vertical(VerticalWall { + x: point_pair[0].x, + y1: point_pair[0].y.min(point_pair[1].y), + y2: point_pair[0].y.max(point_pair[1].y), + }) + } else if point_pair[0].y == point_pair[1].y { + Wall::Horizontal(HorizontalWall { + y: point_pair[0].y, + x1: point_pair[0].x.min(point_pair[1].x), + x2: point_pair[0].x.max(point_pair[1].x), + }) + } else { + panic!("Invalid wall segment") + }); + + void_start_y = void_start_y.max(point_pair[0].y); + void_start_y = void_start_y.max(point_pair[1].y); + } + + void_start_y = + void_start_y.max(wall_segment.iter().map(|p| p.y).max().unwrap_or(0)) + } + Room { + walls, + sand: BTreeSet::new(), + sand_inlet: Point { x: 500, y: 0 }, + void_start_y, + } + }, + )(input) + } + + fn point_is_occupied(&self, p: &Point) -> bool { + p.y >= self.void_start_y + 2 + || self.sand.contains(p) + || self.walls.iter().any(|w| w.point_is_occupied(p)) + } + + fn point_is_in_the_void(&self, p: &Point) -> bool { + p.y >= self.void_start_y + } + + fn drop_sand(&mut self, allow_infinite_void: bool) -> DropSandResult { + if self.point_is_occupied(&self.sand_inlet) { + return DropSandResult::RoomFull; + } + + let mut falling_sand = self.sand_inlet.clone(); + loop { + if allow_infinite_void && self.point_is_in_the_void(&falling_sand) { + return DropSandResult::FellIntoTheVoid; + } else if !self.point_is_occupied(&Point { + x: falling_sand.x, + y: falling_sand.y + 1, + }) { + falling_sand.y += 1; + } else if !self.point_is_occupied(&Point { + x: falling_sand.x - 1, + y: falling_sand.y + 1, + }) { + falling_sand.x -= 1; + falling_sand.y += 1; + } else if !self.point_is_occupied(&Point { + x: falling_sand.x + 1, + y: falling_sand.y + 1, + }) { + falling_sand.x += 1; + falling_sand.y += 1; + } else { + self.sand.insert(falling_sand); + return DropSandResult::Settled; + } + } + } +} + +impl Wall { + fn point_is_occupied(&self, p: &Point) -> bool { + match self { + Wall::Vertical(VerticalWall { x, y1, y2 }) => p.x == *x && p.y >= *y1 && p.y <= *y2, + Wall::Horizontal(HorizontalWall { y, x1, x2 }) => p.y == *y && p.x >= *x1 && p.x <= *x2, + } + } +} + +impl Point { + fn parser(input: &str) -> IResult<&str, Self> { + map(tuple((i32, tag(","), i32)), |(x, _, y)| Point { x, y })(input) + } +} diff --git a/2022/src/bin/day_15.rs b/2022/src/bin/day_15.rs new file mode 100644 index 0000000..be7645d --- /dev/null +++ b/2022/src/bin/day_15.rs @@ -0,0 +1,167 @@ +use nom::{ + bytes::complete::tag, + character::complete::{i64, line_ending}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{collections::BTreeSet, fs, ops::Range}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_15.txt")?; + let sensors = Sensors::parser(&input).unwrap().1; + + dbg!(sensors.count_covered_non_beacons_in_row(2000000)); + + dbg!(sensors + .find_hole_in_range( + Point { x: 0, y: 0 }..Point { + x: 4000001, + y: 4000001 + } + ) + .tuning_frequency()); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Sensors(Vec<Sensor>); + +#[derive(Debug, Clone)] +struct Sensor { + center: Point, + closest_beacon: Point, +} + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Point { + x: i64, + y: i64, +} + +impl Sensors { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Sensor::parser), Sensors)(input) + } + + fn ranges_in_row(&self, y: i64) -> Vec<Range<i64>> { + let mut ranges: Vec<Range<i64>> = self + .0 + .iter() + .filter_map(|s| s.get_range_in_row(y)) + .collect(); + + let mut any_changes = true; + while any_changes { + any_changes = false; + ranges.sort_unstable_by_key(|r| r.start); + if ranges.len() > 0 { + for i in 0..ranges.len() - 1 { + if ranges[i].end > ranges[i + 1].start { + ranges[i + 1].start = ranges[i].end; + any_changes = true; + } + } + ranges.retain(|r| !r.is_empty()); + } + } + ranges + } + + fn count_covered_non_beacons_in_row(&self, y: i64) -> u64 { + let ranges = self.ranges_in_row(y); + + // these beacons are all distinct, and are all definitely on + // the line because the beacons are how the line is found! + let beacons: BTreeSet<i64> = self + .0 + .iter() + .filter(|s| s.closest_beacon.y == y) + .map(|s| s.closest_beacon.x) + .collect(); + + ranges.into_iter().map(|r| r.count() as u64).sum::<u64>() - beacons.len() as u64 + } + + fn find_hole_in_range(&self, field_range: Range<Point>) -> Point { + let full_row_len = field_range.end.x - field_range.start.x; + for y in field_range.start.y..field_range.end.y { + let ranges = self.ranges_in_row(y); + let count = ranges + .into_iter() + .map(|mut r| { + if r.start < field_range.start.x { + r.start = field_range.start.x + }; + if r.end > field_range.end.x { + r.end = field_range.end.x + }; + r + }) + .map(|r| r.count() as i64) + .sum::<i64>(); + if full_row_len != count { + for x in field_range.start.x..field_range.end.x { + let p = Point { x, y }; + if !self.0.iter().any(|s| s.contains(&p)) { + return p; + } + } + } + } + panic!("Didn't find the hole as specified!") + } +} + +impl Sensor { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("Sensor at "), + Point::parser, + tag(": closest beacon is at "), + Point::parser, + )), + |(_, center, _, closest_beacon)| Sensor { + center, + closest_beacon, + }, + )(input) + } + + fn get_range_in_row(&self, y: i64) -> Option<Range<i64>> { + let dy = (self.center.y - y).abs(); + let dx = self.radius() - dy; + if dx < 0 { + None + } else { + let min_x = self.center.x - dx; + let max_x = self.center.x + dx; + Some(min_x..(max_x + 1)) + } + } + + fn radius(&self) -> i64 { + (self.center.x - self.closest_beacon.x).abs() + + (self.center.y - self.closest_beacon.y).abs() + } + + fn contains(&self, other: &Point) -> bool { + let d = (self.center.x - other.x).abs() + (self.center.y - other.y).abs(); + d <= self.radius() + } +} + +impl Point { + fn parser(input: &str) -> IResult<&str, Self> { + map(tuple((tag("x="), i64, tag(", y="), i64)), |(_, x, _, y)| { + Point { x, y } + })(input) + } + + fn tuning_frequency(&self) -> i64 { + self.x * 4000000 + self.y + } +} diff --git a/2022/src/bin/day_16.rs b/2022/src/bin/day_16.rs new file mode 100644 index 0000000..e35f04e --- /dev/null +++ b/2022/src/bin/day_16.rs @@ -0,0 +1,236 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{alpha1, line_ending, u32}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{ + collections::{BTreeMap, BTreeSet}, + fs, +}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_16.txt")?; + let nodes = Nodes::parser(&input).unwrap().1; + let mut condensed = nodes.condense(); + + let mut initial_open_valves = BTreeSet::new(); + initial_open_valves.insert(0); + + let initial_state = State { + actors: vec![Actor { + position: 0, + time_remaining: 30, + }], + open_valves: initial_open_valves.clone(), + }; + + dbg!(condensed.find_optimal_pressure_relieved(&initial_state)); + + let initial_state_with_elephant = State { + actors: vec![ + Actor { + position: 0, + time_remaining: 26 + }; + 2 + ], + open_valves: initial_open_valves, + }; + dbg!(condensed.find_optimal_pressure_relieved(&initial_state_with_elephant)); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Nodes { + nodes: BTreeMap<String, Node>, +} + +#[derive(Debug, Clone)] +struct Node { + id: String, + flow_rate: u32, + exits: BTreeMap<String, u32>, +} + +#[derive(Debug)] +struct CondensedNodes { + nodes: Vec<CondensedNode>, + cache: BTreeMap<State, u32>, +} + +#[derive(Debug, Clone)] +struct CondensedNode { + flow_rate: u32, + exits: Vec<u32>, +} + +impl Nodes { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Node::parser), |nodes| Nodes { + nodes: nodes + .into_iter() + .map(|node| (node.id.clone(), node)) + .collect(), + })(input) + } + + fn condense(&self) -> CondensedNodes { + let node_ids: Vec<String> = self + .nodes + .values() + .filter(|n| n.id == "AA" || n.flow_rate > 0) + .map(|n| n.id.clone()) + .collect(); + + let mut condensed = CondensedNodes { + nodes: self + .nodes + .values() + .filter(|n| n.id == "AA" || n.flow_rate > 0) + .map(|n| CondensedNode { + flow_rate: n.flow_rate, + exits: Vec::new(), + }) + .collect(), + cache: BTreeMap::new(), + }; + + for (id, mut node) in condensed.nodes.iter_mut().enumerate() { + node.exits = node_ids + .iter() + .map(|original_destination_id| { + // +1 because in condensed it includes opening the valve + self.find_shortest_path(&node_ids[id], &original_destination_id) + 1 + }) + .collect() + } + + condensed + } + + fn find_shortest_path(&self, from: &str, to: &str) -> u32 { + let mut frontier: BTreeSet<&str> = BTreeSet::new(); + let mut explored: BTreeSet<&str> = BTreeSet::new(); + let mut distance = 0; + + explored.insert(from); + frontier.insert(from); + + while !frontier.is_empty() { + let mut next_frontier: BTreeSet<&str> = BTreeSet::new(); + distance += 1; + + for frontier_point in frontier { + for adjacent_point in self.nodes.get(frontier_point).unwrap().exits.keys() { + if adjacent_point == to { + return distance; + } + if !explored.contains(&adjacent_point.as_ref()) { + explored.insert(adjacent_point); + next_frontier.insert(adjacent_point); + } + } + } + + frontier = next_frontier; + } + panic!("Didn't reach end"); + } +} + +impl Node { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("Valve "), + alpha1, + tag(" has flow rate="), + u32, + alt(( + tag("; tunnels lead to valves "), + tag("; tunnel leads to valve "), + )), + separated_list1(tag(", "), alpha1), + )), + |(_, id, _, flow_rate, _, exits): (_, &str, _, u32, _, Vec<&str>)| Node { + id: id.to_owned(), + flow_rate, + exits: exits + .into_iter() + .map(|destination| (destination.to_owned(), 1)) + .collect(), + }, + )(input) + } +} + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct State { + actors: Vec<Actor>, + open_valves: BTreeSet<usize>, +} + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Actor { + position: usize, + time_remaining: u32, +} + +impl State { + fn sort_actors(&mut self) { + self.actors.sort() + } +} + +impl CondensedNodes { + fn find_optimal_pressure_relieved(&mut self, state: &State) -> u32 { + let cache_value = self.cache.get(state); + if let Some(cache_value) = cache_value { + return *cache_value; + } + + let mut computed_value = 0; + for (actor_i, actor) in state.actors.iter().enumerate() { + let exits_to_investigate: Vec<(usize, u32)> = self.nodes[actor.position] + .exits + .iter() + .enumerate() + .filter(|(destination, distance)| { + !state.open_valves.contains(destination) && **distance <= actor.time_remaining + }) + .map(|(destination, distance)| (destination.clone(), distance.clone())) + .collect(); + + for (destination, distance) in exits_to_investigate { + let mut open_valves = state.open_valves.clone(); + open_valves.insert(destination.clone()); + let new_actor = Actor { + time_remaining: actor.time_remaining - distance, + position: destination.clone(), + }; + let relief_from_this_valve = + self.nodes[destination].flow_rate * new_actor.time_remaining as u32; + let mut actors = state.actors.clone(); + actors[actor_i] = new_actor; + + let mut state_this_way = State { + actors, + open_valves, + }; + state_this_way.sort_actors(); + + let recursive_relief = self.find_optimal_pressure_relieved(&state_this_way); + let relief = relief_from_this_valve + recursive_relief; + computed_value = computed_value.max(relief); + } + } + + self.cache.insert(state.clone(), computed_value); + computed_value + } +} diff --git a/2022/src/bin/day_17.rs b/2022/src/bin/day_17.rs new file mode 100644 index 0000000..46fedc8 --- /dev/null +++ b/2022/src/bin/day_17.rs @@ -0,0 +1,238 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + combinator::{map, value}, + multi::many1, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_17.txt")?; + let nudges = Inputs::parser(&input).unwrap().1; + let pieces = Piece::all(); + let board = GameBoard::new(pieces, nudges.nudges); + + { + let mut part_1_board = board.clone(); + for _ in 0..2022 { + part_1_board.drop_next_piece(); + } + dbg!(part_1_board.full_height()); + } + + { + let mut part_2_board = board.clone(); + for i in 0..1_000_000_000_000u64 { + if i % 1_000_000_000 == 0 { + dbg!(i / 1_000_000_000, part_2_board.truncated); + } + part_2_board.drop_next_piece(); + } + dbg!(part_2_board.full_height()); + } + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Inputs { + nudges: Vec<Nudge>, +} + +#[derive(Debug, Clone)] +enum Nudge { + Left, + Right, +} + +#[derive(Debug, Clone)] +struct Piece { + data_at_x: Vec<Vec<u8>>, +} + +impl Inputs { + fn parser(input: &str) -> IResult<&str, Self> { + map( + many1(alt(( + value(Nudge::Left, tag("<")), + value(Nudge::Right, tag(">")), + ))), + |nudges| Inputs { nudges }, + )(input) + } +} + +impl Piece { + fn new(data_at_x_0: Vec<u8>) -> Piece { + let mut shifting_data = data_at_x_0.clone(); + + let mut data_at_x = vec![data_at_x_0]; + + while shifting_data.iter().all(|b| b & 0b00000010 == 0) { + for row in &mut shifting_data { + *row >>= 1; + } + data_at_x.push(shifting_data.clone()); + } + + Piece { data_at_x } + } + + fn all() -> Vec<Piece> { + vec![ + Piece::new(vec![0b11110000]), + Piece::new(vec![0b01000000, 0b11100000, 0b01000000]), + Piece::new(vec![0b11100000, 0b00100000, 0b00100000]), + Piece::new(vec![0b10000000, 0b10000000, 0b10000000, 0b10000000]), + Piece::new(vec![0b11000000, 0b11000000]), + ] + } +} + +#[derive(Debug, Clone)] +struct GameBoard { + pieces: Vec<Piece>, + piece_index: usize, + nudges: Vec<Nudge>, + compound_nudges: Vec<Vec<usize>>, + nudge_index: usize, + solidified: Vec<u8>, + truncated: u64, +} + +impl GameBoard { + fn new(pieces: Vec<Piece>, nudges: Vec<Nudge>) -> GameBoard { + GameBoard { + compound_nudges: pieces + .iter() + .map(|piece| { + (0..nudges.len()) + .map(|nudge_start| { + let mut piece_x = 2; + for i in 0..4 { + let nudge_i = (nudge_start + i) % nudges.len(); + match nudges[nudge_i] { + Nudge::Left => { + if piece_x > 0 { + piece_x -= 1; + } + } + Nudge::Right => { + if piece_x < piece.data_at_x.len() - 1 { + piece_x += 1; + } + } + } + } + piece_x + }) + .collect() + }) + .collect(), + pieces, + piece_index: 0, + nudges, + nudge_index: 0, + solidified: Vec::new(), + truncated: 0, + } + } + + fn drop_next_piece(&mut self) { + let piece = &self.pieces[self.piece_index]; + // precomputes the effect of the first 4 nudges + let mut piece_x = self.compound_nudges[self.piece_index][self.nudge_index]; + + self.piece_index += 1; + if self.piece_index >= self.pieces.len() { + self.piece_index -= self.pieces.len(); + } + + self.nudge_index += 4; + if self.nudge_index >= self.nudges.len() { + self.nudge_index -= self.nudges.len(); + } + + let mut piece_y = self.first_open_row(); + + loop { + if piece_y > 0 && self.piece_can_be_at(piece_y - 1, &piece.data_at_x[piece_x]) { + piece_y -= 1; + } else { + break; + } + + let nudge = &self.nudges[self.nudge_index]; + self.nudge_index += 1; + if self.nudge_index >= self.nudges.len() { + self.nudge_index -= self.nudges.len(); + } + + match nudge { + Nudge::Left => { + if piece_x > 0 && self.piece_can_be_at(piece_y, &piece.data_at_x[piece_x - 1]) { + piece_x -= 1; + } + } + Nudge::Right => { + if piece_x < piece.data_at_x.len() - 1 + && self.piece_can_be_at(piece_y, &piece.data_at_x[piece_x + 1]) + { + piece_x += 1; + } + } + } + } + + let mut to_truncate = None; + for (i, piece_row) in piece.data_at_x[piece_x].iter().enumerate() { + let full_index = piece_y + i; + if full_index >= self.solidified.len() { + self.solidified.push(piece_row.clone()); + } else { + self.solidified[full_index] |= piece_row; + if self.solidified[full_index] == 0b11111110 { + to_truncate = Some(full_index); + } + } + } + + if let Some(to_truncate) = to_truncate { + self.truncated += to_truncate as u64; + let truncated_len = self.solidified.len() - to_truncate; + for move_i in 0..truncated_len { + self.solidified[move_i] = self.solidified[move_i + to_truncate]; + } + self.solidified.truncate(truncated_len); + } + } + + fn piece_can_be_at(&self, piece_y: usize, piece: &[u8]) -> bool { + for (i, row) in piece.iter().enumerate() { + let full_i = piece_y + i; + if full_i >= self.solidified.len() { + return true; + } + if self.solidified[full_i] & row != 0 { + return false; + } + } + return true; + } + + fn first_open_row(&self) -> usize { + self.solidified.len() + } + + fn full_height(&self) -> u64 { + self.first_open_row() as u64 + self.truncated + } + + fn debug(&self) { + println!("Clearerd: {}", self.truncated); + for row in self.solidified.iter().rev() { + println!("{:08b}", row); + } + } +} diff --git a/2022/src/bin/day_18.rs b/2022/src/bin/day_18.rs new file mode 100644 index 0000000..1111441 --- /dev/null +++ b/2022/src/bin/day_18.rs @@ -0,0 +1,157 @@ +use nom::{ + bytes::complete::tag, + character::complete::{i32, line_ending}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{collections::BTreeSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_18.txt")?; + let voxels = Voxels::parser(&input).unwrap().1; + dbg!(voxels.naive_surface_area()); + dbg!(voxels.exterior_surface_area()); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Voxels(BTreeSet<Point3d>); + +#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Point3d { + x: i32, + y: i32, + z: i32, +} + +impl Voxels { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Point3d::parser), |vox| { + Voxels(vox.into_iter().collect()) + })(input) + } + + fn naive_surface_area(&self) -> usize { + let units = Point3d::units(); + self.0 + .iter() + .flat_map(|v| units.iter().map(move |u| v + u)) + .filter(|v| !self.0.contains(v)) + .count() + } + + fn exterior_surface_area(&self) -> usize { + let units = Point3d::units(); + let mut known_internal: BTreeSet<Point3d> = BTreeSet::new(); + let known_external = self.bounds(); + + self.0 + .iter() + .flat_map(|v| units.iter().map(move |u| v + u)) + .filter(|v| !self.0.contains(v)) + .filter(|v| { + if known_internal.contains(v) { + return false; + } + + let mut flooded: BTreeSet<Point3d> = BTreeSet::new(); + let mut frontier: BTreeSet<Point3d> = BTreeSet::new(); + flooded.insert(v.clone()); + frontier.insert(v.clone()); + let mut is_internal = true; + while is_internal && frontier.len() > 0 { + let mut next_frontier = BTreeSet::new(); + for front in &frontier { + for unit in &units { + let adjacent = front + unit; + if !self.0.contains(&adjacent) && !flooded.contains(&adjacent) { + if known_external.contains(&adjacent) { + is_internal = false; + } + flooded.insert(adjacent.clone()); + next_frontier.insert(adjacent); + } + } + } + frontier = next_frontier; + } + if is_internal { + known_internal.append(&mut flooded); + } + + !is_internal + }) + .count() + } + + fn bounds(&self) -> BTreeSet<Point3d> { + let min_x = self.0.iter().map(|v| v.x).min().unwrap_or(0) - 1; + let max_x = self.0.iter().map(|v| v.x).max().unwrap_or(0) + 1; + let min_y = self.0.iter().map(|v| v.y).min().unwrap_or(0) - 1; + let max_y = self.0.iter().map(|v| v.y).max().unwrap_or(0) + 1; + let min_z = self.0.iter().map(|v| v.z).min().unwrap_or(0) - 1; + let max_z = self.0.iter().map(|v| v.z).max().unwrap_or(0) + 1; + + let mut result = BTreeSet::new(); + for x in [min_x, max_x] { + for y in [min_y, max_y] { + for z in [min_z, max_z] { + result.insert(Point3d { x, y, z }); + } + } + } + result + } +} + +impl Point3d { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple((i32, tag(","), i32, tag(","), i32)), + |(x, _, y, _, z)| Point3d { x, y, z }, + )(input) + } + + fn units() -> Vec<Point3d> { + vec![ + Point3d { + x: -1, + ..Point3d::default() + }, + Point3d { + x: 1, + ..Point3d::default() + }, + Point3d { + y: -1, + ..Point3d::default() + }, + Point3d { + y: 1, + ..Point3d::default() + }, + Point3d { + z: -1, + ..Point3d::default() + }, + Point3d { + z: 1, + ..Point3d::default() + }, + ] + } +} + +impl ::core::ops::Add<&Point3d> for &Point3d { + type Output = Point3d; + fn add(self, rhs: &Point3d) -> Point3d { + Point3d { + x: self.x.add(rhs.x), + y: self.y.add(rhs.y), + z: self.z.add(rhs.z), + } + } +} diff --git a/2022/src/bin/day_19.rs b/2022/src/bin/day_19.rs new file mode 100644 index 0000000..a6c1737 --- /dev/null +++ b/2022/src/bin/day_19.rs @@ -0,0 +1,352 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{line_ending, u32}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{cell::RefCell, collections::BTreeMap, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_19.txt")?; + let blueprints = Blueprints::parser(&input).unwrap().1; + + dbg!(blueprints.quality_sum()); + + let part_2_state = State { + time_remaining: 32, + resources: Resources::default(), + robots: Resources { + ore: 1, + ..Resources::default() + }, + }; + + dbg!(blueprints + .0 + .iter() + .take(3) + .map(|b| { + let result = b.max_geodes(part_2_state.clone()); + b.clear_cache(); + result + }) + .product::<u32>()); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Blueprints(Vec<Blueprint>); + +#[derive(Debug, Clone)] +struct Blueprint { + id: u32, + ore_robot: Resources, + clay_robot: Resources, + obsidian_robot: Resources, + geode_robot: Resources, + max_geode_cache: RefCell<BTreeMap<State, u32>>, +} + +#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Resources { + ore: u32, + clay: u32, + obsidian: u32, + geodes: u32, +} + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct State { + time_remaining: u32, + resources: Resources, + robots: Resources, +} + +impl Blueprints { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Blueprint::parser), Blueprints)(input) + } + + fn quality_sum(&self) -> u32 { + self.0.iter().map(|b| b.quality_level()).sum() + } +} + +impl Blueprint { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("Blueprint "), + u32, + tag(": Each ore robot costs "), + Resources::parser, + tag(". Each clay robot costs "), + Resources::parser, + tag(". Each obsidian robot costs "), + Resources::parser, + tag(". Each geode robot costs "), + Resources::parser, + tag("."), + )), + |(_, id, _, ore_robot, _, clay_robot, _, obsidian_robot, _, geode_robot, _)| { + Blueprint { + id, + ore_robot, + clay_robot, + obsidian_robot, + geode_robot, + max_geode_cache: RefCell::new(BTreeMap::new()), + } + }, + )(input) + } + + fn quality_level(&self) -> u32 { + let result = self.id + * self.max_geodes(State { + time_remaining: 24, + resources: Resources::default(), + robots: Resources { + ore: 1, + ..Resources::default() + }, + }); + self.clear_cache(); + result + } + + fn max_geodes(&self, state: State) -> u32 { + if state.time_remaining == 0 { + state.resources.geodes + } else { + if let Some(cache) = self.max_geode_cache.borrow().get(&state) { + return cache.clone(); + } + + let calculated = state + .possible_next_states(&self) + .into_iter() + .map(|next_state| self.max_geodes(next_state)) + .max() + .unwrap(); + self.max_geode_cache + .borrow_mut() + .insert(state.clone(), calculated); + calculated + } + } + + fn clear_cache(&self) { + self.max_geode_cache.borrow_mut().clear(); + } +} + +impl Resources { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1( + tag(" and "), + tuple(( + u32, + tag(" "), + alt((tag("ore"), tag("clay"), tag("obsidian"))), + )), + ), + |resources| { + let mut ore = 0; + let mut clay = 0; + let mut obsidian = 0; + + for (amount, _, resource) in resources { + match resource { + "ore" => ore = amount, + "clay" => clay = amount, + "obsidian" => obsidian = amount, + unknown => panic!("{} isn't one of the specified tags", unknown), + } + } + + Resources { + ore, + clay, + obsidian, + geodes: 0, + } + }, + )(input) + } +} + +impl State { + fn possible_next_states(&self, blueprint: &Blueprint) -> Vec<State> { + let mut next_states = Vec::new(); + + // build an ore robot + if let Some(time) = self.time_to_afford(&blueprint.ore_robot) { + let mut next_state = self.simulate_time_passing(time + 1); + next_state.robots.ore += 1; + next_state.resources -= &blueprint.ore_robot; + next_states.push(next_state); + } + + // build a clay robot + if let Some(time) = self.time_to_afford(&blueprint.clay_robot) { + let mut next_state = self.simulate_time_passing(time + 1); + next_state.robots.clay += 1; + next_state.resources -= &blueprint.clay_robot; + next_states.push(next_state); + } + + // build an obsidian robot + if let Some(time) = self.time_to_afford(&blueprint.obsidian_robot) { + let mut next_state = self.simulate_time_passing(time + 1); + next_state.robots.obsidian += 1; + next_state.resources -= &blueprint.obsidian_robot; + next_states.push(next_state); + } + + // build a geode robot + if let Some(time) = self.time_to_afford(&blueprint.geode_robot) { + let mut next_state = self.simulate_time_passing(time + 1); + next_state.robots.geodes += 1; + next_state.resources -= &blueprint.geode_robot; + next_states.push(next_state); + } + + // or just do nothing + if next_states.len() == 0 { + next_states.push(self.simulate_time_passing(self.time_remaining)); + } + + next_states + } + + fn simulate_time_passing(&self, time: u32) -> State { + State { + time_remaining: self.time_remaining - time, + resources: &self.resources + &(&self.robots * time), + robots: self.robots.clone(), + } + } + + fn time_to_afford(&self, cost: &Resources) -> Option<u32> { + let mut time_required = 0; + + if self.resources.ore < cost.ore { + if self.robots.ore == 0 { + return None; + } + time_required = time_required + .max((cost.ore - self.resources.ore + self.robots.ore - 1) / self.robots.ore); + } + + if self.resources.clay < cost.clay { + if self.robots.clay == 0 { + return None; + } + time_required = time_required + .max((cost.clay - self.resources.clay + self.robots.clay - 1) / self.robots.clay); + } + + if self.resources.obsidian < cost.obsidian { + if self.robots.obsidian == 0 { + return None; + } + time_required = time_required.max( + (cost.obsidian - self.resources.obsidian + self.robots.obsidian - 1) + / self.robots.obsidian, + ); + } + + if self.resources.geodes < cost.geodes { + if self.robots.geodes == 0 { + return None; + } + time_required = time_required.max( + (cost.geodes - self.resources.geodes + self.robots.geodes - 1) / self.robots.geodes, + ); + } + + if time_required + 1 >= self.time_remaining { + None + } else { + Some(time_required) + } + } +} + +impl ::core::ops::Add<&Resources> for &Resources { + type Output = Resources; + fn add(self, rhs: &Resources) -> Resources { + Resources { + ore: self.ore.add(rhs.ore), + clay: self.clay.add(rhs.clay), + obsidian: self.obsidian.add(rhs.obsidian), + geodes: self.geodes.add(rhs.geodes), + } + } +} + +impl ::core::ops::Sub<&Resources> for &Resources { + type Output = Resources; + fn sub(self, rhs: &Resources) -> Resources { + Resources { + ore: self.ore.sub(rhs.ore), + clay: self.clay.sub(rhs.clay), + obsidian: self.obsidian.sub(rhs.obsidian), + geodes: self.geodes.sub(rhs.geodes), + } + } +} + +impl ::core::ops::SubAssign<&Resources> for Resources { + fn sub_assign(&mut self, rhs: &Resources) { + self.ore -= rhs.ore; + self.clay -= rhs.clay; + self.obsidian -= rhs.obsidian; + self.geodes -= rhs.geodes; + } +} + +impl ::core::ops::Mul<u32> for &Resources { + type Output = Resources; + fn mul(self, rhs: u32) -> Resources { + Resources { + ore: self.ore.mul(rhs), + clay: self.clay.mul(rhs), + obsidian: self.obsidian.mul(rhs), + geodes: self.geodes.mul(rhs), + } + } +} + +#[test] +fn time_to_afford() { + let current_state = State { + time_remaining: 17, + resources: Resources { + ore: 1, + clay: 6, + obsidian: 0, + geodes: 0, + }, + robots: Resources { + ore: 1, + clay: 3, + obsidian: 0, + geodes: 0, + }, + }; + + let time_to_afford = current_state.time_to_afford(&Resources { + ore: 3, + clay: 14, + obsidian: 0, + geodes: 0, + }); + assert_eq!(time_to_afford, Some(3)); +} diff --git a/2022/src/bin/day_2.rs b/2022/src/bin/day_2.rs new file mode 100644 index 0000000..deb5294 --- /dev/null +++ b/2022/src/bin/day_2.rs @@ -0,0 +1,167 @@ +use nom::{ + branch::alt, + character::complete::{char as nom_char, line_ending}, + combinator::{map, value}, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_2.txt")?; + let game_log_part_1 = GameLog::parser(&input).unwrap().1; + dbg!(game_log_part_1.total_score()); + + let game_log_part_2 = GameLog::parser_part_2(&input).unwrap().1; + dbg!(game_log_part_2.total_score()); + Ok(()) +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct GameLog { + moves: Vec<GameRound>, +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct GameRound { + opponent: Move, + me: Move, +} + +#[derive(Debug, PartialEq, Eq, Clone)] +enum Move { + Rock, + Paper, + Scissors, +} + +#[derive(Debug, PartialEq, Eq, Clone)] +enum GameResult { + Win, + Lose, + Draw, +} + +impl GameLog { + fn parser(input: &str) -> IResult<&str, GameLog> { + map(separated_list1(line_ending, GameRound::parser), |moves| { + GameLog { moves } + })(input) + } + + fn parser_part_2(input: &str) -> IResult<&str, GameLog> { + map( + separated_list1(line_ending, GameRound::parser_part_2), + |moves| GameLog { moves }, + )(input) + } + + fn total_score(&self) -> u32 { + self.moves.iter().map(|m| m.score()).sum() + } +} + +impl GameRound { + fn parser(input: &str) -> IResult<&str, GameRound> { + map( + tuple((Move::opponent_parser, nom_char(' '), Move::player_parser)), + |(opponent, _, me)| GameRound { opponent, me }, + )(input) + } + + fn parser_part_2(input: &str) -> IResult<&str, GameRound> { + map( + tuple((Move::opponent_parser, nom_char(' '), GameResult::parser)), + |(opponent, _, result)| { + use GameResult::*; + use Move::*; + + let me = match opponent { + Rock => match result { + Win => Paper, + Draw => Rock, + Lose => Scissors, + }, + Paper => match result { + Win => Scissors, + Draw => Paper, + Lose => Rock, + }, + Scissors => match result { + Win => Rock, + Draw => Scissors, + Lose => Paper, + }, + }; + GameRound { opponent, me } + }, + )(input) + } + + fn score(&self) -> u32 { + let victory_points = match self.me.beats(&self.opponent) { + GameResult::Lose => 0, + GameResult::Draw => 3, + GameResult::Win => 6, + }; + + let throw_points = match self.me { + Move::Rock => 1, + Move::Paper => 2, + Move::Scissors => 3, + }; + + victory_points + throw_points + } +} + +impl Move { + fn opponent_parser(input: &str) -> IResult<&str, Move> { + alt(( + value(Move::Rock, nom_char('A')), + value(Move::Paper, nom_char('B')), + value(Move::Scissors, nom_char('C')), + ))(input) + } + + fn player_parser(input: &str) -> IResult<&str, Move> { + alt(( + value(Move::Rock, nom_char('X')), + value(Move::Paper, nom_char('Y')), + value(Move::Scissors, nom_char('Z')), + ))(input) + } + + fn beats(&self, other: &Move) -> GameResult { + use GameResult::*; + use Move::*; + match self { + Rock => match other { + Rock => Draw, + Paper => Lose, + Scissors => Win, + }, + Paper => match other { + Rock => Win, + Paper => Draw, + Scissors => Lose, + }, + Scissors => match other { + Rock => Lose, + Paper => Win, + Scissors => Draw, + }, + } + } +} + +impl GameResult { + fn parser(input: &str) -> IResult<&str, GameResult> { + alt(( + value(GameResult::Lose, nom_char('X')), + value(GameResult::Draw, nom_char('Y')), + value(GameResult::Win, nom_char('Z')), + ))(input) + } +} diff --git a/2022/src/bin/day_20.rs b/2022/src/bin/day_20.rs new file mode 100644 index 0000000..dc4bf4f --- /dev/null +++ b/2022/src/bin/day_20.rs @@ -0,0 +1,91 @@ +use nom::{ + character::complete::{i64, line_ending}, + combinator::map, + multi::separated_list1, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_20.txt")?; + let coordinates = GroveCoordinates::parser(&input).unwrap().1; + + { + let mut coordinates_1 = coordinates.clone(); + coordinates_1.mix(); + dbg!(coordinates_1.coordinate_sum()); + } + + { + let mut coordinates_2 = coordinates.clone(); + coordinates_2.decrypt(811589153); + dbg!(coordinates_2.coordinate_sum()); + } + + Ok(()) +} + +#[derive(Debug, Clone)] +struct GroveCoordinates(Vec<CoordinatePoint>); + +#[derive(Debug, Clone, Copy)] +struct CoordinatePoint { + val: i64, + original_order: usize, +} + +impl GroveCoordinates { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, i64), |points| { + GroveCoordinates( + points + .into_iter() + .enumerate() + .map(|(original_order, val)| CoordinatePoint { + val, + original_order, + }) + .collect(), + ) + })(input) + } + + fn decrypt(&mut self, key: i64) { + for p in &mut self.0 { + p.val *= key; + } + + for _ in 0..10 { + self.mix(); + } + } + + fn mix(&mut self) { + for original_i in 0..self.0.len() { + let encrypted_i = self + .0 + .iter() + .position(|p| p.original_order == original_i) + .unwrap(); + let to_move = self.0.remove(encrypted_i); + + let mut destination_i = encrypted_i as i64 + to_move.val; + destination_i %= self.0.len() as i64; + if destination_i < 0 { + destination_i += self.0.len() as i64; + } + self.0.insert(destination_i as usize, to_move); + } + } + + fn get(&self, i: usize) -> i64 { + self.0[i % self.0.len()].val + } + + fn coordinate_sum(&self) -> i64 { + let zero_position = self.0.iter().position(|p| p.val == 0).unwrap(); + self.get(zero_position + 1000) + + self.get(zero_position + 2000) + + self.get(zero_position + 3000) + } +} diff --git a/2022/src/bin/day_21.rs b/2022/src/bin/day_21.rs new file mode 100644 index 0000000..d118826 --- /dev/null +++ b/2022/src/bin/day_21.rs @@ -0,0 +1,298 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{alpha1, i64, line_ending}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{ + collections::{BTreeMap, BTreeSet}, + fs, +}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_21.txt")?; + let mut monkeys = Monkeys::parser(&input).unwrap().1; + + dbg!(monkeys.eval("root")); + + let (original_root_left, original_root_right) = + monkeys.0.get("root").expect("No root monkey!").values(); + + monkeys.0.insert( + "root".into(), + Expression::Eql(original_root_left, original_root_right.expect("foo")), + ); + monkeys + .0 + .insert("humn".into(), Expression::Value(Value::Input)); + + while monkeys.0.len() > 1 { + monkeys.simplify(); + } + println!("{}", monkeys.print_expression("root")); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Monkeys(BTreeMap<String, Expression>); + +#[derive(Debug, Clone)] +enum Expression { + Value(Value), + Add(Value, Value), + Sub(Value, Value), + Mul(Value, Value), + Div(Value, Value), + Eql(Value, Value), +} + +#[derive(Debug, Clone)] +enum Value { + Ref(String), + Literal(i64), + Input, +} + +impl Monkeys { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, tuple((alpha1, tag(": "), Expression::parser))), + |lines| { + Monkeys( + lines + .into_iter() + .map(|(id, _, expression): (&str, _, Expression)| { + (id.to_owned(), expression) + }) + .collect(), + ) + }, + )(input) + } + + fn simplify(&mut self) { + let ids: Vec<String> = self.0.keys().cloned().collect(); + + // simplify to literals where possible + for id in &ids { + if let Some(val) = self.eval(id) { + self.0 + .insert(id.clone(), Expression::Value(Value::Literal(val))); + } + } + + // simplify single sides of expressions where possible (especially unwrap refs) + for id in &ids { + let monkey = self.0.get(id).expect("Unknown monkey!"); + let simplified = match monkey { + Expression::Value(v) => Expression::Value(self.simplify_value(v)), + Expression::Add(a, b) => { + Expression::Add(self.simplify_value(a), self.simplify_value(b)) + } + Expression::Sub(a, b) => { + Expression::Sub(self.simplify_value(a), self.simplify_value(b)) + } + Expression::Mul(a, b) => { + Expression::Mul(self.simplify_value(a), self.simplify_value(b)) + } + Expression::Div(a, b) => { + Expression::Div(self.simplify_value(a), self.simplify_value(b)) + } + Expression::Eql(a, b) => { + Expression::Eql(self.simplify_value(a), self.simplify_value(b)) + } + }; + self.0.insert(id.clone(), simplified); + + if let Some(val) = self.eval(id) { + self.0 + .insert(id.clone(), Expression::Value(Value::Literal(val))); + } + } + + // simplify across the equals + for id in &ids { + let monkey = self.0.get(id).expect("Unknown monkey!").clone(); + match monkey { + Expression::Eql(Value::Ref(r), Value::Literal(v)) + | Expression::Eql(Value::Literal(v), Value::Ref(r)) => { + let referenced_monkey = self.0.get(&r).expect("Unknown monkey!").clone(); + + let new_eql = match referenced_monkey { + Expression::Add(new_lhs, Value::Literal(added)) + | Expression::Add(Value::Literal(added), new_lhs) => { + Some((new_lhs.clone(), v - added)) + } + Expression::Sub(new_lhs, Value::Literal(subtracted)) => { + Some((new_lhs.clone(), v + subtracted)) + } + Expression::Sub(Value::Literal(subtracted_from), new_lhs) => { + Some((new_lhs.clone(), subtracted_from - v)) + } + Expression::Mul(new_lhs, Value::Literal(mult)) + | Expression::Mul(Value::Literal(mult), new_lhs) => { + Some((new_lhs.clone(), v / mult)) + } + Expression::Div(new_lhs, Value::Literal(denom)) => { + Some((new_lhs.clone(), v * denom)) + } + _ => None, + }; + + if let Some((new_lhs, new_v)) = new_eql { + self.0 + .insert(id.clone(), Expression::Eql(new_lhs, Value::Literal(new_v))); + } + } + _ => {} + } + } + + // clearing out unreferenced monkeys + let monkey_references: BTreeSet<String> = self + .0 + .values() + .flat_map(|expression| match expression.values() { + (Value::Ref(v1), Some(Value::Ref(v2))) => vec![v1, v2], + (Value::Ref(v), _) | (_, Some(Value::Ref(v))) => vec![v], + _ => vec![], + }) + .collect(); + for id in &ids { + if id != "root" && !monkey_references.contains(id) { + self.0.remove(id); + } + } + } + + fn simplify_value(&self, val: &Value) -> Value { + match val { + Value::Ref(r) => { + let referenced = self.0.get(r).expect("Unknown monkey!"); + match referenced { + Expression::Value(v) => v.clone(), + _ => val.clone(), + } + } + v => v.clone(), + } + } + + fn eval(&self, id: &str) -> Option<i64> { + let monkey = self.0.get(id).expect("Unknown monkey!"); + + match monkey { + Expression::Value(v) => self.resolve_value(v), + Expression::Add(a, b) => self + .resolve_value(a) + .zip(self.resolve_value(b)) + .map(|(a, b)| a + b), + Expression::Sub(a, b) => self + .resolve_value(a) + .zip(self.resolve_value(b)) + .map(|(a, b)| a - b), + Expression::Mul(a, b) => self + .resolve_value(a) + .zip(self.resolve_value(b)) + .map(|(a, b)| a * b), + Expression::Div(a, b) => self + .resolve_value(a) + .zip(self.resolve_value(b)) + .map(|(a, b)| a / b), + Expression::Eql(a, b) => self + .resolve_value(a) + .zip(self.resolve_value(b)) + .map(|(a, b)| if a == b { 1 } else { 0 }), + } + } + + fn resolve_value(&self, value: &Value) -> Option<i64> { + match value { + Value::Ref(id) => self.eval(id), + Value::Literal(num) => Some(*num), + Value::Input => None, + } + } + + fn print_expression(&self, id: &str) -> String { + let monkey = self.0.get(id).expect("Unknown monkey!"); + + // The crazy newlines here make it easier to see the + // brackets. Drop it in emacs and autoindent, and it's easy to + // see the next expression which isn't being collapsed. + match monkey { + Expression::Value(v) => format!("(\n{}\n)", self.print_value(v)), + Expression::Add(a, b) => { + format!("(\n{}\n+\n{}\n)", self.print_value(a), self.print_value(b)) + } + Expression::Sub(a, b) => { + format!("(\n{}\n-\n{}\n)", self.print_value(a), self.print_value(b)) + } + Expression::Mul(a, b) => { + format!("(\n{}\n*\n{}\n)", self.print_value(a), self.print_value(b)) + } + Expression::Div(a, b) => { + format!("(\n{}\n/\n{}\n)", self.print_value(a), self.print_value(b)) + } + Expression::Eql(a, b) => { + format!("(\n{}\n=\n{}\n)", self.print_value(a), self.print_value(b)) + } + } + } + + fn print_value(&self, value: &Value) -> String { + match value { + Value::Ref(id) => self.print_expression(id), + Value::Literal(num) => format!("{}", num), + Value::Input => "input".into(), + } + } +} + +impl Expression { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + map( + tuple((Value::parser, tag(" + "), Value::parser)), + |(a, _, b)| Expression::Add(a, b), + ), + map( + tuple((Value::parser, tag(" - "), Value::parser)), + |(a, _, b)| Expression::Sub(a, b), + ), + map( + tuple((Value::parser, tag(" * "), Value::parser)), + |(a, _, b)| Expression::Mul(a, b), + ), + map( + tuple((Value::parser, tag(" / "), Value::parser)), + |(a, _, b)| Expression::Div(a, b), + ), + map(Value::parser, Expression::Value), + ))(input) + } + + fn values(&self) -> (Value, Option<Value>) { + match self.clone() { + Expression::Value(v) => (v, None), + Expression::Add(a, b) => (a, Some(b)), + Expression::Sub(a, b) => (a, Some(b)), + Expression::Mul(a, b) => (a, Some(b)), + Expression::Div(a, b) => (a, Some(b)), + Expression::Eql(a, b) => (a, Some(b)), + } + } +} + +impl Value { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + map(i64, Value::Literal), + map(alpha1, |s: &str| Value::Ref(s.to_owned())), + ))(input) + } +} diff --git a/2022/src/bin/day_22.rs b/2022/src/bin/day_22.rs new file mode 100644 index 0000000..784a608 --- /dev/null +++ b/2022/src/bin/day_22.rs @@ -0,0 +1,501 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{line_ending, u32}, + combinator::{map, value}, + multi::{many1, separated_list1}, + sequence::tuple, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_22.txt")?; + let parsed = Input::parser(&input).unwrap().1; + + dbg!(State::walk_the_map(&parsed, false).score()); + dbg!(State::walk_the_map(&parsed, true).score()); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct Input { + map: Map, + instructions: Vec<Instruction>, +} + +#[derive(Debug, Clone)] +struct Map { + grid: Vec<Vec<MapPoint>>, + portals: Vec<Portal>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum MapPoint { + Wall, + Empty, + Void, +} + +#[derive(Debug, Clone)] +enum Instruction { + TurnLeft, + TurnRight, + Walk(u32), +} + +impl Input { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + Map::parser, + line_ending, + line_ending, + many1(Instruction::parser), + )), + |(map, _, _, instructions)| Input { map, instructions }, + )(input) + } +} + +impl Map { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, many1(MapPoint::parser)), + |grid| Map { + grid, + portals: Portal::add_reverse_portals(vec![ + Portal { + // A -> F + src_boundary: LineSegment { + start: Point { x: 50, y: 0 }, + end: Point { x: 99, y: 0 }, + }, + src_facing: Direction::Up, + dest_boundary: LineSegment { + start: Point { x: 0, y: 150 }, + end: Point { x: 0, y: 199 }, + }, + dest_facing: Direction::Right, + }, + Portal { + // A -> D + src_boundary: LineSegment { + start: Point { x: 50, y: 0 }, + end: Point { x: 50, y: 49 }, + }, + src_facing: Direction::Left, + dest_boundary: LineSegment { + start: Point { x: 0, y: 149 }, + end: Point { x: 0, y: 100 }, + }, + dest_facing: Direction::Right, + }, + Portal { + // B -> F + src_boundary: LineSegment { + start: Point { x: 100, y: 0 }, + end: Point { x: 149, y: 0 }, + }, + src_facing: Direction::Up, + dest_boundary: LineSegment { + start: Point { x: 0, y: 199 }, + end: Point { x: 49, y: 199 }, + }, + dest_facing: Direction::Up, + }, + Portal { + // B -> E + src_boundary: LineSegment { + start: Point { x: 149, y: 0 }, + end: Point { x: 149, y: 49 }, + }, + src_facing: Direction::Right, + dest_boundary: LineSegment { + start: Point { x: 99, y: 149 }, + end: Point { x: 99, y: 100 }, + }, + dest_facing: Direction::Left, + }, + Portal { + // B -> C + src_boundary: LineSegment { + start: Point { x: 100, y: 49 }, + end: Point { x: 149, y: 49 }, + }, + src_facing: Direction::Down, + dest_boundary: LineSegment { + start: Point { x: 99, y: 50 }, + end: Point { x: 99, y: 99 }, + }, + dest_facing: Direction::Left, + }, + Portal { + // C -> D + src_boundary: LineSegment { + start: Point { x: 50, y: 50 }, + end: Point { x: 50, y: 99 }, + }, + src_facing: Direction::Left, + dest_boundary: LineSegment { + start: Point { x: 0, y: 100 }, + end: Point { x: 49, y: 100 }, + }, + dest_facing: Direction::Down, + }, + Portal { + // E -> F + src_boundary: LineSegment { + start: Point { x: 50, y: 149 }, + end: Point { x: 99, y: 149 }, + }, + src_facing: Direction::Down, + dest_boundary: LineSegment { + start: Point { x: 49, y: 150 }, + end: Point { x: 49, y: 199 }, + }, + dest_facing: Direction::Left, + }, + // AB + // C + // DE + // F + ]), + }, + )(input) + } +} + +impl MapPoint { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(MapPoint::Wall, tag("#")), + value(MapPoint::Empty, tag(".")), + value(MapPoint::Void, tag(" ")), + ))(input) + } +} + +impl Instruction { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(Instruction::TurnLeft, tag("L")), + value(Instruction::TurnRight, tag("R")), + map(u32, Instruction::Walk), + ))(input) + } +} + +#[derive(Debug, Clone)] +struct State { + position: Point, + facing: Direction, +} + +#[derive(Debug, Clone)] +struct Point { + x: usize, + y: usize, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +enum Direction { + Right, + Down, + Left, + Up, +} + +impl State { + fn walk_the_map(input: &Input, cube_wrapping: bool) -> State { + let mut state = State::spawn(&input.map); + for instruction in &input.instructions { + state.process_instruction(&input.map, &instruction, cube_wrapping); + } + state + } + + fn spawn(map: &Map) -> State { + let y = 0; + let x = map.grid[y] + .iter() + .position(|p| p == &MapPoint::Empty) + .unwrap(); + State { + position: Point { x, y }, + facing: Direction::Right, + } + } + + fn step_with_wrapping(&self, map: &Map) -> Point { + let mut next_point = self.position.clone(); + let mut made_a_step = false; + let mut hit_a_wall = false; + while !made_a_step && !hit_a_wall { + let peek = match self.facing { + Direction::Right => Point { + x: if next_point.x < map.grid[next_point.y].len() - 1 { + next_point.x + 1 + } else { + 0 + }, + ..next_point + }, + Direction::Left => Point { + x: if next_point.x > 0 { + next_point.x - 1 + } else { + map.grid[next_point.y].len() - 1 + }, + ..next_point + }, + Direction::Down => Point { + y: if next_point.y < map.grid.len() - 1 { + next_point.y + 1 + } else { + 0 + }, + ..next_point + }, + Direction::Up => Point { + y: if next_point.y > 0 { + next_point.y - 1 + } else { + map.grid.len() - 1 + }, + ..next_point + }, + }; + + let peek_value = map.grid[peek.y].get(peek.x); + match peek_value { + Some(MapPoint::Empty) => { + next_point = peek; + made_a_step = true; + } + Some(MapPoint::Void) | None => { + next_point = peek; + } + Some(MapPoint::Wall) => { + hit_a_wall = true; + } + } + } + + if hit_a_wall { + self.position.clone() + } else { + next_point + } + } + + fn step_with_cube_wrapping(&self, map: &Map) -> (Point, Direction) { + let (peek_position, peek_facing) = map + .portals + .iter() + .filter(|portal| portal.src_facing == self.facing) + .filter_map(|portal| { + portal + .src_boundary + .distance_from_start_on_line(&self.position) + .map(|distance| { + ( + portal.dest_boundary.find_point_on_line(distance), + portal.dest_facing.clone(), + ) + }) + }) + .next() + .unwrap_or_else(|| { + ( + match self.facing { + Direction::Right => Point { + x: self.position.x + 1, + ..self.position + }, + Direction::Left => Point { + x: self.position.x - 1, + ..self.position + }, + Direction::Down => Point { + y: self.position.y + 1, + ..self.position + }, + Direction::Up => Point { + y: self.position.y - 1, + ..self.position + }, + }, + self.facing.clone(), + ) + }); + + let peek_value = map.grid[peek_position.y].get(peek_position.x); + match peek_value { + Some(MapPoint::Empty) => (peek_position, peek_facing), + Some(MapPoint::Wall) => (self.position.clone(), self.facing.clone()), + Some(MapPoint::Void) | None => { + panic!("Cube wrapping shouldn't land on voids"); + } + } + } + + fn process_instruction(&mut self, map: &Map, instruction: &Instruction, cube_wrapping: bool) { + match instruction { + Instruction::TurnLeft => { + self.facing = self.facing.spin_left(); + } + Instruction::TurnRight => { + self.facing = self.facing.spin_right(); + } + Instruction::Walk(amount) => { + for _ in 0..*amount { + if cube_wrapping { + let (next_position, next_facing) = self.step_with_cube_wrapping(&map); + self.position = next_position; + self.facing = next_facing; + } else { + self.position = self.step_with_wrapping(&map); + } + } + } + } + } + + fn score(&self) -> usize { + (self.position.y + 1) * 1000 + (self.position.x + 1) * 4 + self.facing.score() + } +} + +impl Direction { + fn spin_left(&self) -> Direction { + match self { + Direction::Right => Direction::Up, + Direction::Down => Direction::Right, + Direction::Left => Direction::Down, + Direction::Up => Direction::Left, + } + } + + fn spin_right(&self) -> Direction { + self.spin_left().spin_left().spin_left() + } + + fn score(&self) -> usize { + match self { + Direction::Right => 0, + Direction::Down => 1, + Direction::Left => 2, + Direction::Up => 3, + } + } +} + +#[derive(Debug, Clone)] +struct Portal { + src_boundary: LineSegment, + src_facing: Direction, + dest_boundary: LineSegment, + dest_facing: Direction, +} + +#[derive(Debug, Clone)] +struct LineSegment { + start: Point, + end: Point, +} + +impl Portal { + fn add_reverse_portals(mut portals: Vec<Portal>) -> Vec<Portal> { + let mut reverse = portals + .iter() + .map(|forward_portal| Portal { + src_boundary: forward_portal.dest_boundary.clone(), + src_facing: forward_portal.dest_facing.spin_left().spin_left(), + dest_boundary: forward_portal.src_boundary.clone(), + dest_facing: forward_portal.src_facing.spin_left().spin_left(), + }) + .collect(); + portals.append(&mut reverse); + portals + } +} + +impl LineSegment { + fn distance_from_start_on_line(&self, p: &Point) -> Option<usize> { + if self.start.x == self.end.x { + if self.start.x != p.x { + None + } else { + if self.start.y < self.end.y { + if self.start.y <= p.y && self.end.y >= p.y { + Some(p.y - self.start.y) + } else { + None + } + } else { + if self.start.y >= p.y && self.end.y <= p.y { + Some(self.start.y - p.y) + } else { + None + } + } + } + } else if self.start.y == self.end.y { + if self.start.y != p.y { + None + } else { + if self.start.x < self.end.x { + if self.start.x <= p.x && self.end.x >= p.x { + Some(p.x - self.start.x) + } else { + None + } + } else { + if self.start.x >= p.x && self.end.x <= p.x { + Some(self.start.x - p.x) + } else { + None + } + } + } + } else { + unimplemented!("Oh no, we only handle straight portals") + } + } + + fn find_point_on_line(&self, distance: usize) -> Point { + if self.start.x == self.end.x { + if self.start.y < self.end.y { + assert!(self.start.y + distance <= self.end.y); + Point { + x: self.start.x, + y: self.start.y + distance, + } + } else { + assert!(self.start.y - distance >= self.end.y); + Point { + x: self.start.x, + y: self.start.y - distance, + } + } + } else if self.start.y == self.end.y { + if self.start.x < self.end.x { + assert!(self.start.x + distance <= self.end.x); + Point { + y: self.start.y, + x: self.start.x + distance, + } + } else { + assert!(self.start.x - distance >= self.end.x); + Point { + y: self.start.y, + x: self.start.x - distance, + } + } + } else { + unimplemented!("Oh no, we only handle straight portals") + } + } +} diff --git a/2022/src/bin/day_23.rs b/2022/src/bin/day_23.rs new file mode 100644 index 0000000..44483a5 --- /dev/null +++ b/2022/src/bin/day_23.rs @@ -0,0 +1,346 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::line_ending, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::{ + collections::{BTreeMap, BTreeSet, VecDeque}, + fs, +}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_23.txt")?; + let elves = ElfMap::parser(&input).unwrap().1; + + { + let mut elves_1 = elves.clone(); + for _ in 0..10 { + elves_1.process_round(); + } + dbg!(elves_1.count_empty_ground()); + } + + { + let mut elves_2 = elves; + for round in 1.. { + if !elves_2.process_round() { + dbg!(round); + break; + } + } + } + + Ok(()) +} + +#[derive(Debug, Clone, PartialEq, Eq)] +struct ElfMap { + elves: BTreeSet<Point>, + check_order: VecDeque<Direction>, +} + +#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Point { + y: i64, + x: i64, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +enum Direction { + North, + South, + West, + East, +} + +impl ElfMap { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1( + line_ending, + map( + many1(alt((value(true, tag("#")), value(false, tag("."))))), + |row| { + row.into_iter() + .enumerate() + .filter_map(|(x, occupied)| occupied.then_some(x as i64)) + .collect::<Vec<i64>>() + }, + ), + ), + |rows| { + let elves = rows + .into_iter() + .enumerate() + .flat_map(|(y, row)| row.into_iter().map(move |x| Point { x, y: y as i64 })) + .collect(); + ElfMap { + elves, + check_order: [ + Direction::North, + Direction::South, + Direction::West, + Direction::East, + ] + .into(), + } + }, + )(input) + } + + fn process_round(&mut self) -> bool { + // key is destination! + let mut elf_moves: BTreeMap<Point, Point> = BTreeMap::new(); + let mut conflict_moves: BTreeSet<Point> = BTreeSet::new(); + + // phase 1: figure out where each elf wants to move + for elf in &self.elves { + if let Some(destination) = self.find_elf_move(elf) { + use std::collections::btree_map::Entry; + match elf_moves.entry(destination) { + Entry::Occupied(elf_move_entry) => { + conflict_moves.insert(elf_move_entry.key().clone()); + elf_move_entry.remove_entry(); + } + Entry::Vacant(elf_move_entry) => { + if !conflict_moves.contains(elf_move_entry.key()) { + elf_move_entry.insert(elf.clone()); + } + } + } + } + } + + let any_elf_moved = !elf_moves.is_empty(); + + // phase 2: move the elves + for (dest, src) in elf_moves { + self.elves.remove(&src); + self.elves.insert(dest); + } + + let rotate = self + .check_order + .pop_front() + .expect("Where did the directions go?"); + self.check_order.push_back(rotate); + + any_elf_moved + } + + fn find_elf_move(&self, elf: &Point) -> Option<Point> { + let all_adjacent = elf.adjacent(None); + let any_adjacent_elves = all_adjacent.into_iter().any(|p| self.elves.contains(&p)); + if !any_adjacent_elves { + None + } else { + self.check_order + .iter() + .filter_map(|dir| { + let adjacent = elf.adjacent(Some(*dir)); + let any_adjacent_elves = adjacent.iter().any(|p| self.elves.contains(p)); + if !any_adjacent_elves { + Some(adjacent[1].clone()) + } else { + None + } + }) + .next() + } + } + + fn count_empty_ground(&self) -> i64 { + let elf_x = self.elves.iter().map(|elf| elf.x); + let min_x = elf_x.clone().min().unwrap_or(0); + let max_x = elf_x.max().unwrap_or(0); + + let elf_y = self.elves.iter().map(|elf| elf.y); + let min_y = elf_y.clone().min().unwrap_or(0); + let max_y = elf_y.max().unwrap_or(0); + + let all_ground = (max_x - min_x + 1) * (max_y - min_y + 1); + let covered_ground = self.elves.len() as i64; + all_ground - covered_ground + } +} + +impl Point { + fn adjacent(&self, direction: Option<Direction>) -> Vec<Point> { + let (y_range, x_range) = match direction { + None => ((-1..=1), (-1..=1)), + Some(Direction::North) => ((-1..=-1), (-1..=1)), + Some(Direction::South) => ((1..=1), (-1..=1)), + Some(Direction::West) => ((-1..=1), (-1..=-1)), + Some(Direction::East) => ((-1..=1), (1..=1)), + }; + + y_range + .flat_map(|dy| { + x_range.clone().map(move |dx| Point { + x: self.x + dx, + y: self.y + dy, + }) + }) + .filter(|p| p != self) + .collect() + } +} + +#[test] +fn follows_the_example() { + let mut elf_map = ElfMap::parser( + r".............. +.............. +.......#...... +.....###.#.... +...#...#.#.... +....#...##.... +...#.###...... +...##.#.##.... +....#..#...... +.............. +.............. +..............", + ) + .unwrap() + .1; + + elf_map.process_round(); + assert_eq!( + elf_map.elves, + ElfMap::parser( + r".............. +.......#...... +.....#...#.... +...#..#.#..... +.......#..#... +....#.#.##.... +..#..#.#...... +..#.#.#.##.... +.............. +....#..#...... +.............. +.............. +" + ) + .unwrap() + .1 + .elves + ); + + elf_map.process_round(); + assert_eq!( + elf_map.elves, + ElfMap::parser( + r".............. +.......#...... +....#.....#... +...#..#.#..... +.......#...#.. +...#..#.#..... +.#...#.#.#.... +.............. +..#.#.#.##.... +....#..#...... +.............. +.............. +" + ) + .unwrap() + .1 + .elves + ); + + elf_map.process_round(); + assert_eq!( + elf_map.elves, + ElfMap::parser( + r".............. +.......#...... +.....#....#... +..#..#...#.... +.......#...#.. +...#..#.#..... +.#..#.....#... +.......##..... +..##.#....#... +...#.......... +.......#...... +.............." + ) + .unwrap() + .1 + .elves + ); + + elf_map.process_round(); + assert_eq!( + elf_map.elves, + ElfMap::parser( + r".............. +.......#...... +......#....#.. +..#...##...... +...#.....#.#.. +.........#.... +.#...###..#... +..#......#.... +....##....#... +....#......... +.......#...... +.............." + ) + .unwrap() + .1 + .elves + ); + + elf_map.process_round(); + assert_eq!( + elf_map.elves, + ElfMap::parser( + r".......#...... +.............. +..#..#.....#.. +.........#.... +......##...#.. +.#.#.####..... +...........#.. +....##..#..... +..#........... +..........#... +....#..#...... +.............." + ) + .unwrap() + .1 + .elves + ); + + for _ in 0..5 { + elf_map.process_round(); + } + assert_eq!( + elf_map.elves, + ElfMap::parser( + r".......#...... +...........#.. +..#.#..#...... +......#....... +...#.....#..#. +.#......##.... +.....##....... +..#........#.. +....#.#..#.... +.............. +....#..#..#... +.............." + ) + .unwrap() + .1 + .elves + ); +} diff --git a/2022/src/bin/day_24.rs b/2022/src/bin/day_24.rs new file mode 100644 index 0000000..71edc71 --- /dev/null +++ b/2022/src/bin/day_24.rs @@ -0,0 +1,195 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::line_ending, + combinator::{map, value}, + multi::{many1, separated_list1}, + sequence::{delimited, tuple}, + IResult, +}; +use std::{collections::BTreeSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_24.txt")?; + let blizzard_map = BlizzardMap::parser(&input).unwrap().1; + let start = Point { x: 0, y: 0 }; + let end = Point { + x: blizzard_map.width - 1, + y: blizzard_map.height - 1, + }; + let there_the_first_time = + dbg!(blizzard_map.find_shortest_path_through(start.clone(), end.clone(), 1)); + let back_again = dbg!(blizzard_map.find_shortest_path_through( + end.clone(), + start.clone(), + there_the_first_time + 1 + )); + dbg!(blizzard_map.find_shortest_path_through(start, end, back_again + 1)); + + Ok(()) +} + +#[derive(Debug, Clone, PartialEq, Eq)] +struct BlizzardMap { + width: usize, + height: usize, + blizzards: Vec<Blizzard>, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +struct Blizzard { + start: Point, + direction: Direction, +} + +#[derive(Debug, Default, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct Point { + y: usize, + x: usize, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +enum Direction { + North, + South, + West, + East, +} + +impl BlizzardMap { + fn parser(input: &str) -> IResult<&str, Self> { + map( + delimited( + tuple((many1(tag("#")), tag("."), many1(tag("#")), line_ending)), + separated_list1( + line_ending, + delimited(tag("#"), many1(Direction::parser), tag("#")), + ), + tuple((line_ending, many1(tag("#")), tag("."), many1(tag("#")))), + ), + |blizzard_directions| BlizzardMap { + width: blizzard_directions[0].len(), + height: blizzard_directions.len(), + blizzards: blizzard_directions + .into_iter() + .enumerate() + .flat_map(|(y, row)| { + row.into_iter() + .enumerate() + .filter_map(move |(x, direction)| { + direction.map(|direction| Blizzard { + start: Point { x, y }, + direction, + }) + }) + }) + .collect(), + }, + )(input) + } + + fn find_shortest_path_through( + &self, + start: Point, + end: Point, + mut current_round: usize, + ) -> usize { + // Not sure if "visited" makes sense here because of the time + // delay. Same position at different times is different. Maybe + // makes sense if I keep time in too. + let mut frontier = BTreeSet::new(); + frontier.insert(start); + while !frontier.contains(&end) { + current_round += 1; + let last_frontier = std::mem::take(&mut frontier); + + let blizzards = self.blizzards_at_time(current_round); + + for frontier_state in last_frontier { + let mut possible_moves = vec![frontier_state.clone()]; + if frontier_state.x > 0 { + possible_moves.push(Point { + x: frontier_state.x - 1, + y: frontier_state.y, + }); + } + if frontier_state.x < self.width - 1 { + possible_moves.push(Point { + x: frontier_state.x + 1, + y: frontier_state.y, + }); + } + if frontier_state.y > 0 { + possible_moves.push(Point { + x: frontier_state.x, + y: frontier_state.y - 1, + }); + } + if frontier_state.y < self.height - 1 { + possible_moves.push(Point { + x: frontier_state.x, + y: frontier_state.y + 1, + }); + } + + for next in possible_moves { + if !blizzards.contains(&next) { + frontier.insert(next); + } + } + } + } + + current_round + 1 // extra minute to leave + } + + fn blizzards_at_time(&self, t: usize) -> BTreeSet<Point> { + self.blizzards + .iter() + .map(|blizzard| match blizzard.direction { + Direction::North => { + let t = t % self.height; + Point { + y: if blizzard.start.y > t { + blizzard.start.y - t + } else { + blizzard.start.y + self.height - t + }, + ..blizzard.start + } + } + Direction::South => Point { + y: (blizzard.start.y + t) % self.height, + ..blizzard.start + }, + Direction::West => { + let t = t % self.width; + Point { + x: if blizzard.start.x > t { + blizzard.start.x - t + } else { + blizzard.start.x + self.width - t + }, + ..blizzard.start + } + } + Direction::East => Point { + x: (blizzard.start.x + t) % self.width, + ..blizzard.start + }, + }) + .collect() + } +} + +impl Direction { + fn parser(input: &str) -> IResult<&str, Option<Self>> { + alt(( + value(None, tag(".")), + value(Some(Direction::South), tag("v")), + value(Some(Direction::West), tag("<")), + value(Some(Direction::East), tag(">")), + value(Some(Direction::North), tag("^")), + ))(input) + } +} diff --git a/2022/src/bin/day_25.rs b/2022/src/bin/day_25.rs new file mode 100644 index 0000000..d55f30a --- /dev/null +++ b/2022/src/bin/day_25.rs @@ -0,0 +1,111 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::line_ending, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_25.txt")?; + let parsed = SnafuList::parser(&input).unwrap().1; + dbg!(to_snafu(parsed.sum())); + + Ok(()) +} + +#[derive(Debug, Clone, PartialEq, Eq)] +struct SnafuList(Vec<i64>); + +impl SnafuList { + fn parser(input: &str) -> IResult<&str, SnafuList> { + map( + separated_list1( + line_ending, + map( + many1(alt(( + value(2, tag("2")), + value(1, tag("1")), + value(0, tag("0")), + value(-1, tag("-")), + value(-2, tag("=")), + ))), + |digits| { + let mut result: i64 = 0; + for digit in digits { + result *= 5; + result += digit; + } + result + }, + ), + ), + SnafuList, + )(input) + } + + fn sum(&self) -> i64 { + self.0.iter().sum() + } +} + +fn to_snafu(mut remaining_value: i64) -> String { + let mut result = String::new(); + + let mut current_power = 5i64.pow(26); + + while current_power > 0 { + let next_digit_range = { + let mut next_digit_power = current_power / 5; + let mut max_next_digit = 0; + while next_digit_power > 0 { + max_next_digit += 2 * next_digit_power; + next_digit_power /= 5; + } + -max_next_digit..=max_next_digit + }; + + let (digit, digit_value) = [('=', -2), ('-', -1), ('0', 0), ('1', 1), ('2', 2)] + .into_iter() + .filter_map(|(digit, digit_value)| { + let digit_value = digit_value * current_power; + let remaining_if_digit_set = remaining_value - digit_value; + if next_digit_range.contains(&remaining_if_digit_set) { + Some((digit, digit_value)) + } else { + None + } + }) + .next() + .expect("No digit found"); + + remaining_value -= digit_value; + result.push(digit); + + current_power /= 5; + } + + result.trim_start_matches("0").to_owned() +} + +#[test] +fn round_trip_works() { + let str_list = vec![ + "1=-0-2", "12111", "2=0=", "21", "2=01", "111", "20012", "112", "1=-1=", "1-12", "12", + "1=", "122", + ]; + let list = SnafuList::parser(&str_list.join("\n")).unwrap().1; + + assert_eq!( + list, + SnafuList(vec![ + 1747, 906, 198, 11, 201, 31, 1257, 32, 353, 107, 7, 3, 37 + ]) + ); + + for (i, num) in list.0.iter().enumerate() { + assert_eq!(to_snafu(*num), str_list[i]); + } +} diff --git a/2022/src/bin/day_3.rs b/2022/src/bin/day_3.rs new file mode 100644 index 0000000..ec2d5e2 --- /dev/null +++ b/2022/src/bin/day_3.rs @@ -0,0 +1,100 @@ +use nom::{ + character::complete::{line_ending, satisfy}, + combinator::map, + multi::{many1, separated_list1}, + IResult, +}; +use std::{collections::BTreeSet, fs, iter::Iterator}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_3.txt")?; + let rucksacks = Rucksacks::parser(&input).unwrap().1; + dbg!(rucksacks.disorder_sum()); + dbg!(rucksacks.groups_sum()); + Ok(()) +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct Rucksacks(Vec<Rucksack>); + +#[derive(Debug, PartialEq, Eq, Clone)] +struct Rucksack { + front: BTreeSet<ItemType>, + back: BTreeSet<ItemType>, +} + +#[derive(Debug, PartialEq, Eq, Clone, PartialOrd, Ord)] +struct ItemType(char); + +impl Rucksacks { + fn parser(input: &str) -> IResult<&str, Rucksacks> { + map(separated_list1(line_ending, Rucksack::parser), Rucksacks)(input) + } + + fn disorder_sum(&self) -> u32 { + self.0.iter().map(|r| r.intersection_priority()).sum() + } + + fn groups_sum(&self) -> u32 { + self.0 + .chunks(3) + .map(|group| { + let mut overlap = group[0].union(); + for m in group.iter().skip(1) { + overlap = overlap.intersection(&m.union()).cloned().collect(); + } + overlap.iter().map(|c| c.priority()).sum::<u32>() + }) + .sum() + } +} + +impl Rucksack { + fn parser(input: &str) -> IResult<&str, Rucksack> { + map(many1(ItemType::parser), Rucksack::new)(input) + } + + fn new(contents: Vec<ItemType>) -> Rucksack { + let mid = contents.len() / 2; + let front_str = &contents[0..mid]; + let back_str = &contents[mid..]; + + let mut front = BTreeSet::new(); + for c in front_str { + front.insert(c.clone()); + } + + let mut back = BTreeSet::new(); + for c in back_str { + back.insert(c.clone()); + } + + Rucksack { front, back } + } + + fn intersection(&self) -> BTreeSet<ItemType> { + self.front.intersection(&self.back).cloned().collect() + } + + fn union(&self) -> BTreeSet<ItemType> { + self.front.union(&self.back).cloned().collect() + } + + fn intersection_priority(&self) -> u32 { + self.intersection().iter().map(|c| c.priority()).sum() + } +} + +impl ItemType { + fn parser(input: &str) -> IResult<&str, ItemType> { + map(satisfy(|c| c.is_alphabetic()), ItemType)(input) + } + + fn priority(&self) -> u32 { + if self.0.is_uppercase() { + (self.0 as u32 - 'A' as u32) + 27 + } else { + (self.0 as u32 - 'a' as u32) + 1 + } + } +} diff --git a/2022/src/bin/day_4.rs b/2022/src/bin/day_4.rs new file mode 100644 index 0000000..5f08d70 --- /dev/null +++ b/2022/src/bin/day_4.rs @@ -0,0 +1,88 @@ +use nom::{ + bytes::complete::tag, + character::complete::{line_ending, u32 as nom_u32}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{fs, iter::Iterator, ops::RangeInclusive}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_4.txt")?; + let assignments = Assignments::parser(&input).unwrap().1; + dbg!(assignments.count_containing_assignments()); + dbg!(assignments.count_overlapping_assignments()); + Ok(()) +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct Assignments(Vec<AssignmentPair>); + +#[derive(Debug, PartialEq, Eq, Clone)] +struct AssignmentPair { + elf_1: Assignment, + elf_2: Assignment, +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct Assignment(RangeInclusive<u32>); + +impl Assignments { + fn parser(input: &str) -> IResult<&str, Assignments> { + map( + separated_list1(line_ending, AssignmentPair::parser), + Assignments, + )(input) + } + + fn count_containing_assignments(&self) -> usize { + self.0 + .iter() + .filter(|pair| pair.one_completely_overlaps_other()) + .count() + } + + fn count_overlapping_assignments(&self) -> usize { + self.0 + .iter() + .filter(|pair| pair.one_overlaps_other()) + .count() + } +} + +impl AssignmentPair { + fn parser(input: &str) -> IResult<&str, AssignmentPair> { + map( + tuple((Assignment::parser, tag(","), Assignment::parser)), + |(elf_1, _, elf_2)| AssignmentPair { elf_1, elf_2 }, + )(input) + } + + fn one_completely_overlaps_other(&self) -> bool { + self.elf_1.contains(&self.elf_2) || self.elf_2.contains(&self.elf_1) + } + + fn one_overlaps_other(&self) -> bool { + self.elf_1.overlaps(&self.elf_2) + } +} + +impl Assignment { + fn parser(input: &str) -> IResult<&str, Assignment> { + map(tuple((nom_u32, tag("-"), nom_u32)), |(start, _, end)| { + Assignment(RangeInclusive::new(start, end)) + })(input) + } + + fn contains(&self, other: &Assignment) -> bool { + self.0.contains(other.0.start()) && self.0.contains(other.0.end()) + } + + fn overlaps(&self, other: &Assignment) -> bool { + self.0.contains(other.0.start()) + || self.0.contains(other.0.end()) + || other.0.contains(self.0.start()) + || other.0.contains(self.0.end()) + } +} diff --git a/2022/src/bin/day_5.rs b/2022/src/bin/day_5.rs new file mode 100644 index 0000000..f06012c --- /dev/null +++ b/2022/src/bin/day_5.rs @@ -0,0 +1,147 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{ + anychar, char as nom_char, line_ending, not_line_ending, u32 as nom_u32, + }, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_5.txt")?; + let state = CraneState::parser(&input).unwrap().1; + + let mut state_part_1 = state.clone(); + while !state_part_1.done() { + state_part_1.process_next_instruction(false); + } + dbg!(state_part_1.read_top_row()); + + let mut state_part_2 = state.clone(); + while !state_part_2.done() { + state_part_2.process_next_instruction(true); + } + dbg!(state_part_2.read_top_row()); + + Ok(()) +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct CraneState { + towers: Vec<Tower>, + instructions: Vec<Instruction>, +} + +#[derive(Debug, Default, PartialEq, Eq, Clone)] +struct Tower { + crates: Vec<char>, +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct Instruction { + number: usize, + src: usize, + dest: usize, +} + +impl CraneState { + fn parser(input: &str) -> IResult<&str, CraneState> { + let single_crate = alt(( + map(tuple((tag("["), anychar, tag("]"))), |(_, c, _)| Some(c)), + map(tag(" "), |_| None), + )); + let crate_row = separated_list1(nom_char(' '), single_crate); + + map( + tuple(( + separated_list1(line_ending, crate_row), + line_ending, + not_line_ending, + line_ending, + line_ending, + separated_list1(line_ending, Instruction::parser), + )), + |(crate_rows, _, _, _, _, mut instructions)| { + let mut towers = Vec::new(); + for row in &crate_rows { + for (i, c) in row + .iter() + .enumerate() + .filter_map(|(i, c)| c.map(|some_c| (i, some_c))) + { + while i >= towers.len() { + towers.push(Tower::default()); + } + towers[i].crates.push(c); + } + } + for tower in &mut towers { + tower.crates.reverse(); + } + + instructions.reverse(); + CraneState { + towers, + instructions, + } + }, + )(input) + } + + fn process_next_instruction(&mut self, maintain_order: bool) { + let Some(instruction) = self.instructions.pop() else { + return + }; + let mut to_move = Vec::new(); + for _ in 0..instruction.number { + let Some(crate_to_move) = self.towers[instruction.src].crates.pop() else { + panic!("Invalid puzzle input: failed to get crate"); + }; + to_move.push(crate_to_move); + } + if maintain_order { + to_move.reverse(); + } + for crate_to_move in to_move { + self.towers[instruction.dest].crates.push(crate_to_move); + } + } + + fn done(&self) -> bool { + self.instructions.len() == 0 + } + + fn read_top_row(&self) -> String { + let mut res = String::new(); + for tower in &self.towers { + if let Some(top) = tower.crates.last() { + res.push(*top); + } + } + res + } +} + +impl Instruction { + fn parser(input: &str) -> IResult<&str, Instruction> { + map( + tuple(( + tag("move "), + nom_u32, + tag(" from "), + nom_u32, + tag(" to "), + nom_u32, + )), + |(_, number, _, src, _, dest)| Instruction { + number: number as usize, + src: (src - 1) as usize, + dest: (dest - 1) as usize, + }, + )(input) + } +} diff --git a/2022/src/bin/day_6.rs b/2022/src/bin/day_6.rs new file mode 100644 index 0000000..f02feca --- /dev/null +++ b/2022/src/bin/day_6.rs @@ -0,0 +1,20 @@ +use std::{collections::BTreeSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_6.txt")?; + let chars: Vec<char> = input.trim().chars().collect(); + dbg!(find_distinct_char_run(&chars, 4)); + dbg!(find_distinct_char_run(&chars, 14)); + + Ok(()) +} + +fn find_distinct_char_run(chars: &[char], window_size: usize) -> Option<usize> { + for (i, char_window) in chars.windows(window_size).enumerate() { + let set: BTreeSet<&char> = char_window.iter().collect(); + if set.len() == window_size { + return Some(i + window_size); + } + } + return None; +} diff --git a/2022/src/bin/day_7.rs b/2022/src/bin/day_7.rs new file mode 100644 index 0000000..8933816 --- /dev/null +++ b/2022/src/bin/day_7.rs @@ -0,0 +1,227 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{line_ending, not_line_ending, u32 as nom_u32}, + combinator::map, + multi::separated_list1, + sequence::{preceded, tuple}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_7.txt")?; + let terminal_log = TerminalLog::parser(&input).unwrap().1; + let dir_tree = terminal_log.process_to_dir_tree(); + + dbg!(dir_tree.sum_sizes_below_threshhold(100000)); + + let required_disk_usage = 70000000 - 30000000; + let required_deletion = dir_tree.size() - required_disk_usage; + dbg!(dir_tree.find_min_size_greater_than(required_deletion)); + + Ok(()) +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct TerminalLog(Vec<TerminalLogItem>); + +#[derive(Debug, PartialEq, Eq, Clone)] +enum TerminalLogItem { + Command(TerminalLogCommand), + Output(TerminalLogOutput), +} + +#[derive(Debug, PartialEq, Eq, Clone)] +enum TerminalLogCommand { + CdRoot, + CdUp, + CdDown(String), + List, +} + +#[derive(Debug, PartialEq, Eq, Clone)] +enum TerminalLogOutput { + Dir(String), + File(u32, String), +} + +impl TerminalLog { + fn parser(input: &str) -> IResult<&str, TerminalLog> { + map( + separated_list1(line_ending, TerminalLogItem::parser), + TerminalLog, + )(input) + } + + fn process_to_dir_tree(&self) -> DirTree { + use TerminalLogCommand::*; + use TerminalLogItem::*; + use TerminalLogOutput::*; + + let mut dir_tree_root = DirTree::root(); + let mut dir_path = Vec::new(); + + for log in &self.0 { + match log { + Command(CdRoot) => dir_path.clear(), + Command(CdUp) => { + dir_path.pop(); + } + Command(CdDown(dir_name)) => { + dir_path.push(dir_name.clone()); + } + Command(List) => {} + Output(Dir(dir_name)) => { + let dir = DirTree::new(dir_name.clone()); + dir_tree_root.push_dir(&dir_path, dir); + } + Output(File(size, name)) => { + let file = DirTreeFile { + name: name.clone(), + size: size.clone(), + }; + dir_tree_root.push_file(&dir_path, file); + } + } + } + + dir_tree_root + } +} + +impl TerminalLogItem { + fn parser(input: &str) -> IResult<&str, TerminalLogItem> { + alt(( + map( + preceded(tag("$ "), TerminalLogCommand::parser), + TerminalLogItem::Command, + ), + map(TerminalLogOutput::parser, TerminalLogItem::Output), + ))(input) + } +} + +impl TerminalLogCommand { + fn parser(input: &str) -> IResult<&str, TerminalLogCommand> { + alt(( + map(tag("cd /"), |_| TerminalLogCommand::CdRoot), + map(tag("cd .."), |_| TerminalLogCommand::CdUp), + map(preceded(tag("cd "), name_parser), |name| { + TerminalLogCommand::CdDown(name) + }), + map(tag("ls"), |_| TerminalLogCommand::List), + ))(input) + } +} + +impl TerminalLogOutput { + fn parser(input: &str) -> IResult<&str, TerminalLogOutput> { + alt(( + map(preceded(tag("dir "), name_parser), |name| { + TerminalLogOutput::Dir(name) + }), + map( + tuple((nom_u32, tag(" "), name_parser)), + |(size, _, name)| TerminalLogOutput::File(size, name), + ), + ))(input) + } +} + +fn name_parser(input: &str) -> IResult<&str, String> { + map(not_line_ending, |s: &str| s.to_owned())(input) +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct DirTree { + name: String, + files: Vec<DirTreeFile>, + dirs: Vec<DirTree>, +} + +#[derive(Debug, PartialEq, Eq, Clone)] +struct DirTreeFile { + name: String, + size: u32, +} + +impl DirTree { + fn root() -> DirTree { + DirTree { + name: "/".into(), + files: Vec::new(), + dirs: Vec::new(), + } + } + + fn new(name: String) -> DirTree { + DirTree { + name, + files: Vec::new(), + dirs: Vec::new(), + } + } + + fn push_dir(&mut self, path: &[String], dir: DirTree) { + if path.is_empty() { + self.dirs.push(dir); + } else { + let subdir = self + .dirs + .iter_mut() + .find(|d| d.name == path[0]) + .expect("Subdir doesn't exist"); + subdir.push_dir(&path[1..], dir); + } + } + + fn push_file(&mut self, path: &[String], dir: DirTreeFile) { + if path.is_empty() { + self.files.push(dir); + } else { + let subdir = self + .dirs + .iter_mut() + .find(|d| d.name == path[0]) + .expect("Subdir doesn't exist"); + subdir.push_file(&path[1..], dir); + } + } + + fn size(&self) -> u32 { + self.files.iter().map(|f| f.size).sum::<u32>() + + self.dirs.iter().map(|f| f.size()).sum::<u32>() + } + + fn sum_sizes_below_threshhold(&self, threshhold: u32) -> u32 { + let self_size = self.size(); + let self_size_below_threshold = if self_size < threshhold { self_size } else { 0 }; + self_size_below_threshold + + self + .dirs + .iter() + .map(|f| f.sum_sizes_below_threshhold(threshhold)) + .sum::<u32>() + } + + fn find_min_size_greater_than(&self, threshhold: u32) -> Option<u32> { + let min_subdir = self + .dirs + .iter() + .filter_map(|d| d.find_min_size_greater_than(threshhold)) + .min(); + + match min_subdir { + Some(min) => Some(min), + None => { + let self_size = self.size(); + if self_size > threshhold { + Some(self_size) + } else { + None + } + } + } + } +} diff --git a/2022/src/bin/day_8.rs b/2022/src/bin/day_8.rs new file mode 100644 index 0000000..d044aa6 --- /dev/null +++ b/2022/src/bin/day_8.rs @@ -0,0 +1,231 @@ +use nom::{ + character::complete::{anychar, line_ending}, + combinator::map_res, + multi::{many1, separated_list1}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_8.txt")?; + let trees = TreeField::parser(&input).unwrap().1; + + dbg!(trees.count_visible_trees()); + dbg!(trees.find_best_scenic_score()); + + Ok(()) +} + +#[derive(Debug)] +struct TreeField { + width: usize, + height: usize, + tree_heights: Vec<Vec<i8>>, + row_height_fields: Vec<HeightField>, + column_height_fields: Vec<HeightField>, +} + +#[derive(Default, Debug)] +struct HeightField { + left_breaking_points: Vec<(usize, i8)>, + right_breaking_points: Vec<(usize, i8)>, +} + +enum TreeFieldError { + Empty, + NotRectangular, +} + +impl TreeField { + fn parser(input: &str) -> IResult<&str, TreeField> { + map_res( + separated_list1( + line_ending, + many1(map_res(anychar, |c: char| c.to_string().parse::<i8>())), + ), + TreeField::new, + )(input) + } + + fn new(tree_heights: Vec<Vec<i8>>) -> Result<TreeField, TreeFieldError> { + let height = tree_heights.len(); + if height == 0 { + return Result::Err(TreeFieldError::Empty); + } + + let width = tree_heights[0].len(); + let mut row_height_fields = Vec::new(); + for row in &tree_heights { + if row.len() != width { + return Result::Err(TreeFieldError::NotRectangular); + } + row_height_fields.push(HeightField::new(&row)); + } + + let mut column_height_fields = Vec::new(); + for column_i in 0..width { + let mut column = Vec::new(); + for row in &tree_heights { + column.push(row[column_i].clone()); + } + column_height_fields.push(HeightField::new(&column)); + } + + Ok(TreeField { + width, + height, + tree_heights, + row_height_fields, + column_height_fields, + }) + } + + fn tree_is_visible(&self, x: usize, y: usize) -> bool { + let tree_height = self.tree_heights[y][x]; + let (left_height, right_height) = self.row_height_fields[y].heights_at(x); + let (up_height, down_height) = self.column_height_fields[x].heights_at(y); + tree_height > left_height + || tree_height > right_height + || tree_height > up_height + || tree_height > down_height + } + + fn count_visible_trees(&self) -> usize { + let mut count = 0; + for y in 0..self.height { + for x in 0..self.width { + if self.tree_is_visible(x, y) { + count += 1; + } + } + } + count + } + + fn tree_scenic_score(&self, x: usize, y: usize) -> usize { + let tree_height = self.tree_heights[y][x]; + let (left_height, right_height) = self.row_height_fields[y].heights_at(x); + let left_score = if tree_height > left_height { + x + } else { + let mut count = 0; + let mut shift_x = x; + while shift_x > 0 { + count += 1; + shift_x -= 1; + let height = self.tree_heights[y][shift_x]; + if height >= tree_height { + break; + } + } + count + }; + let right_score = if tree_height > right_height { + self.width - 1 - x + } else { + let mut count = 0; + let mut shift_x = x; + while shift_x < self.width - 1 { + count += 1; + shift_x += 1; + let height = self.tree_heights[y][shift_x]; + if height >= tree_height { + break; + } + } + count + }; + + let (up_height, down_height) = self.column_height_fields[x].heights_at(y); + let up_score = if tree_height > up_height { + y + } else { + let mut count = 0; + let mut shift_y = y; + while shift_y > 0 { + count += 1; + shift_y -= 1; + let height = self.tree_heights[shift_y][x]; + if height >= tree_height { + break; + } + } + count + }; + let down_score = if tree_height > down_height { + self.height - 1 - y + } else { + let mut count = 0; + let mut shift_y = y; + while shift_y < self.height - 1 { + count += 1; + shift_y += 1; + let height = self.tree_heights[shift_y][x]; + if height >= tree_height { + break; + } + } + count + }; + + left_score * right_score * up_score * down_score + } + + fn find_best_scenic_score(&self) -> usize { + let mut max = 0; + for y in 0..self.height { + for x in 0..self.width { + let next = self.tree_scenic_score(x, y); + max = max.max(next); + } + } + max + } +} + +impl HeightField { + fn new(row: &[i8]) -> HeightField { + let mut left_breaking_points = Vec::new(); + let mut last_height = -1; + for (i, height) in row.iter().enumerate() { + if height > &last_height { + last_height = height.clone(); + left_breaking_points.push((i.clone(), height.clone())); + } + } + + let mut right_breaking_points = Vec::new(); + last_height = -1; + for (i, height) in row.iter().enumerate().rev() { + if height > &last_height { + last_height = height.clone(); + right_breaking_points.push((i.clone(), height.clone())); + } + } + + HeightField { + left_breaking_points, + right_breaking_points, + } + } + + fn heights_at(&self, i: usize) -> (i8, i8) { + let left = self + .left_breaking_points + .iter() + .filter(|(left_i, _)| left_i < &i) + .map(|(_, height)| height.clone()) + .last() + .unwrap_or(-1); + + let right = self + .right_breaking_points + .iter() + .filter(|(right_i, _)| right_i > &i) + .map(|(_, height)| height.clone()) + .last() + .unwrap_or(-1); + + (left, right) + } +} diff --git a/2022/src/bin/day_9.rs b/2022/src/bin/day_9.rs new file mode 100644 index 0000000..ccbb66a --- /dev/null +++ b/2022/src/bin/day_9.rs @@ -0,0 +1,134 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{i32, line_ending}, + combinator::{map, value}, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{collections::BTreeSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_9.txt")?; + let movements = Movements::parser(&input).unwrap().1; + + let mut game_board_part_1 = GameBoard::new(2); + for instruction in &movements.0 { + game_board_part_1.step(instruction); + } + dbg!(game_board_part_1.tail_visited.len()); + + let mut game_board_part_2 = GameBoard::new(10); + for instruction in &movements.0 { + game_board_part_2.step(instruction); + } + dbg!(game_board_part_2.tail_visited.len()); + + Ok(()) +} + +#[derive(Debug)] +struct Movements(Vec<Instruction>); + +#[derive(Debug)] +struct Instruction { + direction: Direction, + distance: i32, +} + +#[derive(Debug, Clone, Copy)] +enum Direction { + Down, + Up, + Left, + Right, +} + +impl Movements { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Instruction::parser), Movements)(input) + } +} + +impl Instruction { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple((Direction::parser, tag(" "), i32)), + |(direction, _, distance)| Instruction { + direction, + distance, + }, + )(input) + } +} + +impl Direction { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(Direction::Down, tag("D")), + value(Direction::Up, tag("U")), + value(Direction::Left, tag("L")), + value(Direction::Right, tag("R")), + ))(input) + } +} + +#[derive(Debug)] +struct GameBoard { + rope: Vec<Position>, + tail_visited: BTreeSet<Position>, +} + +#[derive(Default, Debug, PartialEq, Eq, PartialOrd, Ord, Clone)] +struct Position { + x: i32, + y: i32, +} + +impl GameBoard { + fn new(length: usize) -> GameBoard { + let mut tail_visited = BTreeSet::new(); + tail_visited.insert(Position::default()); + GameBoard { + rope: vec![Position::default(); length], + tail_visited, + } + } + + fn step(&mut self, instruction: &Instruction) { + for _ in 0..instruction.distance { + match instruction.direction { + Direction::Down => self.rope[0].y -= 1, + Direction::Up => self.rope[0].y += 1, + Direction::Left => self.rope[0].x -= 1, + Direction::Right => self.rope[0].x += 1, + }; + + for tail_i in 1..self.rope.len() { + let head_i = tail_i - 1; + let head = self.rope[head_i].clone(); + let tail = &mut self.rope[tail_i]; + + let tail_must_move = (head.x - tail.x).abs() > 1 || (head.y - tail.y).abs() > 1; + + if tail_must_move { + if head.x > tail.x { + tail.x += 1; + } else if head.x < tail.x { + tail.x -= 1; + } + + if head.y > tail.y { + tail.y += 1; + } else if head.y < tail.y { + tail.y -= 1; + } + } + } + + self.tail_visited + .insert(self.rope[self.rope.len() - 1].clone()); + } + } +} diff --git a/2022/src/lib.rs b/2022/src/lib.rs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/2022/src/lib.rs @@ -0,0 +1 @@ + diff --git a/2023/Cargo.lock b/2023/Cargo.lock new file mode 100644 index 0000000..68aa4c4 --- /dev/null +++ b/2023/Cargo.lock @@ -0,0 +1,247 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aoc2023" +version = "0.1.0" +dependencies = [ + "nalgebra", + "nom", + "thiserror", +] + +[[package]] +name = "approx" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" +dependencies = [ + "num-traits", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "matrixmultiply" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7574c1cf36da4798ab73da5b215bbf444f50718207754cb522201d78d1cd0ff2" +dependencies = [ + "autocfg", + "rawpointer", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "nalgebra" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307ed9b18cc2423f29e83f84fd23a8e73628727990181f18641a8b5dc2ab1caa" +dependencies = [ + "approx", + "matrixmultiply", + "nalgebra-macros", + "num-complex", + "num-rational", + "num-traits", + "simba", + "typenum", +] + +[[package]] +name = "nalgebra-macros" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91761aed67d03ad966ef783ae962ef9bbaca728d2dd7ceb7939ec110fffad998" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-complex" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rawpointer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + +[[package]] +name = "safe_arch" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f398075ce1e6a179b46f51bd88d0598b92b00d3551f1a2d4ac49e771b56ac354" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "simba" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" +dependencies = [ + "approx", + "num-complex", + "num-traits", + "paste", + "wide", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "wide" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c68938b57b33da363195412cfc5fc37c9ed49aa9cfe2156fde64b8d2c9498242" +dependencies = [ + "bytemuck", + "safe_arch", +] diff --git a/2023/Cargo.toml b/2023/Cargo.toml new file mode 100644 index 0000000..20b625c --- /dev/null +++ b/2023/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "aoc2023" +version = "0.1.0" +authors = ["Justin Wernick <justin@worthe-it.co.za>"] +edition = "2021" + +[dependencies] +nalgebra = "0.32.3" +nom = "7.1.3" +thiserror = "1.0.50" + +[profile.release] +debug = true diff --git a/2023/inputs/.gitkeep b/2023/inputs/.gitkeep new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/2023/inputs/.gitkeep diff --git a/2023/readme.org b/2023/readme.org new file mode 100644 index 0000000..9d68a8d --- /dev/null +++ b/2023/readme.org @@ -0,0 +1,5 @@ +* Advent of Code 2023 + +Just going to have some fun and solve the cool puzzles this year. No special +requirements. Probably am going to keep using NOM for parsing inputs because +that worked well in previous years. diff --git a/2023/src/bin/day_1.rs b/2023/src/bin/day_1.rs new file mode 100644 index 0000000..fe3ef1e --- /dev/null +++ b/2023/src/bin/day_1.rs @@ -0,0 +1,81 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{alpha1, anychar, line_ending, none_of, one_of}, + combinator::{map, map_opt, map_res, opt, peek, value}, + multi::{many1, separated_list1}, + sequence::pair, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_1.txt")?; + let parsed = CalibrationInput::parser(&input).unwrap().1; + dbg!(parsed.calibration_sum()); + + Ok(()) +} + +#[derive(Debug)] +struct CalibrationInput(Vec<CalibrationValue>); + +#[derive(Debug)] +struct CalibrationValue(u32); + +#[derive(Debug)] +struct CalibrationDigit(u8); + +impl CalibrationInput { + fn calibration_sum(&self) -> u32 { + self.0.iter().map(|d| d.0).sum() + } + + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, CalibrationValue::parser), + CalibrationInput, + )(input) + } +} + +impl CalibrationValue { + fn parser(input: &str) -> IResult<&str, Self> { + map( + many1(pair( + opt(peek(CalibrationDigit::parser)), // peek is to not consume the 'one' in 'twone' + none_of("\n"), // this is just to advance the input + )), + |digits| { + let digits: Vec<u32> = digits + .into_iter() + .filter_map(|(d, _)| d.map(|d| d.0 as u32)) + .collect(); + CalibrationValue(digits[0] * 10 + digits[digits.len() - 1]) + }, + )(input) + } +} + +impl CalibrationDigit { + fn parser(input: &str) -> IResult<&str, Self> { + map( + alt(( + map(one_of("0123456789"), |c| { + c.to_string().parse::<u8>().unwrap() + }), + value(0, tag("zero")), + value(1, tag("one")), + value(2, tag("two")), + value(3, tag("three")), + value(4, tag("four")), + value(5, tag("five")), + value(6, tag("six")), + value(7, tag("seven")), + value(8, tag("eight")), + value(9, tag("nine")), + )), + CalibrationDigit, + )(input) + } +} diff --git a/2023/src/bin/day_10.rs b/2023/src/bin/day_10.rs new file mode 100644 index 0000000..84d6327 --- /dev/null +++ b/2023/src/bin/day_10.rs @@ -0,0 +1,321 @@ +use nom::{ + branch::alt, + character::complete::{char as nom_char, line_ending}, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_10.txt")?; + let parsed = Maze::parser(&input).unwrap().1; + dbg!(&parsed.find_furthest_point_in_loop()); + dbg!(&parsed.count_blocks_inside_the_pipe_loop()); + + Ok(()) +} + +#[derive(Debug)] +struct Maze(Vec<Vec<Pipe>>); + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum Pipe { + Start, + Nothing, + DownLeft, + DownRight, + DownUp, + LeftRight, + UpLeft, + UpRight, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum Direction { + Up, + Down, + Left, + Right, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +struct Point { + x: usize, + y: usize, +} + +#[derive(Debug)] +struct FloodFillMaze(Vec<Vec<Option<FloodFill>>>); + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum FloodFill { + Outside, + Inside, + Pipe, +} + +impl Maze { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, many1(Pipe::parser)), Maze)(input) + } + + fn find_furthest_point_in_loop(&self) -> usize { + self.measure_loop_size() / 2 + } + + fn measure_loop_size(&self) -> usize { + let mut position = self.find_start(); + let mut facing = self.find_start_facing(position); + position = position.go(facing); + let mut distance = 1; + + while self.at(position) != Pipe::Start { + let current_pipe = self.at(position); + facing = current_pipe.exit_facing(facing).unwrap(); + position = position.go(facing); + distance += 1; + } + + distance + } + + fn count_blocks_inside_the_pipe_loop(&self) -> usize { + let mut flood_fill_maze = FloodFillMaze::init_for_maze(&self); + + let start_position = self.find_start(); + + { + // fill the pipe loop + let mut position = start_position; + flood_fill_maze.fill(position, FloodFill::Pipe); + + let mut facing = self.find_start_facing(position); + position = position.go(facing); + + while self.at(position) != Pipe::Start { + flood_fill_maze.fill(position, FloodFill::Pipe); + facing = self.at(position).exit_facing(facing).unwrap(); + position = position.go(facing); + } + } + + for y in 0..self.0.len() { + for x in 0..self.0[y].len() { + if flood_fill_maze.0[y][x].is_none() { + let trace_range = if y <= start_position.y { + 0..y + } else { + y + 1..self.0.len() + }; + let mut outside = true; + for trace_y in trace_range { + if flood_fill_maze.0[trace_y][x] == Some(FloodFill::Pipe) + && self + .at(Point { x, y: trace_y }) + .crossed_by_vertical_hanging_right() + { + outside = !outside; + } + } + flood_fill_maze.fill( + Point { x, y }, + if outside { + FloodFill::Outside + } else { + FloodFill::Inside + }, + ); + } + } + } + + flood_fill_maze + .0 + .iter() + .flat_map(|row| row.iter()) + .filter(|x| **x == Some(FloodFill::Inside)) + .count() + } + + fn at(&self, p: Point) -> Pipe { + self.0[p.y][p.x] + } + + fn find_start(&self) -> Point { + for (y, row) in self.0.iter().enumerate() { + for (x, pipe) in row.iter().enumerate() { + if *pipe == Pipe::Start { + return Point { x, y }; + } + } + } + panic!("No Start!"); + } + + fn find_start_facing(&self, start: Point) -> Direction { + if start.y > 0 && self.at(start.up()).connections().contains(&Direction::Down) { + Direction::Up + } else if start.y < self.0.len() - 1 + && self.at(start.down()).connections().contains(&Direction::Up) + { + Direction::Down + } else if start.x > 0 + && self + .at(start.left()) + .connections() + .contains(&Direction::Right) + { + Direction::Left + } else if start.x < self.0[start.y].len() - 1 + && self + .at(start.right()) + .connections() + .contains(&Direction::Left) + { + Direction::Right + } else { + panic!() + } + } +} + +impl Pipe { + fn parser(input: &str) -> IResult<&str, Self> { + use Pipe::*; + + alt(( + value(Start, nom_char('S')), + value(Nothing, nom_char('.')), + value(DownLeft, nom_char('7')), + value(DownRight, nom_char('F')), + value(DownUp, nom_char('|')), + value(LeftRight, nom_char('-')), + value(UpLeft, nom_char('J')), + value(UpRight, nom_char('L')), + ))(input) + } + + fn connections(&self) -> Vec<Direction> { + use Direction::*; + + match self { + Pipe::Start => vec![], + Pipe::Nothing => vec![], + Pipe::DownLeft => vec![Down, Left], + Pipe::DownRight => vec![Down, Right], + Pipe::DownUp => vec![Down, Up], + Pipe::LeftRight => vec![Left, Right], + Pipe::UpLeft => vec![Up, Left], + Pipe::UpRight => vec![Up, Right], + } + } + + fn exit_facing(&self, facing: Direction) -> Option<Direction> { + use Direction::*; + + match self { + Pipe::Start => None, + Pipe::Nothing => None, + Pipe::DownLeft => match facing { + Up => Some(Left), + Right => Some(Down), + _ => None, + }, + Pipe::DownRight => match facing { + Up => Some(Right), + Left => Some(Down), + _ => None, + }, + Pipe::DownUp => match facing { + Up => Some(Up), + Down => Some(Down), + _ => None, + }, + Pipe::LeftRight => match facing { + Left => Some(Left), + Right => Some(Right), + _ => None, + }, + Pipe::UpLeft => match facing { + Down => Some(Left), + Right => Some(Up), + _ => None, + }, + Pipe::UpRight => match facing { + Down => Some(Right), + Left => Some(Up), + _ => None, + }, + } + } + + fn crossed_by_vertical_hanging_right(&self) -> bool { + match self { + Pipe::Start => panic!("Undefined crossing over the start"), + Pipe::Nothing => false, + Pipe::DownLeft => false, + Pipe::DownRight => true, + Pipe::DownUp => false, + Pipe::LeftRight => true, + Pipe::UpLeft => false, + Pipe::UpRight => true, + } + } +} + +impl Point { + fn up(&self) -> Point { + Point { + x: self.x, + y: self.y - 1, + } + } + + fn down(&self) -> Point { + Point { + x: self.x, + y: self.y + 1, + } + } + + fn left(&self) -> Point { + Point { + x: self.x - 1, + y: self.y, + } + } + + fn right(&self) -> Point { + Point { + x: self.x + 1, + y: self.y, + } + } + + fn go(&self, facing: Direction) -> Point { + match facing { + Direction::Up => self.up(), + Direction::Down => self.down(), + Direction::Left => self.left(), + Direction::Right => self.right(), + } + } +} + +impl FloodFillMaze { + fn init_for_maze(maze: &Maze) -> FloodFillMaze { + FloodFillMaze( + maze.0 + .iter() + .map(|row| row.iter().map(|_| None).collect()) + .collect(), + ) + } + + fn fill(&mut self, point: Point, fill: FloodFill) { + if self.0[point.y][point.x].is_none() { + self.0[point.y][point.x] = Some(fill); + } + } +} diff --git a/2023/src/bin/day_11.rs b/2023/src/bin/day_11.rs new file mode 100644 index 0000000..f78417e --- /dev/null +++ b/2023/src/bin/day_11.rs @@ -0,0 +1,111 @@ +use nom::{ + branch::alt, + character::complete::{char, line_ending}, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_11.txt")?; + let galaxy_map = GalaxyMap::parser(&input).unwrap().1; + + let part_1_expanded_galaxy_map = galaxy_map.expand(2); + dbg!(&part_1_expanded_galaxy_map.distance_sum_between_galaxies()); + + let part_2_expanded_galaxy_map = galaxy_map.expand(1_000_000); + dbg!(&part_2_expanded_galaxy_map.distance_sum_between_galaxies()); + + Ok(()) +} + +#[derive(Debug)] +struct GalaxyMap(Vec<Point>); + +#[derive(Debug, Clone)] +struct Point { + x: usize, + y: usize, +} + +#[derive(Debug, Clone)] +enum Token { + Space, + Galaxy, +} + +impl GalaxyMap { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1( + line_ending, + many1(alt(( + value(Token::Space, char('.')), + value(Token::Galaxy, char('#')), + ))), + ), + |rows| { + GalaxyMap( + rows.into_iter() + .enumerate() + .flat_map(move |(y, row)| { + row.into_iter() + .enumerate() + .filter_map(move |(x, token)| match token { + Token::Space => None, + Token::Galaxy => Some(Point { x, y }), + }) + }) + .collect(), + ) + }, + )(input) + } + + fn expand(&self, expansion_factor: usize) -> GalaxyMap { + let max_y = self.0.iter().map(|p| p.y).max().unwrap(); + let empty_rows: Vec<usize> = (0..max_y) + .filter(|y| !self.0.iter().any(|p| p.y == *y)) + .collect(); + + let max_x = self.0.iter().map(|p| p.x).max().unwrap(); + let empty_cols: Vec<usize> = (0..max_x) + .filter(|x| !self.0.iter().any(|p| p.x == *x)) + .collect(); + + let extra_spaces = expansion_factor - 1; + + GalaxyMap( + self.0 + .iter() + .map(|p| Point { + x: p.x + + empty_cols.iter().filter(|empty_x| **empty_x < p.x).count() + * extra_spaces, + y: p.y + + empty_rows.iter().filter(|empty_y| **empty_y < p.y).count() + * extra_spaces, + }) + .collect(), + ) + } + + fn distance_sum_between_galaxies(&self) -> usize { + let mut sum = 0; + + for i in 0..self.0.len() { + for j in i + 1..self.0.len() { + sum += self.0[i].distance_to(&self.0[j]); + } + } + + sum + } +} + +impl Point { + fn distance_to(&self, other: &Point) -> usize { + other.x.abs_diff(self.x) + other.y.abs_diff(self.y) + } +} diff --git a/2023/src/bin/day_12.rs b/2023/src/bin/day_12.rs new file mode 100644 index 0000000..e60b450 --- /dev/null +++ b/2023/src/bin/day_12.rs @@ -0,0 +1,323 @@ +use nom::{ + branch::alt, + character::complete::{char, line_ending, space1, u32}, + combinator::{map, value}, + multi::{many1, many1_count, separated_list1}, + sequence::separated_pair, + IResult, +}; +use std::{collections::BTreeMap, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_12.txt")?; + let small = SpringField::parser(&input).unwrap().1; + dbg!(&small.possibilities_sum()); + + let large = small.expand(); + dbg!(&large.possibilities_sum()); + + Ok(()) +} + +#[derive(Debug)] +struct SpringField(Vec<SpringRow>); + +#[derive(Debug, Clone)] +struct SpringRow { + springs: Vec<Spring>, + check: Vec<u32>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum Spring { + Good, + Bad(usize), + Unknown, +} + +impl SpringField { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, SpringRow::parser), SpringField)(input) + } + + fn possibilities_sum(&self) -> usize { + self.0.iter().map(|r| r.possibilities_count()).sum() + } + + fn expand(&self) -> SpringField { + SpringField(self.0.iter().map(|r| r.expand()).collect()) + } +} + +impl SpringRow { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_pair( + many1(Spring::parser), + space1, + separated_list1(char(','), u32), + ), + |(springs, check)| SpringRow { springs, check }, + )(input) + } + + fn expand(&self) -> SpringRow { + let mut expanded = SpringRow { + springs: Vec::new(), + check: Vec::new(), + }; + + for _ in 0..5 { + expanded.springs.append(&mut self.springs.clone()); + expanded.springs.push(Spring::Unknown); + expanded.check.append(&mut self.check.clone()); + } + + // should only have the extra Unknown between, not at the very end. + expanded.springs.pop(); + + expanded + } + + fn possibilities_count(&self) -> usize { + let optimized = self.optimize_tail(); + optimized.possibilities_count_inner(0, 0, &mut BTreeMap::new()) + } + + fn optimize_tail(&self) -> SpringRow { + let mut optimized = self.clone(); + while optimized.springs.len() > 0 && optimized.check.len() > 0 { + match optimized.springs[optimized.springs.len() - 1] { + Spring::Good => { + optimized.springs.pop(); + } + Spring::Bad(s) if s > optimized.check[optimized.check.len() - 1] as usize => { + panic!("Unsolvable row"); + } + Spring::Bad(s) if s <= optimized.check[optimized.check.len() - 1] as usize => { + optimized.trim_bad_suffix(); + } + Spring::Bad(_) => unreachable!(), + Spring::Unknown => { + break; + } + } + } + + optimized + } + + fn trim_bad_suffix(&mut self) { + let last_check = self.check.pop().expect("No trailing check to pop") as usize; + let mut check_i = 0; + while check_i < last_check { + match self + .springs + .pop() + .expect("Ran out of springs while optimizing suffix!") + { + Spring::Unknown => { + check_i += 1; + } + Spring::Bad(inc) => { + check_i += inc; + } + Spring::Good => { + panic!("Found a good spring in the middle of what must be a bad spring range"); + } + } + } + let is_boundary = self.springs.len() == 0; + let has_extra_good_or_unknown_to_trim = + !is_boundary && !matches!(self.springs.last(), Some(Spring::Bad(_))); + + let valid_suffix = + check_i == last_check && (is_boundary || has_extra_good_or_unknown_to_trim); + if !valid_suffix { + panic!("The suffix had another invalid bad section immediately!"); + } + + if has_extra_good_or_unknown_to_trim { + self.springs.pop(); + } + } + + fn possibilities_count_inner( + &self, + springs_offset: usize, + check_offset: usize, + cache: &mut BTreeMap<(usize, usize), usize>, + ) -> usize { + if let Some(cached) = cache.get(&(springs_offset, check_offset)) { + return *cached; + }; + + let (springs_offset, check_offset) = match self.optimize_head(springs_offset, check_offset) + { + Some(optimized) => optimized, + None => { + return 0; + } + }; + + let springs = &self.springs[springs_offset..]; + let check = &self.check[check_offset..]; + + if check.len() == 1 && springs.iter().all(|s| !matches!(s, Spring::Bad(_))) { + let mut contigous_unknowns = Vec::new(); + let mut next_contiguous_unknown = 0; + let mut is_in_unknown = false; + for spring in springs.iter() { + match spring { + Spring::Unknown => { + next_contiguous_unknown += 1; + is_in_unknown = true; + } + Spring::Good => { + if is_in_unknown { + contigous_unknowns.push(next_contiguous_unknown); + next_contiguous_unknown = 0; + is_in_unknown = false; + } + } + Spring::Bad(_) => unreachable!(), + } + } + if is_in_unknown { + contigous_unknowns.push(next_contiguous_unknown); + } + + return contigous_unknowns + .iter() + .map(|region| { + if *region >= check[0] as usize { + region - check[0] as usize + 1 + } else { + 0 + } + }) + .sum(); + } + + if check.len() == 0 { + if springs.iter().any(|s| matches!(s, Spring::Bad(_))) { + return 0; + } else { + return 1; + } + } + + let valid_prefix_possibilities_count = + if let Some((without_prefix_springs_offset, without_prefix_check_offset)) = + self.trim_bad_prefix(springs_offset, check_offset) + { + self.possibilities_count_inner( + without_prefix_springs_offset, + without_prefix_check_offset, + cache, + ) + } else { + 0 + }; + + let non_prefix_possibilities_count = + self.possibilities_count_inner(springs_offset + 1, check_offset, cache); + + let total_possibilities = valid_prefix_possibilities_count + non_prefix_possibilities_count; + + cache.insert((springs_offset, check_offset), total_possibilities); + + total_possibilities + } + + fn optimize_head( + &self, + mut springs_offset: usize, + mut check_offset: usize, + ) -> Option<(usize, usize)> { + while springs_offset < self.springs.len() && check_offset < self.check.len() { + match self.springs[springs_offset] { + Spring::Good => { + springs_offset += 1; + } + Spring::Bad(s) if s > self.check[check_offset] as usize => { + return None; + } + Spring::Bad(s) if s <= self.check[check_offset] as usize => { + match self.trim_bad_prefix(springs_offset, check_offset) { + Some((new_springs, new_check)) => { + springs_offset = new_springs; + check_offset = new_check; + } + None => return None, + }; + } + Spring::Bad(_) => unreachable!(), + Spring::Unknown => { + break; + } + } + } + + if springs_offset == self.springs.len() && check_offset != self.check.len() { + None + } else { + Some((springs_offset, check_offset)) + } + } + + fn trim_bad_prefix( + &self, + springs_offset: usize, + check_offset: usize, + ) -> Option<(usize, usize)> { + let first_check = self.check[check_offset] as usize; + let mut check_i = 0; + let mut springs_i = springs_offset; + while check_i < first_check { + if springs_i >= self.springs.len() { + return None; + } + + match self.springs[springs_i] { + Spring::Unknown => { + check_i += 1; + } + Spring::Bad(inc) => { + check_i += inc; + } + Spring::Good => { + return None; + } + } + springs_i += 1; + } + + let is_boundary = springs_i == self.springs.len(); + let has_extra_good_or_unknown_to_trim = + !is_boundary && !matches!(self.springs[springs_i], Spring::Bad(_)); + let valid_prefix = + check_i == first_check && (is_boundary || has_extra_good_or_unknown_to_trim); + + if valid_prefix { + let new_springs_i = if has_extra_good_or_unknown_to_trim { + springs_i + 1 + } else { + springs_i + }; + Some((new_springs_i, check_offset + 1)) + } else { + None + } + } +} + +impl Spring { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(Spring::Good, many1_count(char('.'))), + map(many1_count(char('#')), Spring::Bad), + value(Spring::Unknown, char('?')), + ))(input) + } +} diff --git a/2023/src/bin/day_13.rs b/2023/src/bin/day_13.rs new file mode 100644 index 0000000..ad97602 --- /dev/null +++ b/2023/src/bin/day_13.rs @@ -0,0 +1,82 @@ +use nom::{ + character::complete::{line_ending, one_of}, + combinator::map, + multi::{many1, separated_list1}, + sequence::pair, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_13.txt")?; + let parsed = ManyMaps::parser(&input).unwrap().1; + dbg!(&parsed.reflection_score_sum(0)); + dbg!(&parsed.reflection_score_sum(1)); + + Ok(()) +} + +#[derive(Debug)] +struct ManyMaps(Vec<Map>); + +#[derive(Debug)] +struct Map { + rows: Vec<String>, + cols: Vec<String>, +} + +impl ManyMaps { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(pair(line_ending, line_ending), Map::parser), + ManyMaps, + )(input) + } + + fn reflection_score_sum(&self, expected_smudge_count: usize) -> usize { + self.0 + .iter() + .map(|m| m.reflection_score(expected_smudge_count)) + .sum() + } +} + +impl Map { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, many1(one_of(".#"))), |rows| { + Map { + rows: rows + .iter() + .map(|char_array| char_array.iter().collect::<String>()) + .collect(), + cols: (0..rows[0].len()) + .map(|i| rows.iter().map(|row| row[i]).collect::<String>()) + .collect(), + } + })(input) + } + + fn reflection_score(&self, expected_smudge_count: usize) -> usize { + reflection_i(&self.cols, expected_smudge_count) + .or_else(|| reflection_i(&self.rows, expected_smudge_count).map(|y| y * 100)) + .expect("No reflection!") + } +} + +fn reflection_i(rows: &[String], expected_smudge_count: usize) -> Option<usize> { + for i in 1..rows.len() { + let mut smudge_count = 0; + for d in 1..=(i.min(rows.len() - i)) { + smudge_count += rows[i - d] + .chars() + .zip(rows[i + d - 1].chars()) + .filter(|(a, b)| a != b) + .count(); + } + let is_reflection = smudge_count == expected_smudge_count; + if is_reflection { + return Some(i); + } + } + None +} diff --git a/2023/src/bin/day_14.rs b/2023/src/bin/day_14.rs new file mode 100644 index 0000000..e975f41 --- /dev/null +++ b/2023/src/bin/day_14.rs @@ -0,0 +1,145 @@ +use nom::{ + branch::alt, + character::complete::{char, line_ending}, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::{collections::BTreeMap, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_14.txt")?; + let rock_field = RockField::parser(&input).unwrap().1; + { + let mut north_rock_field = rock_field.clone(); + north_rock_field.tilt_north(); + dbg!(&north_rock_field.north_load()); + } + + { + let mut spin_rock_field = rock_field.clone(); + let mut last_east = BTreeMap::new(); + let mut i = 0; + let target = 1000000000; + while i < target { + spin_rock_field.tilt_north(); + spin_rock_field.tilt_west(); + spin_rock_field.tilt_south(); + spin_rock_field.tilt_east(); + if let Some(last_i) = last_east.get(&spin_rock_field) { + let interval = i - last_i; + // relying on integer division to round down here, want to add + // interval as many times as possible without going over target. + i += ((target - i) / interval) * interval; + } else { + last_east.insert(spin_rock_field.clone(), i); + } + i += 1; + } + dbg!(&spin_rock_field.north_load()); + } + + Ok(()) +} + +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord)] +struct RockField(Vec<Vec<Rock>>); + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +enum Rock { + Rounded, + Cubed, + None, +} + +impl RockField { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, many1(Rock::parser)), RockField)(input) + } + + fn tilt_north(&mut self) { + for y in 0..self.0.len() { + for x in 0..self.0[y].len() { + if self.0[y][x] == Rock::Rounded { + let new_y = (0..y) + .rev() + .take_while(|new_y| self.0[*new_y][x] == Rock::None) + .last(); + if let Some(new_y) = new_y { + self.0[new_y][x] = Rock::Rounded; + self.0[y][x] = Rock::None; + } + } + } + } + } + + fn tilt_west(&mut self) { + for x in 0..self.0[0].len() { + for y in 0..self.0.len() { + if self.0[y][x] == Rock::Rounded { + let new_x = (0..x) + .rev() + .take_while(|new_x| self.0[y][*new_x] == Rock::None) + .last(); + if let Some(new_x) = new_x { + self.0[y][new_x] = Rock::Rounded; + self.0[y][x] = Rock::None; + } + } + } + } + } + + fn tilt_south(&mut self) { + for y in (0..self.0.len()).rev() { + for x in 0..self.0[y].len() { + if self.0[y][x] == Rock::Rounded { + let new_y = (y + 1..self.0.len()) + .take_while(|new_y| self.0[*new_y][x] == Rock::None) + .last(); + if let Some(new_y) = new_y { + self.0[new_y][x] = Rock::Rounded; + self.0[y][x] = Rock::None; + } + } + } + } + } + + fn tilt_east(&mut self) { + for x in (0..self.0[0].len()).rev() { + for y in 0..self.0.len() { + if self.0[y][x] == Rock::Rounded { + let new_x = (x + 1..self.0[0].len()) + .take_while(|new_x| self.0[y][*new_x] == Rock::None) + .last(); + if let Some(new_x) = new_x { + self.0[y][new_x] = Rock::Rounded; + self.0[y][x] = Rock::None; + } + } + } + } + } + + fn north_load(&self) -> usize { + self.0 + .iter() + .enumerate() + .map(|(y, row)| { + row.iter().filter(|r| **r == Rock::Rounded).count() * (self.0.len() - y) + }) + .sum() + } +} + +impl Rock { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(Rock::Rounded, char('O')), + value(Rock::Cubed, char('#')), + value(Rock::None, char('.')), + ))(input) + } +} diff --git a/2023/src/bin/day_15.rs b/2023/src/bin/day_15.rs new file mode 100644 index 0000000..429e7f4 --- /dev/null +++ b/2023/src/bin/day_15.rs @@ -0,0 +1,153 @@ +use std::fs; + +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{alpha1, u32}, + combinator::{consumed, map, value}, + multi::separated_list1, + sequence::{pair, preceded}, + IResult, +}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_15.txt")?; + let parsed = InitializationInstructions::parser(&input).unwrap().1; + dbg!(&parsed.hash_sum()); + dbg!(&parsed.final_focusing_power()); + + Ok(()) +} + +#[derive(Debug)] +struct InitializationInstructions(Vec<Instruction>); + +#[derive(Debug)] +struct Instruction { + instruction: String, + label: String, + action: Action, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum Action { + Remove, + Insert(u32), +} + +#[derive(Default, Debug, Clone)] +struct LensBox { + lenses: Vec<Lens>, +} + +#[derive(Debug, Clone)] +struct Lens { + label: String, + power: u32, +} + +impl InitializationInstructions { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(tag(","), Instruction::parser), + InitializationInstructions, + )(input) + } + + fn hash_sum(&self) -> usize { + self.0.iter().map(|i| hash(&i.instruction)).sum() + } + + fn final_focusing_power(&self) -> u32 { + let mut boxes = vec![LensBox::default(); 256]; + for instruction in &self.0 { + let box_index = hash(&instruction.label); + let lens_box = &mut boxes[box_index]; + match instruction.action { + Action::Remove => { + lens_box + .lenses + .retain(|lens| lens.label != instruction.label); + } + Action::Insert(power) => { + let existing_position = lens_box + .lenses + .iter() + .position(|lens| lens.label == instruction.label); + match existing_position { + Some(position) => { + lens_box.lenses[position].power = power; + } + None => { + lens_box.lenses.push(Lens { + label: instruction.label.clone(), + power, + }); + } + } + } + } + } + + boxes + .into_iter() + .enumerate() + .flat_map(|(box_index, lens_box)| { + lens_box + .lenses + .into_iter() + .enumerate() + .map(move |(lens_index, lens)| { + (box_index as u32 + 1) * (lens_index as u32 + 1) * lens.power + }) + }) + .sum() + } +} + +impl Instruction { + fn parser(input: &str) -> IResult<&str, Self> { + map( + consumed(pair(alpha1, Action::parser)), + |(instruction, (label, action))| Instruction { + instruction: instruction.to_owned(), + label: label.to_owned(), + action, + }, + )(input) + } +} + +impl Action { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(Action::Remove, tag("-")), + map(preceded(tag("="), u32), Action::Insert), + ))(input) + } +} + +fn hash(input: &str) -> usize { + let mut result: usize = 0; + for c in input.bytes() { + result += Into::<usize>::into(c); + result *= 17; + result %= 256; + } + result +} + +#[test] +fn examples() { + assert_eq!(hash("rn=1"), 30); + assert_eq!(hash("cm-"), 253); + assert_eq!(hash("qp=3"), 97); + assert_eq!(hash("cm=2"), 47); + assert_eq!(hash("qp-"), 14); + assert_eq!(hash("pc=4"), 180); + assert_eq!(hash("ot=9"), 9); + assert_eq!(hash("ab=5"), 197); + assert_eq!(hash("pc-"), 48); + assert_eq!(hash("pc=6"), 214); + assert_eq!(hash("ot=7"), 231); +} diff --git a/2023/src/bin/day_16.rs b/2023/src/bin/day_16.rs new file mode 100644 index 0000000..2c02d92 --- /dev/null +++ b/2023/src/bin/day_16.rs @@ -0,0 +1,209 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::line_ending, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::{collections::BTreeSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_16.txt")?; + let device = LightDevice::parser(&input).unwrap().1; + { + let mut part_1_device = device.clone(); + part_1_device.energize(Point { x: 0, y: 0 }, Direction::East); + dbg!(&part_1_device.count_energized_blocks()); + } + + dbg!(device.find_max_energization()); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct LightDevice { + mirrors: Vec<Vec<LightBlock>>, + light: Vec<Vec<BTreeSet<Direction>>>, + bounds: Point, +} + +#[derive(Debug, Clone, Copy)] +enum LightBlock { + MirrorForwardLeaning, // / + MirrorBackwardsLeaning, // \ + Empty, // . + HorizontalSplitter, // - + VerticalSplitter, // | +} + +#[derive(Debug, Clone, Copy, PartialOrd, Ord, PartialEq, Eq)] +enum Direction { + North, + South, + East, + West, +} + +#[derive(Debug, Clone)] +struct Point { + x: usize, + y: usize, +} + +impl LightDevice { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, many1(LightBlock::parser)), + |mirrors| LightDevice { + bounds: Point { + x: mirrors[0].len(), + y: mirrors.len(), + }, + light: mirrors + .iter() + .map(|mirror_row| vec![BTreeSet::new(); mirror_row.len()]) + .collect(), + mirrors, + }, + )(input) + } + + fn energize(&mut self, start_point: Point, start_direction: Direction) { + let mut frontier = vec![(start_point.clone(), start_direction.clone())]; + self.light[start_point.y][start_point.x].insert(start_direction); + + while let Some((front_light_p, front_light_dir)) = frontier.pop() { + let mirror = self.mirrors[front_light_p.y][front_light_p.x]; + let new_dirs: Vec<Direction> = match (mirror, front_light_dir) { + (LightBlock::MirrorForwardLeaning, Direction::North) => vec![Direction::East], + (LightBlock::MirrorForwardLeaning, Direction::South) => vec![Direction::West], + (LightBlock::MirrorForwardLeaning, Direction::East) => vec![Direction::North], + (LightBlock::MirrorForwardLeaning, Direction::West) => vec![Direction::South], + (LightBlock::MirrorBackwardsLeaning, Direction::North) => vec![Direction::West], + (LightBlock::MirrorBackwardsLeaning, Direction::South) => vec![Direction::East], + (LightBlock::MirrorBackwardsLeaning, Direction::East) => vec![Direction::South], + (LightBlock::MirrorBackwardsLeaning, Direction::West) => vec![Direction::North], + (LightBlock::HorizontalSplitter, Direction::North) + | (LightBlock::HorizontalSplitter, Direction::South) => { + vec![Direction::East, Direction::West] + } + (LightBlock::VerticalSplitter, Direction::East) + | (LightBlock::VerticalSplitter, Direction::West) => { + vec![Direction::North, Direction::South] + } + (LightBlock::Empty, dir) + | (LightBlock::HorizontalSplitter, dir) + | (LightBlock::VerticalSplitter, dir) => vec![dir], + }; + + let new_lights: Vec<(Point, Direction)> = new_dirs + .into_iter() + .filter_map(|dir| front_light_p.go(dir, &self.bounds).map(|p| (p, dir))) + .collect(); + + for (new_light_p, new_light_dir) in new_lights { + if !self.light[new_light_p.y][new_light_p.x].contains(&new_light_dir) { + self.light[new_light_p.y][new_light_p.x].insert(new_light_dir); + frontier.push((new_light_p, new_light_dir)); + } + } + } + } + + fn count_energized_blocks(&self) -> usize { + self.light + .iter() + .flat_map(|row| row.iter()) + .filter(|set| set.len() > 0) + .count() + } + + fn find_max_energization(&self) -> usize { + (0..self.bounds.x) + .flat_map(|x| { + vec![ + (Point { x, y: 0 }, Direction::South), + ( + Point { + x, + y: self.bounds.y - 1, + }, + Direction::North, + ), + ] + }) + .chain((0..self.bounds.y).flat_map(|y| { + vec![ + (Point { x: 0, y }, Direction::East), + ( + Point { + x: self.bounds.x - 1, + y, + }, + Direction::West, + ), + ] + })) + .map(|(start_p, start_d)| { + let mut energizer = self.clone(); + energizer.energize(start_p, start_d); + energizer.count_energized_blocks() + }) + .max() + .unwrap() + } +} + +impl LightBlock { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(LightBlock::MirrorForwardLeaning, tag("/")), + value(LightBlock::MirrorBackwardsLeaning, tag("\\")), + value(LightBlock::Empty, tag(".")), + value(LightBlock::HorizontalSplitter, tag("-")), + value(LightBlock::VerticalSplitter, tag("|")), + ))(input) + } +} + +impl Point { + fn up(&self) -> Point { + Point { + x: self.x, + y: self.y - 1, + } + } + + fn down(&self) -> Point { + Point { + x: self.x, + y: self.y + 1, + } + } + + fn left(&self) -> Point { + Point { + x: self.x - 1, + y: self.y, + } + } + + fn right(&self) -> Point { + Point { + x: self.x + 1, + y: self.y, + } + } + + fn go(&self, dir: Direction, bounds: &Point) -> Option<Point> { + match dir { + Direction::North if self.y > 0 => Some(self.up()), + Direction::South if self.y < bounds.y - 1 => Some(self.down()), + Direction::West if self.x > 0 => Some(self.left()), + Direction::East if self.x < bounds.x - 1 => Some(self.right()), + _ => None, + } + } +} diff --git a/2023/src/bin/day_17.rs b/2023/src/bin/day_17.rs new file mode 100644 index 0000000..8d839e5 --- /dev/null +++ b/2023/src/bin/day_17.rs @@ -0,0 +1,144 @@ +use nalgebra::{DMatrix, Point2, Unit, Vector2}; +use nom::{ + character::complete::{line_ending, satisfy}, + combinator::{map, map_res}, + multi::{many1, separated_list1}, + IResult, +}; +use std::{collections::HashSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_17.txt")?; + let parsed = HeatlossMap::parser(&input).unwrap().1; + dbg!(&parsed.find_shortest_heatloss_path(false)); + dbg!(&parsed.find_shortest_heatloss_path(true)); + + Ok(()) +} + +#[derive(Debug)] +struct HeatlossMap(DMatrix<u32>); + +#[derive(Debug, Hash, PartialEq, Eq, Clone)] +struct Position { + pos: Point2<isize>, + facing: Unit<Vector2<isize>>, + duration_with_facing: usize, +} + +impl HeatlossMap { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1( + line_ending, + many1(map_res(satisfy(|c| c.is_digit(10)), |d| { + d.to_string().parse::<u32>() + })), + ), + |digits_vec| { + HeatlossMap(DMatrix::from_iterator( + digits_vec.len(), + digits_vec[0].len(), + digits_vec.into_iter().flat_map(|row| row.into_iter()), + )) + }, + )(input) + } + + fn find_shortest_heatloss_path(&self, is_ultra_crucible: bool) -> u32 { + let start = Position { + pos: Point2::new(0, 0), + facing: Vector2::x_axis(), + duration_with_facing: 0, + }; + let end_pos = self.end(); + + let mut frontier = vec![(0, start.clone())]; + let mut visited = HashSet::new(); + visited.insert(start); + + let mut distance_to_end = None; + while distance_to_end.is_none() && frontier.len() > 0 { + // shortest distance is now at the end + frontier + .sort_unstable_by(|(distance_a, _), (distance_b, _)| distance_b.cmp(distance_a)); + let (front_distance, front_position) = frontier.pop().unwrap(); + + let mut next_points: Vec<Position> = Vec::new(); + + if !is_ultra_crucible || front_position.duration_with_facing >= 4 { + let facing_l = rotate_left(&front_position.facing); + let pos_l = front_position.pos + *facing_l; + next_points.push(Position { + pos: pos_l, + facing: facing_l, + duration_with_facing: 1, + }); + + let facing_r = rotate_right(&front_position.facing); + let pos_r = front_position.pos + *facing_r; + next_points.push(Position { + pos: pos_r, + facing: facing_r, + duration_with_facing: 1, + }); + } + + if (is_ultra_crucible && front_position.duration_with_facing < 10) + || (!is_ultra_crucible && front_position.duration_with_facing < 3) + { + let pos = front_position.pos + *front_position.facing; + next_points.push(Position { + pos, + facing: front_position.facing.clone(), + duration_with_facing: front_position.duration_with_facing + 1, + }); + } + + for next_point in next_points { + if let Some(step_distance) = self.get(&next_point.pos) { + if !visited.contains(&next_point) { + visited.insert(next_point.clone()); + + let distance = front_distance + step_distance; + + if next_point.pos == end_pos { + if is_ultra_crucible { + if next_point.duration_with_facing >= 4 { + distance_to_end = Some(distance); + } + } else { + distance_to_end = Some(distance); + } + } + frontier.push((distance, next_point)); + } + } + } + } + + distance_to_end.unwrap() + } + + fn end(&self) -> Point2<isize> { + Point2::new(self.0.ncols() as isize - 1, self.0.nrows() as isize - 1) + } + + fn get(&self, pos: &Point2<isize>) -> Option<u32> { + let x: Option<usize> = pos.x.try_into().ok(); + let y: Option<usize> = pos.y.try_into().ok(); + + match (x, y) { + (Some(x), Some(y)) => self.0.get((x, y)).copied(), + _ => None, + } + } +} + +fn rotate_left(facing: &Unit<Vector2<isize>>) -> Unit<Vector2<isize>> { + Unit::new_unchecked(Vector2::new(-facing.y, facing.x)) +} + +fn rotate_right(facing: &Unit<Vector2<isize>>) -> Unit<Vector2<isize>> { + Unit::new_unchecked(Vector2::new(facing.y, -facing.x)) +} diff --git a/2023/src/bin/day_18.rs b/2023/src/bin/day_18.rs new file mode 100644 index 0000000..a4c9355 --- /dev/null +++ b/2023/src/bin/day_18.rs @@ -0,0 +1,214 @@ +use nalgebra::{Point2, Vector2}; +use nom::{ + branch::alt, + bytes::complete::{tag, take}, + character::complete::{char, hex_digit1, line_ending, space1, u32}, + combinator::{map, map_res, value}, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{collections::HashMap, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_18.txt")?; + let parsed = Instructions::parser(&input).unwrap().1; + let mut fill_map = parsed.draw_map(); + fill_map.derive_inside_outside(); + dbg!(&fill_map.count_inside()); + dbg!(&parsed.find_internal_area()); + + let hex_parsed = Instructions::hex_parser(&input).unwrap().1; + dbg!(&hex_parsed.find_internal_area()); + + Ok(()) +} + +#[derive(Debug)] +struct Instructions(Vec<Instruction>); + +#[derive(Debug)] +struct Instruction { + direction: Vector2<i64>, + distance: u32, +} + +#[derive(Debug)] +struct FloodFillMap { + map: HashMap<Point2<i64>, Fill>, + top_left: Point2<i64>, + bottom_right: Point2<i64>, +} + +#[derive(Debug, PartialEq, Eq, Clone, Copy)] +enum Fill { + Outside, + Inside, +} + +impl Instructions { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, Instruction::parser), + Instructions, + )(input) + } + + fn hex_parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, Instruction::hex_parser), + Instructions, + )(input) + } + + fn draw_map(&self) -> FloodFillMap { + let mut trench = HashMap::new(); + let mut current = Point2::new(0, 0); + for instruction in &self.0 { + for _ in 0..instruction.distance { + current += instruction.direction; + trench.insert(current.clone(), Fill::Inside); + } + } + + FloodFillMap::new(trench) + } + + fn find_internal_area(&self) -> i64 { + let mut current_point = Point2::new(0, 0); + let mut points = vec![current_point]; + + let mut perimeter = 0; + for instruction in &self.0 { + let next_point = current_point + instruction.direction * instruction.distance as i64; + points.push(next_point); + current_point = next_point; + perimeter += instruction.distance as i64; + } + + let mut area = 0; + for point in points.windows(2) { + if let &[p1, p2] = point { + area += p1.x * p2.y; + area -= p1.y * p2.x; + } else { + unreachable!() + } + } + + (perimeter + 2 + area) / 2 + } +} + +impl Instruction { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + dir_parser, + space1, + u32, + space1, + tag("(#"), + hex_digit1, + tag(")"), + )), + |(direction, _, distance, _, _, _, _)| Instruction { + direction, + distance, + }, + )(input) + } + + fn hex_parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + dir_parser, + space1, + u32, + space1, + tag("(#"), + map_res(take(5usize), |hex| u32::from_str_radix(hex, 16)), + hex_dir_parser, + tag(")"), + )), + |(_, _, _, _, _, distance, direction, _)| Instruction { + direction, + distance, + }, + )(input) + } +} + +fn dir_parser(input: &str) -> IResult<&str, Vector2<i64>> { + alt(( + value(Vector2::new(0, -1), char('U')), + value(Vector2::new(0, 1), char('D')), + value(Vector2::new(-1, 0), char('L')), + value(Vector2::new(1, 0), char('R')), + ))(input) +} + +fn hex_dir_parser(input: &str) -> IResult<&str, Vector2<i64>> { + alt(( + value(Vector2::new(0, -1), char('3')), + value(Vector2::new(0, 1), char('1')), + value(Vector2::new(-1, 0), char('2')), + value(Vector2::new(1, 0), char('0')), + ))(input) +} + +impl FloodFillMap { + fn new(map: HashMap<Point2<i64>, Fill>) -> FloodFillMap { + let top_left = Point2::new( + map.keys().map(|key| key.x).min().unwrap() - 1, + map.keys().map(|key| key.y).min().unwrap() - 1, + ); + + let bottom_right = Point2::new( + map.keys().map(|key| key.x).max().unwrap() + 1, + map.keys().map(|key| key.y).max().unwrap() + 1, + ); + + FloodFillMap { + map, + top_left, + bottom_right, + } + } + + fn derive_inside_outside(&mut self) { + self.flood_fill(self.top_left.clone(), &Fill::Outside); + for y in self.top_left.y..=self.bottom_right.y { + for x in self.top_left.x..=self.bottom_right.x { + let current = Point2::new(x, y); + self.map.entry(current).or_insert(Fill::Inside); + } + } + } + + fn count_inside(&self) -> usize { + self.map + .values() + .filter(|fill| **fill == Fill::Inside) + .count() + } + + fn flood_fill(&mut self, start: Point2<i64>, fill: &Fill) { + let mut to_fill = vec![start]; + + while let Some(next) = to_fill.pop() { + if next.y >= self.top_left.y + && next.x >= self.top_left.x + && next.y <= self.bottom_right.y + && next.x <= self.bottom_right.x + && !self.map.contains_key(&next) + { + self.map.insert(next.clone(), fill.clone()); + to_fill.push(next + Vector2::new(-1, 0)); + to_fill.push(next + Vector2::new(1, 0)); + to_fill.push(next + Vector2::new(0, -1)); + to_fill.push(next + Vector2::new(0, 1)); + } + } + } +} diff --git a/2023/src/bin/day_19.rs b/2023/src/bin/day_19.rs new file mode 100644 index 0000000..8a7dabd --- /dev/null +++ b/2023/src/bin/day_19.rs @@ -0,0 +1,348 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{alpha1, line_ending, u32 as nom_u32}, + combinator::{map, value}, + multi::separated_list1, + sequence::{pair, preceded, terminated, tuple}, + IResult, +}; +use std::{collections::BTreeMap, fs, ops::Range}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_19.txt")?; + let parsed = PartSortingMess::parser(&input).unwrap().1; + dbg!(&parsed.accepted_part_ratings()); + dbg!(&parsed.count_distinct_combinations()); + + Ok(()) +} + +#[derive(Debug)] +struct PartSortingMess { + workflows: BTreeMap<String, Workflow>, + parts: Vec<Part>, +} + +#[derive(Debug)] +struct Workflow { + id: String, + conditions: Vec<WorkflowStep>, + if_none_match: WorkflowOutcome, +} + +#[derive(Debug)] +struct WorkflowStep { + field: PartField, + condition: WorkflowCondition, + result: WorkflowOutcome, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +enum PartField { + X, + M, + A, + S, +} + +#[derive(Debug)] +enum WorkflowCondition { + LessThan(u32), + GreaterThan(u32), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +enum WorkflowOutcome { + Accept, + Reject, + Defer(String), +} + +#[derive(Debug)] +struct Part { + x: u32, + m: u32, + a: u32, + s: u32, +} + +#[derive(Debug, Clone)] +struct PartRange { + x: Range<u32>, + m: Range<u32>, + a: Range<u32>, + s: Range<u32>, +} + +impl PartSortingMess { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + separated_list1(line_ending, Workflow::parser), + line_ending, + line_ending, + separated_list1(line_ending, Part::parser), + )), + |(workflows, _, _, parts)| PartSortingMess { + workflows: workflows + .into_iter() + .map(|workflow| (workflow.id.clone(), workflow)) + .collect(), + parts, + }, + )(input) + } + + fn accepted_part_ratings(&self) -> u32 { + let mut rating_sum = 0; + + for part in &self.parts { + let mut outcome = WorkflowOutcome::Defer("in".into()); + while let Some(workflow_id) = outcome.next_workflow_id() { + let workflow = self.workflows.get(&workflow_id).unwrap(); + outcome = workflow.process(part); + } + + if outcome == WorkflowOutcome::Accept { + rating_sum += part.rating(); + } + } + + rating_sum + } + + fn count_distinct_combinations(&self) -> u64 { + self.count_combinations_for_workflow( + "in", + &PartRange { + x: 1..4001, + m: 1..4001, + a: 1..4001, + s: 1..4001, + }, + ) + + // potential workflow optimizations to make the stack not so deep + // - eliminate conditions in a workflow where everything has the same outcome + // - inline workflows with a single outcome + // - eliminate unreachable branches like a<10, a<5 + } + + fn count_combinations_for_workflow(&self, workflow_id: &str, part_range: &PartRange) -> u64 { + if part_range.combinations() == 0 { + 0 + } else { + let mut combinations = 0; + + let workflow = self.workflows.get(workflow_id).unwrap(); + let mut remaining_range = part_range.clone(); + for condition in &workflow.conditions { + let matched_range: PartRange; + (matched_range, remaining_range) = + remaining_range.partition(&condition.field, &condition.condition); + combinations += match &condition.result { + WorkflowOutcome::Accept => matched_range.combinations(), + WorkflowOutcome::Reject => 0, + WorkflowOutcome::Defer(next_workflow_id) => { + self.count_combinations_for_workflow(&next_workflow_id, &matched_range) + } + }; + } + combinations += match &workflow.if_none_match { + WorkflowOutcome::Accept => remaining_range.combinations(), + WorkflowOutcome::Reject => 0, + WorkflowOutcome::Defer(next_workflow_id) => { + self.count_combinations_for_workflow(&next_workflow_id, &remaining_range) + } + }; + + combinations + } + } +} + +impl Workflow { + fn parser(input: &str) -> IResult<&str, Self> { + map( + pair( + alpha1, + preceded( + tag("{"), + terminated( + pair( + separated_list1(tag(","), WorkflowStep::parser), + preceded(tag(","), WorkflowOutcome::parser), + ), + tag("}"), + ), + ), + ), + |(id, (conditions, if_none_match)): (&str, _)| Workflow { + id: id.to_owned(), + conditions, + if_none_match, + }, + )(input) + } + + fn process(&self, part: &Part) -> WorkflowOutcome { + for condition in &self.conditions { + let val = part.get(&condition.field); + if condition.condition.matches(val) { + return condition.result.clone(); + } + } + self.if_none_match.clone() + } +} + +impl WorkflowStep { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + PartField::parser, + WorkflowCondition::parser, + preceded(tag(":"), WorkflowOutcome::parser), + )), + |(field, condition, result)| WorkflowStep { + field, + condition, + result, + }, + )(input) + } +} + +impl PartField { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(PartField::X, tag("x")), + value(PartField::M, tag("m")), + value(PartField::A, tag("a")), + value(PartField::S, tag("s")), + ))(input) + } +} + +impl WorkflowCondition { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + map(preceded(tag("<"), nom_u32), WorkflowCondition::LessThan), + map(preceded(tag(">"), nom_u32), WorkflowCondition::GreaterThan), + ))(input) + } + + fn matches(&self, val: u32) -> bool { + match self { + WorkflowCondition::LessThan(me) => val < *me, + WorkflowCondition::GreaterThan(me) => val > *me, + } + } + + fn partition(&self, val: &Range<u32>) -> (Range<u32>, Range<u32>) { + match self { + WorkflowCondition::LessThan(me) => (val.start..*me, *me..val.end), + WorkflowCondition::GreaterThan(me) => (*me + 1..val.end, val.start..*me + 1), + } + } +} + +impl WorkflowOutcome { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(WorkflowOutcome::Accept, tag("A")), + value(WorkflowOutcome::Reject, tag("R")), + map(alpha1, |id: &str| WorkflowOutcome::Defer(id.to_owned())), + ))(input) + } + + fn next_workflow_id(&self) -> Option<String> { + match self { + WorkflowOutcome::Accept | WorkflowOutcome::Reject => None, + WorkflowOutcome::Defer(id) => Some(id.clone()), + } + } +} + +impl Part { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("{x="), + nom_u32, + tag(",m="), + nom_u32, + tag(",a="), + nom_u32, + tag(",s="), + nom_u32, + tag("}"), + )), + |(_, x, _, m, _, a, _, s, _)| Part { x, m, a, s }, + )(input) + } + + fn rating(&self) -> u32 { + self.x + self.m + self.a + self.s + } + + fn get(&self, field: &PartField) -> u32 { + match field { + PartField::X => self.x, + PartField::M => self.m, + PartField::A => self.a, + PartField::S => self.s, + } + } +} + +impl PartRange { + fn combinations(&self) -> u64 { + if self.x.is_empty() || self.m.is_empty() || self.a.is_empty() || self.s.is_empty() { + 0 + } else { + (self.x.end - self.x.start) as u64 + * (self.m.end - self.m.start) as u64 + * (self.a.end - self.a.start) as u64 + * (self.s.end - self.s.start) as u64 + } + } + + fn partition( + &self, + field: &PartField, + condition: &WorkflowCondition, + ) -> (PartRange, PartRange) { + let (matched_range, unmatched_range) = match field { + PartField::X => condition.partition(&self.x), + PartField::M => condition.partition(&self.m), + PartField::A => condition.partition(&self.a), + PartField::S => condition.partition(&self.s), + }; + + let mut matched_part_range = self.clone(); + let mut unmatched_part_range = self.clone(); + + match field { + PartField::X => { + matched_part_range.x = matched_range; + unmatched_part_range.x = unmatched_range; + } + PartField::M => { + matched_part_range.m = matched_range; + unmatched_part_range.m = unmatched_range; + } + PartField::A => { + matched_part_range.a = matched_range; + unmatched_part_range.a = unmatched_range; + } + PartField::S => { + matched_part_range.s = matched_range; + unmatched_part_range.s = unmatched_range; + } + }; + + (matched_part_range, unmatched_part_range) + } +} diff --git a/2023/src/bin/day_2.rs b/2023/src/bin/day_2.rs new file mode 100644 index 0000000..6f19c1d --- /dev/null +++ b/2023/src/bin/day_2.rs @@ -0,0 +1,109 @@ +use nom::{ + bytes::complete::tag, + character::complete::{alpha1, line_ending, u32 as nom_u32}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_2.txt")?; + let parsed = Games::parser(&input).unwrap().1; + let max_pull = Pull { + red: 12, + green: 13, + blue: 14, + }; + dbg!(&parsed.valid_game_id_sum(&max_pull)); + dbg!(&parsed.power_sum()); + + Ok(()) +} + +#[derive(Debug)] +struct Games(Vec<Game>); + +#[derive(Debug)] +struct Game { + id: u32, + pulls: Vec<Pull>, +} + +#[derive(Debug, Default)] +struct Pull { + red: u32, + green: u32, + blue: u32, +} + +impl Games { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Game::parser), Games)(input) + } + + fn valid_game_id_sum(&self, max_pull: &Pull) -> u32 { + self.0 + .iter() + .filter(|game| game.is_valid(max_pull)) + .map(|game| game.id) + .sum() + } + + fn power_sum(&self) -> u32 { + self.0.iter().map(|game| game.min_pull().power()).sum() + } +} + +impl Game { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("Game "), + nom_u32, + tag(": "), + separated_list1(tag("; "), Pull::parser), + )), + |(_, id, _, pulls)| Game { id, pulls }, + )(input) + } + + fn is_valid(&self, max_pull: &Pull) -> bool { + self.pulls.iter().all(|pull| { + pull.red <= max_pull.red && pull.blue <= max_pull.blue && pull.green <= max_pull.green + }) + } + + fn min_pull(&self) -> Pull { + Pull { + red: self.pulls.iter().map(|p| p.red).max().unwrap_or(0), + blue: self.pulls.iter().map(|p| p.blue).max().unwrap_or(0), + green: self.pulls.iter().map(|p| p.green).max().unwrap_or(0), + } + } +} + +impl Pull { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(tag(", "), tuple((nom_u32, tag(" "), alpha1))), + |stones| { + let mut pull = Pull::default(); + for (quantity, _, colour) in stones { + match colour { + "red" => pull.red += quantity, + "blue" => pull.blue += quantity, + "green" => pull.green += quantity, + other => panic!("Unexpected colour, {}", other), + }; + } + pull + }, + )(input) + } + + fn power(&self) -> u32 { + self.red * self.blue * self.green + } +} diff --git a/2023/src/bin/day_20.rs b/2023/src/bin/day_20.rs new file mode 100644 index 0000000..f2e955f --- /dev/null +++ b/2023/src/bin/day_20.rs @@ -0,0 +1,334 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{alpha1, line_ending}, + combinator::{map, map_res, value}, + multi::separated_list1, + sequence::{delimited, pair, separated_pair}, + IResult, +}; +use std::{collections::VecDeque, fs, num::ParseIntError}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_20.txt")?; + let circuit = Circuit::parser(&input).unwrap().1; + + { + let mut circuit = circuit.clone(); + let mut pulse_tracker = PulseCounter::default(); + + for _ in 0..1000 { + circuit.push_the_button(&mut pulse_tracker); + } + dbg!(pulse_tracker.low_pulse_count * pulse_tracker.high_pulse_count); + } + + { + let mut circuit = circuit.clone(); + let mut pulse_tracker = RxWatcher::new( + circuit + .modules + .iter() + .find(|m| m.id == ModuleId::rx()) + .unwrap() + .index, + circuit + .modules + .iter() + .find(|m| m.id == ModuleId::from_short_alphanumeric("th").unwrap()) + .unwrap() + .index, + ); + + while !pulse_tracker.rx_got_a_low_pulse { + pulse_tracker.i += 1; + circuit.push_the_button(&mut pulse_tracker); + } + dbg!(pulse_tracker.i, pulse_tracker); + } + + Ok(()) +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +struct ModuleId(u32); + +#[derive(Debug, Clone)] +struct Circuit { + modules: Vec<Module>, +} + +#[derive(Debug, Clone)] +struct ParsedModule { + id: ModuleId, + outs: Vec<ModuleId>, + state: ModuleState, +} + +#[derive(Debug, Clone)] +struct Module { + id: ModuleId, + index: usize, + outs: Vec<usize>, + state: ModuleState, +} + +#[derive(Debug, Clone)] +enum ModuleState { + FlipFlop(bool), + Conjunction(u64), + Sink, +} + +#[derive(Debug, Default)] +struct PulseCounter { + pulses: VecDeque<Pulse>, + low_pulse_count: u64, + high_pulse_count: u64, +} + +#[derive(Debug)] +struct RxWatcher { + pulses: VecDeque<Pulse>, + rx_module_index: usize, + rx_got_a_low_pulse: bool, + logging_module_index: usize, + i: usize, +} + +impl RxWatcher { + fn new(rx_module_index: usize, logging_module_index: usize) -> Self { + RxWatcher { + pulses: VecDeque::default(), + rx_module_index, + rx_got_a_low_pulse: false, + logging_module_index, + i: 0, + } + } +} + +#[derive(Debug)] +struct Pulse { + state: bool, + input: usize, + output: usize, +} + +impl Circuit { + fn parser(input: &str) -> IResult<&str, Self> { + map( + pair( + delimited( + tag("broadcaster -> "), + ParsedModule::outs_parser, + line_ending, + ), + separated_list1(line_ending, ParsedModule::parser), + ), + |(broadcaster, parsed_modules)| { + let sink_index = parsed_modules.len() + 1; + let rx_sink_index = parsed_modules.len() + 2; + let mut modules: Vec<Module> = parsed_modules + .iter() + .enumerate() + .map(|(index, module)| Module { + id: module.id, + index: index + 1, + outs: module + .outs + .iter() + .map(|out_id| { + parsed_modules + .iter() + .enumerate() + .find(|(_, out)| &out.id == out_id) + .map_or_else( + || { + if out_id == &ModuleId::rx() { + rx_sink_index + } else { + sink_index + } + }, + |(index, _)| index + 1, + ) + }) + .collect(), + state: module.state.clone(), + }) + .collect(); + modules.push(Module { + id: ModuleId::sink(), + index: sink_index, + outs: Vec::new(), + state: ModuleState::Sink, + }); + modules.push(Module { + id: ModuleId::rx(), + index: rx_sink_index, + outs: Vec::new(), + state: ModuleState::Sink, + }); + modules.insert( + 0, + Module { + id: ModuleId::broadcaster(), + index: 0, + outs: broadcaster + .iter() + .map(|mid| modules.iter().find(|m| &m.id == mid).unwrap().index) + .collect(), + state: ModuleState::Sink, + }, + ); + + let modules_snapshot = modules.clone(); + + for module in &mut modules { + if let ModuleState::Conjunction(ref mut conjunction_state) = module.state { + for input in &modules_snapshot { + if input.outs.contains(&module.index) { + let mask = !(1 << input.index); + *conjunction_state &= mask; + } + } + } + } + + Circuit { modules } + }, + )(input) + } + + fn push_the_button(&mut self, pulse_tracker: &mut impl PulseTracker) { + pulse_tracker.button_pulse(); + for b in &self.modules[0].outs { + pulse_tracker.push(Pulse { + state: false, + input: 0, + output: *b, + }); + } + + while let Some(pulse) = pulse_tracker.pop() { + let module = &mut self.modules[pulse.output]; + let new_pulse_state: Option<bool> = match module.state { + ModuleState::FlipFlop(ref mut current) => { + if !pulse.state { + *current = !*current; + Some(*current) + } else { + None + } + } + ModuleState::Conjunction(ref mut current) => { + let mask = 1 << pulse.input; + if pulse.state { + *current |= mask; + } else { + *current &= !mask; + } + Some(*current != u64::MAX) + } + ModuleState::Sink => None, + }; + if let Some(new_pulse_state) = new_pulse_state { + for out in &module.outs { + pulse_tracker.push(Pulse { + state: new_pulse_state, + input: module.index, + output: *out, + }); + } + } + } + } +} + +trait PulseTracker { + fn button_pulse(&mut self); + fn push(&mut self, pulse: Pulse); + fn pop(&mut self) -> Option<Pulse>; +} + +impl PulseTracker for PulseCounter { + fn button_pulse(&mut self) { + self.low_pulse_count += 1; + } + + fn push(&mut self, pulse: Pulse) { + if pulse.state { + self.high_pulse_count += 1; + } else { + self.low_pulse_count += 1; + } + self.pulses.push_back(pulse); + } + + fn pop(&mut self) -> Option<Pulse> { + self.pulses.pop_front() + } +} + +impl PulseTracker for RxWatcher { + fn button_pulse(&mut self) {} + + fn push(&mut self, pulse: Pulse) { + if pulse.state && pulse.output == self.logging_module_index { + println!("{}: {} into {}", self.i, pulse.input, pulse.output); + } + if !pulse.state && pulse.output == self.rx_module_index { + self.rx_got_a_low_pulse = true; + } + self.pulses.push_back(pulse); + } + + fn pop(&mut self) -> Option<Pulse> { + self.pulses.pop_front() + } +} + +impl ParsedModule { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_pair( + pair( + alt(( + value(ModuleState::FlipFlop(false), tag("%")), + value(ModuleState::Conjunction(u64::MAX), tag("&")), + )), + map_res(alpha1, |id: &str| ModuleId::from_short_alphanumeric(id)), + ), + tag(" -> "), + ParsedModule::outs_parser, + ), + |((state, id), outs)| ParsedModule { id, state, outs }, + )(input) + } + + fn outs_parser(input: &str) -> IResult<&str, Vec<ModuleId>> { + separated_list1( + tag(", "), + map_res(alpha1, |s: &str| ModuleId::from_short_alphanumeric(s)), + )(input) + } +} + +impl ModuleId { + fn broadcaster() -> ModuleId { + ModuleId(0) + } + + fn sink() -> ModuleId { + ModuleId(u32::MAX) + } + + fn rx() -> ModuleId { + ModuleId::from_short_alphanumeric("rx").unwrap() + } + + fn from_short_alphanumeric(s: &str) -> Result<ModuleId, ParseIntError> { + u32::from_str_radix(s, 36).map(ModuleId) + } +} diff --git a/2023/src/bin/day_21.rs b/2023/src/bin/day_21.rs new file mode 100644 index 0000000..9ef273e --- /dev/null +++ b/2023/src/bin/day_21.rs @@ -0,0 +1,395 @@ +use nom::{ + branch::alt, + character::complete::{char, line_ending}, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::{collections::BTreeSet, fs, mem}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_21.txt")?; + let garden = WalledGarden::parser(&input).unwrap().1; + + dbg!(garden.count_closed_walls_walkable_after_steps(garden.center(), 64)); + dbg!(garden.count_open_walls_walkable_after_steps(26501365)); + + Ok(()) +} + +#[derive(Debug, Clone)] +struct WalledGarden { + rocks: Vec<Vec<bool>>, + walkable_to: Vec<Vec<bool>>, + walkable_to_back: Vec<Vec<bool>>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum WalledGardenState { + Empty, + Walkable, + Rock, +} + +#[derive(Debug)] +struct MaxWalkable { + odd_steps_max: usize, + even_steps_max: usize, + min_steps: usize, +} + +#[derive(Debug)] +struct EntryPoint { + entry: (usize, usize), + max: MaxWalkable, +} + +impl WalledGarden { + fn new(tiles: Vec<Vec<WalledGardenState>>) -> WalledGarden { + let rocks: Vec<Vec<bool>> = tiles + .iter() + .map(|row| { + row.iter() + .map(|t| *t == WalledGardenState::Rock) + .collect::<Vec<bool>>() + }) + .collect(); + let walkable_to: Vec<Vec<bool>> = vec![vec![false; rocks[0].len()]; rocks.len()]; + + WalledGarden { + rocks, + walkable_to_back: walkable_to.clone(), + walkable_to: walkable_to.clone(), + } + } + + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, many1(WalledGardenState::parser)), + WalledGarden::new, + )(input) + } + + fn count_closed_walls_walkable_after_steps( + &self, + start: (usize, usize), + steps: usize, + ) -> usize { + let mut garden = self.clone(); + garden.walkable_to[start.1][start.0] = true; + for _ in 0..steps { + garden.closed_walls_next_mut(); + } + garden.count_walkable() + } + + fn closed_walls_find_max_walkable(&self, start: (usize, usize)) -> MaxWalkable { + let mut odd_steps_max = 0; + let mut even_steps_max = 0; + + let mut garden = self.clone(); + garden.walkable_to[start.1][start.0] = true; + + let mut unchanged_count = 0; + for i in 1.. { + garden.closed_walls_next_mut(); + + if i % 2 == 0 { + let new_even_max_countable = garden.count_walkable(); + if even_steps_max == new_even_max_countable { + unchanged_count += 1; + } else { + even_steps_max = new_even_max_countable; + } + } else { + let new_odd_max_countable = garden.count_walkable(); + if odd_steps_max == new_odd_max_countable { + unchanged_count += 1; + } else { + odd_steps_max = new_odd_max_countable; + } + } + + if unchanged_count > 1 { + return MaxWalkable { + odd_steps_max, + even_steps_max, + min_steps: i, + }; + } + } + unreachable!() + } + + fn closed_walls_next_mut(&mut self) { + for (y, row) in self.walkable_to_back.iter_mut().enumerate() { + for (x, tile) in row.iter_mut().enumerate() { + if !self.rocks[y][x] { + *tile = (y > 0 && self.walkable_to[y - 1][x]) + || (y < self.walkable_to.len() - 1 && self.walkable_to[y + 1][x]) + || (x > 0 && self.walkable_to[y][x - 1]) + || (x < self.walkable_to[y].len() - 1 && self.walkable_to[y][x + 1]); + } + } + } + + mem::swap(&mut self.walkable_to, &mut self.walkable_to_back); + } + + fn count_walkable(&self) -> usize { + self.walkable_to + .iter() + .flat_map(|row| row.iter()) + .filter(|s| **s) + .count() + } + + fn count_open_walls_walkable_after_steps(&self, steps: usize) -> usize { + // assumptions: + // - this field is square + // - there is a direct path from the starting point up, down, left, and right + // - there is a direct path around the edges + // - the start is in the center + + let (size_x, size_y) = self.size(); + let (center_x, center_y) = self.center(); + + let max_chunks_deviance = if (steps - center_y) % size_y > 0 { + 1 + (steps - center_y) / size_y + } else { + (steps - center_y) / size_y + }; + + let mut total_walkable = 0; + + for quadrant in [ + EntryPoint::new((0, 0), &self), + EntryPoint::new((size_x - 1, 0), &self), + EntryPoint::new((0, size_y - 1), &self), + EntryPoint::new((size_x - 1, size_y - 1), &self), + ] { + let steps_to_quadrant_alignment = center_x + center_y + 2; + + let mut distance_from_edge = 0; + while max_chunks_deviance > distance_from_edge { + let steps_from_alignment_to_target_chunk = + (max_chunks_deviance - distance_from_edge - 1) * size_y; + if steps_to_quadrant_alignment + steps_from_alignment_to_target_chunk > steps { + distance_from_edge += 1; + continue; + } + let steps_in_chunk = + steps - steps_to_quadrant_alignment - steps_from_alignment_to_target_chunk; + if steps_in_chunk >= quadrant.max.min_steps { + break; + } + + let walkable_per_chunk = + self.count_closed_walls_walkable_after_steps(quadrant.entry, steps_in_chunk); + total_walkable += walkable_per_chunk * (max_chunks_deviance - distance_from_edge); + distance_from_edge += 1; + } + + let remaining_diagonals = max_chunks_deviance - distance_from_edge; + let even_length_diagonals = remaining_diagonals / 2; + let odd_length_diagonals = even_length_diagonals + remaining_diagonals % 2; + + let even_length_diagonal_chunks = even_length_diagonals * (even_length_diagonals + 1); + let odd_length_diagonal_chunks = odd_length_diagonals.pow(2); + + let odd_diagonal_has_even_steps_left = (steps - steps_to_quadrant_alignment) % 2 == 0; + total_walkable += if odd_diagonal_has_even_steps_left { + odd_length_diagonal_chunks * quadrant.max.even_steps_max + + even_length_diagonal_chunks * quadrant.max.odd_steps_max + } else { + even_length_diagonal_chunks * quadrant.max.even_steps_max + + odd_length_diagonal_chunks * quadrant.max.odd_steps_max + }; + } + + for cardinal in [ + EntryPoint::new((0, center_y), &self), + EntryPoint::new((center_x, 0), &self), + EntryPoint::new((size_x - 1, center_y), &self), + EntryPoint::new((center_x, size_y - 1), &self), + ] { + let steps_to_cardinal_alignment = center_y + 1; + + let mut distance_from_edge = 0; + while max_chunks_deviance > distance_from_edge { + let steps_from_alignment_to_target_chunk = + (max_chunks_deviance - distance_from_edge - 1) * size_y; + let steps_in_chunk = + steps - steps_to_cardinal_alignment - steps_from_alignment_to_target_chunk; + if steps_in_chunk >= cardinal.max.min_steps { + break; + } + + let walkable_per_chunk = + self.count_closed_walls_walkable_after_steps(cardinal.entry, steps_in_chunk); + total_walkable += walkable_per_chunk; + distance_from_edge += 1; + } + + let remaining_chunks = max_chunks_deviance - distance_from_edge; + let even_index_chunks = remaining_chunks / 2; + let odd_index_chunks = even_index_chunks + remaining_chunks % 2; + + let odd_chunk_has_even_steps_left = (steps - steps_to_cardinal_alignment) % 2 == 0; + total_walkable += if odd_chunk_has_even_steps_left { + odd_index_chunks * cardinal.max.even_steps_max + + even_index_chunks * cardinal.max.odd_steps_max + } else { + even_index_chunks * cardinal.max.even_steps_max + + odd_index_chunks * cardinal.max.odd_steps_max + }; + } + + for center in [EntryPoint::new((center_x, center_y), &self)] { + total_walkable += if steps >= center.max.min_steps { + if steps % 2 == 0 { + center.max.even_steps_max + } else { + center.max.odd_steps_max + } + } else { + self.count_closed_walls_walkable_after_steps(center.entry, steps) + }; + } + + total_walkable + } + + fn size(&self) -> (usize, usize) { + (self.rocks[0].len(), self.rocks.len()) + } + + fn center(&self) -> (usize, usize) { + let (size_x, size_y) = self.size(); + (size_x / 2, size_y / 2) + } +} + +impl WalledGardenState { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(WalledGardenState::Empty, char('.')), + value(WalledGardenState::Walkable, char('S')), + value(WalledGardenState::Rock, char('#')), + ))(input) + } +} + +impl EntryPoint { + fn new(entry: (usize, usize), garden: &WalledGarden) -> EntryPoint { + EntryPoint { + max: garden.closed_walls_find_max_walkable(entry), + entry, + } + } +} + +#[derive(Debug, Clone)] +struct OpenGarden { + rockmap_size: (isize, isize), + rocks: BTreeSet<(isize, isize)>, + walkable: BTreeSet<(isize, isize)>, +} + +impl OpenGarden { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, many1(WalledGardenState::parser)), + |walled_garden_map| OpenGarden { + rockmap_size: ( + walled_garden_map.len() as isize, + walled_garden_map[0].len() as isize, + ), + rocks: walled_garden_map + .iter() + .enumerate() + .flat_map(|(y, row)| { + row.iter().enumerate().filter_map(move |(x, s)| { + (*s == WalledGardenState::Rock).then(|| (y as isize, x as isize)) + }) + }) + .collect(), + walkable: walled_garden_map + .iter() + .enumerate() + .flat_map(|(y, row)| { + row.iter().enumerate().filter_map(move |(x, s)| { + (*s == WalledGardenState::Walkable).then(|| (y as isize, x as isize)) + }) + }) + .collect(), + }, + )(input) + } + + fn count_open_walls_walkable_after_steps(&self, steps: usize) -> usize { + let mut garden = self.clone(); + for _ in 0..steps { + garden.next_mut(); + } + garden.count_walkable() + } + + fn next_mut(&mut self) { + let walkable = mem::take(&mut self.walkable); + self.walkable = walkable + .iter() + .flat_map(|(y, x)| [(y - 1, *x), (y + 1, *x), (*y, x - 1), (*y, x + 1)]) + .filter(|(y, x)| !self.is_rock(*y, *x)) + .collect(); + } + + fn is_rock(&self, y: isize, x: isize) -> bool { + let y = y.rem_euclid(self.rockmap_size.0); + let x = x.rem_euclid(self.rockmap_size.1); + self.rocks.contains(&(y, x)) + } + + fn count_walkable(&self) -> usize { + self.walkable.len() + } +} + +#[test] +fn open_matches_optimized_for_small_steps() { + let input = fs::read_to_string("inputs/day_21.txt").unwrap(); + let walled_garden = WalledGarden::parser(&input).unwrap().1; + let open_garden = OpenGarden::parser(&input).unwrap().1; + + let steps = 132; + assert_eq!( + walled_garden.count_open_walls_walkable_after_steps(steps), + open_garden.count_open_walls_walkable_after_steps(steps) + ); +} + +#[test] +fn open_matches_optimized_for_medium_steps() { + let input = fs::read_to_string("inputs/day_21.txt").unwrap(); + let walled_garden = WalledGarden::parser(&input).unwrap().1; + let open_garden = OpenGarden::parser(&input).unwrap().1; + + let steps = 65 + 132; + assert_eq!( + walled_garden.count_open_walls_walkable_after_steps(steps), + open_garden.count_open_walls_walkable_after_steps(steps) + ); +} + +#[test] +fn open_matches_optimized_for_bigger_steps() { + let input = fs::read_to_string("inputs/day_21.txt").unwrap(); + let walled_garden = WalledGarden::parser(&input).unwrap().1; + let open_garden = OpenGarden::parser(&input).unwrap().1; + + let steps = 270; + assert_eq!( + walled_garden.count_open_walls_walkable_after_steps(steps), + open_garden.count_open_walls_walkable_after_steps(steps) + ); +} diff --git a/2023/src/bin/day_22.rs b/2023/src/bin/day_22.rs new file mode 100644 index 0000000..750f975 --- /dev/null +++ b/2023/src/bin/day_22.rs @@ -0,0 +1,161 @@ +use nalgebra::Point3; +use nom::{ + bytes::complete::tag, + character::complete::{line_ending, u32}, + combinator::map, + multi::separated_list1, + sequence::{separated_pair, tuple}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_22.txt")?; + let pile = BrickPile::parser(&input).unwrap().1; + let settled_pile = pile.settle(); + let brickfall_sum = settled_pile.brickfall_sum(); + dbg!(&brickfall_sum.count_disintegratable_blocks()); + dbg!(&brickfall_sum.sum_brickfalls()); + + Ok(()) +} + +#[derive(Debug)] +struct BrickPile(Vec<Brick>); + +#[derive(Debug)] +struct SettledBrickPile { + bricks: Vec<Brick>, + settled_count: usize, +} + +#[derive(Debug, Clone)] +struct Brick { + bottom: Point3<u32>, // the lowest z will always be here. The top might still have the same z. + top: Point3<u32>, +} + +#[derive(Debug)] +struct BrickfallSum(Vec<usize>); + +impl BrickPile { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Brick::parser), BrickPile)(input) + } + + fn settle(&self) -> SettledBrickPile { + let mut settled_bricks = self.0.clone(); + let mut has_fallen = vec![false; settled_bricks.len()]; + + let mut all_settled = false; + + while !all_settled { + all_settled = true; + for self_i in 0..settled_bricks.len() { + let this_brick_is_resting_on_something = settled_bricks[self_i] + .is_resting_on_ground() + || (0..settled_bricks.len()).any(|other_i| { + self_i != other_i + && settled_bricks[self_i].is_resting_on_other(&settled_bricks[other_i]) + }); + + if !this_brick_is_resting_on_something { + settled_bricks[self_i].fall_one(); + has_fallen[self_i] = true; + all_settled = false; + } + } + } + + SettledBrickPile { + bricks: settled_bricks, + settled_count: has_fallen.iter().filter(|f| **f).count(), + } + } +} + +impl Brick { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_pair(point_parser, tag("~"), point_parser), + |(a, b)| { + if a.z < b.z { + Brick { bottom: a, top: b } + } else { + Brick { top: a, bottom: b } + } + }, + )(input) + } + + fn min_x(&self) -> u32 { + self.bottom.x.min(self.top.x) + } + + fn max_x(&self) -> u32 { + self.bottom.x.max(self.top.x) + } + + fn min_y(&self) -> u32 { + self.bottom.y.min(self.top.y) + } + + fn max_y(&self) -> u32 { + self.bottom.y.max(self.top.y) + } + + fn is_resting_on_ground(&self) -> bool { + self.bottom.z == 1 + } + + fn is_resting_on_other(&self, other: &Self) -> bool { + self.bottom.z == other.top.z + 1 + && self.min_x() <= other.max_x() + && other.min_x() <= self.max_x() + && self.min_y() <= other.max_y() + && other.min_y() <= self.max_y() + } + + fn fall_one(&mut self) { + self.bottom.z -= 1; + self.top.z -= 1; + } +} + +fn point_parser(input: &str) -> IResult<&str, Point3<u32>> { + map( + tuple((u32, tag(","), u32, tag(","), u32)), + |(x, _, y, _, z)| Point3::new(x, y, z), + )(input) +} + +impl SettledBrickPile { + fn brickfall_sum(&self) -> BrickfallSum { + BrickfallSum( + (0..self.bricks.len()) + .map(|self_i| { + self.count_bricks_that_would_fall_if_this_one_is_disintegrated(self_i) + }) + .collect(), + ) + } + + fn count_bricks_that_would_fall_if_this_one_is_disintegrated(&self, i: usize) -> usize { + let mut unsettled_bricks = self.bricks.clone(); + unsettled_bricks.remove(i); + let unsettled_bricks = BrickPile(unsettled_bricks); + + let resettled = unsettled_bricks.settle(); + resettled.settled_count + } +} + +impl BrickfallSum { + fn count_disintegratable_blocks(&self) -> usize { + self.0.iter().filter(|fallen| **fallen == 0).count() + } + + fn sum_brickfalls(&self) -> usize { + self.0.iter().sum() + } +} diff --git a/2023/src/bin/day_23.rs b/2023/src/bin/day_23.rs new file mode 100644 index 0000000..40d0b70 --- /dev/null +++ b/2023/src/bin/day_23.rs @@ -0,0 +1,218 @@ +use nalgebra::Point2; +use nom::{ + branch::alt, + character::complete::{char, line_ending}, + combinator::{map, value}, + multi::{many1, separated_list1}, + IResult, +}; +use std::{ + collections::{HashMap, HashSet}, + fs, +}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_23.txt")?; + let forest_map = ForestMap::parser(&input).unwrap().1; + let slippery_forked_forest_map = forest_map.build_forked_map(true); + let dry_forked_forest_map = forest_map.build_forked_map(false); + + dbg!(&slippery_forked_forest_map.longest_end_path_length()); + dbg!(&dry_forked_forest_map.longest_end_path_length()); + + Ok(()) +} + +#[derive(Debug)] +struct ForestMap(Vec<Vec<ForestTile>>); + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum ForestTile { + Wall, + Open, + SlopeUp, + SlopeDown, + SlopeLeft, + SlopeRight, +} + +#[derive(Debug, Clone)] +struct DecisionNode { + explored: HashSet<Point2<usize>>, + current: Point2<usize>, +} + +#[derive(Debug)] +struct ForkedForestMap { + start: Point2<usize>, + end: Point2<usize>, + connections: HashMap<Point2<usize>, Vec<ForkConnection>>, +} + +#[derive(Debug)] +struct ForkConnection { + to: Point2<usize>, + distance: usize, +} + +#[derive(Debug, Clone)] +struct ForkedDecisionNode { + explored_forks: HashSet<Point2<usize>>, + current: Point2<usize>, + current_len: usize, +} + +impl ForestMap { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, many1(ForestTile::parser)), + ForestMap, + )(input) + } + + fn adjacent( + &self, + p: &Point2<usize>, + not_these: &HashSet<Point2<usize>>, + slippery: bool, + ) -> Vec<Point2<usize>> { + let mut adjacent = Vec::with_capacity(4); + let tile = self.at(p); + + if p.x > 0 && (!slippery || matches!(tile, ForestTile::Open | ForestTile::SlopeLeft)) { + adjacent.push(Point2::new(p.x - 1, p.y)); + } + if p.y > 0 && (!slippery || matches!(tile, ForestTile::Open | ForestTile::SlopeUp)) { + adjacent.push(Point2::new(p.x, p.y - 1)); + } + if p.x < self.0[p.y].len() - 1 + && (!slippery || matches!(tile, ForestTile::Open | ForestTile::SlopeRight)) + { + adjacent.push(Point2::new(p.x + 1, p.y)); + } + if p.y < self.0.len() - 1 + && (!slippery || matches!(tile, ForestTile::Open | ForestTile::SlopeDown)) + { + adjacent.push(Point2::new(p.x, p.y + 1)); + } + + adjacent.retain(|adj_p| self.at(adj_p) != ForestTile::Wall && !not_these.contains(adj_p)); + adjacent + } + + fn at(&self, p: &Point2<usize>) -> ForestTile { + self.0[p.y][p.x] + } + + fn build_forked_map(&self, slippery: bool) -> ForkedForestMap { + let start = Point2::new(1, 0); + let end = Point2::new(self.0[0].len() - 2, self.0.len() - 1); + let mut forks = Vec::new(); + forks.push(start); + forks.push(end); + + for y in 1..self.0.len() - 1 { + for x in 1..self.0[y].len() - 1 { + let p = Point2::new(x, y); + if self.at(&p) != ForestTile::Wall { + let adjacent_count = self.adjacent(&p, &HashSet::new(), false).len(); + if adjacent_count > 2 { + forks.push(p); + } + } + } + } + + let mut connections = HashMap::new(); + + for start_point in &forks { + let mut active_nodes = vec![DecisionNode { + explored: HashSet::new(), + current: start_point.clone(), + }]; + active_nodes[0].explored.insert(start_point.clone()); + + let mut fork_connections = Vec::new(); + + while let Some(node) = active_nodes.pop() { + for adjacent in self.adjacent(&node.current, &node.explored, slippery) { + let mut new_node = node.clone(); + new_node.explored.insert(adjacent); + new_node.current = adjacent; + + if forks.contains(&new_node.current) { + fork_connections.push(ForkConnection { + to: new_node.current, + distance: new_node.path_length(), + }); + } else { + active_nodes.push(new_node); + } + } + } + + connections.insert(start_point.clone(), fork_connections); + } + + ForkedForestMap { + start, + end, + connections, + } + } +} + +impl ForestTile { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(ForestTile::Wall, char('#')), + value(ForestTile::Open, char('.')), + value(ForestTile::SlopeUp, char('^')), + value(ForestTile::SlopeDown, char('v')), + value(ForestTile::SlopeLeft, char('<')), + value(ForestTile::SlopeRight, char('>')), + ))(input) + } +} + +impl DecisionNode { + fn path_length(&self) -> usize { + self.explored.len() - 1 + } +} + +impl ForkedForestMap { + fn longest_end_path_length(&self) -> usize { + let mut active_nodes = vec![ForkedDecisionNode { + explored_forks: HashSet::new(), + current: self.start, + current_len: 0, + }]; + active_nodes[0].explored_forks.insert(self.start); + let mut longest_end_path_length: Option<usize> = None; + + while let Some(node) = active_nodes.pop() { + for adjacent in self.connections.get(&node.current).unwrap() { + if !node.explored_forks.contains(&adjacent.to) { + let mut new_node = node.clone(); + new_node.explored_forks.insert(adjacent.to); + new_node.current = adjacent.to; + new_node.current_len += adjacent.distance; + + if new_node.current == self.end { + longest_end_path_length = + if let Some(current_longest) = longest_end_path_length { + Some(current_longest.max(new_node.current_len)) + } else { + Some(new_node.current_len) + }; + } else { + active_nodes.push(new_node); + } + } + } + } + + longest_end_path_length.unwrap() + } +} diff --git a/2023/src/bin/day_24.rs b/2023/src/bin/day_24.rs new file mode 100644 index 0000000..1f22169 --- /dev/null +++ b/2023/src/bin/day_24.rs @@ -0,0 +1,242 @@ +use nalgebra::{Matrix2, Matrix6, Point3, RowVector6, Vector2, Vector3, Vector6}; +use nom::{ + bytes::complete::tag, + character::complete::{i64, line_ending}, + combinator::map, + multi::separated_list1, + sequence::{separated_pair, tuple}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_24.txt")?; + let parsed = Hailstones::parser(&input).unwrap().1; + dbg!(&parsed.count_intersections_2d(200000000000000., 400000000000000.)); + + let magic_rock = parsed.find_magic_throwing_rock(); + dbg!(&magic_rock); + dbg!( + magic_rock.position.x as i64 + magic_rock.position.y as i64 + magic_rock.position.z as i64 + ); + + Ok(()) +} + +#[derive(Debug)] +struct Hailstones(Vec<Hailstone>); + +#[derive(Debug)] +struct Hailstone { + position: Point3<f64>, + velocity: Vector3<f64>, +} + +impl Hailstones { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(line_ending, Hailstone::parser), Hailstones)(input) + } + + fn count_intersections_2d(&self, min: f64, max: f64) -> usize { + self.0 + .iter() + .enumerate() + .map(|(i, hailstone)| { + self.0 + .iter() + .skip(i + 1) + .filter(|other_hailstone| hailstone.intersects_2d(other_hailstone, min, max)) + .count() + }) + .sum() + } + + fn find_magic_throwing_rock(&self) -> Hailstone { + (0..self.0.len()) + .flat_map(move |h1| { + (h1 + 1..self.0.len()).flat_map(move |h2| { + (h2 + 1..self.0.len()) + .flat_map(move |h3| (h3 + 1..self.0.len()).map(move |h4| [h1, h2, h3, h4])) + }) + }) + .take(1000000) + .map(|hailstones| { + let rock = self.find_magic_throwing_rock_for_hailstones(hailstones); + ( + // the solution I'm after uses integers. This tries to find the minimum error. + rock.position.x.abs().fract() + + rock.position.y.abs().fract() + + rock.position.z.abs().fract() + + rock.velocity.x.abs().fract() + + rock.velocity.y.abs().fract() + + rock.velocity.z.abs().fract() + + self + .0 + .iter() + .map(|h| rock.collition_time(&h).fract()) + .sum::<f64>(), + rock, + ) + }) + .min_by(|(error_a, _), (error_b, _)| error_a.total_cmp(error_b)) + .unwrap() + .1 + } + + fn find_magic_throwing_rock_for_hailstones(&self, hailstones: [usize; 4]) -> Hailstone { + // unknowns are (x, y, z, dx, dy, dz) + let h1 = &self.0[hailstones[0]]; + let h2 = &self.0[hailstones[1]]; + let h3 = &self.0[hailstones[2]]; + let h4 = &self.0[hailstones[3]]; + + let coefficients: Matrix6<f64> = Matrix6::from_rows(&[ + RowVector6::new( + h2.velocity.y - h1.velocity.y, + h1.velocity.x - h2.velocity.x, + 0., + h1.position.y - h2.position.y, + h2.position.x - h1.position.x, + 0., + ), + RowVector6::new( + h2.velocity.z - h1.velocity.z, + 0., + h1.velocity.x - h2.velocity.x, + h1.position.z - h2.position.z, + 0., + h2.position.x - h1.position.x, + ), + RowVector6::new( + 0., + h2.velocity.z - h1.velocity.z, + h1.velocity.y - h2.velocity.y, + 0., + h1.position.z - h2.position.z, + h2.position.y - h1.position.y, + ), + RowVector6::new( + h4.velocity.y - h3.velocity.y, + h3.velocity.x - h4.velocity.x, + 0., + h3.position.y - h4.position.y, + h4.position.x - h3.position.x, + 0., + ), + RowVector6::new( + h4.velocity.z - h3.velocity.z, + 0., + h3.velocity.x - h4.velocity.x, + h3.position.z - h4.position.z, + 0., + h4.position.x - h3.position.x, + ), + RowVector6::new( + 0., + h4.velocity.z - h3.velocity.z, + h3.velocity.y - h4.velocity.y, + 0., + h3.position.z - h4.position.z, + h4.position.y - h3.position.y, + ), + ]); + let constants: Vector6<f64> = Vector6::new( + h1.position.y * h1.velocity.x + - h1.position.x * h1.velocity.y + - h2.position.y * h2.velocity.x + + h2.position.x * h2.velocity.y, + h1.position.z * h1.velocity.x + - h1.position.x * h1.velocity.z + - h2.position.z * h2.velocity.x + + h2.position.x * h2.velocity.z, + h1.position.z * h1.velocity.y + - h1.position.y * h1.velocity.z + - h2.position.z * h2.velocity.y + + h2.position.y * h2.velocity.z, + h3.position.y * h3.velocity.x + - h3.position.x * h3.velocity.y + - h4.position.y * h4.velocity.x + + h4.position.x * h4.velocity.y, + h3.position.z * h3.velocity.x + - h3.position.x * h3.velocity.z + - h4.position.z * h4.velocity.x + + h4.position.x * h4.velocity.z, + h3.position.z * h3.velocity.y + - h3.position.y * h3.velocity.z + - h4.position.z * h4.velocity.y + + h4.position.y * h4.velocity.z, + ); + + if let Some(coefficients_inverse) = coefficients.try_inverse() { + let unknowns = coefficients_inverse * constants; + + Hailstone { + position: Point3::new(unknowns[0], unknowns[1], unknowns[2]), + velocity: Vector3::new(unknowns[3], unknowns[4], unknowns[5]), + } + } else { + panic!("No solution found, matrix didn't invert") + } + } +} + +impl Hailstone { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_pair( + map( + tuple((i64, tag(", "), i64, tag(", "), i64)), + |(x, _, y, _, z)| Point3::new(x as f64, y as f64, z as f64), + ), + tag(" @ "), + map( + tuple((i64, tag(", "), i64, tag(", "), i64)), + |(x, _, y, _, z)| Vector3::new(x as f64, y as f64, z as f64), + ), + ), + |(initial_position, velocity)| Hailstone { + position: initial_position, + velocity, + }, + )(input) + } + + fn intersects_2d(&self, other: &Hailstone, min: f64, max: f64) -> bool { + let variables = Matrix2::new( + self.velocity.x, + -other.velocity.x, + self.velocity.y, + -other.velocity.y, + ); + let constants = Vector2::new( + other.position.x - self.position.x, + other.position.y - self.position.y, + ); + + if let Some(variables_inverse) = variables.try_inverse() { + let intersection = variables_inverse * constants; + let self_t = intersection.x; + let other_t = intersection.y; + + let intersection = self.position.xy() + self.velocity.xy() * self_t; + self_t >= 0. + && other_t >= 0. + && intersection.x >= min + && intersection.x <= max + && intersection.y >= min + && intersection.y <= max + } else { + false + } + } + + /// This is only intended for hail that definitely collides! + fn collition_time(&self, other: &Hailstone) -> f64 { + let tx = (self.position.x - other.position.x) / (other.velocity.x - self.velocity.x); + let ty = (self.position.y - other.position.y) / (other.velocity.y - self.velocity.y); + let tz = (self.position.z - other.position.z) / (other.velocity.z - self.velocity.z); + let t = tx.max(ty).max(tz); // sometimes one of these is zero! + assert!(t > 0.); + t + } +} diff --git a/2023/src/bin/day_25.rs b/2023/src/bin/day_25.rs new file mode 100644 index 0000000..7bd3751 --- /dev/null +++ b/2023/src/bin/day_25.rs @@ -0,0 +1,154 @@ +use nom::{ + bytes::complete::tag, + character::complete::{alpha1, line_ending, space1}, + combinator::map, + multi::separated_list1, + sequence::separated_pair, + IResult, +}; +use std::{collections::BTreeMap, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_25.txt")?; + let parsed = Circuit::parser(&input).unwrap().1; + let three_cut_partition_sizes = parsed.find_non_zero_three_cut_partition_sizes(); + dbg!(&three_cut_partition_sizes); + dbg!(three_cut_partition_sizes.0 * three_cut_partition_sizes.1); + + Ok(()) +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +struct VertexId(usize); + +#[derive(Debug)] +struct Circuit { + wires: Vec<Vec<VertexId>>, +} + +#[derive(Debug, Clone, Eq)] +struct Edge { + a: VertexId, + b: VertexId, +} + +impl PartialEq for Edge { + fn eq(&self, other: &Self) -> bool { + (self.a == other.a && self.b == other.b) || (self.a == other.b && self.b == other.a) + } +} + +impl Circuit { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1( + line_ending, + separated_pair( + map(alpha1, |s: &str| s.to_owned()), + tag(": "), + separated_list1(space1, map(alpha1, |s: &str| s.to_owned())), + ), + ), + |vertices| { + let mut vertex_id_mapping = BTreeMap::new(); + let mut wires = Vec::new(); + + for (from, tos) in vertices { + let from_id = vertex_id_mapping + .entry(from) + .or_insert_with(|| { + let new_id = VertexId(wires.len()); + wires.push(Vec::new()); + new_id + }) + .clone(); + for to in tos { + let to_id = vertex_id_mapping + .entry(to) + .or_insert_with(|| { + let new_id = VertexId(wires.len()); + wires.push(Vec::new()); + new_id + }) + .clone(); + wires[from_id.0].push(to_id); + wires[to_id.0].push(from_id); + } + } + Circuit { wires } + }, + )(input) + } + + fn find_non_zero_three_cut_partition_sizes(&self) -> (usize, usize) { + let cut1s = self.edges_to_traverse_everything([]); + for (cut1i, cut1) in cut1s.iter().enumerate() { + let cut2s = self.edges_to_traverse_everything([cut1.clone()]); + for (cut2i, cut2) in cut2s.iter().enumerate() { + if cut1s[0..cut1i].contains(&cut2) { + continue; + } + for cut3 in self.edges_to_traverse_everything([cut1.clone(), cut2.clone()]) { + if cut1s[0..cut1i].contains(&cut3) || cut2s[0..cut2i].contains(&cut3) { + // if (cut2, *) didn't work, then (*, cut2) also wouldn't work. + continue; + } + let (size1, size2) = self.partition_sizes([cut1.clone(), cut2.clone(), cut3]); + if size2 > 0 { + return (size1, size2); + } + } + } + } + panic!("No partitions with three cuts"); + } + + fn partition_sizes(&self, cuts: [Edge; 3]) -> (usize, usize) { + let mut visited = vec![false; self.wires.len()]; + let mut frontier = Vec::new(); + + visited[0] = true; + frontier.push(VertexId(0)); + let mut visited_count = 1; + + while let Some(from) = frontier.pop() { + for to in &self.wires[from.0] { + let edge = Edge::new(from, *to); + if !cuts.contains(&edge) && !visited[to.0] { + visited[to.0] = true; + visited_count += 1; + frontier.push(*to); + } + } + } + + (visited_count, self.wires.len() - visited_count) + } + + fn edges_to_traverse_everything<const N: usize>(&self, cuts: [Edge; N]) -> Vec<Edge> { + let mut visited = vec![false; self.wires.len()]; + let mut frontier = Vec::new(); + + visited[0] = true; + frontier.push(VertexId(0)); + let mut used_edges = Vec::new(); + + while let Some(from) = frontier.pop() { + for to in &self.wires[from.0] { + let edge = Edge::new(from, *to); + if !cuts.contains(&edge) && !visited[to.0] { + visited[to.0] = true; + used_edges.push(edge); + frontier.push(*to); + } + } + } + used_edges + } +} + +impl Edge { + fn new(a: VertexId, b: VertexId) -> Edge { + Edge { a, b } + } +} diff --git a/2023/src/bin/day_3.rs b/2023/src/bin/day_3.rs new file mode 100644 index 0000000..06e1300 --- /dev/null +++ b/2023/src/bin/day_3.rs @@ -0,0 +1,149 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{digit1, line_ending, none_of}, + combinator::{map, map_res}, + multi::{many1, separated_list1}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_3.txt")?; + let parsed = PartInventory::parser(&input).unwrap().1; + dbg!(&parsed.part_number_sum()); + dbg!(&parsed.gear_ratio_sum()); + + Ok(()) +} + +#[derive(Debug)] +struct PartInventory { + parts: Vec<Part>, + symbols: Vec<Symbol>, +} + +#[derive(Debug)] +struct Part { + number: u32, + symbols: Vec<char>, + y: usize, + min_x: usize, + max_x: usize, +} + +#[derive(Debug, Clone)] +struct Symbol { + symbol: char, + parts: Vec<u32>, + x: usize, + y: usize, +} + +#[derive(Debug)] +enum LexToken { + Space(usize), + Part(usize, u32), + Symbol(char), +} + +impl PartInventory { + fn parser(input: &str) -> IResult<&str, Self> { + map(LexToken::parser, |tokens| { + let mut parts = Vec::new(); + let mut symbols = Vec::new(); + + for (y, row) in tokens.iter().enumerate() { + let mut x = 0; + for token in row { + match token { + LexToken::Space(_) => {} + LexToken::Part(len, number) => parts.push(Part { + number: *number, + symbols: Vec::new(), + y, + min_x: x, + max_x: x + len - 1, + }), + LexToken::Symbol(symbol) => symbols.push(Symbol { + symbol: *symbol, + parts: Vec::new(), + y, + x, + }), + } + x += token.len(); + } + } + + for part in &mut parts { + part.symbols = symbols + .iter() + .filter(|symbol| part.touches(symbol)) + .map(|symbol| symbol.symbol) + .collect(); + } + + for symbol in &mut symbols { + symbol.parts = parts + .iter() + .filter(|part| part.touches(symbol)) + .map(|part| part.number) + .collect(); + } + + PartInventory { parts, symbols } + })(input) + } + + fn part_number_sum(&self) -> u32 { + self.parts + .iter() + .filter(|part| part.symbols.len() > 0) + .map(|part| part.number) + .sum() + } + + fn gear_ratio_sum(&self) -> u32 { + self.symbols + .iter() + .filter(|symbol| symbol.symbol == '*' && symbol.parts.len() == 2) + .map(|symbol| symbol.parts[0] * symbol.parts[1]) + .sum() + } +} + +impl LexToken { + fn parser(input: &str) -> IResult<&str, Vec<Vec<Self>>> { + separated_list1( + line_ending, + many1(alt(( + map(many1(tag(".")), |dots| LexToken::Space(dots.len())), + map_res(digit1, |num_s: &str| { + num_s + .parse() + .map(|num_i| LexToken::Part(num_s.len(), num_i)) + }), + map(none_of("\n"), |s| LexToken::Symbol(s)), + ))), + )(input) + } + + fn len(&self) -> usize { + match self { + Self::Space(len) => *len, + Self::Part(len, _) => *len, + Self::Symbol(_) => 1, + } + } +} + +impl Part { + fn touches(&self, symbol: &Symbol) -> bool { + let part = self; + symbol.x >= part.min_x.saturating_sub(1) + && symbol.x <= part.max_x.saturating_add(1) + && symbol.y >= part.y.saturating_sub(1) + && symbol.y <= part.y.saturating_add(1) + } +} diff --git a/2023/src/bin/day_4.rs b/2023/src/bin/day_4.rs new file mode 100644 index 0000000..7f5af6b --- /dev/null +++ b/2023/src/bin/day_4.rs @@ -0,0 +1,92 @@ +use nom::{ + bytes::complete::tag, + character::complete::{line_ending, space1, u32 as nom_u32}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{collections::BTreeSet, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_4.txt")?; + let parsed = Scratchcards::parser(&input).unwrap().1; + dbg!(&parsed.points()); + dbg!(&parsed.scratchcard_explosion_sum()); + + Ok(()) +} + +#[derive(Debug)] +struct Scratchcards(Vec<Scratchcard>); + +#[derive(Debug)] +struct Scratchcard { + winning: BTreeSet<u32>, + owned: BTreeSet<u32>, +} + +impl Scratchcards { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, Scratchcard::parser), + Scratchcards, + )(input) + } + + fn points(&self) -> usize { + self.0.iter().map(|card| card.points()).sum() + } + + fn scratchcard_explosion_sum(&self) -> u64 { + let mut scratchcard_pile = vec![1_u64.into(); self.0.len()]; + + for i in 0..scratchcard_pile.len() { + let points = self.0[i].winning_numbers(); + let new_scratchcards: u64 = scratchcard_pile[i]; + for offset in 0..points { + if let Some(pile) = scratchcard_pile.get_mut(i + 1 + offset) { + *pile += new_scratchcards; + } + } + } + + scratchcard_pile.into_iter().sum() + } +} + +impl Scratchcard { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("Card"), + space1, + nom_u32, + tag(":"), + space1, + separated_list1(space1, nom_u32), + space1, + tag("|"), + space1, + separated_list1(space1, nom_u32), + )), + |(_, _, _, _, _, winning, _, _, _, owned)| Scratchcard { + winning: winning.into_iter().collect(), + owned: owned.into_iter().collect(), + }, + )(input) + } + + fn winning_numbers(&self) -> usize { + self.winning.intersection(&self.owned).count() + } + + fn points(&self) -> usize { + let winning_numbers = self.winning_numbers(); + if winning_numbers > 0 { + 2_usize.pow(winning_numbers as u32 - 1) + } else { + 0 + } + } +} diff --git a/2023/src/bin/day_5.rs b/2023/src/bin/day_5.rs new file mode 100644 index 0000000..2243bf8 --- /dev/null +++ b/2023/src/bin/day_5.rs @@ -0,0 +1,257 @@ +use nom::{ + bytes::complete::tag, + character::complete::{line_ending, not_line_ending, space1, u64 as nom_u64}, + combinator::map, + multi::separated_list1, + sequence::{pair, tuple}, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_5.txt")?; + let parsed = Almanac::parser(&input).unwrap().1; + dbg!(&parsed.min_location()); + dbg!(&parsed.range_min_location()); + Ok(()) +} + +#[derive(Debug)] +struct Almanac { + seeds: Vec<u64>, + seed_ranges: Vec<Range>, + mappings: Vec<AlmanacMapping>, +} + +#[derive(Debug)] +struct AlmanacMapping { + _heading: String, + maps: Vec<Mapping>, +} + +#[derive(Debug)] +struct Mapping { + source_start: u64, + dest_start: u64, + len: u64, +} + +#[derive(Debug, Clone, Copy)] +struct Range { + start: u64, + len: u64, +} + +impl Almanac { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("seeds: "), + separated_list1(space1, nom_u64), + pair(line_ending, line_ending), + separated_list1(pair(line_ending, line_ending), AlmanacMapping::parser), + )), + |(_, seeds, _, mappings)| { + let seed_ranges = seeds + .chunks(2) + .map(|chunk| Range { + start: chunk[0], + len: chunk[1], + }) + .collect(); + Almanac { + seeds, + seed_ranges, + mappings, + } + }, + )(input) + } + + fn locations(&self) -> Vec<u64> { + self.mappings + .iter() + .fold(self.seeds.clone(), |acc, mapping| { + acc.into_iter().map(|seed| mapping.convert(seed)).collect() + }) + } + + fn min_location(&self) -> u64 { + self.locations().into_iter().min().unwrap() + } + + fn range_locations(&self) -> Vec<Range> { + self.mappings + .iter() + .fold(self.seed_ranges.clone(), |acc, mapping| { + dbg!(&acc); + acc.into_iter() + .flat_map(|seed_range| mapping.convert_range(seed_range)) + .collect() + }) + } + + fn range_min_location(&self) -> u64 { + self.range_locations() + .into_iter() + .map(|r| r.start) + .min() + .unwrap() + } +} + +impl AlmanacMapping { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + not_line_ending, + line_ending, + separated_list1(line_ending, Mapping::parser), + )), + |(heading, _, maps)| AlmanacMapping { + _heading: heading.to_owned(), + maps, + }, + )(input) + } + + fn convert(&self, source: u64) -> u64 { + self.maps + .iter() + .filter_map(|mapping| mapping.convert(source)) + .next() + .unwrap_or(source) + } + + fn convert_range(&self, source: Range) -> Vec<Range> { + let converted_ranges: Vec<(Range, Range)> = self + .maps + .iter() + .filter_map(|mapping| mapping.convert_range(source)) + .collect(); + + let mut result = Vec::new(); + let mut uncovered_ranges = vec![source]; + for (covered_source, dest) in converted_ranges { + result.push(dest); + + uncovered_ranges = uncovered_ranges + .into_iter() + .flat_map(|r| r.difference(covered_source)) + .collect(); + } + + result.append(&mut uncovered_ranges); + + result + } +} + +impl Mapping { + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple((nom_u64, space1, nom_u64, space1, nom_u64)), + |(dest_start, _, source_start, _, len)| Mapping { + source_start, + dest_start, + len, + }, + )(input) + } + + fn source_range(&self) -> Range { + Range { + start: self.source_start, + len: self.len, + } + } + + fn convert(&self, source: u64) -> Option<u64> { + if source >= self.source_start && source < self.source_start + self.len { + Some(source - self.source_start + self.dest_start) + } else { + None + } + } + + fn convert_range(&self, source: Range) -> Option<(Range, Range)> { + if let Some(source_intersection) = source.intersection(self.source_range()) { + Some(( + source_intersection, + Range { + start: source_intersection.start - self.source_start + self.dest_start, + len: source_intersection.len, + }, + )) + } else { + None + } + } +} + +impl Range { + fn end(&self) -> u64 { + self.start + self.len + } + + fn intersection(self, other: Range) -> Option<Range> { + if self.start < other.start { + if self.end() <= other.start { + None + } else if self.end() < other.end() { + Some(Range { + start: other.start, + len: self.end() - other.start, + }) + } else { + Some(other) + } + } else if self.start < other.end() { + if self.end() < other.end() { + Some(self) + } else { + Some(Range { + start: self.start, + len: other.end() - self.start, + }) + } + } else { + None + } + } + + fn difference(self, other: Range) -> Vec<Range> { + if self.start < other.start { + if self.end() <= other.start { + vec![self] + } else if self.end() <= other.end() { + vec![Range { + start: self.start, + len: other.start - self.start, + }] + } else { + vec![ + Range { + start: self.start, + len: other.start - self.start, + }, + Range { + start: other.end(), + len: self.end() - other.end(), + }, + ] + } + } else if self.start < other.end() { + if self.end() <= other.end() { + vec![] + } else { + vec![Range { + start: other.end(), + len: self.end() - other.end(), + }] + } + } else { + vec![self] + } + } +} diff --git a/2023/src/bin/day_6.rs b/2023/src/bin/day_6.rs new file mode 100644 index 0000000..138843e --- /dev/null +++ b/2023/src/bin/day_6.rs @@ -0,0 +1,70 @@ +use nom::{ + bytes::complete::tag, + character::complete::{line_ending, space1, u64 as nom_u64}, + combinator::map, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_6.txt")?; + let parsed = RacePlan::multi_parser(&input).unwrap().1; + for plan in parsed { + dbg!(&plan.win_count_product()); + } + + Ok(()) +} + +#[derive(Debug)] +struct RacePlan(Vec<RaceRecord>); + +#[derive(Debug)] +struct RaceRecord { + time: u64, + distance: u64, +} + +impl RacePlan { + fn multi_parser(input: &str) -> IResult<&str, Vec<Self>> { + separated_list1(line_ending, RacePlan::parser)(input) + } + + fn parser(input: &str) -> IResult<&str, Self> { + map( + tuple(( + tag("Time:"), + space1, + separated_list1(space1, nom_u64), + line_ending, + tag("Distance:"), + space1, + separated_list1(space1, nom_u64), + )), + |(_, _, times, _, _, _, distances)| { + RacePlan( + times + .into_iter() + .zip(distances.into_iter()) + .map(|(time, distance)| RaceRecord { time, distance }) + .collect(), + ) + }, + )(input) + } + + fn win_count_product(&self) -> usize { + self.0.iter().map(|r| r.count_wins()).product() + } +} + +impl RaceRecord { + fn count_wins(&self) -> usize { + (1..self.time) + .map(|charge_time| charge_time * (self.time - charge_time)) + .filter(|distance| *distance > self.distance) + .count() + } +} diff --git a/2023/src/bin/day_7.rs b/2023/src/bin/day_7.rs new file mode 100644 index 0000000..3b629bd --- /dev/null +++ b/2023/src/bin/day_7.rs @@ -0,0 +1,169 @@ +use nom::{ + branch::alt, + character::complete::{char as nom_char, line_ending, space1, u32 as nom_u32}, + combinator::{map, value}, + multi::separated_list1, + sequence::tuple, + IResult, +}; +use std::{collections::BTreeMap, fs}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_7.txt")?; + + { + let mut games_without_jokers = CardGame::parser(false)(&input).unwrap().1; + games_without_jokers.sort(); + dbg!(games_without_jokers.calculate_winnings()); + } + + { + let mut games_with_jokers = CardGame::parser(true)(&input).unwrap().1; + games_with_jokers.sort(); + dbg!(games_with_jokers.calculate_winnings()); + } + + Ok(()) +} + +#[derive(Debug)] +struct CardGame(Vec<CardHand>); + +#[derive(Debug, PartialEq, Eq)] +struct CardHand { + cards: [Card; 5], + bid: u32, +} + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone, Copy)] +struct Card(u8); + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord)] +enum CardRank { + HighCard, + OnePair, + TwoPair, + ThreeOfAKind, + FullHouse, + FourOfAKind, + FiveOfAKind, +} + +impl CardGame { + fn parser(with_jokers: bool) -> impl FnMut(&str) -> IResult<&str, Self> { + move |input: &str| { + map( + separated_list1(line_ending, CardHand::parser(with_jokers)), + CardGame, + )(input) + } + } + + fn sort(&mut self) { + self.0.sort() + } + + fn calculate_winnings(&self) -> u32 { + self.0 + .iter() + .enumerate() + .map(|(i, hand)| hand.bid * (i as u32 + 1)) + .sum() + } +} + +impl CardHand { + fn parser(with_jokers: bool) -> impl FnMut(&str) -> IResult<&str, Self> { + move |input: &str| { + map( + tuple(( + Card::parser(with_jokers), + Card::parser(with_jokers), + Card::parser(with_jokers), + Card::parser(with_jokers), + Card::parser(with_jokers), + space1, + nom_u32, + )), + |(c1, c2, c3, c4, c5, _, bid)| CardHand { + cards: [c1, c2, c3, c4, c5], + bid, + }, + )(input) + } + } + + fn card_rank(&self) -> CardRank { + let mut cards_set: BTreeMap<Card, u8> = BTreeMap::new(); + for card in &self.cards { + *cards_set.entry(*card).or_insert(0) += 1; + } + + let jokers = cards_set.get(&Card(1)).cloned().unwrap_or(0); + cards_set.remove(&Card(1)); + + let mut card_counts: Vec<u8> = cards_set.into_values().collect(); + card_counts.sort_by(|a, b| b.cmp(a)); + + if card_counts.len() == 0 { + // all 5 were jokers! + CardRank::FiveOfAKind + } else { + card_counts[0] += jokers; + if card_counts[0] == 5 { + CardRank::FiveOfAKind + } else if card_counts[0] == 4 { + CardRank::FourOfAKind + } else if card_counts[0] == 3 && card_counts[1] == 2 { + CardRank::FullHouse + } else if card_counts[0] == 3 { + CardRank::ThreeOfAKind + } else if card_counts[0] == 2 && card_counts[1] == 2 { + CardRank::TwoPair + } else if card_counts[0] == 2 { + CardRank::OnePair + } else { + CardRank::HighCard + } + } + } +} + +impl Card { + fn parser(with_jokers: bool) -> impl FnMut(&str) -> IResult<&str, Self> { + move |input: &str| { + map( + alt(( + value(2, nom_char('2')), + value(3, nom_char('3')), + value(4, nom_char('4')), + value(5, nom_char('5')), + value(6, nom_char('6')), + value(7, nom_char('7')), + value(8, nom_char('8')), + value(9, nom_char('9')), + value(10, nom_char('T')), + value(if with_jokers { 1 } else { 11 }, nom_char('J')), + value(12, nom_char('Q')), + value(13, nom_char('K')), + value(14, nom_char('A')), + )), + Card, + )(input) + } + } +} + +impl std::cmp::Ord for CardHand { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { + self.card_rank() + .cmp(&other.card_rank()) + .then(self.cards.cmp(&other.cards)) + } +} + +impl std::cmp::PartialOrd for CardHand { + fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> { + Some(self.cmp(other)) + } +} diff --git a/2023/src/bin/day_8.rs b/2023/src/bin/day_8.rs new file mode 100644 index 0000000..2da3cf5 --- /dev/null +++ b/2023/src/bin/day_8.rs @@ -0,0 +1,213 @@ +use nom::{ + branch::alt, + bytes::complete::tag, + character::complete::{alpha1, char as nom_char, line_ending}, + combinator::{map, value}, + multi::{many1, separated_list1}, + sequence::{pair, preceded, separated_pair, terminated}, + IResult, +}; +use std::{collections::BTreeMap, fs, ops::Range}; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_8.txt")?; + let mut directions = Directions::parser(&input).unwrap().1; + dbg!(directions.steps_from_a_to_z()); + dbg!(directions.ghost_steps_from_a_to_z()); + + Ok(()) +} + +#[derive(Debug)] +struct Directions { + turns: Vec<Turn>, + packed_map: Vec<PackedFork>, + packed_ghost_starts: Range<u16>, + packed_ghost_destinations: Range<u16>, + distance_to_ghost_dest_cache: BTreeMap<(u16, usize), (u16, usize)>, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum Turn { + Left, + Right, +} + +#[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Clone)] +struct Location(String); + +#[derive(Debug)] +struct Fork { + left: Location, + right: Location, +} + +#[derive(Debug)] +struct PackedFork { + left: u16, + right: u16, +} + +impl Directions { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_pair( + many1(Turn::parser), + pair(line_ending, line_ending), + separated_list1( + line_ending, + separated_pair(Location::parser, tag(" = "), Fork::parser), + ), + ), + |(turns, map)| { + let map: BTreeMap<Location, Fork> = map.into_iter().collect(); + let mut locations: Vec<Location> = map.keys().cloned().collect(); + locations.sort_by_key(|l| l.0.chars().rev().collect::<String>()); + + Directions { + turns, + packed_map: locations + .iter() + .map(|l| { + let unpacked_fork = map.get(l).unwrap(); + PackedFork { + left: locations + .iter() + .position(|f| *f == unpacked_fork.left) + .unwrap() as u16, + right: locations + .iter() + .position(|f| *f == unpacked_fork.right) + .unwrap() as u16, + } + }) + .collect(), + packed_ghost_starts: 0 + ..locations.iter().position(|l| !l.ghost_start()).unwrap() as u16, + packed_ghost_destinations: locations.iter().position(|l| l.ghost_end()).unwrap() + as u16 + ..locations.len() as u16, + distance_to_ghost_dest_cache: BTreeMap::new(), + } + }, + )(input) + } + + fn steps_from_a_to_z(&self) -> usize { + let mut step_count = 0; + let mut current_location: u16 = 0; + + for dir in self.turns.iter().cycle() { + let current_fork: &PackedFork = &self.packed_map[current_location as usize]; + current_location = match dir { + Turn::Left => current_fork.left, + Turn::Right => current_fork.right, + }; + step_count += 1; + + if current_location == self.packed_map.len() as u16 - 1 { + return step_count; + } + } + unreachable!() + } + + fn ghost_steps_from_a_to_z(&mut self) -> usize { + let mut current_locations: Vec<(u16, usize)> = self + .packed_ghost_starts + .clone() + .map(|start| self.ghost_step_to_next_end(start, 0)) + .collect(); + + let mut any_stepped = true; + while any_stepped { + any_stepped = false; + + let current_max = current_locations + .iter() + .map(|(_, steps)| steps.clone()) + .max() + .unwrap(); + + for current_location in &mut current_locations { + if current_location.1 < current_max { + any_stepped = true; + let (new_location, extra_steps) = + self.ghost_step_to_next_end(current_location.0, current_location.1); + current_location.0 = new_location; + current_location.1 += extra_steps; + } + } + } + + current_locations[0].1 + } + + fn ghost_step_to_next_end(&mut self, start: u16, current_step_count: usize) -> (u16, usize) { + self.distance_to_ghost_dest_cache + .entry((start, current_step_count % self.turns.len())) + .or_insert_with(|| { + let mut step_count = 0; + let mut current_location: u16 = start; + + for dir in self + .turns + .iter() + .skip(current_step_count % self.turns.len()) + .cycle() + { + let current_fork: &PackedFork = &self.packed_map[current_location as usize]; + current_location = match dir { + Turn::Left => current_fork.left, + Turn::Right => current_fork.right, + }; + step_count += 1; + + if self.packed_ghost_destinations.contains(¤t_location) { + break; + } + } + + (current_location, step_count) + }) + .clone() + } +} + +impl Turn { + fn parser(input: &str) -> IResult<&str, Self> { + alt(( + value(Turn::Left, nom_char('L')), + value(Turn::Right, nom_char('R')), + ))(input) + } +} + +impl Location { + fn parser(input: &str) -> IResult<&str, Self> { + map(alpha1, |l: &str| Location(l.to_string()))(input) + } + + fn ghost_start(&self) -> bool { + self.0.ends_with("A") + } + + fn ghost_end(&self) -> bool { + self.0.ends_with("Z") + } +} + +impl Fork { + fn parser(input: &str) -> IResult<&str, Self> { + map( + preceded( + tag("("), + terminated( + separated_pair(Location::parser, tag(", "), Location::parser), + tag(")"), + ), + ), + |(left, right)| Fork { left, right }, + )(input) + } +} diff --git a/2023/src/bin/day_9.rs b/2023/src/bin/day_9.rs new file mode 100644 index 0000000..f0acc5e --- /dev/null +++ b/2023/src/bin/day_9.rs @@ -0,0 +1,81 @@ +use nom::{ + character::complete::{i32 as nom_i32, line_ending, space1}, + combinator::map, + multi::separated_list1, + IResult, +}; +use std::fs; + +fn main() -> Result<(), Box<dyn std::error::Error>> { + let input = fs::read_to_string("inputs/day_9.txt")?; + let parsed = DataSequences::parser(&input).unwrap().1; + dbg!(&parsed.sum_extrapolated_values()); + dbg!(&parsed.sum_extrapolated_front_values()); + + Ok(()) +} + +#[derive(Debug)] +struct DataSequences(Vec<DataSequence>); + +#[derive(Debug)] +struct DataSequence(Vec<i32>); + +impl DataSequences { + fn parser(input: &str) -> IResult<&str, Self> { + map( + separated_list1(line_ending, DataSequence::parser), + DataSequences, + )(input) + } + + fn sum_extrapolated_values(&self) -> i32 { + self.0.iter().map(|d| d.extrapolate()).sum() + } + + fn sum_extrapolated_front_values(&self) -> i32 { + self.0.iter().map(|d| d.extrapolate_front()).sum() + } +} + +impl DataSequence { + fn parser(input: &str) -> IResult<&str, Self> { + map(separated_list1(space1, nom_i32), DataSequence)(input) + } + + fn extrapolate(&self) -> i32 { + let mut differential_tree = vec![self.0.clone()]; + + while !differential_tree + .last() + .map_or(true, |l| l.iter().all(|i| *i == 0)) + { + let last_row = differential_tree.last().unwrap(); + let mut new_row = Vec::with_capacity(last_row.len() - 1); + for i in 0..last_row.len() - 1 { + new_row.push(last_row[i + 1] - last_row[i]); + } + differential_tree.push(new_row); + } + + differential_tree.last_mut().unwrap().push(0); + + while differential_tree.len() > 1 { + let bottom_row = differential_tree.pop().unwrap(); + + let new_last = differential_tree.last_mut().unwrap(); + new_last.push(new_last.last().unwrap() + bottom_row.last().unwrap()); + } + + differential_tree + .last() + .and_then(|l| l.last()) + .copied() + .unwrap() + } + + fn extrapolate_front(&self) -> i32 { + let backwards = DataSequence(self.0.iter().rev().copied().collect()); + backwards.extrapolate() + } +} diff --git a/2023/src/lib.rs b/2023/src/lib.rs new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/2023/src/lib.rs @@ -0,0 +1 @@ + diff --git a/readme.org b/readme.org new file mode 100644 index 0000000..7ebc827 --- /dev/null +++ b/readme.org @@ -0,0 +1,6 @@ +* Advent of Code Solutions + +These are various solutions I've developed to the [[https://adventofcode.com/][Advent of Code]] +puzzles over the years. Each year may have a different style, as I +grow as a programmer, or set myself personal challenges to make the +year more interesting. |