diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..660c702 --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +SESSION="your-advent-of-code-session-cookie-value" diff --git a/.gitignore b/.gitignore index ea8c4bf..0db84f1 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,9 @@ +# temporary files /target + +# secrets +.env + +# don't include inputs +/input +session.txt diff --git a/Cargo.lock b/Cargo.lock index 9165c18..043b8f9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,6 +19,7 @@ dependencies = [ "itertools", "rayon", "regex", + "reqwest", ] [[package]] @@ -27,12 +28,85 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "base64" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f1e31e207a6b8fb791a38ea3105e6cb541f55e4d029902d3039a4ad07cc4105" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bumpalo" +version = "3.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cookie" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb" +dependencies = [ + "percent-encoding", + "time", + "version_check", +] + +[[package]] +name = "cookie_store" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4b6aa369f41f5faa04bb80c9b1f4216ea81646ed6124d76ba5c49a7aafd9cd" +dependencies = [ + "cookie", + "idna 0.2.3", + "log", + "publicsuffix", + "serde", + "serde_json", + "time", + "url", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + [[package]] name = "crossbeam-channel" version = "0.5.8" @@ -82,12 +156,154 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "eyes" version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa9fd2c139189f226e9d2b33373502c76bda6ff73bf141c65d9eac7ac925b985" +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-core", + "futures-io", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "h2" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + [[package]] name = "hermit-abi" version = "0.2.6" @@ -97,6 +313,140 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "hyper" +version = "0.14.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" +dependencies = [ + "hermit-abi 0.3.1", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" + [[package]] name = "itertools" version = "0.10.5" @@ -106,12 +456,54 @@ dependencies = [ "either", ] +[[package]] +name = "itoa" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" + +[[package]] +name = "js-sys" +version = "0.3.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f37a4a5928311ac501dee68b3c7613a1037d0edb30c8e5427bd832d55d1b790" +dependencies = [ + "wasm-bindgen", +] + +[[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.144" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" +[[package]] +name = "linux-raw-sys" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "matches" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" + [[package]] name = "memchr" version = "2.5.0" @@ -127,16 +519,160 @@ dependencies = [ "autocfg", ] +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mio" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.45.0", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "num_cpus" version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ - "hermit-abi", + "hermit-abi 0.2.6", "libc", ] +[[package]] +name = "once_cell" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" + +[[package]] +name = "openssl" +version = "0.10.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" +dependencies = [ + "bitflags", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e17f59264b2809d77ae94f0e1ebabc434773f370d6ca667bd223ea10e06cc7e" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "proc-macro2" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa1fb82fc0c281dd9671101b66b771ebbe1eaf967b96ac8740dcba4b70005ca8" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "psl-types" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33cb294fe86a74cbcf50d4445b37da762029549ebeea341421c7c70370f86cac" + +[[package]] +name = "publicsuffix" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96a8c1bda5ae1af7f99a2962e49df150414a43d62404644d98dd5c3a93d07457" +dependencies = [ + "idna 0.3.0", + "psl-types", +] + +[[package]] +name = "quote" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +dependencies = [ + "proc-macro2", +] + [[package]] name = "rayon" version = "1.7.0" @@ -159,6 +695,15 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + [[package]] name = "regex" version = "1.8.2" @@ -176,8 +721,613 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" +[[package]] +name = "reqwest" +version = "0.11.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +dependencies = [ + "base64", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-tls", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg", +] + +[[package]] +name = "rustix" +version = "0.37.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +dependencies = [ + "bitflags", + "errno", + "io-lifetimes", + "libc", + "linux-raw-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "ryu" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + +[[package]] +name = "schannel" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +dependencies = [ + "windows-sys 0.42.0", +] + [[package]] name = "scopeguard" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "security-framework" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.163" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "syn" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.45.0", +] + +[[package]] +name = "time" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" +dependencies = [ + "itoa", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" +dependencies = [ + "autocfg", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "socket2", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna 0.3.0", + "percent-encoding", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bba0e8cb82ba49ff4e229459ff22a191bbe9a1cb3a341610c9c33efc27ddf73" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b04bc93f9d6bdee709f6bd2118f57dd6679cf1176a1af464fca3ab0d66d8fb" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d1985d03709c53167ce907ff394f5316aa22cb4e12761295c5dc57dacb6297e" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14d6b024f1a526bb0234f52840389927257beb670610081360e5a03c5df9c258" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9d5b4305409d1fc9482fee2d7f9bcbf24b3972bf59817ef757e23982242a93" + +[[package]] +name = "web-sys" +version = "0.3.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bdd9ef4e984da1187bf8110c5cf5b845fbc87a23602cdf912386a76fcd3a7c2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[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" + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] diff --git a/Cargo.toml b/Cargo.toml index f3b4314..4248e9f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,3 +8,6 @@ regex = "1" itertools = "0.10" rayon = "1" eyes = "1" + +[build-dependencies] +reqwest = { version = "0.11", features = ["blocking", "cookies"] } diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..8b883a2 --- /dev/null +++ b/build.rs @@ -0,0 +1,41 @@ +use reqwest::{blocking::Client, cookie::Jar}; +use std::{collections::HashMap, env, fs, path::PathBuf, sync::Arc}; + +const BASE_URL: &str = "https://adventofcode.com"; +const YEAR: &str = "2022"; + +fn main() { + // get env and dotenv into hashmap + let file = fs::read_to_string(".env").unwrap_or(String::new()); + let env = file + .lines() + .filter_map(|line| line.split_once('=')) + .map(|(key, value)| (key.to_string(), value.to_string())) + .chain(env::vars()) + .collect::>(); + + // create session cookie + let session = env + .get("SESSION") + .expect("SESSION environment variable not set, retrieve it from https://adventofcode.com"); + let cookie = format!("session={session}"); + + // setup client + let jar = Arc::new(Jar::default()); + jar.add_cookie_str(&cookie, &BASE_URL.parse().unwrap()); + let client = Client::builder().cookie_provider(jar).build().unwrap(); + + // download until day fails + for day in 1..=25 { + let path = PathBuf::from(format!("input/day{day}.txt")); + if path.try_exists().is_err() { + let url = format!("{BASE_URL}/{YEAR}/day/{day}/input"); + let Ok(res) = client.get(url).send() else { + break + }; + fs::write(path, res.text().unwrap()).unwrap(); + } + } + + panic!("env: {:?}", env.get("SESSION")); +} diff --git a/input/day1.txt b/input/day1.txt deleted file mode 100644 index d188997..0000000 --- a/input/day1.txt +++ /dev/null @@ -1,2253 +0,0 @@ -13399 -13677 -11945 -9861 -6484 -4257 - -6616 -7349 -7758 -1591 -6068 -9217 -6924 -6766 - -10040 -9088 -11305 -5867 -10766 -9996 -11092 - -1320 -4921 -2338 -1351 -3462 -5916 -3124 -1416 -3655 -4886 -1135 -5171 -5020 -5099 -4785 - -1702 -5083 -3852 -3361 -2505 -3767 -1069 -3564 -3189 -5950 -2250 -2053 -1639 -1430 -4586 - -4135 -7033 -4649 -3126 -1136 -1435 -3825 -2205 -1259 -5473 -1803 -6406 - -2466 -30094 - -3122 -2983 -5988 -4214 -5278 -1974 -7109 -2419 -3777 -8299 - -10191 -6122 -7298 -7855 -8666 -4777 -6833 -8862 - -6100 -5332 -1908 -2796 -1818 -4657 -1650 -5560 -8447 -8619 - -9547 -1354 -1561 -2943 -2547 -9313 -9649 - -1323 -1200 -2514 -1412 -1381 -2310 -6201 -3257 -1747 -1295 -2507 -5594 -6010 -3422 - -1995 -3514 -8434 -1625 -2257 -3551 -6881 - -12256 -1829 -11123 -18829 - -11790 -1786 -13935 -10088 -3486 -2981 - -5046 -1306 -4328 -7100 -6000 -6287 -3624 -6521 -3952 -3107 -3846 -2762 - -21245 -8245 - -14395 -8107 -4730 -15633 - -1648 -2062 -4574 -2446 -5471 -3973 -5319 -1370 -4113 -1784 -5596 -3336 -4557 -5690 -4259 - -9587 -3062 -5611 -10487 -2759 - -69383 - -4683 -4950 -1709 -6063 -2338 -4583 -4749 -6431 -4269 -1193 -6012 -5525 -2704 -2462 - -1627 -7447 -8071 -6915 -7021 -7778 -6861 -4647 -4006 -3953 - -1866 -9649 - -10777 -2179 -5406 -1772 -3472 -8632 - -5609 -7270 -9122 -4723 -8155 -3113 -6348 -6468 - -5029 -3416 -7531 -8764 -9506 -2104 -7992 -9329 -2530 - -36312 -11422 - -5790 -3655 -2172 -6254 -11150 -1624 -1014 - -6789 -2406 -6639 -4712 -4219 -2880 -5426 -6339 -1460 -1188 -5297 -4006 -2118 - -3351 -1304 -5559 -3742 -4749 -3648 -5671 -4213 -4047 -1243 -1674 -1943 -4974 -3576 -2816 - -4949 -6136 -6448 -1652 -2764 -6968 -5423 -3887 -6863 -3628 -4183 - -2857 -5671 -3486 -4910 -2913 -6441 -5863 -3306 -6473 -2428 -2509 -1188 -3289 -4418 - -2509 -8521 -2190 -8998 -7303 -5667 - -3486 -8687 -2976 -5155 -1013 -9599 -8559 - -9018 -10121 -9235 -5724 -10350 - -2389 -9061 -8031 -6711 -6046 -3058 -1890 -6047 -7664 - -1286 -1915 -6597 - -6012 -6146 -9585 -12335 -3708 -7652 - -4501 -3470 -3260 -6125 -3718 -3379 -5225 -4673 -5943 -1010 -2057 -3389 -2009 - -4640 -2437 -4673 -2628 -5333 -7027 -8001 -7678 -4903 -7670 -1898 - -47670 - -3884 -23968 -11759 - -4154 -5214 -2482 -4226 -3115 -2272 -1209 -2525 -2985 -3399 -3140 -4385 -1291 -3911 - -15947 -12913 -12250 - -7196 -3574 -6499 -2127 -4295 -6611 -3292 -6542 -1280 -4757 -6430 -7364 - -36842 -21414 - -15106 -26273 - -2751 -1089 -2380 -3818 -1737 -1247 -3897 -1466 -3772 -3890 -4032 -6280 -5202 -3879 - -4406 -7919 -7174 -7182 -2076 -4281 -9077 -1814 -5768 - -4183 -5280 -5978 -3859 -1915 -2297 -1478 -3486 -2438 -4829 -2279 -5057 -2625 -5242 -2532 - -1699 -2463 -5703 -5850 -6899 -2344 -7855 -6715 -6421 -5289 -3702 - -11196 -4585 -9888 -10474 -10927 -9486 -1240 - -9145 -35500 - -9017 -8861 -1486 -5209 -9027 -7222 -8914 -8981 - -10200 -6668 -9301 -4127 -9401 -5308 -7425 -4684 - -7333 -10840 -14603 -10690 - -15280 -12623 - -2628 -4448 -6702 -5674 -4786 -1955 -5817 -7391 - -2930 -5391 -1057 -5093 -9249 -5111 -8526 - -11978 -1172 -12728 -10126 -14320 - -9024 -10561 -11219 -10949 -9775 -1630 -5280 - -2785 -6174 -1854 -1905 -6071 -2125 -5350 -1186 -3905 -6166 -2533 -4059 -6731 - -9855 -3487 -3393 -1922 -3413 -10109 -5879 -1927 - -24634 -17427 - -6916 -5891 -4324 -4270 -1627 -3428 -3616 -7358 - -1720 -7552 -2489 -7386 -2502 -5020 -8134 -6329 -1752 -3651 - -2666 -4269 -5480 -3812 -1161 -4880 -2090 -1374 -4834 -4310 - -7381 -7578 -10690 -9863 - -4168 -6628 -8779 -4512 -9607 -13236 - -8983 -7035 - -5321 -6790 -7229 -4435 -4513 -1969 -4220 -6666 -1310 -5702 -2815 -3337 - -8165 -8740 -12582 -7713 - -6807 -7574 -2110 -8248 -3745 -8562 -4020 -4169 -1765 -4891 - -17008 -3541 -13728 -10051 - -9546 -3634 -11918 -10456 -6942 -8063 - -8529 -13227 -7794 -1031 -4572 -11405 - -4153 -6659 -22281 - -11515 -2370 - -5548 -1377 -1211 -6916 -1775 -6326 -4643 -5420 -2426 -1870 -6828 -4954 -4020 - -17677 -4591 -11515 - -27640 - -1151 -2701 -3155 -4768 -5921 -1581 -2137 -4733 -5815 -4884 -2760 -2365 -5740 -5709 -4972 - -8728 -6887 -3823 -2605 -5475 -3860 -6041 -6430 -7326 -1646 - -4335 -2773 -5938 -2121 -4260 -6369 -6997 -3884 -4772 -1516 -2081 - -6213 -8805 -7238 -5345 -1192 -4939 -2806 -7313 - -4753 -6108 -7647 -3770 -1151 -3026 -7908 -4970 -7434 -7037 -2897 - -5302 -9296 -11044 -7970 -13693 - -7211 -1990 -3859 -6882 -3344 -4598 -2233 -2877 -2708 -3417 -6936 -2253 - -6373 -6764 -3884 -7391 -5533 -1137 -2496 -7434 -5125 -3866 -1692 -1925 - -4935 -6462 -6626 -2070 -1478 -6686 -4058 -2785 -1455 -3868 - -9644 -4807 -8557 -9675 -3245 -8615 -2544 - -4673 -6408 -7255 -2955 -8642 -8242 -6319 -4034 -1881 - -4863 -3401 -1929 -7349 -2101 -3531 -6030 -1829 -2810 -6337 -2740 -3333 - -2544 -3546 -4223 -3984 -5038 -3259 -3726 -6850 -6201 -2285 -2743 -2805 - -2831 -5952 -4857 -5209 -3788 -7752 -1897 -5149 -1566 -5627 -1744 - -13339 -25673 - -6041 -5270 -3150 -5930 -3880 -7634 -4617 -3736 -1598 -3545 - -12877 -3897 -16515 - -8603 -11316 -15009 -14921 -11366 - -29818 - -6943 -6084 -3655 -2357 -6786 -4932 -4144 -1856 -6735 -5396 -1969 -3564 -6248 - -21889 -22636 -7127 - -5436 -2129 -3427 -4028 -1375 -5428 -3513 -2017 -2241 -2350 -4854 -4469 -6433 -4620 - -8399 -5055 -7440 -1229 -5012 -8573 -8127 - -6239 -5302 -1102 -3281 -5757 -5335 -4485 -4455 -4786 -3304 -2231 -1380 -3369 -1580 - -7307 -4830 -3948 -3827 -1887 -4315 -7452 -4969 -5245 -4550 -7218 -2174 - -7447 -1081 -4264 -7055 -3586 -5229 -7455 -6934 -6149 -3960 - -15053 -15764 -7760 -4107 - -3289 -4370 -9653 -10131 -7939 -7051 -9606 -8231 - -9300 -8135 -7629 -9080 -3896 -1975 -8696 -1182 - -3985 -4089 -4921 -5219 -6964 -6433 -6509 -4185 -1005 -1026 -7124 -2661 - -6051 -14787 -7797 -15612 -10055 - -4012 -4017 -2304 -2605 -5743 -1403 -1125 -8710 -7720 -8718 - -6678 -4366 -4875 -6185 -3490 -1883 -3966 -1955 -6868 -2049 -3847 -2604 -5276 - -3260 -5099 -1168 -4772 -6425 -2118 -4669 -2970 -2545 -2870 -2477 -3117 -5656 -1638 - -3476 -16997 -3993 - -1125 -1370 -4944 -8135 -3965 -4389 -9460 -3168 -1910 - -2953 -1838 -3452 -7390 -5918 -6095 -6666 -7163 -6031 -3723 - -7718 -1141 -1675 -8446 -5294 - -5377 -6680 -7310 -6375 -5910 -2649 -9240 - -7748 -6530 -10511 -12346 -9936 -1147 - -5383 -2504 -2837 -4482 -2089 -5223 -5901 -2419 -2722 -1275 -5022 -4864 -1186 -3471 - -1424 -4107 -5138 -6033 -1772 -4181 -3155 -1846 -6531 -6357 -3427 -6064 - -6840 -12459 -10532 -13685 -7208 - -10299 -9237 -1345 -5427 -7106 -2016 -1041 -7238 - -3221 -8456 -3885 -7423 -6113 -4968 -9018 -5032 -6529 - -33934 -7098 - -7112 -24553 - -11885 -11364 -7529 -7103 -8676 -6579 -3688 - -25617 -10321 - -4047 -3253 -1844 -2799 -1668 -2965 -4873 -6097 -6295 -6440 -5524 -2244 -5140 -1709 - -2615 -2931 -3283 -6939 -4277 -2219 -6990 -6804 -6249 -5762 -1461 -1084 - -32423 -27423 - -14517 -13142 -10941 -19562 - -5455 -1050 -5920 -5358 -1310 -4716 -3229 -1832 -4729 -1023 -3679 -2541 -3880 -1570 -3417 - -16181 -14620 -16387 -14881 -13553 - -5812 -2876 -4562 -3768 -3935 -5042 -7771 -6679 -7969 -4621 -7996 - -21785 - -2879 -3483 -14624 -15533 - -3101 -1823 -3319 -1134 -5269 -2554 -1437 -6490 -1859 -5525 -1183 -7439 - -5209 -6916 -5888 -1564 -5739 -6298 -4936 -5691 -3928 -4678 -4320 -1645 - -2079 -4168 -3031 -2456 -5446 -2338 -1479 -2522 -2715 -1725 -1596 -5845 -5028 -1472 -4262 - -26049 -35356 - -7064 -5479 -7564 -6219 -1482 -3370 -2480 -6777 -2460 -4600 -1526 - -58980 - -6251 -4189 -4778 -4814 -5817 -1498 -1721 -2071 -1297 -3638 -4299 -6097 -1840 -5523 - -6232 -2066 -5782 -6549 -2873 -3707 -1461 -3857 -7477 - -10217 -4464 -7487 -5948 -2641 -6622 -5401 -3488 - -39956 - -4731 -4717 -3048 -1349 -1819 -2364 -3993 -4572 -4118 -3673 -2932 -3557 -1818 -4040 -1809 - -7128 -2747 -10012 -9847 -11104 - -5461 -8787 -11013 -2435 -7903 -6058 -9698 - -6006 -2230 -1588 -3453 -1979 -4157 -4378 -2516 -3326 -4336 -5900 -4330 -3758 -1876 - -6303 -1498 -5453 -3870 -6501 -7204 -7517 -4713 -6341 -2922 - -7334 -4897 -4402 -10953 -11054 -10268 -9793 - -4308 -2009 -2882 -6288 -2014 -6973 -5200 -5629 -1899 -5681 -4634 -2955 - -64804 - -2857 -3134 -5935 -4192 -3976 -3585 -2199 -4054 -4975 -3372 -1872 -4617 -1449 -2854 -1817 - -25804 -30702 - -3722 -15874 -21786 - -3532 -2397 -6481 -6355 -3696 -6585 -6740 -6653 -1094 -3088 -3531 - -5927 -6252 -1132 -5256 -2514 -6460 -3890 -5604 -5112 -2472 -2584 -6801 -6849 - -10325 -4424 -2601 -3731 -1337 -2744 -9597 -7075 - -8526 -2577 -13053 -18958 - -4560 -2559 -1153 -4408 -4988 -5067 -5099 -2303 -5451 -5604 -2316 -3957 -4706 -1424 - -9698 -14099 -2964 -11611 -6559 - -33997 -17918 - -3078 -10535 -5480 -8484 - -9256 -15323 -22521 - -6174 -1290 - -2650 -3963 -5043 -2957 -2425 -1608 -5621 -3002 -4820 -7220 -5857 -2229 - -1787 -9599 -6118 -5536 -10061 -4869 -7507 -10471 - -6642 -9476 -8827 -1134 -8236 -3198 -9233 -1183 -2111 - -2519 -13308 -4466 -7787 -11427 -10148 - -2051 -8362 -3560 -8921 -11983 -10986 - -17512 -16150 -16427 -4874 - -1907 -4166 -3506 -3711 -6450 -1079 -6463 -1540 -3003 -1552 -2365 -2677 -6334 - -5683 -5447 -7822 -1999 -5990 -3230 -6628 -8877 - -4759 -3993 -1209 -6762 -3003 -6471 -4859 -4760 -1740 -4548 -2611 -4958 -2878 - -3511 -5142 -2343 -6232 -1655 -7021 -1258 -6838 -6246 -3258 -2833 -5692 - -14573 -6206 -7184 - -12569 -12014 -8487 - -5170 -3993 -2230 -8236 -1047 -2335 -7772 -10473 - -6108 -6449 -1413 -6964 -3161 -6252 -2130 -2719 -5420 -7277 - -1583 -8946 -17657 -13041 - -4422 -2025 -6174 -5449 -3686 -2354 -1209 -4111 -4326 -5606 -2071 -4023 -2194 -1317 - -4962 -7063 -5352 -4226 -2665 -3288 -6487 -4746 -1582 -3126 -5662 -6864 - -19194 -18115 -9773 -13571 - -3436 -3246 -1528 -2100 -5781 -2942 -1985 -3354 -5996 -6033 -4556 -4816 -3445 -5674 - -7953 -1275 -11734 -3295 -8462 -12028 -10019 - -1766 -2223 -3111 -3804 -3618 -4227 -2342 -2235 -3909 -2615 -4193 -2296 - -2843 -1898 -4501 -3483 -6084 -5807 -2422 -5786 -4145 -2572 -5803 -2697 -3218 -2038 - -11871 -1625 -13110 -12275 -12224 -3092 - -8174 -8230 -16977 - -4156 -3989 -4409 -2022 -4922 -5252 -3871 -5072 -4632 -5995 -1056 -4716 -3767 -5414 -1228 - -1282 -6053 -3736 -2202 -10695 -6392 -1384 -7369 - -28681 -29246 - -15208 -21904 -5766 - -46708 - -1735 -2394 -6503 -2545 -5642 -1806 -1340 -4804 -5163 -2480 -1842 -5795 -6230 - -5446 -4579 -4336 -1438 -3998 -2294 -3765 -5777 -4731 -1789 -3080 -5658 -6020 -2542 -3306 - -11770 -7451 -8351 -7333 - -25818 - -23933 -30654 - -8503 -3608 -18443 - -1571 -2813 -4847 -5863 -3118 -5888 -5529 -2732 -3260 -6378 -2254 -5451 -3926 -1217 - -5575 -12012 -8351 -6175 -4427 -5625 -9866 - -5468 -12325 -21005 - -5021 -3035 -3699 -1104 -6148 -6925 -6800 -4144 -4039 -5334 -3422 -3349 -2141 - -18504 -6184 -17915 -17015 - -2611 -3005 -2768 -2554 -5186 -5515 -4370 -4778 -2033 -4594 -4747 -5050 -6011 -1241 -3687 - -3572 -2053 -3035 -1019 -4649 -6236 -3675 -1697 -1756 -1384 -6392 -5508 -4879 -2579 - -17516 -1817 -4564 - -13428 -11868 - -2268 -3943 -1945 -4773 -1588 -3347 -2407 -5519 -4959 -2050 -1151 -5578 -3798 -3568 - -13729 - -2625 -13582 -7466 -6119 -6529 -8200 - -5149 -1177 -5792 -7468 -5574 -6245 -5567 -2265 -4336 -7321 -1343 -5623 - -3722 -8530 -2506 -5780 -5469 -6498 -7749 -2505 - -22983 -5225 -23416 - -12172 - -7005 -2913 -5003 -4441 -8602 -4818 -4073 -7066 - -2419 -3295 -4377 -5033 -4805 -3757 -1084 -4820 -2652 -4324 -3036 -4980 -1027 - -4367 -1801 -6250 -7051 -3410 -5676 -3559 -3589 -5903 -4154 -1524 -5197 - -6557 -4333 -4119 -5285 -4462 -6582 -6615 -5425 -6027 - -2623 -3519 -4234 -2637 -3220 -2879 -3305 -4309 -2591 -4333 -1030 -2778 -2065 -6071 -2426 - -8003 -2935 - -16146 -2907 -25872 - -2523 -4191 -3738 -5966 -3177 -4487 -4176 -4140 -3472 -1368 -3634 -4151 -3101 -3554 -1097 - -8706 -7566 -2050 -5536 -1457 -3515 -4303 -9118 - -2406 -1427 -5485 -14192 - -6581 -5469 -6933 -5186 -4634 -2457 -8450 - -6198 -10223 -9913 -1278 -10083 -10253 -8975 -8519 - -54888 - -1972 -4402 -4773 -5630 -5896 -6420 -1553 -4579 -1803 -1853 -4043 -5563 -2463 - -5240 -4200 -2061 -3277 -1346 -2627 -2714 -4837 -4338 -2206 -2051 -5209 -1106 -4793 -3229 - -6183 -4027 -4577 -4944 -1637 -4339 -2064 -4443 -1125 -2905 -2998 -5512 -6309 -4497 - -6302 -5477 -3874 -7152 -4289 -1502 -6993 -1968 -8201 -3361 - -3169 -5005 -1366 -1187 -2960 -4402 -7829 -4494 -4550 -4155 - -1670 -31707 - -2778 -6497 -2950 -7022 -3037 -5025 -3920 -1107 -5544 -4234 -1330 -6182 - -6093 -7193 -1472 -7313 -12034 - -11527 -11667 - -8122 -4849 -11876 -6439 -13482 -4171 - -2510 -5344 -6308 -5470 -3694 -3904 -3060 -1957 -3652 -2225 -1192 -3659 -3671 -2842 - -5014 -1665 -2556 -1066 -2900 -1324 -2125 -3245 -2785 -3922 -3338 -2431 -2794 - -6335 -1225 -2642 -6364 -4160 -3309 - -6834 -12081 -3435 - -7505 -8207 -3934 -8305 -10764 -11568 -3353 - -7731 -7976 -3563 -1029 -5288 -1333 -6704 -6018 -1413 - -1780 -11061 -12941 -5784 -6913 -8216 - -12014 -5836 -11487 -8744 -10846 -2219 -5146 - -5868 -3033 -6833 -5479 -5133 -4490 -6107 -5144 -4442 -5649 -2533 -5321 -1877 diff --git a/input/day2.txt b/input/day2.txt deleted file mode 100644 index 44ee23a..0000000 --- a/input/day2.txt +++ /dev/null @@ -1,2500 +0,0 @@ -B X -A Z -A Y -B X -C Z -B Y -B X -C X -A Y -B Y -B Y -C Y -B Y -C Y -B X -A Z -C Y -B Z -C X -A Y -B Y -B Y -B Y -B Y -B X -B Y -C Y -B Y -B Y -B Y -A Y -B X -A Y -A Y -B X -B Z -B Y -C Y -A Y -A Z -C Y -A Z -C Z -C Y -B Z -C X -A Z -C Y -B X -B X -C Z -C Y -B Y -A X -C Z -B Y -B X -A Z -B Z -C Y -C Z -B X -B Y -B Y -C Y -B Y -B Y -C Y -B Z -A Y -B Y -C Y -B Y -B Y -B Y -C Y -B X -C X -C Y -B X -B X -C X -B Y -C Z -B Y -B Y -B Y -C Y -B X -A Z -C Y -A Z -B X -B X -A Y -C X -B Z -B Y -B X -C X -C X -B X -A Z -A Y -A Z -B X -B X -B Y -C Y -C Z -B Y -A Y -C Y -A Z -A X -A Y -B X -B Y -C Y -B Y -B Z -C X -B Y -B Z -C Y -C Y -C Z -B Y -C Y -B Y -C Y -A Z -A Z -A Z -B Y -B Y -C Z -B Y -C Y -B X -B X -A Y -B X -B X -C Y -C Z -B Y -A Z -A Y -C Y -B X -C Z -C Y -B Y -B Y -A Z -B Y -B Y -B X -B Z -A Z -C Y -A Z -C Z -B Y -B Y -A X -B X -A Z -B Y -C Z -A Y -B Y -A Z -C X -C Y -B Y -B Y -B Y -C Z -B X -C Z -B Y -C Y -C Y -B Y -C Y -C Z -B Y -C Z -B Y -B Y -B Y -A Y -A Y -B X -C Z -B Y -B Z -C Y -B Z -C Y -B Y -B X -B Y -C Y -C Z -B Y -A Y -B X -C Z -C Y -B X -B Y -B Y -C Z -C Z -A Z -B X -B X -C Z -B Y -B Y -B Y -B Y -A Y -B Y -B Y -B X -B Z -A Y -B X -C Y -B Y -B X -B Y -B Y -C Y -A Y -A Y -A Z -B Y -B Y -C Y -C Y -C Y -A Z -B Z -B Z -B Z -B Y -B X -B X -B Y -B Y -A Z -B Y -C Y -B X -B X -B Y -B X -A Z -C Y -C Y -C Y -C X -A Z -B Y -A Z -B X -B X -B Y -C Y -B X -C Y -A X -B Y -A Y -B Y -A X -A X -A Z -B X -B Y -B X -B X -A Z -B X -B X -C Y -C Y -B Y -B Z -B Y -A Y -B Z -C Z -C Y -B Z -B Y -B X -C Z -B Y -B Y -B Y -C X -A Z -B Y -B Y -A X -C Z -B Y -C X -B Y -B Z -B Z -A Z -C Y -B Y -B Y -C Y -B Y -B Y -C Y -B Y -C Y -A Z -C Y -B Z -C Z -B Z -C Y -B X -C Y -B X -B Y -B Y -C Y -C Y -C Z -B X -B Y -B Z -B Y -B X -B Y -B Y -B Y -A Y -C Y -C Y -A Y -B Y -A Y -B Y -C X -B Z -B Y -C Y -A Z -C Y -C X -B Y -B Y -B Y -B X -C Z -C X -B Y -B Y -A Z -A X -B Y -B X -C Y -B X -B Y -B X -A Z -A Y -C Y -B X -B Y -C Z -A Y -A Z -B Y -B Z -C Y -B Y -C Z -C Y -B Y -A Y -C X -A Y -B Y -A Z -B X -B Y -A Y -B Z -B Z -B Y -B Y -B X -C Y -C Y -C Y -B X -B Y -C Z -C X -B Y -A Z -A Y -B X -B X -C Z -C Y -A Z -C X -B Y -C Z -B X -B Y -B X -C X -B Y -B Y -B X -B Y -B Z -C Y -B Y -B Y -B Z -C Z -C Z -B Y -C Y -C Y -B Y -C X -B Y -C Y -B X -A Y -C X -C X -C Y -B Y -B Y -A X -B X -B Y -B X -B Y -C Y -C X -C Y -B X -B X -A Z -C Y -B Y -C Z -C Y -B Y -C Y -C Z -C Z -C Y -A Z -C Z -B Y -B Y -A Y -B Y -C Y -B Y -B Y -B Y -C Y -A Y -B Y -B X -A Y -B Y -B Y -C Y -B Y -B X -A Z -B Y -B Y -C Z -B Z -C Z -C Y -A Y -C Y -B Y -B Y -B Y -B Z -C Z -C Z -C Y -A Z -B Y -B Y -B Y -B Z -B Y -C Y -B Y -B Z -A Z -A Z -C Z -A Z -A Y -B Y -B Y -B Y -B Y -A Z -A Y -B X -C Z -B Y -B Z -C X -B X -A Y -C Y -B X -B Y -B X -B Y -A Z -B Y -A Y -B Y -C Y -B Y -B Y -B Y -A Z -A Y -A Y -B Y -B Y -C X -A Z -B Y -C Y -C Y -A Y -B Y -A X -B Z -B Y -A Z -B X -B Y -B Y -C Y -C Y -B Y -A Z -B Y -C Z -C Y -A Y -B Z -C Y -C X -C Y -A X -B Y -B Y -B Y -C Z -B X -C Y -B X -B Y -B Y -C Y -C Y -A Z -B Y -C Y -C Z -C Y -B Z -C Y -B X -B X -B Y -C Z -B Y -B Y -B X -B Y -B Y -A Y -A Z -B Y -A Z -B Y -B Y -A Z -B X -A Z -A Y -B Y -B X -A Z -B Z -C Z -B Y -B Y -B Z -B X -C Z -C Y -B Y -C Y -B Y -B X -B Y -B X -C Y -C Y -B X -A Y -C Y -B X -B Y -C Y -B Y -A Z -C Y -B X -A Z -B Y -B Y -A Z -C Y -B Y -C X -C Z -C Y -B Z -B Y -B X -C Z -B Z -A Z -B Y -C X -C Y -B X -B Y -C Y -C Y -B Y -B Y -B Y -B X -B Y -B Y -B X -C Y -B X -B Y -C Z -C Y -C Y -B Z -A Z -C Y -C Y -C Y -C Y -B Y -C X -B X -C X -B Y -C Y -B Z -B X -C Y -B Y -B X -B Y -C Y -C Y -C X -A Y -C Y -C Y -A Z -A Z -B Y -A Z -A Z -C Z -B X -C Y -B Y -B X -B Y -B Y -C Y -B X -B X -B Y -C Y -B Y -B Z -A Y -B Y -A Y -C Y -A Z -B Y -B Y -A Z -A X -B Y -B Y -B X -B Y -C Y -C Y -C Y -B Y -A X -B Y -C Y -C Z -A Y -B X -C Y -A Y -B Y -A Y -B Z -C Y -C Y -C Z -B Y -C Y -C Y -B Y -C Z -C Y -A Y -B Y -B Y -A Y -C X -B X -B Y -B X -B Y -B Y -B Y -A Z -A Y -B Y -B Y -B X -C Y -C Y -B Y -B Y -C Z -B Y -B Y -B X -B X -B Y -C Z -B Z -B X -B Y -A Y -C X -A Z -B X -B Y -C Z -B X -C Y -A Z -A X -B X -C Y -B Y -B X -B Z -B Y -B Y -C X -B X -A Z -C Y -C Y -C Z -B X -B X -A Y -A Y -B Y -C Y -B Y -C Y -B Y -B X -A Y -B X -B Z -A Y -C Z -A Y -A X -C Z -B Y -B Y -C Y -C Y -B Y -B Y -A Y -C Y -B Y -B Z -B X -A Z -C Y -B X -B X -A Y -B Y -C Y -C Y -B Y -B Y -C X -C Y -C Z -A Y -B Y -B X -B Y -B Y -C X -C Y -C Y -B Y -B Y -A Z -B Y -B Y -B Y -C Y -A Y -B X -B Y -B X -C Y -B Y -B Y -B Y -B X -A Z -B Y -B Y -C Y -B Z -C Y -B X -C X -C Y -B Y -A Z -B Y -B X -A Y -B Y -B X -B X -B Y -B Y -B Y -A Z -B Y -C Z -B X -A Y -C X -C X -B Y -B X -B Y -B Y -B Y -C Z -A Y -A Z -C Y -B Y -B Y -B Y -C Y -B X -B Y -B Y -B Y -B Z -B Z -A Y -A Y -A Y -B Y -C Y -C Y -B X -C Y -B Y -A Y -B Y -C Y -C Y -B Y -B Y -B X -A Y -B Y -B Y -A Z -B Y -C Z -A Z -A Z -C Z -B Y -B X -B Y -B Y -B Z -A Y -C Y -A Y -B X -B Y -C Y -B Y -C Y -A Y -A Z -A Z -A Y -C Z -C X -A Y -A Y -B Y -B X -A Y -B Y -B Y -B Z -A Y -B Y -B X -B Z -B Y -C Y -C X -B Y -C Z -B Y -B Y -A Z -B Y -C Y -A Z -B Y -A X -C X -A Z -A Y -A Y -B Y -A Y -C Y -B Y -B Y -C Y -B Y -C Y -B Y -A Y -B X -C Z -C X -A Y -A Y -B Y -B Z -C X -B Y -A Y -C Z -B Y -C Z -A X -C Y -A Z -B X -C Y -B Y -C Y -B Y -B X -A Y -B Y -B X -B Y -B Z -B Z -C Y -B Z -B X -B X -A Y -B Y -B Y -A Y -C Y -A Z -C X -C Z -B Z -C X -C X -B X -C Y -B X -B X -A Y -B Z -A Y -A Z -B X -B Z -B X -C Y -B Y -B Y -C X -B X -C Z -B X -B Z -B Y -A X -C Y -C Y -B Y -B Y -A Z -C Y -B Z -B X -B Y -A Z -A Y -C Z -A Y -C Y -B Y -C Y -C Y -B Y -C Y -C X -B Y -C X -B Y -C Z -B Y -B Y -B X -A X -A Y -C Y -C Y -B Z -C Y -B X -B Z -B Y -C X -B Y -C Z -C Y -B Y -C Y -B Y -A Y -C Y -C X -A Z -A Y -B X -C Z -C Y -B Y -A Y -C Y -A Z -C Y -B X -B X -A Y -C X -B Y -B Y -A X -B Y -B Y -C Y -A Z -C Y -B Y -B Y -C Z -C Y -C Y -C Y -C X -B Z -A Z -C Y -B Y -C X -C Y -B Y -B Y -B Y -C Y -B X -B X -B Z -B Y -B X -A X -B Z -B Y -B X -B Y -B Y -C Y -B Y -C Z -B Y -B Z -B Z -C Y -A Y -C Y -A Y -B Z -B Y -C Y -B Y -B Y -C Y -B X -B Y -B Y -B X -B Z -B Y -A Y -B Y -C Y -B X -C Z -B Y -C Z -B Y -B Y -A Y -B Y -C Y -C Y -B Y -C Y -B Y -B Y -C Y -C Y -A Y -A Z -A Z -C X -B Y -A Y -C Y -B X -A Z -B X -A Y -C Y -C Y -B Y -C Z -C X -B Z -B Y -B Y -A Z -A Z -A Z -C Y -B X -A Y -A Y -B Y -B Y -B Y -B Y -B X -A Y -A Y -B Y -C Z -C Y -A Y -C Y -A X -B Y -A Y -B Y -C X -B Y -B X -B Y -C Z -B Y -A Z -C X -B Z -C Y -B Y -A Y -A Y -B Z -B Y -B Y -B Y -B X -A Z -A Y -B Y -C X -A X -A Z -C X -C Y -B Y -B Y -A Y -C Y -B Y -A Y -C Y -A Y -C Y -B Y -C Y -B Y -B Y -A Z -B Z -A Y -A Y -B X -B Y -A Y -C Z -A Z -A Y -C Y -B Y -C Y -B Z -B X -C Z -B Y -B Y -B Y -C Y -B Y -B Y -A Y -A X -B Y -C Z -B Y -B Y -B Y -B Y -C Y -C Y -B Y -B Z -B Y -C Y -A Y -B Y -C Y -A Z -A Y -C Z -A X -B Y -B Y -A X -B Y -B Y -B Y -B Y -B Y -B Z -C Y -C Z -C Z -B Y -A Y -B Z -A Z -A Y -C Z -B X -A X -B Y -C Z -B X -B Y -B Y -C Y -A Z -B Y -A Z -B X -B Z -A Z -C Y -C Z -B Y -C Y -B Y -B X -B X -B Y -A Y -A Z -C Z -B X -B Y -C Z -C Y -B Y -C Z -A Y -C Y -A Z -B Y -B Y -B Y -B X -A Y -B Y -C X -B Z -B Y -C Z -B X -C Z -C Y -A Z -C Y -C X -C Z -B Y -B X -C Y -B Y -C Y -B Z -A Y -B Y -C Z -C X -B X -B Y -B Z -C Z -A Y -C Z -B Y -B X -A X -C Y -B X -A Z -A Y -C Y -C Y -B Y -C Y -B X -B Z -C Y -B Y -C Y -A X -A Y -C X -C Y -B X -C Y -A Z -C X -C Y -B X -B Y -A Y -A Y -B Y -B Z -B Z -A Z -B Y -B Y -B Y -C Y -B X -A Y -C Z -A Y -C Y -B Y -B Y -B Y -B Z -C Y -B Y -A Y -A Z -B X -A Z -B X -B Y -B X -C Y -B X -B X -A Z -B Y -C Z -B X -A Z -B X -B Y -B Y -C X -C Y -B Y -C Y -B Y -C Y -B Y -A Z -C Y -C Y -B Y -C Z -B X -A Y -A Z -C Y -A X -A Y -A Y -C Y -C X -B X -B Y -B X -B Y -B Y -C Z -B Z -B Y -C Y -C Z -A Z -B Y -A Y -C Y -B X -B Y -C Z -C Y -B Y -C Y -A Y -C Z -B Y -B X -A Z -B Y -C Y -B X -B Z -A Z -B Y -A X -A Y -B Z -C Z -C Y -C Y -B Y -B X -B Y -B X -B Y -C Y -B Y -B X -C Z -C Y -A Z -C X -B X -C Y -B Z -B Y -A Z -B X -B Y -B X -B X -C Y -B Y -B Y -A Z -C Y -B Y -B Y -C Y -A Y -B X -C Y -A Z -A Z -A X -B Y -C X -B Y -B Y -C Y -C Z -A Y -C Y -B Y -B Y -B Y -B X -B Z -C Y -B Y -B X -B Y -B Y -B Y -C Y -B Y -C X -B Y -B X -A Z -B Y -C Y -A Z -A Z -B Z -A Y -B Y -C Z -A X -A Z -B X -B X -C Y -A Y -B Y -A Z -C Z -B Y -B X -B X -B Z -B Y -C Y -B Y -B Y -C Z -A Z -B Z -B Z -B Y -C Y -B Y -B X -A Y -B X -C Z -B Z -B Y -C Y -B Y -C Y -C Z -B Y -A X -B Y -C Y -C Z -B Y -A Y -B X -B Y -C Z -B Y -C Y -B Y -B Y -C Y -B X -B Y -C Y -C Y -A Z -C Y -B Y -C Z -C X -B X -B Y -B Y -B Y -B Y -A Z -C Y -A Y -C Y -C Y -C Y -B Y -C Y -B Y -A Y -C Y -B X -C X -C Y -A Y -C Y -B X -A Z -A Z -C Y -C Y -B X -B Y -C Y -B Y -B X -B Y -B X -C X -A Y -B Y -B Y -B X -B X -C X -C Y -B Y -B Y -B Y -B Y -B Z -B X -A Z -B Y -C Y -B X -B X -A Y -A Z -B Y -C Y -C Z -C Y -A Y -B Y -B Z -B Y -B X -C Y -B Z -B X -C X -B Y -C Y -B Y -B Y -B Y -B Y -A Y -B Y -C Y -C Y -B X -C Y -B Y -C Y -A Y -B Z -C Y -A Y -B Y -C Y -B Z -B Y -B Z -B X -B X -B X -B X -B Y -B Z -C Y -C Y -B Y -B X -C Y -A Y -A Z -B X -B Y -B Y -C Y -B X -B X -C Y -C Z -B Y -B Y -C Y -C Y -C X -B Y -C Z -A Y -A Z -B Y -C Y -A Y -C Y -A Y -C X -B Y -C Y -C Z -B Y -C Z -B X -B X -B Y -B Y -C Y -A Y -B X -A Z -B Y -B Y -B Y -B X -B Y -C X -C Y -A Y -B Y -B X -A Z -A Y -B Y -B Y -B Y -C X -C Y -B Y -B Y -B Y -C Z -B Y -B Y -B X -B Y -A Y -A Z -A Y -B Y -B Y -A Y -B Y -B Y -A Y -B Y -A Z -B Z -B Y -C Y -B Y -B Y -A Y -B Y -B Y -B Y -B X -C Y -B Y -C Y -C Y -B Z -B X -B Y -A Z -B Y -A Y -C Y -A Z -C Z -B X -B Y -B X -B X -C Y -B Y -B Y -B Y -B Y -A Z -C X -B Y -B Y -C Y -A Y -A Y -A Y -B Z -A Y -B Y -A Z -C Y -B Y -B Y -C X -C X -C Y -B X -A Z -B X -B X -B Y -C Y -A Z -C Y -B Y -C Y -B Z -C Y -A Y -B Y -B Y -C Z -B Z -C Y -A Y -B X -C Y -B Y -A Z -B Z -B X -B Y -B Y -A Z -A Z -B Y -B Y -B Y -B Z -A Y -A Z -B Y -C Y -C Y -B Y -A Z -A Z -C Y -C Y -B Y -A Z -B Y -A Y -C Y -A Y -B Y -A Y -C Y -B Z -B Y -B X -B Y -C Y -C Y -C Y -B X -A Y -A Y -A Z -B Y -B Y -B Y -C Y -B X -B Y -B Z -B Y -A Z -B Y -B X -B X -B Y -B Y -C Y -A Z -A Y -B Y -B Y -B Y -C Z -B Y -B Y -B Y -C Y -B Y -B Y -C Y -C Z -A X -B Y -B Y -C Y -B Y -C X -B Z -B X -C X -B Y -B X -B X -B Y -C Z -B X -B Y -C Z -C Y -B Y -C Y -B Y -B Y -A Y -B X -C Y -B Y -A Y -A X -A Z -B Z -B Z -A Y -B X -B Y -C Z -C Y -C X -C Y -A Y -B Y -B X -A Y -C Y -C Y -C Y -B Y -B Y -B Z -B X -B Z -B Y -C Y -A Y -B Y -B X -B Y -C Z -C Y -B Y -B Z -C Y -C Y -C Y -C X -B Y -B Y -C Y -A Y -B X -B Y -C Y -A Z -C X -B Y -A Z -C Z -B Y -C Y -A Z -B Y -B Z -A Y -B Y -B X -B Y -C Z -A Y -C X -B Y -C Y -B Z -A Z -B Y -B Y -B Y -B Z -A Y -C Y -A Y -A Z -B X -B X -B Y -B Y -B X -B Z -B Y -B Y -C Z -B X -C Z -C Z -B X -B Y -B X -C Y -B Y -C Z -B Y -C Y -C Y -B X -C Y -A Z -C Z -B Y -B X -B Y -A Z -B X -B Z -C Z -C Y -C Y -C X -C Y -B Z -A Z -A Z -C Y -A Z -B Y -B Y -B X -B X -B X -C Y -B Y -B Y -A X -C X -B Y -B X -B X -B Z -C Y -C Y -C Y -C Y -C X -C Y -A X -A Y -C Y -C Y -B Y -B X -B Y -B X -A Y -A X -C Y -C Z -B Y -C Y -C Z -B Z -C X -B Y -C X -B Y -C Y -B X -C Y -C Y -C Y -C Y -C Y -C Y -B Y -C Y -C Y -B X -C Y -B Y -B Y -B Y -A Y -B Y -B Y -B Y -B X -B Z -B Y -B Y -C Z -A Y -B Y -B Y -B X -B Y -C Y -C X -B X -A Y -B Y -A Z -B Y -A Y -B Y -B Y -A Z -B Z -B Y -B X -B Y -A Y -C Z -C Z -B Y -B Y -A Z -C Y -C X -B Y -B Y -B Y -B Z -C Y -C Y -A Y -A Y -C Y -B Y -A Z -B Y -B Z -C Y -B Y -B X -C Y -C Y -B Y -C Y -A Y -B Y -C Z -C Y -C Y -B Y -C Y -A Y -C X -A Y -C Y -A Z -B Y -C Y -B Y -A Z -B Y -B X -B Y -C Y -B Y -B X -B Z -C X -B Z -A Z -B Z -A Z -C Y -A Y -B Y -B Y -C Y -B X -B Y -A Y -B X -B Y -B Y -A Y -A Z -A Y -B Y -B Y -C Y -B Y -B Y -C Y -B Y -B Y -C X -A Z -B X -B Y -B Y -A X -A Y -A Z -A X -B Y -B Y -B Y -A Y -C Y -A Y -C Z -B X -A Z -C Y -A X -B Y -C Y -B X -C Z -B X -B Y -C Y -A Z -A X -C X -B X -B Y -B Y -A Y -B Y -C Y -C Y -C Z -B Y -B Y -C Y -C Z -B Y -A Z -A Z -C X -B Y -C Y -C Z -C Y -B X -C Z -B X -B Y -C X -B Y -C Y -A Z -A Z -B X -B Z -A X -A Z -C X -A Z -B Z -B Y -C Y -B X -B Y -B Z -B Y -B X -B Y -C X -B Y -B X -B Y -C Y -C X -B Z -B Y -C X -C X -B X -B Y -B X -B Y -B Y -B Y -B Y -B X -B Y -A Z -B Y -A Y -B Y -A Y -B Y -A Y -C Y -B Y -C Y -C Y -C Y -C Y -C Y -C Y -A Z -A Z -B X -C X -C Z -B Y -C X -A Z -C Z -C Y -B Z -B Y -B Z -B Y -A Z -B X -B Y -B X -C Y -B Y -B X -A Y -B Y -B Y -B Z -B X -C X -B Y -B Y -C Y -C Y -B Y -C Y -C X -A X -C X -C Y -B Y -B Y -B Y -B Z -B Y -B Z -B Y -B X -A Z -C Z -C Y -C Y -A Y -B X -B Y -C Z -A Y -A Y -B Y -B X -A Z -B Y -B Y -A Y -C Y -A Z -C Y -B Z -B Y -B Y -C Y -C Z -B Y -B Y -C Y -C Y -B Z -B Z -A Y -C Y -A Z -B Z -B Y -B Y -B X -B Y -A Z -A Y -A Z -B Y -B X -C X -C Y -C Z -B Y -B Y -B Y -A Y -C Y -B Y -C Y -C Y -B Y diff --git a/input/day3.txt b/input/day3.txt deleted file mode 100644 index a29ec79..0000000 --- a/input/day3.txt +++ /dev/null @@ -1,300 +0,0 @@ -vvMQnwwvrwWNfrtZJfppmSfJSmSg -BzGqjlBqBBmztHNFzDHg -llRCPlTPPqBjPhqhlBRBClhqWcTWrWNcMbQbdrdLccccrnvM -wMhwbTWpQjbpWHMQppzTHhjtlCjPSSJCCtlqRlJVFJFt -ggdvvnvDgdDmNcBrrcDntFRFqHJJtSJqvlVSRlJq -fggNNffGmcBrmBfcDzzzpHbsGTpszwwTbp -BPdPPBggrPtrpbtvPBBdgrFmhhQThGGlbbTZnzZQzZfn -ccjWRJVNcTGmnWWFmh -DMNmsMHwRNBrggdPDPdt -TfsfHLQbBtBFQbQsBmPwwlnPGZFwwdwWFZZw -MRpcvJMJVSMrVMpVSvhhnclwgWwDZgWgWgWglwcG -GCzjRJjVjSSrvfNQtLmQNsQbjB -FrSPFjtVvwsqSwcG -hDHdWDngpgZTDgHzzHwNNqlwNvZJlGqcQGsl -wDzLTDHgFffLtRft -CnCJNVqvCBJBNZmfPcPMcFLVcwmd -HgzjHFghSFtrLfwPchPM -QDpjgDSQlHHlDQQRzRzsBRRvWnWvJvZnqWBJNF -mGHcFPFqzPtcfPwDGVVpgLgSlgBl -rCvddTrnsbDLVSDwjSjd -QWhWQThswssMQMMMvhTzPqJzmzftHccJfHFhFm -cPbNpLVFTPbbFrpTLQBzqqmgnnBhgLMM -vvSwWCZCRZCDZtGwzdgWdQmzqgnQddJn -vCltGltCGmRRmCvDjjtHFpbcFfbbfssbpNPpHFpH -WLLQMWZLSPMPWmrwhnjhZZhpHJHljBDB -csbtCfFgCftGljHwHcBnpnJR -tsvgszNtfMwPzWqPrS -NbDZrbrFQQqqQtQqQDtTcBvCLBLswsZhscCGBZ -ljmWRzVRpbndMWmmfdsTsCBsGwTVVVCGCGws -ffRpnllHRMfdWzdnmRNQNNSFQQFNbrFHHrNH -LccGzWNjcvNLGTmHNsNLMlMwMpMPGlMCwFwDDGCw -fZZtfrZgrfQSnnnSnJRCglHpCwwHwpglDClFMw -SqJQnffJRnfQQVRhrQtrhnThcLhzNzHdTjhsTWzjdmcm -QJQwJMSbtbRgMQMQVZpCZsrrhpZBwrLLvs -qCNPGWdqhpphsWrB -DcNPNnqjdGDqjmPGGJRFMQmgtlQmQJCSgb -blTRbDnHRGGBwnGPCtFPWzVCDvFWtL -pdSJprqhhZSdqSdZNhVzZWtzLVgVPvzjLzWv -rrsqsmrMpPHlwTsRHn -mbNhgbRSLmTwswFm -vHjHBWMHBzMqWZVZBzHzcwwwdcFLcpLspdzwpwQd -HfMWMfvjWtZHqWDlhSnnnJNnbhslDb -lwsvPPnqlwwwsPcHTgqcRcSccmgQ -CVWBWCFpFzWfFjWjhNSQJJmcVcHRZJNTSc -zdhfzBtfLLtfFClbrDvsPvtPbnmv -PntVQbDnQHcDVvhtbtDhcbPcFTrrNfjqmmPTTZqMLZZMjFZm -lgJCpCFCSCGCpllWMfZqTNNZrMjrJTTM -CSzSwgFlzsGBzQcQhsnnDbVdtc -THzqvrVrWzhqhWwqhTbNNDRtFRmmpFDDVsFLLsdddF -MbZSSScZSGCJCjZlCjdPmpRmFLDtctdmFRsp -GfJQlnZjSMnllbJCQbClnZQrhNwwqhBzTNhrffqhqWhTqz -BdBdmDZHFFbrHHStPSRtPCzSRNDS -JGGpwqLJGMTLpLlMpqLhJtzCCSGQSPzNNczVVPVzSV -WwpllfslqfhffLwhfJpJlqlwdBmZnrdFHBFBBmNHFsFmdZmn -jZfQZnZfnbRfjCnfbSSmVpqmNmVpCqlhCqqPpP -MdJMwMvvLDssLtFMsMtLDsvvDRmmmPhWzWzphpmqDVzPDWNp -TsLdMrvRtLJtGdtGRRtFTBjSBrScnSZjnbcgQgHfnB -RZfmlRlWJmWLLRscrslJqvvMdVwmddvPddQPVDdDwz -GStFbFCbntbjNnjFhFvdHfhzHfzzQdMHwPdD -BSGpFbbjbNjnNNFSbRsLlWqgrZrfRgsBlg -ztHczmrmcNNzHsPSTwsPHSQPQT -CFCRjlvbClCjBdPDFQdwBsqn -llbRgjClJCVVMMCssfmNZWszrNgzGL -mmFldllVlmtdWFvPPFBcSSBW -DZzZGzZswQZHwQZjZzWWTSSvjSdvPvvWjJTS -DpQQggwzZGdmbCldgVgf -PJJvhqzVGbTFqzqbbGTlLmrtrZMnnZnntlJnrD -fNwRcQBCRNddNgLtgDnttqrMMtlr -RfRdNWQHcqHscdfRdGPFbFPpvpVWWzPzVS -DRgjZRRDggTfjfRvwWzHGGHPWDswvv -dhbmpcCmchgCpsGzWPdVGvWHwP -hpMMMpCQMnChFgNRQffTRrSN -gfqPCHWtPMMjCtffgjQWGLvGdZcdLLGZcLFGZBWG -pJTDsnnnvBjnFwvj -zJRpTbNrTSppRVblgbljMgMfCfbC -fGrGwqggtbVmtzbf -CTMjNQcJjJTBNCjMNZFNBcCZHbmWZHVLZDDWVtDzzbVmlV -hMvTcNMFMhQjTTBFBNMhwpspwgnGtvtnSgdwrRpG -RfFdqPdMMGPVgWmNVN -QwrTsbnSsSQpwlSSbNNWDmGLVjjmLWwNVB -rpcclTCprmZQSbprSTpRRRfqMfHHCHfhMhvFJM -LnJJsMtLbzsPPVPJbrTBlTWlfRfqnTrrlr -VDHVQNFGgNTrSjSBjq -CHFHGmvDGdZZGCQZVDgDHVbwLLwtMwwmJLJbLPPMbczt -qNNNBllFBzFjjzwGqGgLrWgrtQjdmmtQmQpp -ZMHJCPhMZRsRCsCPsSJZLmQdQgrtQwQwQZwdWg -CnMPbbRbsPhCnbfhMPRPllnFGqwTTFzTzNvBGBGc -wZWlBFZQgBzTzpZwBlVpzWBWnNMmnMvMcMJMmLGnVmqLqGMq -PdSDfJbCHsHHdJjsRRhjjPjmLqnnrLMLcrnLvdLMNccvGn -tSJtSCtbJhDhtzlFQZlTZTFp -TNqZDqmMDZNMFSGHjSGBRBdN -CrrwVwsPjjBHddPf -rpWggQVspQWcgtLwcHZZzDDMLDvvnnMzDM -lWrWmPwmGlZwZjdLZLzV -cFcDJhJnmqBqDCRpZzVLNsFLjLzdds -qJchTDCBHDWglmrfWPHH -RgLRnTJWnfHDcQQBfg -bZpNwdwbdMvVPsHHJMQfSSfP -mVbdNNdrbCzZbdZvbWTGrhqjTJtRWttRjq -TMtqqBJLrwqrZPlHHGhGnlBhzv -bFgNcpDRnpgggjCzvWDWhQhQWQHHvz -jnnVgjcgcTZMJqJVtT -dVSjmdHrfGPddrQgstFgzsQfsMFQ -hvJJCCJDcCtwBVFQzzBD -RWCnTvWTLRnJJLJllWhTLSprVdNZVGHGNGGnrdGSZH -gvMSHFZtBBMBMFZHzjnqLsLGMCzRWWMn -QJmDrhbNDbJfPQhDmQPRLszRlnjCzzWqrRnlsL -PcJVhJbJJNcNDmfDmjJmbhTfBvpwVSdggtgvgSFZwgvtgpdZ -PBClRHHClRlFljllZSBBBllppVGDLpZVVVsGpmGcNDpGLL -MvNwnbMwccVsswDG -MqnNbzMMrQfnqtttqfQWQQnRdCSHgHPglRFBRWlHjWRlCW -lldwdfSBWphHBggZghFs -DjDbDVRzDmLRzRLGJjPssrLZPhdshFHrssTZ -mvddMzvmmDDvvwQqWftCfqWqfM -gpTTwNWGWMSMgJjnvpvvJbJppn -lQvmLFdfrQzRFctlrLdRLVPnhPPbVDPDfjnVbfhJjV -FLFqccvmmtcQtrmQccRFLlRLSSWBSgTWNwsggqMBsqWGHMNG -PjPtVQrPVjrVPLLDQVFLTTWWqbSZwRwzqwSbSbbbwFSq -lBnGJBnfflRRNZwbqb -HJMGgmfpRMHGGdgncJHLDjjtVDQctLCvQCjTtr -VvmvjRGwRwvhmhRvvvVCCTTJjfWqfDMMcJlcCD -NpNbPfpSnngZbbLMFJWTMlLFqJJDMD -bNSfdSHQZgVQzwhhvRmQ -MhmHcDhChhcPVMDPDPQdFhQHnbNpZbZnprnrmNnjNbsllbnp -WWqGCWSCzsGbbGNgjN -LzwqBLSvwJCLPVMVDLdhMP -mNVLLffSLVWdZCcFZCZrSbGr -glvcwszTlsRDrHQCZFCvGH -gTBRlJnwhzgTgsTnggslsJRTpLNmjmNNcdVLdhfpLpdLVmLc -pCgfDrDrgccfppmDnhHMGqGbpHHSqzGLlqHS -tFtjQRPFFZRVNRcQGbLzLFMSGzSbWLqH -QRNTZjvjTTwtwNfmcTgfnCgnnBhm -hcPBhqPzqWPccHWHHWqnPdssPVfFFmZDnVDDms -NSLNCTRQZndRmDfnRD -QSGTGbjTSTJHBlbZZBbh -dgcWgVgWdvZSbbRtjLRZZZ -MMDPPfTnPTQrFDMpHzmmLztLnsszRtwbtS -rDfDqfHTpCSJqlCCGq -bjsgllstBbpNpslBpdBgqljgGwzJzDzwLGGrwLQQdJDwGhQh -nncmnmHHnmWRWmPfJCnvPRMrzvDhZZLGQwhDLhhMzZZZ -mffccVHRRPTTNlpNbNjJVslJ -DgPstgPtgPNNcjQQrtPJJCRSZTwSGJZZCZCJGD -dHVvpzdBBhVqzWqvhvHdzGSZlTRCSRJrwSSCwJCWGT -zpvVVqMBrzqrhFBvjbNPcPLnjcQtMcnj -gBcmTCFghhCCBnBhWWwFbwLdwHFMLMdp -LVzlZzPPMMzWWrwH -ljqjsGlZPPqqlVsPqDVqjQQctNTnRcNLtCNmmnRTRthBGG -LPRrrBNNjLBRJNdrGPRBfBrLwFqmDbdbTbTgmmgwmttFwtmH -QQcVvnQphlWsCQCCVpnvptTJgbtqwHDwbJtJHFsTHw -ppcJVQvpvMVMCvQZQVVZCCSRZPSjNRRZBPPPPzLjSLGf -MLtRnjQsRMJcDQJnSrsfqVVvGwbbbqgggg -WBFCNlFFFhFBlCHbplFWdpWZfVqPPwqTGdqTGvwrPVvTqvTr -HClCHzFzFBhmnjtQzMMSMnbD -sVnMCsdlMRcMFBGz -JvwwgrJDfgDmmggQrhNfhQQftjFrGRRtZFGBRZFHzjGcjrcj -PBJJvgDPNllPddVCPl -fmmRSnfnMnFSmMmmzTDSBFHtlJJqHJJqdHQdTCdtCCdt -WggGpNVVgWdwwHQtlGlC -hjbWppbLbLZLjVPPjPLSRRMvDlmSzDzBSnBFZf -nVttMPnPLjnJLjcnPVCjJJLcssfggBNlffgcNsWTcGcgNsBF -HQbwhmDrRrgFsWlQGNls -pZdbGzGrGpVttPLttv -LLbMrMHLDdWhmgbqqt -jGSQZQTpQGVVRSlQMQRljZmgmJBSvggvBWhJmJWvddmt -VjlQFGMVrFFrDrPw -DZVDwGZlJlVlwZVDzNdqfjMDnjqzNnWf -pmtpLRQFhSFpmpRgRtHNFznNdqWBjzWfnBjMWf -rHRrhStppHdJcGJrrssCsV -pgQqHwgPcPCddCjdWtdp -VfZGVFfNVhZhzjjjLz -fNNBBnGVNfBfRSRjBRQHJQTwJcJTgHPwTngr -MZdlzWzthMgrwmGmqZNqNs -VvJQJPVDBJQThwwNsRqsvRsHHm -BDQQPTnDDBQQBVfTBQPdFctzzdtztMMtnhcWcd -LjWjDShflZRRcZzfHH -srNwQPBsrVRhNmRGHzmM -rBdgQTrhdPndQTrsQQsrPwnTpLLCWDpSCLtCnvtSWpJjDCvl -gSlvDwCvcmcTQTFtRMjWHFVVHwtj -rbsphZZzBshGZssMffTVRFfFpWpfTH -GZNhZBhPBzTPNLDcDlCDCJNmlg -smZjGfvjbWWffQtf -dwRrdlVdDdgDbNtgcgQSNStQ -FdFVwdblFlzVrlwrTlndZHHZGhmLhhssjHhMjnjq -QFvQVFLLgVrFLBVgGhTtllPvmHRRGbTm -hDCCNCNCJNzWDZnqJDzSNCTnbRttHGRnccbPRtmmlmHc -qJshNMCNdVFVfsLB -FcLZZPFjdZcZMPcRjcRTgbpJlwbbTlmdTlGlwD -nrrNrHWBNSWvBqvvrhBqzStrgGnnmbwsbbJbwwJnmwmgJTlD -BCrrNvqWvSQPcCGZZRQQ -vPwcJblJzJbJcJFcwBSvJNdWRLtdsddGWWddWRWsMF -mDZmmDZDHVhfmjZgjVDfhTZHtsNptRsMntnWdsMnGtRntG -mhQrQDDhgqTTNfhmVQVBrPlBczSJbbCbCCPPvb -ZjbjLlbZjGqsgJTfHggrVvlB -tFDRFRnMFnnWtDdMdDRhzHfTJhJhffHvHTBHTgcfJV -nztDtdWzCCMSptSdFRRswZjsLbjwZmwqwGqpQV -vnvmmVnmVbrBJlzgWQWVNFzNHV -MwSjZhSwPjMwfDRzgWlNpWvHlgNNNP -CfSZjSfftwZDChDRSnccnrvBbbGrtBvctr -LCBRQRBQwRrCVLVWSrCSwCptzvhthvGGhdHzwppTTddv -mFnJJmnmFFFfPLNNmqqNJDpGnGtbHTtHvhnHbzvHvpGv -lMMPLqDmNMVSjjgMCS -zzPzbLjHLjfQPQHwwjddFNsNSJjDMsdNMFsC -BqqtmgDhcqdSFCdsqddF -GtcmrvhgcZlvZtBhtVgrvrvtnWzDnQbfnwlfWWRHWbbwzHRL -JfWHWZcMMdDLMPjRnCJjRbFgnblF -ShtBTSmBhTtqtfmqSTNvmjVjnFbFnnlrlqgCnrFnVg -vfzTTthppmdzPLHLWdGZ -tdvrvGgGTSScnHcjcg -zLLVfzPPcDZnPjSPpD -LfffNFLNlNbJwrctthWqNdNq -NdjJtfVNZnnFFdtfGfFNcvpbMDbzdcTbbzpvmcDR -PHMSHCHHWrRCvzDzDChT -BqPWSHwllSQWrLHQHPqlBBNfttZMjFQfjGtZtNjJJjnN -CpZtMCMQQpCVWjMDVjPVQsWWqJJhbTcddPlfhTRqchcJblhh -NwDSGNmGRccqNJfT -SBSSmgrrgGHnvSzwGVWDCzMCpLZtMsstLM -sbjHQsBlBQrrGjQjBqCRSnSCpnfngLnFhJngFfSP -zHVctHDcZtdJffnPpcSpFn -ZdwNMztdvzVdrqblvWsqHvBR -jPdjFPSbVDMMbqZzQWzQ -hFRrJlpprGhtlJGQzmCRmZBWQCHRQR -vThNplJpNhltNNlvcGDvwVFgnPwvSgPSSfjS -DhDTPQpTDmQbDQrrrWtWPJNNrrsJ -qqGjgwCgVRjMSRwMMGRGqjwvsNJJBZtrstvNBvHWHJvL -VqqgfjzfgfFGVjRggCGznhlbTpQchcshpdFlnDbn -DpTQTBbCZQVJQZJjrFllGdlvMPlMLqGBGvLl -hmnWHWWNzzmHsmWRlGGpdLgLHGlqvgqg -RzcWRhRnRnfmswfwtzzRWrDTrrFCQTCpQpcCrjjQCp -HLvpHvGcBTDFznvfqT -hCPQbPZPbjSbwwjCPChSClJJfzqTggTFDfsJngDg -StqmmZbdqrQmhQrrhZWcRcGBpBHWVcLctMWp -dNnRNbRdbRJMBMBVVThn -rNrsLNscFsCDjpwTMgBGWMGjJjWBVJ -wNcLpqHNsCprsfLFsHwRvPSSPRZRtRQSqtQPmP -PPhGfbthhBDVsTDtDqRR -mCmSNmqpcqjjrCScWRsZDpHsDQRZQDZDss -CcWzNmccrjjvqBGzzdPGnv -SDRmCSFfcSFFcfDmDBFSCfdVJhpzZjNJTNzRTvjzjhzNjTtZ -ngGsltrMWrblNpNTJJplJN -PGGnGsWngrGLQHHtHHHgWsHSBLqqfLcqBdVdcCDDBFdCDm -VPjGwhwVPhrnqhzJmQvQTQvmzBzw -ZBDBRbLLdtfRLlddLlCLCZMgmFJQFDcvzMQmgMzzJJFJ -LHLWltHlRZCtBVhVVHPjGSpphp -JqhlhdnnmfRVVSpzWLjzVLGpvB -stQtFTTrsZQPFQNNDtQgLzzSLvjvLGLBGSZGGWJv -DDDFFgDPbTwbTTJMCMcbCqqmmRRCnb -JbDWPDPPJJDMDjHPZHGbHGVZTBhrzBpdzszdTTphdNdWdrpv -RmRRqllqffwFtqwLCsqTNvpCsqCNqvdN -fmfLmStlnnfnRtfcnQbbjPjPPggZGVsMQMbb -WJggvGDJSwWgSfgvfSMGqqQHBcPjcHChcQBCssDHCTTQ -mlRnbrnbnltblwdnnpbLRdCCjCTHTjPTTsQcTrHHhCcj -bFLbdmzRpvSwfFFNWN -BHnDnQHnHMWLwzWPzD -dmlZCrdqLZzZVZJM -tRRtdlLCjLmqCRsrSLrvvRQNFQnbgRTQQNHTBbGQQh -ZrQPQWCrJnPdQSNTmBJNTHGHJN -zhFRfswjwhhsFttfsfvQftRtLTzmBTHGTBmzMLHHLmGHNTTS -hQhwqVjQwsdggrZZCWVl -VjfnQgVQjblChfjVJlbzLtrSLlTGtztHTtsTGH -DDqWQDQMWmDwWNwcqdWvpSrtLpLsptMprMStstMz -vQcddRdRvWcwWRmmmmddZmmfVnnngJJbZnCBnBhhFbhCgJ -gVgDnnmJdQVdJJgtgDjBsBhsBSPRSRRSSwccSbSqwPcCPcSC -HrQHlHFpQfTHzzWzwScPPCRfLbPSfCSR -TTQlZNTzlZNMWvrZMlpnhnVtnDDnVNtVJnjmhg -MCmmssFnZJcNNszfpvvrpvJzvwpp -BRRRWQWbSRGGRTTtZHWSqTrvDfgfdfrrwrDgfbvfzfrd -jRBhWRWTSRttQBZMNchNCsmFMchP -GBDncllqcSlNFZWBFWPjHVbw -LQphJlJzLCwPjHbpHZvV -hzCMJLMzTsrdrszQCCCTCQCDlqqnNmggqfGmgdmGgcmSNt -hFVVbqJsqhcnBRTRGBTh -lwdDpmzdNznzZBgGRRjR -HdmvNvSCmDmwNDFrMJMqJFCRfsbq -ctnbTcFTnbwSSfrrMLRhpJLMRdpwdJJR -vdGCVBmGVHPLBRWhpRLJJZ -VmQPHqvsPdlQsVHDftnlFTbffnbttfTF -LBJZHrhLThHddcMLVtcMcL -CPMNFDDMpGqFjjSPDPDqdvmdtQgVQQcQWcQgQQsj -DzFDFMRSFPSGTJJTJBwwRhBw -dpldqlqlRppFTHpbjbnLRLVnnGfjtG -NNJTcmhzvJQNgMJBwcGtjtGbttfhtsGGnhnt -rzcwmgvcvrBNvvmMgvcBzwHPCTWWprqPHqTFWdPCWDTF -BNllDRTNqDNvNDDLBcDvBCLVJrVdJdtrnrCHggtrdd -mppFMFjpMFZQZQGjFCdgrCrCdrvVGtJJCC -PZsQmfPphvPjSsjmPjfZllBwcNRDNcDqNNWbTclS -fjqZBSDSDwwsQwCDND -rrdMdjVWtTTPslsslFLTLCsJ -rvPWbvcmHjmdPbHvrvBHgqRRgqHGgfZGfHRS -ggTQgsgwFrTrggbMTvSdmjfCmmQDcmqjDjmc -nLZnRhNZnnNHZhZVStCcDqjcqmjSjH -RWGNnhzBnJJRRWNRBNZNLZhFMTFPvrTrTlsggPwSlFMWTw -RNmnPRnLGcQmzBQpHHjTltjtlfgspbsq -CZvCJwZMMCCMdFVcwJJsgTTHfsTlbfbgbT -SSVFhWCZdSCcWCcWdrvhzmnnnLNGDRDNzzLNGz -jPwfPwNfFpFNQpDjdMcjcrdddDHD -tzsRsGRLzhLhvqvhHMlqqV -LRBnRBGSnBSGsGSGmGtBJCmnNWZpPpTNPMwQMPNJFZTTNwWT -PCrStRPSPvZQcZPvqvfjSRWFFNFJFLZTTJTTVZFFGLFF -DlpBzBntHDzhlpGJVHLwTMFLVLTL -gptBBdgzpsBbpQvvPQPRqrdcCC diff --git a/input/day4.txt b/input/day4.txt deleted file mode 100644 index c5ca046..0000000 --- a/input/day4.txt +++ /dev/null @@ -1,1000 +0,0 @@ -60-60,45-60 -36-57,7-36 -2-32,1-55 -1-30,6-75 -12-13,13-90 -48-98,48-98 -29-29,29-51 -5-8,7-92 -39-91,38-90 -3-41,16-86 -64-64,65-95 -4-4,5-96 -8-43,9-22 -82-88,20-46 -19-20,9-20 -73-74,10-74 -23-29,22-23 -21-82,22-83 -36-36,36-84 -34-35,35-74 -3-98,8-98 -42-51,50-50 -44-93,45-94 -65-88,78-90 -37-76,43-76 -46-63,8-63 -2-91,58-92 -8-8,8-74 -50-50,46-50 -11-75,10-76 -16-95,17-94 -81-94,80-89 -7-76,9-75 -99-99,1-99 -3-52,4-53 -48-81,40-80 -13-65,14-14 -96-99,2-95 -7-98,1-98 -24-93,23-42 -28-29,29-64 -34-86,33-87 -71-84,70-71 -24-29,28-82 -22-87,15-21 -62-70,45-69 -45-48,44-52 -34-63,35-62 -14-14,15-83 -1-40,10-39 -45-97,46-98 -36-58,18-57 -24-92,23-93 -15-65,5-15 -80-81,80-81 -8-97,97-97 -18-27,17-28 -35-35,36-53 -46-51,47-56 -43-64,42-63 -31-88,89-93 -44-96,97-97 -3-9,8-56 -48-58,16-47 -13-89,12-90 -3-98,4-99 -20-32,20-90 -20-96,97-97 -27-93,28-93 -23-49,22-48 -44-75,44-44 -15-15,15-87 -84-90,61-82 -2-97,97-99 -25-82,24-25 -29-29,15-29 -23-23,24-47 -34-98,4-97 -37-72,36-73 -61-66,55-65 -66-70,70-70 -81-87,82-93 -97-97,17-97 -3-47,4-84 -83-92,46-87 -8-51,9-55 -5-86,14-45 -46-74,75-94 -60-61,61-86 -57-66,60-84 -75-78,52-74 -14-89,93-93 -1-93,1-1 -24-30,23-31 -80-85,79-84 -71-71,30-70 -46-90,70-90 -11-11,11-79 -56-84,55-74 -11-86,12-87 -72-86,49-59 -37-87,77-88 -27-74,27-66 -31-63,30-31 -59-89,58-90 -4-48,5-5 -56-63,62-63 -15-87,1-31 -11-57,10-63 -43-55,24-42 -27-79,28-78 -32-79,3-80 -22-56,21-55 -4-91,3-94 -41-49,49-58 -18-77,12-13 -6-74,7-75 -38-97,96-97 -24-89,23-88 -25-91,91-91 -65-66,66-78 -62-90,63-85 -60-74,73-73 -52-59,53-58 -15-77,16-78 -23-48,47-48 -18-53,37-47 -8-10,5-9 -31-63,19-27 -3-39,4-4 -44-77,45-77 -80-84,2-79 -1-81,16-69 -7-7,7-7 -25-81,6-82 -80-90,23-90 -3-83,5-81 -14-74,13-73 -7-64,8-63 -54-73,55-74 -6-76,5-5 -63-67,60-66 -12-62,12-13 -9-82,16-82 -3-94,4-95 -34-63,33-35 -14-15,15-99 -95-97,3-58 -13-76,20-77 -7-87,6-88 -74-97,40-83 -14-93,94-94 -4-86,1-89 -2-91,1-90 -69-96,3-96 -22-96,22-97 -80-91,33-79 -33-83,32-33 -96-96,26-95 -5-96,37-93 -22-83,22-98 -22-93,21-94 -14-88,87-89 -21-74,22-73 -53-87,1-54 -22-96,98-98 -54-75,9-53 -1-97,8-97 -27-57,26-56 -4-42,43-43 -95-95,4-95 -84-84,65-84 -13-22,12-23 -12-57,11-46 -13-13,12-16 -9-74,10-74 -4-96,5-98 -5-94,4-77 -81-98,7-81 -14-95,13-75 -38-73,39-74 -16-49,34-73 -8-89,9-88 -1-73,74-90 -11-97,5-93 -17-80,10-80 -51-57,50-83 -3-22,20-27 -5-91,6-92 -45-80,23-34 -56-57,5-57 -2-61,1-3 -35-64,34-63 -16-77,77-86 -85-86,1-85 -50-89,49-49 -32-55,55-55 -39-79,80-96 -25-66,95-98 -45-57,23-37 -52-97,34-83 -7-8,8-28 -1-85,1-72 -8-86,9-87 -80-91,2-80 -40-78,41-74 -16-82,16-17 -55-78,78-79 -26-95,19-27 -50-53,49-51 -16-63,63-89 -6-73,5-74 -3-43,5-97 -17-97,35-98 -17-18,38-45 -67-85,15-66 -9-20,10-90 -2-33,8-98 -28-91,24-90 -65-78,64-66 -24-25,19-24 -21-70,9-70 -25-68,9-69 -39-75,38-92 -77-78,57-78 -63-89,62-63 -52-52,53-78 -9-94,10-95 -17-62,52-61 -30-32,31-97 -8-67,56-65 -58-77,4-57 -85-85,13-86 -12-98,11-99 -5-95,4-96 -10-84,9-85 -1-8,7-41 -8-66,65-67 -1-98,98-99 -9-32,10-10 -5-84,3-83 -32-38,16-41 -17-34,33-69 -3-98,2-96 -13-80,90-90 -21-79,20-20 -2-17,1-96 -29-99,28-29 -64-72,73-73 -3-92,2-95 -3-7,6-61 -33-89,6-88 -18-19,10-19 -89-91,13-90 -4-95,3-3 -98-98,9-99 -43-62,29-99 -39-47,38-46 -10-88,2-11 -6-78,2-22 -9-28,27-74 -18-93,41-94 -91-95,92-95 -38-38,17-38 -15-56,14-15 -68-69,65-67 -30-30,30-38 -54-58,49-57 -64-65,65-66 -8-89,7-8 -28-93,94-94 -31-71,70-71 -3-99,2-98 -49-87,50-88 -60-62,62-76 -57-83,82-82 -70-70,31-70 -7-90,19-83 -36-50,35-46 -7-68,6-96 -58-58,41-57 -13-41,40-59 -28-28,30-73 -25-27,8-26 -1-85,85-85 -2-12,11-83 -62-76,61-75 -21-78,20-77 -20-95,19-96 -25-25,25-38 -52-97,97-98 -24-86,87-98 -25-93,93-95 -23-96,22-98 -26-50,56-60 -26-82,26-86 -73-80,74-74 -66-92,92-92 -34-51,35-52 -36-48,35-47 -10-99,9-11 -35-35,36-38 -5-89,10-90 -73-74,15-74 -16-86,98-99 -63-83,84-98 -8-23,2-22 -5-38,3-3 -6-93,2-3 -32-93,8-92 -60-61,32-61 -6-99,3-7 -11-90,10-89 -37-78,37-51 -48-84,48-53 -75-89,53-92 -6-27,27-27 -24-31,63-83 -39-52,38-40 -20-99,14-95 -8-92,9-93 -23-69,22-68 -22-56,23-50 -4-62,3-84 -1-98,2-98 -3-77,8-99 -20-90,90-90 -37-44,38-38 -44-73,72-73 -12-65,13-64 -65-92,93-98 -5-83,15-84 -3-83,2-2 -71-98,31-97 -9-82,82-82 -29-81,28-71 -59-92,92-93 -18-54,12-55 -14-65,14-64 -56-56,56-56 -16-28,16-24 -38-85,85-86 -46-64,47-66 -20-93,21-21 -2-92,2-97 -2-55,21-55 -21-42,20-21 -5-5,4-97 -14-83,15-84 -6-95,5-96 -2-83,82-84 -47-47,3-47 -54-85,11-53 -20-20,20-78 -33-93,32-92 -19-68,19-68 -25-90,24-25 -29-90,68-91 -7-82,83-83 -6-22,9-22 -6-97,10-98 -23-97,98-99 -80-81,30-80 -25-75,24-25 -27-27,26-79 -78-80,39-79 -42-84,42-42 -93-98,12-90 -35-36,36-78 -56-97,75-86 -7-30,27-31 -64-66,3-65 -2-50,2-80 -58-92,59-93 -20-33,19-32 -54-55,4-55 -3-25,4-23 -50-78,51-51 -29-62,28-29 -10-23,22-24 -59-99,2-98 -55-97,19-95 -4-61,60-81 -25-43,44-91 -4-86,2-93 -12-96,75-97 -68-92,69-91 -23-46,23-23 -23-43,22-42 -40-40,40-74 -25-37,38-38 -23-89,90-95 -3-92,3-59 -52-83,91-97 -7-35,34-36 -62-90,89-91 -58-75,57-74 -98-99,60-97 -18-72,7-11 -64-64,33-64 -7-79,79-79 -45-75,75-90 -76-80,75-81 -8-94,10-87 -10-10,9-17 -13-98,97-97 -13-85,85-93 -22-68,21-23 -33-33,33-37 -3-51,21-52 -71-81,17-70 -10-68,49-70 -72-93,72-74 -84-97,60-85 -20-61,20-60 -80-99,80-83 -6-89,7-88 -86-86,27-88 -66-83,61-67 -80-82,11-81 -89-95,49-86 -1-90,2-18 -4-44,5-68 -2-59,1-60 -6-64,6-6 -94-97,26-94 -85-86,86-90 -16-64,47-65 -19-97,3-99 -13-86,12-85 -6-97,1-1 -7-42,43-45 -57-57,28-57 -58-72,72-73 -12-12,11-80 -14-75,13-75 -13-89,3-14 -7-96,6-7 -57-96,59-99 -20-21,21-50 -23-23,24-52 -35-96,34-35 -2-33,7-93 -3-60,7-60 -19-56,20-57 -16-66,56-85 -15-81,14-80 -76-98,57-97 -70-92,50-69 -5-9,7-16 -52-67,66-66 -94-97,43-88 -6-36,35-36 -6-6,5-96 -15-37,16-16 -37-77,37-37 -25-85,16-84 -77-96,24-77 -66-83,31-66 -36-89,36-36 -25-68,69-99 -12-51,52-52 -28-99,10-29 -7-16,2-17 -9-82,82-90 -42-98,41-83 -50-72,48-72 -23-97,22-98 -32-44,43-44 -3-91,1-95 -5-46,2-3 -31-90,4-84 -22-45,21-95 -20-68,8-21 -90-90,69-90 -6-74,4-17 -56-94,57-95 -11-61,61-62 -56-68,57-69 -6-75,5-6 -51-64,26-49 -3-79,3-78 -23-54,22-22 -32-95,32-94 -85-87,49-86 -2-64,3-66 -3-10,11-58 -17-20,20-20 -38-68,39-39 -27-77,28-76 -22-82,23-91 -17-74,18-75 -32-42,25-75 -25-25,25-56 -7-18,8-19 -78-95,78-96 -37-45,31-46 -11-99,7-8 -35-98,97-97 -21-54,22-53 -46-48,2-47 -2-94,1-94 -3-99,2-98 -18-96,95-97 -3-99,3-99 -19-77,76-78 -32-48,31-47 -30-43,27-42 -20-36,21-23 -68-81,61-73 -39-71,40-72 -91-99,31-71 -8-85,9-86 -70-70,21-69 -95-99,18-94 -19-67,67-67 -49-49,64-68 -25-54,55-55 -21-66,20-65 -2-90,7-89 -82-82,22-81 -22-53,22-36 -90-97,61-90 -36-87,35-88 -88-95,12-87 -96-98,7-97 -5-84,2-6 -68-68,67-87 -29-58,59-59 -74-75,3-75 -25-94,15-26 -44-45,45-84 -40-56,57-82 -30-97,26-30 -6-87,87-91 -7-75,7-46 -4-4,5-12 -18-23,18-18 -1-2,2-21 -14-85,15-86 -12-91,43-79 -21-66,65-73 -51-85,95-98 -55-79,42-84 -25-90,26-26 -28-91,27-29 -4-96,10-95 -35-88,26-26 -32-67,31-67 -21-21,21-80 -51-65,29-52 -61-73,62-72 -5-36,5-32 -3-97,97-98 -43-79,42-80 -20-39,31-32 -36-51,19-51 -20-20,21-66 -25-77,6-24 -34-36,35-47 -15-98,5-15 -3-32,2-48 -28-29,29-90 -4-99,2-5 -6-86,7-85 -15-97,15-96 -13-79,2-79 -3-83,2-97 -1-47,11-82 -50-56,24-49 -79-80,48-79 -42-57,43-58 -3-88,88-89 -13-44,14-43 -7-24,8-25 -14-86,13-13 -26-85,27-97 -13-63,15-64 -30-93,31-31 -95-95,61-94 -48-86,51-89 -86-86,8-86 -36-78,37-37 -16-26,15-27 -79-94,7-79 -12-12,11-63 -72-82,24-82 -84-89,48-83 -54-63,55-55 -50-50,50-86 -67-98,4-40 -87-99,99-99 -24-52,23-91 -40-41,41-58 -24-92,5-93 -25-61,26-62 -75-90,59-89 -3-50,49-77 -33-45,32-33 -64-67,64-64 -22-77,23-92 -4-4,4-99 -36-60,35-87 -4-89,2-3 -23-55,24-54 -7-98,4-97 -4-49,1-1 -62-80,61-81 -20-75,20-41 -39-41,40-57 -16-34,34-47 -89-89,7-90 -7-13,7-11 -98-98,1-98 -14-91,14-14 -34-57,58-58 -5-95,94-96 -5-42,6-6 -17-18,18-62 -79-79,64-79 -28-73,64-99 -4-98,99-99 -4-77,3-78 -4-87,19-86 -79-79,19-78 -32-32,32-97 -77-99,11-57 -7-92,6-93 -1-83,11-78 -37-97,36-37 -17-67,17-74 -1-90,2-39 -10-86,9-9 -1-95,93-96 -4-97,3-98 -42-70,43-70 -39-90,4-90 -22-43,6-84 -14-41,13-93 -67-79,49-66 -10-48,45-99 -9-98,98-99 -4-94,7-95 -6-12,14-61 -44-93,23-94 -17-17,18-18 -24-89,88-88 -17-69,18-49 -19-89,18-30 -31-74,75-99 -2-44,21-43 -1-3,2-98 -4-99,5-98 -74-74,42-73 -95-96,3-96 -39-61,40-62 -9-11,19-94 -1-92,4-91 -20-82,18-20 -1-8,4-51 -42-45,13-50 -7-38,67-95 -14-85,84-84 -3-5,6-93 -10-59,11-53 -65-83,2-66 -14-97,97-97 -2-99,3-97 -51-95,44-88 -30-47,29-48 -7-36,15-76 -8-8,9-43 -2-93,1-84 -29-29,30-36 -13-30,44-71 -8-98,7-94 -5-67,6-97 -99-99,1-99 -80-80,23-80 -82-82,6-81 -91-92,20-91 -25-28,37-43 -7-94,8-96 -25-44,24-26 -42-88,24-69 -5-82,9-20 -63-98,63-82 -86-87,2-86 -4-58,4-75 -98-98,2-97 -43-66,17-43 -33-61,61-61 -14-15,15-98 -18-96,5-17 -17-39,11-39 -95-95,11-45 -7-88,6-98 -27-27,24-27 -5-93,6-97 -12-33,32-42 -14-83,83-86 -5-7,4-8 -16-86,15-85 -29-99,99-99 -64-64,19-63 -1-99,1-37 -90-90,42-89 -74-78,44-67 -70-85,54-84 -13-99,9-98 -16-18,20-54 -5-65,1-6 -72-72,9-71 -4-4,7-97 -9-96,2-10 -5-6,6-39 -52-65,51-52 -13-77,16-76 -71-88,72-89 -5-6,3-6 -35-46,45-47 -45-87,38-88 -6-76,40-77 -67-72,66-94 -11-62,8-8 -4-9,3-10 -24-33,56-92 -5-82,83-83 -59-59,59-79 -23-87,22-23 -90-93,54-87 -9-35,35-35 -6-96,96-96 -2-9,8-84 -25-34,28-35 -52-93,53-97 -25-90,90-93 -86-94,86-93 -18-48,17-47 -4-45,4-98 -3-69,4-4 -3-93,3-34 -4-59,3-37 -20-87,19-86 -26-76,77-84 -19-97,9-20 -11-99,2-11 -4-25,26-52 -7-99,4-8 -4-88,1-94 -31-41,40-63 -10-73,72-74 -91-95,23-95 -27-85,85-86 -48-69,38-47 -69-69,68-82 -6-91,91-91 -5-59,59-59 -18-61,5-19 -62-76,61-77 -87-88,85-87 -76-76,8-76 -11-83,10-10 -35-66,12-48 -63-96,64-92 -41-94,40-42 -98-98,19-98 -45-91,46-90 -7-25,8-26 -38-84,37-85 -3-74,2-93 -14-25,25-38 -27-93,45-98 -9-52,8-53 -61-77,34-77 -6-96,33-86 -1-72,2-71 -46-93,35-39 -10-55,22-55 -55-78,54-77 -25-26,26-27 -7-17,18-95 -1-83,34-82 -73-73,60-73 -68-83,82-84 -8-9,9-84 -10-82,3-82 -13-94,7-14 -3-7,8-98 -25-52,24-24 -27-41,26-42 -27-69,25-25 -35-86,87-89 -9-29,1-28 -17-32,17-95 -8-95,9-95 -29-58,52-65 -10-10,9-61 -27-28,13-30 -89-89,18-88 -91-91,6-91 -49-60,59-61 -12-95,11-11 -6-97,97-97 -2-99,2-2 -1-47,3-99 -85-96,4-84 -73-74,74-89 -29-97,98-99 -66-79,61-78 -6-24,3-36 -69-69,8-69 -20-92,19-95 -18-31,28-91 -23-60,24-59 -50-51,3-51 -79-89,39-78 -15-87,4-87 -1-36,37-57 -8-94,7-8 -58-61,34-42 -18-97,14-42 -30-62,63-63 -83-98,82-96 -19-67,14-18 -35-39,40-81 -2-97,1-96 -11-93,14-83 -3-86,1-20 -8-48,1-8 -84-96,29-83 -55-91,54-91 -36-64,35-66 -22-60,22-55 -14-91,13-86 -3-58,57-58 -6-10,17-66 -18-61,62-62 -11-98,61-71 -49-74,34-73 -32-85,33-84 -70-78,61-72 -66-66,66-69 -10-97,62-91 -17-24,18-23 -92-94,3-93 -4-32,11-33 -45-49,49-71 -1-48,4-49 -21-85,11-84 -2-2,1-96 -55-81,81-81 -13-64,25-64 -61-78,74-79 -9-97,10-81 -40-45,41-44 -74-74,37-74 -86-95,86-95 -40-57,40-99 -34-74,33-75 -96-96,29-97 -8-11,10-34 -5-64,63-63 -1-95,2-94 -13-28,13-56 -10-10,9-13 -1-90,91-91 -15-98,54-98 -10-10,9-78 -14-37,18-55 -25-76,76-77 -98-99,39-96 -39-43,38-42 -97-97,37-96 -33-50,15-49 -15-15,16-19 -24-59,1-73 -43-92,21-99 -31-70,69-86 -40-88,9-87 -10-72,11-73 -7-55,12-71 -9-69,8-9 -34-41,35-44 -15-16,2-97 -32-45,4-33 -7-66,6-26 -57-66,65-97 -17-29,16-28 -7-32,19-91 -6-6,6-65 -30-49,30-40 -2-4,4-82 -18-79,80-80 -3-31,1-1 -63-94,63-95 -2-54,42-54 -57-73,57-57 -16-92,15-93 -29-49,30-35 -18-35,25-35 -27-87,1-88 -9-59,60-60 -31-82,30-88 -9-61,10-37 -65-65,42-64 -45-45,1-44 -15-34,9-16 -9-40,34-99 -18-94,94-95 -6-36,35-97 -5-74,4-99 -66-66,20-66 -47-69,48-68 -16-99,8-98 -22-36,35-37 -13-71,43-71 -98-98,1-99 -17-17,16-79 -16-16,15-89 -82-90,81-91 -11-11,10-94 -47-47,47-90 -7-9,8-60 -11-98,12-96 -37-74,74-75 -41-88,41-41 -97-98,53-96 -4-64,1-2 -43-92,44-94 -9-86,10-86 -14-28,13-37 -1-63,3-63 -81-81,80-88 -37-55,38-54 -25-80,26-79 -16-92,15-17 -14-14,13-48 -19-90,18-19 -68-87,8-67 -6-89,3-89 -9-97,10-98 -53-71,52-52 -74-95,74-74 -33-82,81-83 -40-47,39-40 -50-50,10-50 -15-17,16-76 -12-77,77-78 -58-65,64-82 -6-96,5-95 -7-91,8-90 -14-15,21-71 -36-99,99-99 -5-92,4-50 -39-41,40-59 -48-97,47-98 -31-42,30-41 -66-79,9-66 -30-30,30-82 -15-96,16-16 -67-98,68-99 -25-27,26-96 -19-67,20-66 -28-54,55-57 -66-82,66-81 -10-42,1-62 -4-7,5-6 -20-21,10-21 -54-98,97-98 -7-97,96-97 -2-3,2-52 -58-74,19-58 -11-95,21-87 -16-50,2-44 -2-87,1-94 -52-58,5-51 -7-13,6-23 -37-38,34-38 -2-94,1-95 -62-62,63-81 -34-97,34-69 -24-90,23-90 -49-69,49-49 -15-16,16-49 -10-89,9-90 -2-91,7-90 -20-94,17-93 -4-90,4-4 -48-65,66-66 -57-76,55-75 -19-95,96-97 -63-78,5-88 -43-43,43-86 -57-61,1-60 -1-99,51-75 -1-24,1-23 -65-83,64-83 -78-78,27-77 -9-76,3-77