From c99848b907d2d63577ffdc81fc11a77e4d328a92 Mon Sep 17 00:00:00 2001 From: Justin Wernick Date: Tue, 19 Apr 2022 20:24:37 +0200 Subject: Refile for merging repos --- 2017/Cargo.toml | 10 + 2017/LICENSE | 21 + 2017/inputs/day_1.txt | 1 + 2017/inputs/day_10.txt | 1 + 2017/inputs/day_11.txt | 1 + 2017/inputs/day_12.txt | 2000 ++++++++++++++++++++++++++++++++++++++++ 2017/inputs/day_13.txt | 43 + 2017/inputs/day_13_example.txt | 5 + 2017/inputs/day_14.txt | 2 + 2017/inputs/day_14_example.txt | 1 + 2017/inputs/day_15.txt | 2 + 2017/inputs/day_16.txt | 1 + 2017/inputs/day_17.txt | 1 + 2017/inputs/day_18.txt | 41 + 2017/inputs/day_19.txt | 201 ++++ 2017/inputs/day_2.txt | 16 + 2017/inputs/day_20.txt | 1000 ++++++++++++++++++++ 2017/inputs/day_21.txt | 108 +++ 2017/inputs/day_21_example.txt | 2 + 2017/inputs/day_22.txt | 25 + 2017/inputs/day_22_example.txt | 3 + 2017/inputs/day_23.txt | 32 + 2017/inputs/day_24.txt | 57 ++ 2017/inputs/day_25.txt | 62 ++ 2017/inputs/day_3.txt | 1 + 2017/inputs/day_4.txt | 512 ++++++++++ 2017/inputs/day_5.txt | 1070 +++++++++++++++++++++ 2017/inputs/day_6.txt | 1 + 2017/inputs/day_7.txt | 1091 ++++++++++++++++++++++ 2017/inputs/day_8.txt | 1000 ++++++++++++++++++++ 2017/inputs/day_9.txt | 1 + 2017/src/bin/day_1.rs | 24 + 2017/src/bin/day_10.rs | 63 ++ 2017/src/bin/day_11.rs | 57 ++ 2017/src/bin/day_12.rs | 52 ++ 2017/src/bin/day_13.rs | 46 + 2017/src/bin/day_14.rs | 52 ++ 2017/src/bin/day_15.rs | 40 + 2017/src/bin/day_16.rs | 87 ++ 2017/src/bin/day_17.rs | 47 + 2017/src/bin/day_18.rs | 207 +++++ 2017/src/bin/day_19.rs | 78 ++ 2017/src/bin/day_2.rs | 26 + 2017/src/bin/day_20.rs | 89 ++ 2017/src/bin/day_21.rs | 200 ++++ 2017/src/bin/day_22.rs | 73 ++ 2017/src/bin/day_23.rs | 168 ++++ 2017/src/bin/day_24.rs | 60 ++ 2017/src/bin/day_25.rs | 125 +++ 2017/src/bin/day_3.rs | 62 ++ 2017/src/bin/day_4.rs | 37 + 2017/src/bin/day_5.rs | 25 + 2017/src/bin/day_6.rs | 61 ++ 2017/src/bin/day_7.rs | 62 ++ 2017/src/bin/day_8.rs | 99 ++ 2017/src/bin/day_9.rs | 42 + 2017/src/lib.rs | 225 +++++ 57 files changed, 9419 insertions(+) create mode 100644 2017/Cargo.toml create mode 100644 2017/LICENSE create mode 100644 2017/inputs/day_1.txt create mode 100644 2017/inputs/day_10.txt create mode 100644 2017/inputs/day_11.txt create mode 100644 2017/inputs/day_12.txt create mode 100644 2017/inputs/day_13.txt create mode 100644 2017/inputs/day_13_example.txt create mode 100644 2017/inputs/day_14.txt create mode 100644 2017/inputs/day_14_example.txt create mode 100644 2017/inputs/day_15.txt create mode 100644 2017/inputs/day_16.txt create mode 100644 2017/inputs/day_17.txt create mode 100644 2017/inputs/day_18.txt create mode 100644 2017/inputs/day_19.txt create mode 100644 2017/inputs/day_2.txt create mode 100644 2017/inputs/day_20.txt create mode 100644 2017/inputs/day_21.txt create mode 100644 2017/inputs/day_21_example.txt create mode 100644 2017/inputs/day_22.txt create mode 100644 2017/inputs/day_22_example.txt create mode 100644 2017/inputs/day_23.txt create mode 100644 2017/inputs/day_24.txt create mode 100644 2017/inputs/day_25.txt create mode 100644 2017/inputs/day_3.txt create mode 100644 2017/inputs/day_4.txt create mode 100644 2017/inputs/day_5.txt create mode 100644 2017/inputs/day_6.txt create mode 100644 2017/inputs/day_7.txt create mode 100644 2017/inputs/day_8.txt create mode 100644 2017/inputs/day_9.txt create mode 100644 2017/src/bin/day_1.rs create mode 100644 2017/src/bin/day_10.rs create mode 100644 2017/src/bin/day_11.rs create mode 100644 2017/src/bin/day_12.rs create mode 100644 2017/src/bin/day_13.rs create mode 100644 2017/src/bin/day_14.rs create mode 100644 2017/src/bin/day_15.rs create mode 100644 2017/src/bin/day_16.rs create mode 100644 2017/src/bin/day_17.rs create mode 100644 2017/src/bin/day_18.rs create mode 100644 2017/src/bin/day_19.rs create mode 100644 2017/src/bin/day_2.rs create mode 100644 2017/src/bin/day_20.rs create mode 100644 2017/src/bin/day_21.rs create mode 100644 2017/src/bin/day_22.rs create mode 100644 2017/src/bin/day_23.rs create mode 100644 2017/src/bin/day_24.rs create mode 100644 2017/src/bin/day_25.rs create mode 100644 2017/src/bin/day_3.rs create mode 100644 2017/src/bin/day_4.rs create mode 100644 2017/src/bin/day_5.rs create mode 100644 2017/src/bin/day_6.rs create mode 100644 2017/src/bin/day_7.rs create mode 100644 2017/src/bin/day_8.rs create mode 100644 2017/src/bin/day_9.rs create mode 100644 2017/src/lib.rs (limited to '2017') diff --git a/2017/Cargo.toml b/2017/Cargo.toml new file mode 100644 index 0000000..d84b5bd --- /dev/null +++ b/2017/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "advent_of_code_2017" +version = "0.1.0" +authors = ["Justin Worthe "] + +[dependencies] +regex = "0.2.3" +lazy_static = "1.0.0" +structopt = "0.1.6" +structopt-derive = "0.1.6" \ No newline at end of file diff --git a/2017/LICENSE b/2017/LICENSE new file mode 100644 index 0000000..026d0f3 --- /dev/null +++ b/2017/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Justin Worthe + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/2017/inputs/day_1.txt b/2017/inputs/day_1.txt new file mode 100644 index 0000000..7a4debd --- /dev/null +++ b/2017/inputs/day_1.txt @@ -0,0 +1 @@ +21752342814933766938172121674976879111362417653261522357855816893656462449168377359285244818489723869987861247912289729579296691684761143544956991583942215236568961875851755854977946147178746464675227699149925227227137557479769948569788884399379821111382536722699575759474473273939756348992714667963596189765734743169489599125771443348193383566159843593541134749392569865481578359825844394454173219857919349341442148282229689541561169341622222354651397342928678496478671339383923769856425795211323673389723181967933933832711545885653952861879231537976292517866354812943192728263269524735698423336673735158993853556148833861327959262254756647827739145283577793481526768156921138428318939361859721778556264519643435871835744859243167227889562738712953651128317624673985213525897522378259178625416722152155728615936587369515254936828668564857283226439881266871945998796488472249182538883354186573925183152663862683995449671663285775397453876262722567452435914777363522817594741946638986571793655889466419895996924122915777224499481496837343194149123735355268151941712871245863553836953349887831949788869852929147849489265325843934669999391846286319268686789372513976522282587526866148166337215961493536262851512218794139272361292811529888161198799297966893366553115353639298256788819385272471187213579185523521341651117947676785341146235441411441813242514813227821843819424619974979886871646621918865274574538951761567855845681272364646138584716333599843835167373525248547542442942583122624534494442516259616973235858469131159773167334953658673271599748942956981954699444528689628848694446818825465485122869742839711471129862632128635779658365756362863627135983617613332849756371986376967117549251566281992964573929655589313871976556784849231916513831538254812347116253949818633527185174221565279775766742262687713114114344843534958833372634182176866315441583887177759222598853735114191874277711434653854816841589229914164681364497429324463193669337827467661773833517841763711156376147664749175267212562321567728575765844893232718971471289841171642868948852136818661741238178676857381583155547755219837116125995361896562498721571413742 diff --git a/2017/inputs/day_10.txt b/2017/inputs/day_10.txt new file mode 100644 index 0000000..6544f8c --- /dev/null +++ b/2017/inputs/day_10.txt @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..c31c097 --- /dev/null +++ b/2017/inputs/day_11.txt @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..80e4ce6 --- /dev/null +++ b/2017/inputs/day_12.txt @@ -0,0 +1,2000 @@ +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 new file mode 100644 index 0000000..87bfdb7 --- /dev/null +++ b/2017/inputs/day_13.txt @@ -0,0 +1,43 @@ +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 new file mode 100644 index 0000000..0de4bec --- /dev/null +++ b/2017/inputs/day_13_example.txt @@ -0,0 +1,5 @@ +0: 3 +1: 2 +4: 4 +6: 4 + diff --git a/2017/inputs/day_14.txt b/2017/inputs/day_14.txt new file mode 100644 index 0000000..1155654 --- /dev/null +++ b/2017/inputs/day_14.txt @@ -0,0 +1,2 @@ +uugsqrei + diff --git a/2017/inputs/day_14_example.txt b/2017/inputs/day_14_example.txt new file mode 100644 index 0000000..e0ffae2 --- /dev/null +++ b/2017/inputs/day_14_example.txt @@ -0,0 +1 @@ +flqrgnkx diff --git a/2017/inputs/day_15.txt b/2017/inputs/day_15.txt new file mode 100644 index 0000000..ffb6d14 --- /dev/null +++ b/2017/inputs/day_15.txt @@ -0,0 +1,2 @@ +Generator A starts with 591 +Generator B starts with 393 diff --git a/2017/inputs/day_16.txt b/2017/inputs/day_16.txt new file mode 100644 index 0000000..8e74751 --- /dev/null +++ b/2017/inputs/day_16.txt @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..67bf40f --- /dev/null +++ b/2017/inputs/day_17.txt @@ -0,0 +1 @@ +371 diff --git a/2017/inputs/day_18.txt b/2017/inputs/day_18.txt new file mode 100644 index 0000000..8b74206 --- /dev/null +++ b/2017/inputs/day_18.txt @@ -0,0 +1,41 @@ +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 new file mode 100644 index 0000000..b4826aa --- /dev/null +++ b/2017/inputs/day_19.txt @@ -0,0 +1,201 @@ + | + +-----------------------+ +-------------------------------------------------------------------------------------------+ + | | | | | + +-------------------|-----------------------|-----------------------+ +-----------------------------------------------------------------------|-----+ | + | | | | | | | + +-----------+ | +---------------------------------|-------------------------+ | | | + | | | | | | | | | + | +-----+ | | | | +---------------------|---------------------------------------+ | | | + | | | | | | | | | | | | | + | | | | +---|-------+ +---------------------------|---------------------------------------------------------------------|-----|-------------+ + | | | | | | | | | | | | | + +-------|-------------------------------|-+ +-+ | | | +---------------------+ +-+ | +-----------------------+ +-------------+ + | | | | | | | | | | | | | | | | | | | | | + | +---|---------|-----------------------|---|---|---|---------------|-----------------+ | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | + | | | +-|-----+ | | | | | | | | +-------------------------------------|-----------------------------------------|-+ + | | | | | | | | | | | | | | | | | | | | | + | +-------------|-----------------------|---|---|----Y------|-------|-----------------------------------------------------------+ | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | +-----------------------------------------------------------|-----|-------------------|-+ | | + | | | | | | | | | | | | | | | | | | | | | | | + | | +---------------------------|-----------|---------------|-------------------------------------------------------------------------------------|-----------------+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | +---------------------------+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-+ | | | | | | | | | | | | +-+ +-------------------------------------|-----------------------------------|-----+ | +-----+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | +-|-|-------------------|-------------|-|---------|---+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---|-+ | | | | | | | +-----|-------------|-----------|---|-------------------------------------------------------------|-|-----|-----------|-------|-|---+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|---|---+ | | | | | | | | +-------|-----|-|---------|-------|-|-----+ | | | | | | | | +-|---+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | +-|---+ | +---------|---|-----|-------------------------------|-----------------------|-----------+ +-|-------|-|---+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +-|---------------|-------|-----|-------------|-----|---------+ | | +-|---+ | +-------------------+ | +-------------------|---------|-+ | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------|---+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | +-|---|-|-------|-----------|-----|---------|-------|-------|-+ | | +-+ | | | | +-----------+ | | | +-+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | +-----------------|---|---|-|---+ | +-----------------------|-------+ +-+ | | +-|-|---|-|-------|-+ | | +-+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | +---|-----|-------------|---|-+ +-------|---------+ | | | | | | | | | | | | | | | | | | | | +-+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +-|-|-----|---|-|-|-------------------------------------------|-----|-|-------+ | | | | +-----|---|---------+ | | +-----------|---------+ | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-|---|-|-|-+ | +---|---|-------------------------+ | | | | | +---|-------|---|-+ +-|-|---|-|-----------|-----------|-----|-|-----|---|-|-----+ | +---|-----|---+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | +-----|-------------------+ | | | | +---|---------+ | | | | | | | | | | +-------|-|-----|-----|-------+ | | | +-+ | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | +---------------------|-+ | | | | | | +-----|---+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | +-|-|-----|---|---|-|-|-|-|-------------------+ | | | | | | | | | +-|-----+ | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +-|---|---------------------------|-------------+ | +---+ | | | | | | | | | | | | | | +-----|-----------|-----|-------|---|---+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | +---------|-|-|-----------------------|-|-----------|---------------|-----|---|---------|---|-|---|-|-|-----|-----------|-------|---+ | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | E | | | | | | | | | | | | | | | + | | | | | | | | | | +-----|-----------|---|---------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | +-|---|-+ | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +-|-------------|-|-|-----|----------U----|-|---|-------|-------------|-|-|---|---+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | +---------------|---------------------------|-----|---------|-----|-------------|-----------------+ | | | | | | | | | +-+ | +-|---|-----------------+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +-|-----+ | +-|-+ +---------------|-|---+ | | | | | | | | | | | | | | | | | +-------|-----------------------|-|---|---|-|-----|---------|-|---------|---------+ T | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------------+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | +-----------------------+ | | | | | +---+ | | +-|-----|---|-|-|-+ | | | | | +-------|---+ +-+ +-|-|-+ | | +---+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | +-----------|-----|-----------|-----|-----|-----------------|-|---|-------------|---|---|---|-----|---------|---------|-------|-----------+ | +---|-|-|-|-|---|---|-----+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | +---+ | | | | | +-|-----|-----|-------|---------|-+ | | | | | +---|-----|---------|---------|-------------+ | | | +-----------|---|-------|-----+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +---------|-----|-|-----|-------|-|-----------|-|-|-----|---|-------|-------|---|-|--D------|-|---|-------------|---------+ | +-------------|-|-----------------|-|---|-|-|-------|-------+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | +---------|---+ +-------|---|-------+ | | | | | | | | | | | | | | | +---|---------|---+ | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------------|---|-|-----|-----+ | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-------+ +-+ | +-|-----|-----|-----|-|-|-------|-|-------|-|-|-|---+ | | | +-+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +-|-------|-------|-----------------------------------|-+ | | | | | | | | | | | | | +---------------|---|-|-----|-|-|-------|-|-------+ | | | | +-|-|---|-+ +-+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | +---|-|---------|-|---------|-|---|-|-----|-----|-|-|-----+ +---------+ | | | | | | | | | +---|-|-|-|-+ | | | +-----+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | +-------------|-|-----------------|-----------|-|-----|-----|-----|-|-----+ | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | +-----|-|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---------|---+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|-+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | I | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | +-|---------|-----|---------------------------+ | | | | | | | | | | | | | | | +-|-------+ | | | | | | | | | | | | | | | | | | +-+ | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +-|---|-------|---|-----|-|-----|---------------|-----|-----|-----------|---|-----------|-|-----|-----|---------------|---------|-|-|-+ | | | +-------|-------+ | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +---|-|-+ +---------+ | | +-------|-----|-----|---------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-|-------|---+ | | | | | | | | +-----------------|-|---------------|---+ | | | | | | | +---|---|-----------|-|---+ | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | +---|---|-|-------------------------|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-|-------|---|-----|-----|-----------|-------------------------|---|-+ | | | | | | | | | | | | | | | | | | +-----|-----------|---|---|---+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-------------|-|-|-------|-----|-------|---------|---------|-------------------|-|---------+ +-|---|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-|-------------|---------|---|-|-----|-|-------------------|-|-----|-----|---------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | +-----------|---|---+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | +-----|---|-----------|-|-|---------|-----|-|-------------|---|-------+ | | | | | | | | | | | | | | | | | | | | +---------|-|-----------|---|-+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | +---------|-----|---|-|-----|-----|-----|-|-|-----|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|-|---|---|---|-------|-----------|-|-+ +-|-|-----+ | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +-----|-|-+ | | | | | | | | +-----------|---|-----|-|-------|-|---|-|N|-|-----|-------|-|-----------|---|-|-----|-+ | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +-|-|-------|-|---|-------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----+ | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +---|-------|---|-+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | +---|-----|-----------|-|-|-|-----|-|---|---|-+ | | | | | | | | | | +-|-|-|-+ | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | +---+ +---|-------|---------------|---|---|-------------------|-------------------|-|---|-|-|---|-|-------------------|-----|-----|-|---|---+ | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +-----|---------------|-----------|---|-------|-----------------|-------|-------|-----------|-------|-+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | +-|---|---|-------------------|-----|-----|-----|-|-|-|-----------+ | | | | | | | +-|-|---+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +-----|---------------|-------|---|---+ | | | | | | | +-----|-|-----|-|---|---|---|-|-|---------|---------|---------|---------+ | +-----------+ | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-|---------------|---|---|---|-|---------|-|---+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | +-------|-|-|-------|-------|---|---------|-------|-----------+ +-|---+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | +-------|---------|-----|---------|---------------------|-----|-----------|-|-----------|-+ | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | X | | | | | | | | | | | | + | | | | | | | | | +-----|-----|-|-|---------+ | | +-----------+ | | | | | | | | | | | | | | | +-----------+ +-|---+ | +-|-------|-+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | +-----------------|-|---+ | | | +-------|-|-------------|-------------|-----+ | | | | +-|---|-----|-+ | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +---------|-----------|-----------------|---|---|-----|-+ | | | | | | | | +-----|-|-|---|-------|-----|---------------|-----|-----|-|---|-----------|-----|---------|-----+ | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +---+ | | | | | +---------------------|-----|-----|-|-------------|-----|-----|-|-----------|-|-|-|-|---|-------------|---------|-----+ | +-----------|---------|---|-----|-----|-|---|-+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | +---|---|-----|---|-----|-------|-------|-----------|---------------------------|-|-|---------------------|-|-|---------------------|---+ | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | +-------|-----|-----------------+ | +-+ | | | | | | | | +-|-|---|-+ | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | +-|-----|---+ | | | | | | | | | | +-|-|-------------|-|-----|---------+ | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | +-|-----+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-----|-|-|-------|---|---------|-------|---------|---|-----|-|-------------------|-------|-------------|-----|-|---------|-|---------------|---|-----------------|-------|-|---|-----------|---------+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +---------+ | | | | | | +-----|---|-----|-----|---|-|-------------------------|-|-|-----------|-|-----|---------|-----|-----------------|-----|-----|-|-------|-----------------|---------+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | +---|-|-----------|-|-|-----|---------|-----|-----------|---|-|---+ | | | | | | | +-----------|-+ | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | A | | | | | | | | | | | | | | | | | | | | | | | | | + +-----|-----|-|---|-+ | | | +---+ +-----|---|-------------------------+ | | | | | +---------|---------------|-----------|-----|-+ | | | | | | +-|-------------|-|-|-|---|---+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | +-----|-----------|-+ | | | | | | | | | | | +-+ | | | | | +---|---|---+ | | | | | +---+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | +-|-----|-|-------|-----------+ | | | | | | | | | | | | | | | | | | | | | | | | | +-+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | +-----|-|-----------|-+ | | | | | | | +-------|-|-------------|-----|-----|-----|---------------------|-|-------|---|-|---|---|---|-----|-----|---+ | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | | | | | | | | +---|---+ | | | | | | +-|-|---+ | | +-+ | | | | | | | | +---|---|-|---|-------|-+ + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | +-------------|-+ | | +-|-----------------------------------+ | | | +---|-----+ | | | | | | | | | | | | +-|-----------+ | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +---|-|-------|-+ | | +---|-------+ | | | +---------------------------|-----------|---|-------|-----|-----|---------------------------------|-------------------+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | +-------|---+ +-------------+ +---+ +-|-|-------|-------------|-|---------------------------|-+ | | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + | +-------|---+ | | | | | | | | | | | +-+ +-------------------|-----+ +-+ +-----|-+ | +---+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | | +-----|-------------------|---------|---|-------|-|---+ | | | | | | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | | | | | + +-+ +---|-----------|-----------------------------------------------------------------------|-------|-----------|-----|-----------------------------------+ | +-------------------+ +-|-+ + | | | | | | | | | | | | | | | | | | | | | | | | | P + | +-------|---------+ | | +-------------|-------------------------|---------|---|---------|-------------|-------------------------+ | +-----------------+ | | + | | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | | | | +-----------------------------|-----+ | +-------|-------------|---+ | +-----|---+ | | | | | + | | | | | | | | | | | | | | | | | | | | | | | | + | +---+ | +-|-------------+ | | | +---------+ +-------+ +-------------+ +---+ | | +---+ | + | | | | | | | | | | | | + +-----+ +-----+ +-+ +-----+ +-----------------------------------------------------------------------------------+ +-----------------+ + diff --git a/2017/inputs/day_2.txt b/2017/inputs/day_2.txt new file mode 100644 index 0000000..f2f1f5e --- /dev/null +++ b/2017/inputs/day_2.txt @@ -0,0 +1,16 @@ +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 new file mode 100644 index 0000000..f249f9e --- /dev/null +++ b/2017/inputs/day_20.txt @@ -0,0 +1,1000 @@ +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 new file mode 100644 index 0000000..280e26d --- /dev/null +++ b/2017/inputs/day_21.txt @@ -0,0 +1,108 @@ +../.. => ..#/#../.#. +#./.. => #../#../... +##/.. => ###/#.#/#.. +.#/#. => ###/##./.#. +##/#. => .../.#./..# +##/## => ##./#.#/### +.../.../... => ##../.#../#.#./.... +#../.../... => ..../##.#/...#/##.# +.#./.../... => ###./####/#.../#..# +##./.../... => ###./.##./...#/..## +#.#/.../... => .###/.##./#.../#.## +###/.../... => ##.#/#..#/#.#./#.## +.#./#../... => #.#./.###/#.../#.## +##./#../... => #.../####/#.##/.... +..#/#../... => #.##/..#./...#/...# +#.#/#../... => #.##/####/.#.#/#.#. +.##/#../... => #.../##../##.#/.##. +###/#../... => ..../#.#./.###/#... +.../.#./... => .#.#/#..#/##../#.## +#../.#./... => ###./.###/.#.#/..#. +.#./.#./... => ..##/.##./..##/.#.# +##./.#./... => ..#./##../###./...# +#.#/.#./... => ..##/.##./.###/###. +###/.#./... => ..#./.###/###./#.## +.#./##./... => ###./..../.#../#... +##./##./... => .#.#/##../##.#/...# +..#/##./... => ##.#/.##./.###/..## +#.#/##./... => .###/..#./#.##/#### +.##/##./... => ##.#/..#./..##/###. +###/##./... => ..../.#.#/.#../#... +.../#.#/... => ###./.#.#/.#../#.## +#../#.#/... => ####/#..#/..../.... +.#./#.#/... => #.../..##/#.##/#.#. +##./#.#/... => #.#./###./##../#.#. +#.#/#.#/... => ...#/.##./.##./.#.. +###/#.#/... => ..../.##./####/#.#. +.../###/... => .###/.#../.###/#.## +#../###/... => ..##/..##/.##./##.. +.#./###/... => .#.#/..#./..##/##.# +##./###/... => ...#/#.##/#.#./##.# +#.#/###/... => #.##/.##./...#/###. +###/###/... => ##../...#/..##/#### +..#/.../#.. => #.##/#.../.#../#.#. +#.#/.../#.. => .##./.##./.#.#/.##. +.##/.../#.. => .#.#/#.##/...#/##.# +###/.../#.. => ##../..#./...#/##.. +.##/#../#.. => ##../..##/#..#/#..# +###/#../#.. => ##../..#./#.#./.... +..#/.#./#.. => .##./##.#/##../#### +#.#/.#./#.. => ####/...#/.#.#/..#. +.##/.#./#.. => .#.#/..#./##.#/.#.. +###/.#./#.. => #.../#.##/..../##.# +.##/##./#.. => #.#./#.#./#.##/#.#. +###/##./#.. => ...#/###./.##./.#.# +#../..#/#.. => ####/####/..../.##. +.#./..#/#.. => #.##/...#/..#./#### +##./..#/#.. => ..#./#.../..##/#### +#.#/..#/#.. => #.../#.##/#.##/..## +.##/..#/#.. => ####/..../##../#### +###/..#/#.. => ..../##.#/.##./#### +#../#.#/#.. => ...#/..##/###./#..# +.#./#.#/#.. => #..#/..#./.###/##.# +##./#.#/#.. => ###./####/#.##/..#. +..#/#.#/#.. => ##../##.#/..##/.##. +#.#/#.#/#.. => .#.#/.##./#.../##.# +.##/#.#/#.. => .#.#/#..#/.##./..#. +###/#.#/#.. => ...#/.#../.##./##.# +#../.##/#.. => ###./##../#.#./#### +.#./.##/#.. => .#../##../#.#./.#.# +##./.##/#.. => ##.#/.#../.#.#/#### +#.#/.##/#.. => ####/.#.#/..../.... +.##/.##/#.. => ####/##../#..#/#### +###/.##/#.. => .###/##.#/.#../#.## +#../###/#.. => #..#/###./####/.#.# +.#./###/#.. => ..##/##../##.#/.#.# +##./###/#.. => #..#/.#../####/...# +..#/###/#.. => ##../##.#/...#/#..# +#.#/###/#.. => ..#./.##./#..#/.... +.##/###/#.. => #..#/#.../..../.#.. +###/###/#.. => ..#./#.##/.##./#... +.#./#.#/.#. => .#.#/.##./##.#/.##. +##./#.#/.#. => #..#/.###/.#.#/.##. +#.#/#.#/.#. => #.../##../#.../.### +###/#.#/.#. => ###./.###/###./.... +.#./###/.#. => .#../####/...#/##.. +##./###/.#. => ####/###./..../.... +#.#/###/.#. => ...#/.###/..../#### +###/###/.#. => ..../#.../..#./.### +#.#/..#/##. => #.#./#.../####/#.## +###/..#/##. => .#.#/#..#/.###/#... +.##/#.#/##. => ..##/..#./..../##.. +###/#.#/##. => #.#./##.#/####/#..# +#.#/.##/##. => ..../.#../#.#./##.# +###/.##/##. => ..../..../.#../##.# +.##/###/##. => #.#./.###/#.#./#.## +###/###/##. => ##.#/##.#/.###/..#. +#.#/.../#.# => #..#/.#../#.../...# +###/.../#.# => ##../.#../##.#/..#. +###/#../#.# => ..##/#.#./####/.#.. +#.#/.#./#.# => ...#/...#/#..#/#.#. +###/.#./#.# => ..../####/.##./.#.# +###/##./#.# => #..#/.#.#/..##/#### +#.#/#.#/#.# => #.#./..#./...#/.#.. +###/#.#/#.# => ...#/##.#/.###/.#.. +#.#/###/#.# => .#.#/###./.#../.##. +###/###/#.# => ...#/.###/.#.#/###. +###/#.#/### => #.##/.#.#/...#/.#.. +###/###/### => ..##/.#../#.#./.#.. diff --git a/2017/inputs/day_21_example.txt b/2017/inputs/day_21_example.txt new file mode 100644 index 0000000..f6d24df --- /dev/null +++ b/2017/inputs/day_21_example.txt @@ -0,0 +1,2 @@ +../.# => ##./#../... +.#./..#/### => #..#/..../..../#..# diff --git a/2017/inputs/day_22.txt b/2017/inputs/day_22.txt new file mode 100644 index 0000000..1343456 --- /dev/null +++ b/2017/inputs/day_22.txt @@ -0,0 +1,25 @@ +.##..#.#.##...#....#..### +####.#...###.####..#..... +#.#.#####....######.###.# +#.#..###.#.#####....#..#. +####.#.#...#.##.##..#.### +#.####..#####.#.#....#.## +.#.####.#....###..##....# +..##.#..##.#.#.###.##.#.. +##....#....######.###.### +.#.##.###.###.###.#..#.#. +#.##.#.#..#.#.....###.... +####.....#..###..##..##.. +##....#.#...####...#.#.#. +...#.##..###..##..#...... +#....#..##.##.#..#.###..# +...#...##.##.##...#.#.#.. +.##....#.####.#..##.#...# +#.######......#.#...#.##. +#.##....###...###.###.... +#..#.#.#.#.#..#.#.....#.. +...##..##.###....#.###... +.######.#...###.###.#.#.# +####..###.####...#..##### +.##.#.##...##..##...#.#.# +###...##..#..##.##..#..#. diff --git a/2017/inputs/day_22_example.txt b/2017/inputs/day_22_example.txt new file mode 100644 index 0000000..3105a0b --- /dev/null +++ b/2017/inputs/day_22_example.txt @@ -0,0 +1,3 @@ +..# +#.. +... diff --git a/2017/inputs/day_23.txt b/2017/inputs/day_23.txt new file mode 100644 index 0000000..9d29443 --- /dev/null +++ b/2017/inputs/day_23.txt @@ -0,0 +1,32 @@ +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 new file mode 100644 index 0000000..1fbfe25 --- /dev/null +++ b/2017/inputs/day_24.txt @@ -0,0 +1,57 @@ +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 new file mode 100644 index 0000000..892ee98 --- /dev/null +++ b/2017/inputs/day_25.txt @@ -0,0 +1,62 @@ +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 new file mode 100644 index 0000000..ce15bc4 --- /dev/null +++ b/2017/inputs/day_3.txt @@ -0,0 +1 @@ +325489 diff --git a/2017/inputs/day_4.txt b/2017/inputs/day_4.txt new file mode 100644 index 0000000..b9f9e0e --- /dev/null +++ b/2017/inputs/day_4.txt @@ -0,0 +1,512 @@ +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 new file mode 100644 index 0000000..3b5dd14 --- /dev/null +++ b/2017/inputs/day_5.txt @@ -0,0 +1,1070 @@ +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 new file mode 100644 index 0000000..b16e11b --- /dev/null +++ b/2017/inputs/day_6.txt @@ -0,0 +1 @@ +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 new file mode 100644 index 0000000..faa4be1 --- /dev/null +++ b/2017/inputs/day_7.txt @@ -0,0 +1,1091 @@ +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 new file mode 100644 index 0000000..7b63126 --- /dev/null +++ b/2017/inputs/day_8.txt @@ -0,0 +1,1000 @@ +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 new file mode 100644 index 0000000..eb4d605 --- /dev/null +++ b/2017/inputs/day_9.txt @@ -0,0 +1 @@ +{{{{{!>'!!!>!!!!!!!>u!!!!!>},<'>,e{o!!!>!'>}},{{{},!'!!a}!!!>,!!!!!i!!,e!>,},}},{{},{{},},!i>},{>,{a>}}},{{{{,u!!,}!!!>!!"'!!!>,i!!e>},},ii{!>},,">}},{},<{!!!>!>},ou!!!!!>!"!!!!!!!>!!>,{},,<"ui!!,u'!>,!!o!!a>}},{{<"!!<,},!!"},}}}}},{{{{{{{{{!>,<,>},{,<,}!>},},<,!!!>,!!!>'>}},{{<{}!!e!!!!>},{,,<""a!!!>},}},{,!eia'!>},,,{}}},{<,oo>,{{},!>},<''>,{<{e!!!>!!!>}>}},{{}}}},{{>}}},{{{{,,}},{{}},{{{{o!!!>!!"o!!!>>}},{<'>}},{}}},{{,i>}},{}}},{{{!>},{!"i!}oie>},{,<,">}}},{{{},{{{{{{<{uu{'!!>},{<>,}},{{{,,,}},,}},{}}},<'i!!ueiu,!>},},!!<"}!!!>,},<>}}}},{{{{<,!>},<',!!',ei!>!>},i!!}ee,>,{{}}},{{{<'a'!!e!"i!>o!!!>!!!>!!!>{!!!>,<,>},},{,<{!!!!!>!!,!!!>>,{<,!!>}},{,!>}e!>},}{'!!!>o>}},{}},{{{,{<,}"!>!!!>}o!>,<>}}},{{{{{,,},{o>}},,,<}},{},{{<,<>},{"o!!aue,>,},},<}}},{},,},!!a,e!!!!!>,<>,{!>},}}}},{{{{{},!>,,{!!!!o!>},u!>,i!o!>!e''!>!>i>,{{<,u'!>i"o!!"}>}}}}},{}},{"}{!>},},,,<"!>,<"u>},{{}}},{{{{{>,u,,o}"{>},{,<<,!!!>,!>o!,!>,}}},{{{!>},,,{}},{!!i>,{{},{},<'{},{{!>,<>}}}},{{<,},{{{}},},,<{!!!!!>"o!!<,e!o!!!!!>},},<>},{},<>}},{{<'!>!>!>,<>},<"io!!!''!!!>!!o!!o!!!>,<!>,<>}},{}},{{{<'i!!!'}!!!>!>!!u!!!u!>oo!>},<>},{,!>,},}}}},{{<{i!!iu!,!!'!!!!{"!!!>>,{}},{{<",!>a{a!!{i!>,},<}u!>,!!oii>},{{<'u!!"!!!>}a!!e!aa!>,!!!>,<<>},},<"}"!!!>i!>,<>}},{{,{<'}"!!!o!>},}},{,,{<{!>,<"!>,<,!!,!!,e!!{{a,!!!!!>},<}}}},{{<}!>'!!{,,e!>,},>},{{{{{{}}},{}},{{}}}}}}},{{{{},},!!!!i}e!!},!>,<{!>,>},{<'!'''!>o"},!!e{!"o!>,{!>u>,{}}},{{{,!>!!o!!}iou>}},{{{},,,a<>},{,},<{i!!o>,,}}}}},{{{{},},,<,!!!!!!,!!!>,}},{{},{<,{},<{!,!!u!!!!!!!!!>},,!!!>i!!{,}}},{o!>',{<"!>!>!>},<'{o{e!>,<,a}!!i>}}},{{},{},{},,e!!!!!!!!e}!!!!a!!'}">}},{{{{},!>},},!!!>i}!>,<<>},{},{{{},{},}},{,<'!!!>{!!>}}},{{},{'""!o!>,<>,!!!>ue!!!>i{'!u<,!,>},{{}}},{{{},,,i}},!>,},{{},},>}}},{{<"}},,<>,'!!!'u!!!!!u!!}>},{{!>},<}>},!!,a','>},{{,{}}}}},{{{{{{}}},{{{{{!>,<>}},{{}}},{<}!>,<,{i!!}!>},>},{{{{,"!!!>u},,{,i"a}!!}a!>i},!!a!!!>>}}},{{},{}},{{{{,<"u},}},{}},{{{<">,},!!u>},{,<{>,{{<"ie!}!>a!e>,{}}}},{<}i''ua{!>},<>}},{{},{},!>},!>},<,},<,a,>}}}}},{{},{{<,"u{>},{}}}}},{{<,!!i!!i!!!!"a"!!!>!>,<>,,<}},{!!ou>,<},<}u!!!!!>{!!,!>,,<>}},{{{{!>},">},!i"!>,<"i}!>!>!>a>}}},{{{{,!>e!!>},{},{{{},{}},{}}},{{{},<>,<"'<}},{{"iaa,a>}}},{{{}},{{}},{}}},{{{},{}},{{}},{{{{<},<{a!!!>!!!>}ua!!!!!>a>},{ae!!!>'>}},{<>}},{{},,<>,<{,"ea>}},{,{{},<}!!{!>},},!>,<{!>},,}}}},{{,<>}},{{{,},{},{!>'!!u!!!!'!>,,},<},!!!!'>}},{},{{{{<},},{<}{!>},,"''!!!>ao!!!>ue>,,<,,}o!!ea}>}},{{eo,a!>!>},<},<"!u!{i!!!!e!>,<,!!u>},<{}>}}}}}},{{{}}}},{{{<,au'!>},,},<>,},<{!!!>!>!!o'"!>!,"}!">}},{{!>!!!>",!!!!!!!!!!!},<>,{>}},{{{}}},{{i!!!>!>},!>e!!!>,},},{}}},{{<>},{{"!>,<'!!!>,!>},<},,<>},<o<"!!!!e}}!!!!}!!!>!!">},{{<,e>,i{},<}!!!>>},{{<"e""!}u"!!!>!>,},{!>},'!!e!!!>!>,,<{iau!>},,{u{e!!"}u!!}},{}}}},{{{{{},<>,{}"!!!>},!!!!!>!!!>},!>,}}}},{{{{<{i!!uu',",u>},,<"!!,i,!!a!>!!o!>,},<>},<,o!!!>o!>o>},{},{<'u!>,,{!>},},{'>}}}},{{{},<,!>>,{<""a'oa!>,<>,{},<>}}},{,!!!>,<>}},{{{!!!>a!!!o!!!>!!'e!>,<}o{!>},,<,'>},oa!>,},{},<>}},{}},{{{{<,{!!o!>i>}},{,<,"o!>},}},{,'>,},<},"!!!!o},{}}}},{{{{{},ua,!>o"}e!>},},{{<,!!!>!!!>,,<},{a{i!>},}}},{{{<>,{,},<>}},{{}}},{{{<>}},{{<'!>,},<",!!o}}{!>},>},{{{{<'}!!!>,{a>},{}},{o'!u"!!!>,!a!!!>>}},{{<'!!!>,<'"}>}},{}},{{e,o,{<<">}},{},{{{},{{<{e!!!>{!!!>},<"!"!!!>!>},<>},{{>}}},{{{<'!>},<,!!e>}}}}}},{{{{!>,<",!>,,{{<}!>,<!>},<,'{,}!>{uiu,!!i">},u>}},{{!!!!!!!!!>ae}'"!ua,>},<}!>},}}ui!}u>},{{},{}}}},{{},{,o!!!!o'!!!!!>{u!>,},<'i,!!}}}},{{{i>}},{{{{{}e,""!{!!!!""!>!!!>ea>}}},,!!!>!,<}>},{{<'!!!'!>ee!>,<>,},<""!!!>},,e>}},{},'"!!!>!!},},<>}}},{{{{{},,,},},<<<>}},{!>},<,,<'},},oe,!!<>}},{{{{,'a!!!>,},{<'!>},,!>},}}},{{},,{{{},}},},},<<!"e!>},<}i>}}},{<{>,{},,<}{a!>,},,{!>,}}}},{{<'!<},{{<<"}'!>},<},{>}},{{{},{{,,<}!>!!!>e!!{>}}},{},{{,},},iaeo>},{{{{,<<'o!>,},<'i!!!>},<">},{}},<,>},{{},},<>,{}},{},!>},<{!!!>i!>ao!>i>}},{{}}},{e<{o"!!!!!>'>,{}}}}},{{{{},},<>},iauiui!>},<>},{,>}}}}},{{{},{}eoei!!!>u!>},">,{{{},<}!>},!!ie!,!!!i!oi!!!>},>}}}}},{{<}!!e!iieu!!'>},{{,>,<}o!!!>>}},{{!!u!!!>>}}},{{},<},<},,!!!<'u,!!o!!i,{,<}!>,!>,!!!>!!!!}u"}i>}},{{{{<{e!>,},{{{{<>},{<"e!>},}}},,<,}!!!>!!!!!>,}}},{},{{},{!!!!!!!>,o!'!>,<>,!>,<{!!e!!,!>!!e!>,i!!<{>},{}}}},{{{}},{{{!>!!!!!!"!!!!>}},{},{!!!!!>'oaii!!!>e!>,!!!>o!>},a>,'!!i}u'{e!'!>e!>'!}!!>}},{{!>},}'!!!>>,{}}}}}},{{{{{},{{<}u!!!!i}}}},{{{ioe!!>,<''!!'e}!>>},{}},{{<'!,o>},{{}}},{{}}},{{{{{},",},{{{},{}},{{!>,<",},{}a!>ae!!!>o!!u!!"e!!<'o{>,},<{>}},{{{<{}eeoua!!!>},}},{!!}!!!!!>!u>},{{{!>,<'a!>}!>!!<,u"!>!,{e<>},{{u"'>,},}}},{<,eo'}o!'{>,i!!a"!!!>!>},<}!a!!!>!!!!!>,}}}}},{{{u!!o'!!}!!!!!>!!!>>},},},{{<,!>!i!!,},!>,},<>,<<"e!>!>!>,,o!>,},},{{}}},{}}},{{{{},{},{<"!"<"!,!!!!!>eau!>,<,>}}}},{{{{{{}},,!>,!!!>!!!>!<<<>},{,{!>"i!o,!!{!>},}},{<"ia,i>,<'!>ioi!>},<>}},{{{<>},},{},{{,<'u,>}}}},{{{,},<,!>,<,i!>>},{{{<},}!!",!>!!!><>}}},{{},{{{},!!a>},{{},{}}},<}a!!!,'a',!>u>},{{ia{!!o!!!>},,},"!>,},{,!!,!>,!>>,{<}i>}},{{},{{<''!!e},e{!e>}}}}}},{{{{{<"u!>!!!!>,},<}!>},i!}'>}}},{{{{{{<,,!eaa!u!!oie!<,!!!>!>},,{u{!!i>},{<",{}}},{{},{},<'!!!!,!!!>!!",>}}},{}}}},{{{},{<{!!!>,,!!e!>,a"!u!!!!e!>,<{!!!!!',<>}},{{},{<"!,!>},<{a!>},<}}>}},{{<}!!"!>,<}!!i""'!!!>{>,},,<{!u!!'},{{{{{}},{!'u>,{<'u!!!>,,{>}}},{{"!!!>'}e!>,<}>},,<}{!!!>!!!!"!"!>!!!!,}<<>}}}}}}},{{{},{{{{<,!!!>,!>},,},<>}}},{},<>}},{}},{},{},{{},{{},!!!>,>,{}},{},{{{},<,>},{<!!!!o>,{u!>},<,!!!!oo!!!>!!u"!>}!>,<>}},{}}},{}}}},{{{{{{<i!>!oi}oeuu>},{{<,{!>!>!!!>!!!>},!!!>!!!>!!,'!},o!}>}}},{{a!!iu{!e>},{{{<{!!{!!o!,!!!>>},{},},<"oi!"!!!>!>},<>}},{},},{,},>,}},{{},{{{},{}},{{!!!!!!{!"{e}e!!,!>ae!!'},!>},},<>}}}}},{{},<>},{!><,!!!>},}}},{{<{},<'i!"{!>},,,,<{,!{},!>e!!!!!!!>!","ua!}!!<'!!u'>},{{{{!>,},},<'}o,<>},{<'!a!!{"u!e!>,<>}},{!!i!{{o!!!!!>,,},<,!!}>},{{{{,i""{!!!>},,{}},{{,o!>}"!!o,!!>},{},<"u}!>"!ae!{!<>}},{{,},{u>}}},{{},{}}},{!!!><",{}!>ee!>,}}}}},{{{},!!o!!!!{{!!!>!>"a!>!!!!!!>},!!!!!>!!!>e>},{{}!!{ie,!!!!},<,}>,i!>,<,!!"!>},<}!>o!"oo'o!>},<>},{{<{{!!!>ua'ei'!!<>},{}}}}},{{{{{{}}}}},{{},{{iu'!>>}},{{},},,<>},{}}},{{{{{<}},<"}'!oe!>,,},<{o<}},{},<>,<>}},{{}},{{{{!>},<'i<"!",>}},{,!!i!",!>,},{{"{aia!!!>,}}},{{},},<,,!!}'!!!!ae"!>,<"i!>,,{{{<,!{o},,!oi!!!>!u<'"e!!,{i>}},{}}a!,o!!a!{a>}}},{}},{{{<{!>,,<}{!!!>!!!>,,},{,,!>},!!!>e,>,{},!>,,},,,,>,{}}}},{{},i!>,<>},{{{{{},{!!"'{!!,'}>}},{{},{}}},{{<'a"!>e!>},<',>},!>,,<,,eu!!!>!!u!>,<>},{{{{<,!},<{!!!>},<{}e>}},{}},{{{{"o{uu!>},<>},},!!!'!!i!>!"a!!}!>,<"'!'!>>},<{!!!>,a!!!!{""!>"!!"'u!!!!!>>}}}},{{,},<'!!"!"!>>},{}!>!>},<}}"ao!!!!ua!!{!><">},{{!>},,<{!>!><>}}}}}}},{{{{<'}u!>,<{!!,}!>},<'!"'{!>},>}}},{{{<{a!!!>u!>!>!!!>ae}!>!>},<{!!ua>},{{}}},{{<,!!!>},!!!>>},{<}!!!uu{,!!!!i!>},<{!!!>},}},{{!!!>a!!}!!>},{{{{}},{,,{a!>a>,<,,"!!a!!>}},{!>},oa!!{!!!>a}a!!{>},{{},,{,,o!!e!>,>}},{<,!>},<"{}}}"},,,<},<>,{}},{},<}!!!ea{!!!>,<'uui>,!>,,<>}}}}}},{{{{{{{}},{<,!>},},,<>}},{},{!>!!!>ii!>!'"},},!!>}},{{{{{<,,!i,,ae{!!!,!>!!!>},}>,{{<}!!!>!!!>'!!!>"!{{!>!!!>>}}},{,<{oia}ueue!!!>eai>}},{{},!!!!!!ei!io}!!!>!!ue>},{<}!!!>!>i}!!!>,u!>,!>,<"o!>,,},,<>}}},{{eo,o!'!!!>'}}},{{{{{!>,!!!!!>}>}},!>'}}!!!>!>!>,!u>},{,},<'''!>},<">}},{<<,iiu!'iu!><>,{<,!!{e!!!>o!ai'!!'!!!!{a!>>}},{{},<,i{!>"}>},<'!!!>u'ao!!}},{{{,<'{"a'!>,},>,},{}},{{<'!,e!>},},{},{{{<,,},a{>},{{},'!u!>,<>},<}!!!!eai!!!>,!>!!!!!>>}},{!!a{oo,i>}}},{{{}},{},{,<{'a!!'a!!!>{},}}},{{{},,!!'>},{{},,<{!>},<,>}},{<",!>,<'!>,!!u!!{'{!>},<}!!{!oa!!!!e'!>>,{,},,,<{!>!!!!!!!>>}},{{<>},{{,!>,<>}}}}},{{{{{{<>}},},,<,!>},<>},{{},<>},{{<',!,ioe!>u>,{}o!>},<}>}},{{<{a'e,i!>"u>},{{{},,i,eo!!!!!>},>},{}}}}}}},{},{{},{{{{{},{,}}},{{<>},{{{},<>}},<!>!!"{,uei!>},<}>}},{o'}!!a!!o!eu>}},{<>,>},{,!,u!!}'!{ee!!i!>,!!!>!>>}}}},{{},{,!!,}o{>},{,<>,!!a!>!!!>u!>,},,,},}}},{{{},,{}},{}},{}},{{{{<,e!!,!>,},<,!!!>a!,!!'ie!>,},<>},{{},,!e!!!>!!!e"}uu!>},},{{},{{{,},!!!>e'u!!!>o!!u!>},<}>},{}}}},{{{,<{'!!i!>,<>},{{}}},{}}},{{<>,<,,>},<{>}},{,,<,o'!!!!!!!>"a!!eeu!o,!>},},{{},},{}}},{{,<'o>},{{},{}}}},{{{{},<>},{<{!>},'e>,{{}}}},{{{{{{,,,>},{}},{}},{{},<',i!!"<>}},{{{,},!!!>{!>},},{}},{{}'iou!{u!!!!!!}!u,{<{!!'oa}!!!>!!!!,ii!>,}},{{{<{a}o}!,!!!!!>,<'}{>}},{{{!!i"eeeuo!>},<!!!!!>!>,<>},<{!!'>},,<<}},{{<'!>ao!{u!!!>"!i{}i'u,},>,{!!iuee!!!>'!!!>,<>}},!>},,,'e'a}},{{{o}i!>!!u}>}}}}},{{{o!>,,<>,{}},<}}"!>,,>}},{{<>,!>'!!!>!>!>,},{<}}!!!>!!!>!!!>},!!{!{!!}o!}>,<}i!!"!!!>,<,,!!!!!>>},{{'!!}!!!>!!!!!>>}}}}},{{{}},{{{{,}},}}}},{{{},{{{{!>}uieo!!!>!>,<"o>},<}!>}!>,<>}},{{',},},},{}}},{{"o!!!>!!!>",e">,<{}i!!!>!!!,!!u!!,"}!>,,},{},{{{{a!}e!!e"!>},},{{<"a""!>},}!>},<}'!!u!!!!!>!>},<>}}},{{},<}>},{{},<<{"!!!!ui!!{>},<"!iui!!!>!!!>'"!!!!,!!o''!>},<}u!!!>{>}},{{},{}}}}},{{<"o!>},<,!}!!!>",{,}},{{},{{<<}!!o!{!i,,!>},!>},,<>},{,}},{},<<<,>,{{{{!!'u!>,},,<>}},!!>}}},{}},{{},<,!>ei'!e!!!>},'aui>,{}}},{{{{{,<"oia!!e!!!>!!{!!u!>,<>,},{o!o{>}},{<',!!{",<>,{!>},<''!!!>>}},{{}}},{{{},{{{!!!!!!a,e!',!!!>u"i!,i!e>},{{<{<}>},{,{>}}},{{},{,>},{}},{{{{!>,,{!>},ii!!!>u!!oa}}"">}},{,<>}},{,{{>}}},{,<{!>},!!!!>,{{<,{{"!>},<,u!>!>},<}'{!!!ao>},{},<>}}}}}},{{{{<{o'oi!>,},},},{,,>}}},{{{,},},<,,{!>},u!>,,,,<'!>,},,},{{,<"!>},!!aa!!o'!>},},<>,{{}}}}},{{{<!>i!>,<"''!>!!}>,{<,,!!!!!>},<"!>!!!!!>,}}}},{{},,{<}!>,<}'e!!"},<>}},{{},<{!!!>!!!>,oa"!>,<}''!!!>,}},{},!!!!>,{},<{a"u}!>},,}}},{}},{{{}},{{<"!>},},>},>},{{},{!>,"!!!>o>}}},{{{},,,<,"a!>,,},{{{}}}},{{},{{{{<}}}!!!!!>,},{}},{!!!!!>!a!!!>!!,},<,},{{},<>}},{{a<{!!!!'}!>oi!!,{{{{}}a"!!,"!!!>!>,a'!!e>,{<>,{<{ue!!!!!>!!}!!!>o>,{,}!>!!>},!>},},<}<'>}}}}},},{}}},{<>},{}i>}},{{},{<}!>,},<<">,{>},{{{<'>},<>}}},{{{,}},{},{{{<'u}>}},{<}i!>},<}!}!>i<>}}}},{{{{<>},{},<"!!e}u!!!>},<'!!>,{{,,<'!>,<,}!!!!!{!>a!!!!ea>}}},{{,<},<{ao}>},<>}},{{{{,<>},{<}}},{<,u!>},,<}i>}},{{,<,!!!>o!>!>},<"{oa>,{{,,!{!>},<"}i!!!o!!!>>}}},{<,o!!!i!a{,>}}}},{{>,!>},}},{{{},,},,{<"!!!>!>,<>}}},{{},{},<,<,!a!>,,},<"!!!>{>}}},{{},!>},<>},{{{{!'!!!!!>e!>},},,!!'!!!!,i!>o!!!!!>{!'"u}>}},{{},{{{{!!!>>}},!{}a!!!!!>},},{},{<>,<{!>i"uo}o!!"!!{>}}}}}}},{{{{<,e!!}">},},,,<'!>},<!!>},{{},{}}},{{<,<{},{{},{<},<}a!!{!><>,{!>},<,oai!>!>},}}},{{<"u!>,<},,!!e!{!>},}}},{{<}!!},,,!>},},},<>},{"a'!!}!!{"{>,{{,<'>},{,,<"u!>,<{'">}}}}},{{!!!!!>'!!,}!>>,{{{}},,!!!>!>"ii>}},{{{<'u!!!>!!!>,<>},}}}}},{{{{,}},{{{}},{{{,},!>,",'oe<>},{,{<','a!!!>a!!,{<}!!,!>},,a>}}},{{<}>}}},{{{},{"!>!!ou!}i!!oo!>},<'!!!!!>>}}}},{!!u}!>,!>i!!!!!!,"!!,!>},,{<}a'ua!>o!>},},}}},{,},'!!"!>,<>,{}}},{{{}}}}}},{{{<>,{}},{},<'>}},{},{{{{{{}},{{},,},<"!!i'"u}a!"e>}}},},{,!>},,{{}}},{{},,,,!>},}},{{{{},{<>}},!!!!!>!>,<'!!',ea'!!o!}}!!}>},{{a{!!,!!""oue{o"!>!!}>,{}},{}}},{{{},!>,!!">},{{{},,<,i}}}}}}}},{{{{{<"e}uu!!,!!i!!!>!>},<"!>>,{<}!!!>!>,},},o>}}},{{{{,{{{<,>},},,<}!!!>},},<{a>}}},{{ie}i}}},{u!e,e!!!!!>e"e!!!!!>ue{{!!"!>},},{{{<,!a!>!,!>},<,,e!!,!,},{{{!!!!!!>},'}!>,e'"o!>!>"{ou}}!!}>}}}},{{{,!!!>!>,i!>,,<}>,{}},{<>}},{{{,u'!o>},{<}!!e!!!>>}}},{{!>},<>}}},{{{},{{{{}}},<'!'a!<'{e,,!!{a'!!}>}},{<,>,!!>}}},{{{{},{<>},{{},<"!}{!!'{!!!}e"o!>,<}!>!}ou,!!<>}}},{{<<}!>},<>},{{!>,o,""eu!!'u!!i>}}},{{},,,},<',o,,{a!!!!o,<>},{{<'!>,,,<>},{}}}},{{{{}},{{<}!!e!!}!}}!!!>{{>}}},{{},{{{{{{"iu!>},{,{}}},{},{}},{{,,}},{},<{i!>},,{<,!eo!!}>}}},{{{{>},,,<{!,e{}aoo!!{{}>},{},},}},{{{},{}}}},{},,,{a!{{!!"!!!>,,{!!!>!!!""!>,a>}}}},{!>},},,},<"a"!!!>,!!!>>}},{{{},},{{!!!'!>},<{!>,,'!!!!o>},{{!!!>!>,<"!'!!!>!!!!{"a!!!>io},},<>}}},{{{!!!>},},,{,">}},{{!!a!>,},},u">}},{{{}},{,},<>,{{},!!!!{o}}!>},<>},{{}}}}}},{{{<"!!!>!>,},<,a!'}!!}!>},}}}}},{{{},{{u!>{!!i>},{{{!!!>},},o>},{}}},{{{!o!!!>!>!>},,}},{<{e!>"!>,!a!!!>,!!!>{,,<>}}}},{{{{{<}u>},,<>},{!>},<}{!!"oeu>}},{{<,"'u}!>!<{'o>,<{!!}!>,!!!!!!,!>,,"!>,},},<<>},{},<'!!!>!>!>},<}}},{{{<>},<>}}},{{{{,<}''!>},>},{<{!>u!eu{!!!>}'e>}},{<,{!e!!}!!!>,<,i>}},{},{}}},{{{{},{}},{{{}},{{<,<{!!a},},}}},{{},},{{,{},,},,>}},{}}}},{},{{{{},{<"!!e!!"!>},<"}!><{}"!>>,{{uo!!,o!!!!io!!!>'>}}},{{{}},{,,!!i!>e!>},}}},{}},{{},{{{},{""!>,!!!>i!>>}}},{{{,o!!!>o!>{,'u}!!u',!>},<}>}},{}}}},{{{}},{{{<!!!>,>},<{i"},},},{{!>},<'>},},{,},<{iu}'!>}!!<'i>,},{>}},{<>,{}}}}},{{{},{{{},{{!!!>!!!>'>,<{,'!>!!}!>u<}!!,!!i!!!ei}>},>}}}},{{<'!!!>!!o!>,<}',!>o},,{,!>},<>}},{<{!!,!!{}},{{{{{!!!!e!!!>!>!>!!!>!>'>}},{}},{>,""!,!>},},!>{,!>'o>},{}},{{,{a,!}!>,iaa>}},{<>}},{{{}}}}},{{{{{!>},<{e>},{,,,>,{}}},{{},{{},<"uoaa!!,}>}}},{,,}},{{{!,!!u!!!>',<,!>!!>},{uo!!'ai{a!>>,{}},{{!!!>!>>}}},{{{{!>},}},},<,<'o!!!!,uiu>},{},!!!!!}'>},{}}},{{,!""!!!>,'!>},<{o!!}!o<>,{<"o!!"!!uu>}},{},{{}}},{{},{{{},<{!!!!,!>,<>,{}},{{{!>},<<<>}},{{}}},{{},!!ae!>,<>},,!>!>},<'i!!>},{u!<'>}},{{{!>,u"}!!"!!i!>!e,i!!{,>},>},{{}}},{{{{,i"i!!!>}!!"!!!!!>},},<">}},{!>},,<{!>,<,oe!!!>!>!>,>}}}},{{{{{,<{!!o>,{<{,!>e}!e!>,<>}},{},{},<,!>u,!>,ae'>,{},<'!!o!>},!>,},<'i{!!o>}}},{{{<"!!{}"!!,,!>},,{<>,{}}}},{{},>}},{{e!!!>},,i!>!>},u}!!e>},{a'i!!au!{u!>},},}}}}},{{{{{},,},a!>},<}>}},{{,<'!!!>},u>},{{!!!!!!!!!!!>!>},,{o'>}}}}},{{{<'!!!>!>o{""},!>},<{>},{!!u!>},},"u!>"!}!>{a!!!>},<}>},{{},}"i{>,{}},{{{,<,o!!!>,}},{a<>}},{!!{}!!<{}!>!>,}}},{{{}}},{o"u!{u"{!>,<'!!!!!>!>!>},<>,!!,i!>!>},a>}},{{<,>,{}},{{>},{{{}},}}}},{{},{{ai!>,u!!!>,,,{}}},{},{{{{u!>,,<}a!!,!>},,<>},{}},{,{!>!>},},<{a>,o!>!!{e!>,<}!!!>>}},{},{{{<>}},{{{e!>oi!>,<>}},{}}}}},{{{{{{{{},},,},,!>ie"ae>},{,!!!>,>}},,<,!!!>e!!,!>,},,},{{!!}"e}{!oe!'}!>!>a,>},{},<>}},{,'''!{!!!>'!!!!!>"!>},}},{,!eo>,{{{,,!!!>!>!>,,<>},e!a}ao!i!>aau,!!!!!>e>},{>,{}}}}},{},{{},{!!{,!>!!u}!!!>,<>}}}}}},{{{},{{{}}},{}},{{{{,<'!i>},<{aa!>,<},<a!>>},{{<},},<{!!eea!>,<>},{}},{},<"eo!!!!o,a!!"u!!>}},{{{<}}!>,},},{,!>!'e<<!>,<>}},{<}},'!>e!!!>!!!>!a},e}!>},>},{<,e>,{,o!!i!>"!>>,{<'}o!!u!>},<},,}}}},{{{{{{!>},<"io>}},{<'!e{!>!>},,,}}},,},<'i!!!>i{>},{{{{,},},!!!>!>},}}}},{{{{},{{},!o!>},,<'"e<}!!>}},{{}}},{{<{,!!!,!!!>},<"!>!!!>},"'"'!!!>!!!>!>,<>}},{{},{}}}}}},{{{{,<'{u"u>},{},<{!>},ii!>},"a}}},{{{{{}},{<"i!!{>,{{{},}},!!""!>a!>},<"oa>}},{{},{,<<},!!u,,!!!>!!!!,!!!{',{!>,},{{<},<}"">,,">},{}}}},{{{<{{!!"!>},<""{!o!>},,!>i!!!>!>,<}>},{,{},,,<>}}},ie>},{,!>},,{},i{>}}},{{!}!>a'>,{{<"a}'eo!!!>,!!!>,<{",!>!>>}}},{},{!!}>,{}}},{{{{{},{{}}},{{}},{{{{>},<}ao!!,'!!u!>,<'}{!!!>o!>},<},{{},},!i!>},<!!!!!>!>,<>}},{{{{},{}},{,<"!!e!!!!!>,'!!}>}},{!>,<>}}},{},{{<,>},{{},{{}}}}}}},{{},{{<,{e!>},}}},{{{{<{!>},<>,{<}"!>!>,,},}}},{u<>,{}}},{{<'oa!>},<>},!>,,!>},>}},{{,o!!oe!!{!>,<"e!!!>!>>}}}},{{{},},<}!!a!!!>e!!,!!!>,!!!>!>},<},<>},{!>},,<,<>,{{<'''>}}},{{{o'!>i{!>},},},{{},{{<>},{{{<",},!!!!o!>},,},{<}!!,!>ii,}}}}},{{,!>},,<>,,!i!>},<'i>},{<!eiu}!>,},},<>}}},{{}},{{},>},{,"!!!!!>!i!!!>!>!><{ae!!!>o!>},<>}}}},{{{}!!!>u"o''"!ai!>,,{{!!!!,!>},<{!>,{},<'i!<'>},{>}}},,i>},{{!!!>"!>},a>}}}},{{{{{,,<'!>,<,<">},,},,!!o!!o!!!!o!!!!>},{{<'u!>a!>,<>},!i<}aouu'<,>},{{{"!!!>,}ea!!}!>!>,!>!ai}!!}>},{{{},}},{<,!!!!!!!><>}},{{},<'e>,,!i,!!!>ea>},{{<,>,o!u,i!>u!!!!u!!!!!!!>},<}{!!>}},{{<}!>,,>}}}},{},{,<},,}}},{{{},},,!>!!!!"{>}},{}},{{{<e!ooa!!!>},<",!>},},{<}}u{!!"!>},<"!!o!!!>,u!!a!!!>},<>}},{{},'{"!>},<}!>,"e>},{{},<>,{!!u>}},{},,!!i!>,}},!!!!e",>},{{<}!!!>!>},,{{<"ou!!{{!>,<''euu>}}},{{},{}}}}}},{{{{,,,'!!>}},{{,{<{}oe}!o!>!!!!>}},{{}},{{<,<{{,!!!>},<'e!!!!!!,!!!>!!!!!!!!>}}}},{{},{{}},{{},<}!>,},}}},{{{<<}o!!!>!}!}>},<"i"ei<}!!!!ae,!>,!!u>},{{{"{o!!!>!!!>ii!!!!!}!!"!!u!!!>,e!!<>},{'ou!'""!"i!!!>,>}},,<},<"!>,<>}},{{}}}}},{{{{{},<'e!!'>},{{!e,!>},<,'!>},!!!>},<,!!a,ie!!o!>},,{!!!!!>!>},!!oi>}},{o!!!>e!>,,,!!a"!!,{a,>}}},{{a!!!!!>!!!>>},{{{}!ueae!>!>{o!!!!!>!!"!!!>!>!ua>}},}>}},{{{{<'u,!e!{"!!{!!{"''"a}{u!}>},,},},},},}},{{{,ui!!!>!>}i},{{{,},<"!,'!!!!aa'!!!!,>}},{!>},{!!!!">}}},{{<'u!!{!}{>,,<}e}!>},<>}},{!>,,{<>}}},{{<{!>},,<,>},{{{},{},<{u!>,<'au>}},{{<{a!o,!!{{"!>!!!>!>},<'{'<>}}}},{}},{{{{{!>,<<'ei!,!!!>iu!>e!!!>!!>}},,},,!!!>},},{{},{!>!}},{{{},{},{<}"!>,!!}'!>},!!!>i!!>,{<},ei!!!>!>,}}},{}}}}},{{{<}>},{eu>,{!!!>},o"u!!>,<}!!!>i!!!!!!!>!>},}},{{},{<'e'!>!>},!!i!!!>!!!!"{<}>}}},{{,<{i>,{{"!!!>>}}},{{,,!!!>"!},,e>}},{{{{,<>},{,}},!>,<u>},{},{{{,,<,!>,,<>},{}},{}}}},{{{{<>},{,{{{o!>},<}e}a"{e!!!>,,},<>}}}}}},{{{<,!{>}},{}},{}}}},{{{{},{{<!!!!!!!>!>},},},<,!!!>'!!!!!>,!!!>''">,{{},{<{}{'!>>}}}},{}},{{{}},{{{<>}},{},<>}}},{},{{{{},{>}}},{{{},,},<{aoi'!!>}}}},{{{{{},{<'!>}!!!>,i!o!!!>i!!!>},<"!>,!>!!{!>,,,},{},!!e>,{<},!!!>!>,},!>!!>}}},{{'!!!>!!e!!!,'>}}},{{{}},{{{},<>},<}e!'i>},{{{ue!!!>},<{uu!!!>}!!{'>,{{!e!>,''!}",!a'>}}},{{"!!!>},<}{!!}>},{},},<},,,}}},{{,{<}i!!!>!>,!!,!!!>{>,},,e!>,}}}}},{!>,,u{eu!>},,}},{{{},<'!!'ii,"!!uu!>!'e>}}},{{{{,<,>},<>},{}}}},{{!!,!>},,{}},{{}}}},{{{<{!!'e!!!>!>},"o!!,!>},<>},{{},,<'!!!>a{!!,e!!!!!>a!>,!,<>}}},{{{o>,{,'a{!!!>,>}},{{{<,oiu{!!!!!!!>},},{<}}}},{},<""!!!>!>,<,ooe!!{!!!>},,<>}},{{<>},{},{{{,,!>},<,>},{},!!<'u>}},{{},<>}}},{{,,},i"!!!!{!!!!}ao!>},<}!!'i!!!!!!>},{{},a!"!!u!!"a!!e>},,,<}!!e!>},},},{{!!!>}}!!!!!>i!>},},<">,<{!!u!!,a'o{!>,},{{<,<{>},{{{o!>!>e}i">},{{!>,<},},{,'!!}o!!!>!!!>a!>,<!!!!!!{!>>}}},<{},{},<}e'e{>}},{{<'!>,},!!!>oi'!!!>},<'o<>},{{{!>!!!>!>},},,},{}},{!!!>!>}},{},<<}!!aa"!>},<"!>}a{!>},!uo>}}}}}}},{{{{<{!}>},{{}},{}},{},{{<,!>"!!!>!>,},<}i!'u'!!!>!>!>},<{a>,{!!!>!>,!a",!>},},}},{<{u!>{,!>!!,o!i!!!>!!!!"uo"!>,},<,!i>}}},{{{<},,<,>,<,!!!!!>}o!>,!>,<"io!>},<}!',"!o>},{<}!!{'{!!!!<{!ai!!!>"!},{},,a!>,!>},},aa>,{},<}!!o'"i!!u<}a>}}},{{{{{<>},{<<}uoa,'!e!!e!!!>!{o!!!i>}}},{eou!!!>!a!!!ei}!{u!!!a!!!,,,}},{{,},{{{},{}}}}}},{{},{{{{<'!!e!i!>u!>},{!!uu"!>},,{}}},{{}}},{{,<'!>,,<,',!>,<>,{{{e}"!!i<>}},},!>},}},{<"!a',"a>}}},{{{<<,!>},,},<u>},{{{}},{o!>,!>,<>,<>},{}},{{},{<"!>,,{<>}}}},{{{<{!"!>i"!!}},{<>,}},{{{<{!!!>oe!'!!!!!>!>!>},,!!!e{a>}},{{<"!>,u!!,!>a{,{},,<,,'!,!o!>},}},},}!"'"o!!o!>}>},{'ue!!!>,<'ia}{!>},,<{o,<>}},{{{{{<>}},},!>},i>},{{},{{},<}{o!>,!!!>,!!!>!>,}}},{{{,a"!!i!>},},{}},{,!!!>{ue!e,!>,,,,<>}}},{{},>}}}}},{{{<,>,<{!>},<{!,{,>},{<!>!!!>a!>},,>,,o!!"!>a!!!>,!!!>>},{<{o{uuo<,o!!!>!!!>!!!>}>,{}}}},{{},{{{},{}},{{},},<>},},},a!!e!>i>}},{{{{{{{{{u!!!>!!!>!ui'{!>},<>}},{}},{}}},{>},{}},{{{{}},{{{<}uei!>},,,<>}},{{i!!!>},!>},},},,!!!>i!!!>oe}!o>},{{{!>,ee!!!a!>!!!>>}}}},{{!!<,{}}},{{{},i!!'!>!!!!!>!>,<">},{{<'!!!!!>u!>,!!o!>,<>}},{{},{}}},{{{{},{{{,}}},{,},<>}},{{{!!>}},{,!!{!>,<>}},{{{}},{{{{},<>},<{!!!>,},{{<{<<>},,!!e!!!>!>!!>}}},{{,},{{{<}!!!>!>,},}},{!>,<}aua}!>},<}!!!>!!!o'>,{<'",}"}>}}}}}},{{{},>},{{!>"'!!!<}!io!!!!u!!!>!>>}}},{}},{{}}}},{{{<>},{{>}},{{'>}}},{{{<{!!!>e!>!!!>e"!,}u>},{}>,'!"ae},{{,<"!>},},>},{}}},{{{{<>}},{e>,{{,<"!}'u!>,!"",!!!>>},{,},},,,!!!>>}}},{{<}'{!!a!!!>!!o!>!{!>},},{<{!!!>{>}}},{},{{{{{}},{{{},{}},{}>,{{<<},!>,<,ea!oi!!'a!!!"!!!>!>,u>},<>}}}},{{<>}},{{{{,<{!e!>,},{!>},<"!"o',ua'"!>},}},{},{{!!'u!e!>,<"!>,<>}},{{{!!"!"o!>!>,>},<,a},,>},{{}},{{{<}'!!!!!>},<}{>}}}}}},{{<}e{!!ieia"a!>!eeu!!i!>>,{"i>}},{{<'<,!'!!!>!>},,>},{{<"!ou>,!,!!>}}},{{<}u!o>},!>,}}},{{{!!!ii!!!>>},{},>,<"oi}"o'!>!'!>!u>},{{<!!"o!!i!!,e}{!!"i!!!><>},{}}}}},{{{{{},!>'>}},{{<'>},{<,!!eie!>},},!!!>'"!!!!>,ou<>},{{}}},{{{{!>},!}"}!>},<}!!u>,<"!>,<"!!"o!>},<>},{{}}}}}},{{{"!>!!!>oi{!!!!},!>"<}>},{{<}!!ee!>!!!!ea!!!!!!!><,!>>},,,iii{a}a!o>}},{,},'!!!>'!!!>},,{,,!{{,!{u!>,<}!!!!!!,>}},{}},{{{,<,}a!!o!e}!!!>>}},{{<'!>},!>a!>,'>}}},{{{{<}!>,},<>}},{<}!!!>!!!>!!e!>,}},{{<}"i,i{!>,<<,}!>}!},<!i>},{}}}},{{{,}}}},{{{<>},{}}},{{},{},{{{},{<'!ou{>}},!>!>},<{!>,}}},{{!!"!!!>!>,!!!>!>,<{u!!!>},"!!>}},{{{!},},},,<}>},{{{},{{'{a,o!!ii">}},{},<},!',,{{}}}},{},{{!>},<,!!!>}!>}!!ou!}ia'i>,},!>!>},,},},e">}},{<{!!auo!>,},<,<'!!!>ie}"u>}}},{{<>,{{}}},{{{{},>},{!>},<{!>},},<,!>},<'>}},{},{<"!!!!i!!{"o!!a}!o!!!>!>'>}}},{{,<>,{,,,!<,<">}},{<<'>}}}}}} diff --git a/2017/src/bin/day_1.rs b/2017/src/bin/day_1.rs new file mode 100644 index 0000000..5d0e431 --- /dev/null +++ b/2017/src/bin/day_1.rs @@ -0,0 +1,24 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let number_chars = args.input[0].chars().collect::>(); + + let mut sum = 0; + + for i in 0..number_chars.len() { + let next = if args.part == 1 { + (i + 1) + } else { + (i + number_chars.len() / 2) + } % number_chars.len(); + if (number_chars[i] == number_chars[next]) { + let parsed: i32 = number_chars[i].to_string().parse().unwrap(); + sum += parsed; + } + } + + println!("Sum is {}", sum); +} diff --git a/2017/src/bin/day_10.rs b/2017/src/bin/day_10.rs new file mode 100644 index 0000000..faec18a --- /dev/null +++ b/2017/src/bin/day_10.rs @@ -0,0 +1,63 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let lengths: Vec = if args.part == 1 { + args.input[0].split(",").map(|x| x.parse().unwrap()).collect() + } else { + let suffix: [usize; 5] = [17, 31, 73, 47, 23]; + args.input[0].as_bytes() + .iter().map(|&x| x as usize) + .chain(suffix.iter().cloned()) + .collect() + }; + + let mut position = 0; + let mut list: Vec = (0..256).collect(); + + if args.part == 1 { + hash_round(&mut list, &lengths, &mut position, 0); + } else { + for i in 0..64 { + let skip = lengths.len() * i; + hash_round(&mut list, &lengths, &mut position, skip); + } + } + + + if args.part == 1 { + let answer = list[0]*list[1]; + println!("{}", answer); + } else { + let mut current_char = 0; + for (i, l) in list.iter().enumerate() { + current_char = current_char ^ l; + if i % 16 == 15 { + print!("{:02x}", current_char); + current_char = 0; + } + } + println!(""); + } +} + +fn hash_round(list: &mut Vec, lengths: &Vec, position: &mut usize, skip: usize) { + for (inner_skip, &length) in lengths.iter().enumerate() { + reverse(list, *position, length); + *position = (*position + length + skip + inner_skip) % list.len(); + } +} + +fn reverse(list: &mut Vec, position: usize, length: usize) { + let mut a = position; + let mut b = position + length - 1; + let len = list.len(); + while a < b { + list.swap(a%len, b%len); + + a += 1; + b -= 1; + } +} diff --git a/2017/src/bin/day_11.rs b/2017/src/bin/day_11.rs new file mode 100644 index 0000000..ffb0833 --- /dev/null +++ b/2017/src/bin/day_11.rs @@ -0,0 +1,57 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let directions: Vec<&str> = args.input[0].split(",").collect(); + + let mut x = 0.0; + let mut y = 0.0; + + let mut max_away = 0.0; + + for dir in directions { + y += match dir { + "ne" => 0.5, + "n" => 1.0, + "nw" => 0.5, + "se" => -0.5, + "s" => -1.0, + "sw" => -0.5, + _ => panic!("Unexpected direction {}", dir) + }; + + x += match dir { + "ne" => -0.5, + "n" => 0.0, + "nw" => 0.5, + "se" => -0.5, + "s" => 0.0, + "sw" => 0.5, + _ => panic!("Unexpected direction {}", dir) + }; + + let current_distance = tile_distance(x, y); + if current_distance > max_away { + max_away = current_distance; + } + } + + if args.part == 1 { + println!("Child process is {} away", tile_distance(x, y)); + } else { + println!("At most, child process was {} away", max_away); + } + +} + +fn tile_distance(x: f32, y: f32) -> f32 { + let tiles_x = x.abs()*2.0; + let tiles_y = if y.abs() < tiles_x { + 0.0 + } else { + y.abs() - tiles_x + }; + tiles_x + tiles_y +} diff --git a/2017/src/bin/day_12.rs b/2017/src/bin/day_12.rs new file mode 100644 index 0000000..39f05e9 --- /dev/null +++ b/2017/src/bin/day_12.rs @@ -0,0 +1,52 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +use std::cmp; + +fn main() { + let args = AdventArgs::init(); + + let mut groups: Vec> = vec!(vec!(0)); //0 in the first group + + for line in args.input { + let mut words_iter = line.split_whitespace(); + let current: i32 = words_iter.next().unwrap().parse().unwrap(); + if find_group(&groups, current).is_none() { + groups.push(vec!(current)); + } + words_iter.next().unwrap(); //<-> + for other_str in words_iter { + let other: i32 = other_str.trim_right_matches(",").parse().unwrap(); + + match (find_group(&groups, current), find_group(&groups, other)) { + (Some(current_group), Some(other_group)) if current_group != other_group => { + merge_groups(&mut groups, current_group, other_group); + }, + (Some(_), Some(_)) => { + }, + (Some(current_group), None) => { + groups[current_group].push(other); + }, + (None, _) => panic!("Current group not found!") + }; + } + } + + if args.part == 1 { + println!("First group has {} members", groups[0].len()); + } else { + println!("Total of {} groups", groups.len()); + } +} + +fn find_group(groups: &Vec>, x: i32) -> Option { + groups.iter().position(|group| group.contains(&x)) +} + +fn merge_groups(groups: &mut Vec>, a: usize, b: usize) { + let src = cmp::max(a, b); + let dest = cmp::min(a, b); + + let mut from = groups.swap_remove(src); + groups[dest].append(&mut from) +} diff --git a/2017/src/bin/day_13.rs b/2017/src/bin/day_13.rs new file mode 100644 index 0000000..e85b541 --- /dev/null +++ b/2017/src/bin/day_13.rs @@ -0,0 +1,46 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +use std::collections::HashMap; + +fn main() { + let args = AdventArgs::init(); + + let input: HashMap = args.input.iter().map(|line| { + let mut split_line = line.split(": "); + (split_line.next().unwrap().parse().unwrap(), split_line.next().unwrap().parse().unwrap()) + }).collect(); + + if args.part == 1 { + let severity = calculate_severity(&input, 0, &args); + println!("Severity: {}", severity); + } else { + let optimal_delay = (0u32..).find(|&delay| calculate_severity(&input, delay, &args) == 0).unwrap(); + println!("Wait {} picoseconds", optimal_delay); + } +} + +fn calculate_severity(input: &HashMap, delay: u32, args: &AdventArgs) -> u32 { + let mut severity = 0; + let max_depth = input.keys().max().cloned().unwrap(); + + for depth in 0..max_depth+1 { + severity += match input.get(&depth) { + Some(range) => { + let position = (depth + delay) % (2*range-2); + + if position == 0 { + if args.part == 1 { + range * depth + } else { + range * depth + 1 + } + } else { + 0 + } + }, + None => 0 + }; + } + severity +} diff --git a/2017/src/bin/day_14.rs b/2017/src/bin/day_14.rs new file mode 100644 index 0000000..778a57f --- /dev/null +++ b/2017/src/bin/day_14.rs @@ -0,0 +1,52 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + let input = args.input[0].clone(); + + let mut used = 0; + let mut grid: Vec> = vec!(vec!(false; 128); 128); + for i in 0..128 { + let to_hash = format!("{}-{}", input, i); + let hash = knot_hash(&to_hash); + for (x1,c) in hash.chars().enumerate() { + let parsed = u32::from_str_radix(&c.to_string(), 16).unwrap(); + used += parsed.count_ones(); + for (x2,b) in format!("{:04b}",parsed).chars().enumerate() { + grid[i][4*x1+x2] = b == '1'; + } + } + } + + if args.part == 1 { + println!("{} is used", used); + } else { + let mut group_count = 0; + for start_y in 0..128 { + for start_x in 0..128 { + if grid[start_y][start_x] { + group_count += 1; + clear_group(&mut grid, Point{ + x: start_x as i32, + y: start_y as i32 + }); + } + } + } + println!("{} groups", group_count); + + } +} + +fn clear_group(grid: &mut Vec>, point: Point) { + if point.x >= 0 && point.x < 128 && point.y >= 0 && point.y < 128 { + if grid[point.y as usize][point.x as usize] { + grid[point.y as usize][point.x as usize] = false; + clear_group(grid, point.up()); + clear_group(grid, point.down()); + clear_group(grid, point.left()); + clear_group(grid, point.right()); + } + } +} diff --git a/2017/src/bin/day_15.rs b/2017/src/bin/day_15.rs new file mode 100644 index 0000000..29b63ad --- /dev/null +++ b/2017/src/bin/day_15.rs @@ -0,0 +1,40 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let mut a: u64 = 591; + let mut b: u64 = 393; + + let mut matches: u64 = 0; + + let comparisons = if args.part == 1 { + 40_000_000 + } else { + 5_000_000 + }; + + for _ in 0..comparisons { + a = (a * 16807) % 2147483647; + b = (b * 48271) % 2147483647; + + while args.part != 1 && a % 4 != 0 { + a = (a * 16807) % 2147483647; + } + while args.part != 1 && b % 8 != 0 { + b = (b * 48271) % 2147483647; + } + + if lower_16_match(a, b) { + matches += 1; + } + } + + println!("There were {} matches", matches); +} + +fn lower_16_match(a: u64, b: u64) -> bool { + let mask = 65535; //2^16-1, ie 16 ones + (a & mask) == (b & mask) +} diff --git a/2017/src/bin/day_16.rs b/2017/src/bin/day_16.rs new file mode 100644 index 0000000..9676714 --- /dev/null +++ b/2017/src/bin/day_16.rs @@ -0,0 +1,87 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +extern crate regex; +use regex::Regex; + +fn main() { + let args = AdventArgs::init(); + + let spin_re = Regex::new(r"s(\d+)").unwrap(); + let exchange_re = Regex::new(r"x(\d+)/(\d+)").unwrap(); + let partner_re = Regex::new(r"p(\w)/(\w)").unwrap(); + let input: Vec = args.input[0] + .split(',') + .map(|instruction| { + if let Some(caps) = spin_re.captures(instruction) { + let spin_amount: usize = caps[1].parse().unwrap(); + Instruction::Spin(spin_amount) + } else if let Some(caps) = exchange_re.captures(instruction) { + let position_a: usize = caps[1].parse().unwrap(); + let position_b: usize = caps[2].parse().unwrap(); + Instruction::Exchange(position_a, position_b) + } else if let Some(caps) = partner_re.captures(instruction) { + let program_a = caps[1].chars().next().unwrap(); + let program_b = caps[2].chars().next().unwrap(); + Instruction::Partner(program_a, program_b) + } else { + panic!("Unhandled instruction: {}", instruction) + } + }) + .collect(); + + let mut states = vec!("abcdefghijklmnop".chars().collect()); + if args.part == 1 { + let answer = run(&input, &states.last().unwrap()); + println!("{}", answer.iter().collect::()); + } else { + let repetitions = 1_000_000_000; + let mut cycle_found = false; + let mut cycle_start = 0; + while !cycle_found { + let next = run(&input, &states.last().unwrap()); + if let Some(i) = states.iter().position(|&ref x| *x == next) { + cycle_found = true; + cycle_start = i; + } else { + states.push(next); + } + } + println!("Cycle found after pushing {} states", states.len()); + println!("Cycle starts at {} states", cycle_start); + + let solution_index = (repetitions - cycle_start) % (states.len() - cycle_start); + println!("{}", states[solution_index].iter().collect::()); + + } +} + +enum Instruction { + Spin(usize), + Exchange(usize, usize), + Partner(char, char) +} + +fn run(instructions: &[Instruction], start: &Vec) -> Vec { + let mut programs = start.clone(); + for instruction in instructions { + match instruction { + &Instruction::Exchange(a, b) => { + programs.swap(a, b); + }, + &Instruction::Spin(spin_amount) => { + for _ in 0..spin_amount { + //this may be slow, but will suffice for right now + let end = programs.pop().unwrap(); + programs.insert(0, end); + } + }, + &Instruction::Partner(program_a, program_b) => { + let position_a: usize = programs.iter().position(|&x| x == program_a).unwrap(); + let position_b: usize = programs.iter().position(|&x| x == program_b).unwrap(); + programs.swap(position_a, position_b); + } + } + } + programs +} diff --git a/2017/src/bin/day_17.rs b/2017/src/bin/day_17.rs new file mode 100644 index 0000000..09d6fdc --- /dev/null +++ b/2017/src/bin/day_17.rs @@ -0,0 +1,47 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + let step_size: usize = args.input[0].parse().unwrap(); + + let inserts = if args.part == 1 { + 2017 + } else { + 50_000_000 + }; + + let mut buffer = Vec::with_capacity(inserts + 1); + buffer.push(0); + let mut position = 0; + + for i in 0..inserts as u32 { + let to_insert = i+1; + // the +1 is because they want it to insert AFTER the element + // that adding position ends on + position = ((position + step_size) % buffer.len()) + 1; + if args.part == 2 && position != 1 { + // for big vectors, push is MUCH more efficient than + // insert (O(C) vs O(n)). In part 2, we want the element + // after 0, which will always be index 1. It only needs to + // be inserted into the right place if it's actually going + // to be in position 1. + // + // If I wasn't meshing the solution with part 1, there + // probably wouldn't even be a vector, just tracking the + // length and index 1. + buffer.push(to_insert); + } else { + buffer.insert(position, to_insert); + } + } + + let answer_position = if args.part == 1 { + (position+1)%buffer.len() + } else { + 1 + }; + + let answer = buffer[answer_position]; + println!("{}", answer); +} diff --git a/2017/src/bin/day_18.rs b/2017/src/bin/day_18.rs new file mode 100644 index 0000000..f763f1f --- /dev/null +++ b/2017/src/bin/day_18.rs @@ -0,0 +1,207 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +use std::str::FromStr; +use std::collections::HashMap; +use std::sync::mpsc::*; + +fn main() { + let args = AdventArgs::init(); + + let instructions: Vec = args.input.iter() + .map(|line| line.parse().unwrap()) + .collect(); + + let (sender0, receiver0) = channel(); + let (sender1, receiver1) = channel(); + + let mut program0 = Program::new(0, instructions.clone(), sender0, receiver1, args.part == 1); + + if args.part == 1 { + program0.run(); + let mut answer = 0; + while let Ok(x) = receiver0.try_recv() { + answer = x; + } + + println!("Last sent value: {}", answer); + } else { + let mut program1 = Program::new(1, instructions.clone(), sender1, receiver0, args.part == 1); + + while !(program0.terminated && program1.terminated) && (program0.run() || program1.run()) { + } + + + println!("Program 0 sent {} messages", program0.sent_count); + println!("Program 1 sent {} messages", program1.sent_count); + } + + +} + +struct Program { + instructions: Vec, + registers: HashMap, + pc: i64, + terminated: bool, + sender: Sender, + sent_count: u64, + receiver: Receiver, + part1: bool +} + +impl Program { + fn new(process_id: i64, instructions: Vec, sender: Sender, receiver: Receiver, part1: bool) -> Program { + let mut reg = HashMap::new(); + if !part1 { + reg.insert('p', process_id); + } + Program { + instructions: instructions, + registers: reg, + pc: 0, + terminated: false, + sender: sender, + sent_count: 0, + receiver: receiver, + part1: part1 + } + } + fn run(&mut self) -> bool { + use Instruction::*; + + let mut blocked = false; + let mut did_something = false; + + while !blocked && !self.terminated { + if self.pc < 0 || self.pc as usize >= self.instructions.len() { + self.terminated = true; + } + else { + let ins = self.instructions[self.pc as usize].clone(); + + match ins { + Snd(x) => { + self.sent_count += 1; + self.sender.send(self.get(x)).ok(); + }, + Set(x, y) => { + let y_val = self.get(y); + self.set(x, y_val); + }, + Add(x, y) => { + let x_val = self.get(x); + let y_val = self.get(y); + self.set(x, x_val + y_val); + }, + Mul(x, y) => { + let x_val = self.get(x); + let y_val = self.get(y); + self.set(x, x_val * y_val); + }, + Mod(x, y) => { + let x_val = self.get(x); + let y_val = self.get(y); + self.set(x, x_val % y_val); + }, + Rcv(x) => { + if self.part1 { + blocked = self.get(x) != 0; + } else { + match self.receiver.try_recv() { + Ok(y) => { + self.set(x, y); + }, + Err(_) => { + blocked = true; + return did_something; + } + } + } + }, + Jgz(x, y) => { + if self.get(x) > 0 { + self.pc = self.pc + self.get(y) - 1; + } + }, + } + self.pc += 1; + did_something = true; + } + } + true + } + + fn get(&self, register: Data) -> i64 { + use Data::*; + match register { + Register(c) => self.registers.get(&c).cloned().unwrap_or(0), + Literal(i) => i + } + } + + fn set(&mut self, register: Data, value: i64) { + use Data::*; + match register { + Register(c) => { + self.registers.insert(c, value); + }, + _ => {} + } + } +} + +#[derive(Debug, Clone)] +enum Instruction { + Snd(Data), + Set(Data, Data), + Add(Data, Data), + Mul(Data, Data), + Mod(Data, Data), + Rcv(Data), + Jgz(Data, Data) +} + +impl FromStr for Instruction { + type Err = String; + + fn from_str(s: &str) -> Result { + use Instruction::*; + + let mut str_iter = s.split_whitespace(); + let ins = str_iter.next(); + let x = str_iter.next().map(|x| x.parse::()); + let y = str_iter.next().map(|x| x.parse::()); + + match (ins, x, y) { + (Some("snd"), Some(Ok(x)), _) => Ok(Snd(x)), + (Some("set"), Some(Ok(x)), Some(Ok(y))) => Ok(Set(x, y)), + (Some("add"), Some(Ok(x)), Some(Ok(y))) => Ok(Add(x, y)), + (Some("mul"), Some(Ok(x)), Some(Ok(y))) => Ok(Mul(x, y)), + (Some("mod"), Some(Ok(x)), Some(Ok(y))) => Ok(Mod(x, y)), + (Some("rcv"), Some(Ok(x)), _) => Ok(Rcv(x)), + (Some("jgz"), Some(Ok(x)), Some(Ok(y))) => Ok(Jgz(x, y)), + (_, _, _) => Err(format!("Unknown instruction {}", s)) + } + } +} + +#[derive(Debug, Clone, Copy)] +enum Data { + Literal(i64), + Register(char) +} + +impl FromStr for Data { + type Err = String; + + fn from_str(s: &str) -> Result { + use Data::*; + + match (s.parse(), s.chars().next()) { + (Ok(num), _) => Ok(Literal(num)), + (Err(_), Some(c)) => Ok(Register(c)), + (_, _) => Err(format!("Invalid data {}", s)) + } + } +} diff --git a/2017/src/bin/day_19.rs b/2017/src/bin/day_19.rs new file mode 100644 index 0000000..b333c98 --- /dev/null +++ b/2017/src/bin/day_19.rs @@ -0,0 +1,78 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + use Direction::*; + + let args = AdventArgs::init(); + + let input: Vec> = args.input.iter().map(|line| line.chars().collect()).collect(); + + let mut position = Point { + x: input[0].iter().position(|&c| c == '|').unwrap() as i32, + y: 0 + }; + + let mut direction = Down; + let mut path_ended = false; + let mut tokens = Vec::new(); + + // moving onto the map counts as one, but because of how I'm + // counting there's also an off the map step that I shouldn't be + // counting at the end. They cancel out. + let mut steps_moved = 0; + + while !path_ended { + position = position.shift(&direction); + steps_moved += 1; + + match char_at(&input, &position) { + '|' | '-' => { + //continue as is + }, + ' ' => { + path_ended = true; + }, + '+' => { + let left_option = char_at(&input, &position.shift(&direction.rotate_left())); + let right_option = char_at(&input, &position.shift(&direction.rotate_right())); + match (left_option, right_option) { + (' ', ' ') => { + path_ended = true; + }, + (_, ' ') => { + direction = direction.rotate_left(); + }, + (' ', _) => { + direction = direction.rotate_right(); + }, + _ => { + panic!("Don't know where to go from {:?}", position); + } + } + }, + token => { + tokens.push(token); + } + } + + } + + if args.part == 1 { + println!("{}", tokens.iter().collect::()); + } else { + println!("{}", steps_moved); + } +} + +fn char_at(input: &Vec>, position: &Point) -> char { + if position.y < 0 || + position.x < 0 || + position.y as usize >= input.len() || + position.x as usize >= input[position.y as usize].len() { + ' ' + } else { + input[position.y as usize][position.x as usize] + } + +} diff --git a/2017/src/bin/day_2.rs b/2017/src/bin/day_2.rs new file mode 100644 index 0000000..307029a --- /dev/null +++ b/2017/src/bin/day_2.rs @@ -0,0 +1,26 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + let sum = args.input.iter().map(|line| { + let splitline = parse_space_separated_ints(line).unwrap(); + + if args.part == 1 { + let max = splitline.iter().max().unwrap(); + let min = splitline.iter().min().unwrap(); + max-min + } else { + for i in 0..splitline.len() { + for j in 0..splitline.len() { + if i != j && splitline[i] % splitline[j] == 0 { + return splitline[i] / splitline[j]; + } + } + } + panic!("Didn't find a dividing one! {:?}", splitline) + } + }).sum::(); + + println!("Checksum is {}", sum); +} diff --git a/2017/src/bin/day_20.rs b/2017/src/bin/day_20.rs new file mode 100644 index 0000000..f528675 --- /dev/null +++ b/2017/src/bin/day_20.rs @@ -0,0 +1,89 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +extern crate regex; +use regex::Regex; + +#[macro_use] +extern crate lazy_static; + +use std::str::FromStr; + +fn main() { + let args = AdventArgs::init(); + + let mut particles: Vec = args.input.iter() + .map(|line| line.parse().unwrap()) + .collect(); + + // I took eventually to be after a largish number. Seemed to work + // out, but I'm sure there is a more mathematical way to work it + // out. + for _ in 0..1000 { + particles = particles.iter().map(|p| p.step()).collect(); + if args.part == 2 { + let before_collisions = particles.clone(); + particles.retain(|p| { + before_collisions.iter().filter(|p2| p2.position == p.position).count() == 1 + }); + } + } + + if args.part == 1 { + let (closest, _) = particles.iter().enumerate().min_by_key(|&(_, p)| p.position.manhattan_distance()).unwrap(); + println!("Closest to 0: {}", closest); + } else { + let remaining = particles.iter().count(); + println!("Remaining: {}", remaining); + } + +} + +#[derive(Debug, Clone)] +struct Particle { + position: Point3d, + velocity: Point3d, + acceleration: Point3d +} + + +impl Particle { + fn step(&self) -> Particle { + let v = self.velocity + self.acceleration; + Particle { + position: self.position + v, + velocity: v, + acceleration: self.acceleration + } + } +} + +impl FromStr for Particle { + type Err = String; + + fn from_str(s: &str) -> Result { + lazy_static!{ + static ref RE: Regex = Regex::new(r"p=<(-?\d+),(-?\d+),(-?\d+)>, v=<(-?\d+),(-?\d+),(-?\d+)>, a=<(-?\d+),(-?\d+),(-?\d+)>").unwrap(); + }; + + let caps = RE.captures(s).unwrap(); + Ok(Particle { + position: Point3d { + x: caps[1].parse().unwrap(), + y: caps[2].parse().unwrap(), + z: caps[3].parse().unwrap() + }, + velocity: Point3d { + x: caps[4].parse().unwrap(), + y: caps[5].parse().unwrap(), + z: caps[6].parse().unwrap() + }, + acceleration: Point3d { + x: caps[7].parse().unwrap(), + y: caps[8].parse().unwrap(), + z: caps[9].parse().unwrap() + } + }) + } +} + diff --git a/2017/src/bin/day_21.rs b/2017/src/bin/day_21.rs new file mode 100644 index 0000000..7f7ac79 --- /dev/null +++ b/2017/src/bin/day_21.rs @@ -0,0 +1,200 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +extern crate regex; +use regex::Regex; + +fn main() { + let args = AdventArgs::init(); + + let (t2, t3) = parse_transforms(&args.input); + + let mut picture = vec!( + vec!(false, true, false), + vec!(false, false, true), + vec!(true, true, true) + ); + + let iterations = if args.part == 1 { + 5 + } else { + 18 + }; + for _ in 0..iterations { + picture = expand(&picture, &t2, &t3); + } + + let ones: usize = picture.iter().map( + |row| row.iter().filter(|&&x| x).count() + ).sum(); + println!("{} ones", ones); +} + +fn print(picture: &Vec>) { + for row in picture { + for &c in row { + print!("{}", if c {"#"} else {"."}); + } + println!(); + } + println!(); +} + +fn expand(picture: &Vec>, t2: &Vec, t3: &Vec) -> Vec> { + let size = picture.len(); + let div = if size % 2 == 0 { 2 } else { 3 }; + let segments = size / div; + let new_size = size + segments; + + let mut result = vec!(vec!(false; new_size); new_size); + + for i in 0..segments { + let y = i*div; + let v = i*(div+1); + for j in 0..segments { + let x = j*div; + let u = j*(div+1); + if div == 2 { + let init = [ + [picture[y][x], picture[y][x+1]], + [picture[y+1][x], picture[y+1][x+1]] + ]; + let pattern = t2.iter().find(|p| p.matches(&init)).expect(&format!("No pattern matches {:?}", init)); + let to = pattern.to; + + for a in 0..div+1 { + for b in 0..div+1 { + result[v+a][u+b] = to[a][b]; + } + } + } else { + let init = [ + [picture[y][x], picture[y][x+1], picture[y][x+2]], + [picture[y+1][x], picture[y+1][x+1], picture[y+1][x+2]], + [picture[y+2][x], picture[y+2][x+1], picture[y+2][x+2]] + ]; + let pattern = t3.iter().find(|p| p.matches(&init)).expect(&format!("No pattern matches {:?}", init)); + let to = pattern.to; + + for a in 0..div+1 { + for b in 0..div+1 { + result[v+a][u+b] = to[a][b]; + } + } + } + } + } + + result +} + +fn parse_transforms(input: &Vec) -> (Vec, Vec) { + let t2_re = Regex::new(r"^(.)(.)/(.)(.) => (.)(.)(.)/(.)(.)(.)/(.)(.)(.)$").unwrap(); + let t3_re = Regex::new(r"^(.)(.)(.)/(.)(.)(.)/(.)(.)(.) => (.)(.)(.)(.)/(.)(.)(.)(.)/(.)(.)(.)(.)/(.)(.)(.)(.)$").unwrap(); + + let mut t2 = Vec::new(); + let mut t3 = Vec::new(); + for line in input { + if let Some(t2_caps) = t2_re.captures(line) { + t2.push(Transform2 { + from: [ + [&t2_caps[1] == "#", &t2_caps[2] == "#"], + [&t2_caps[3] == "#", &t2_caps[4] == "#"] + ], + to: [ + [&t2_caps[5] == "#", &t2_caps[6] == "#", &t2_caps[7] == "#"], + [&t2_caps[8] == "#", &t2_caps[9] == "#", &t2_caps[10] == "#"], + [&t2_caps[11] == "#", &t2_caps[12] == "#", &t2_caps[13] == "#"] + ] + }); + } else if let Some(t3_caps) = t3_re.captures(line) { + t3.push(Transform3 { + from: [ + [&t3_caps[1] == "#", &t3_caps[2] == "#", &t3_caps[3] == "#"], + [&t3_caps[4] == "#", &t3_caps[5] == "#", &t3_caps[6] == "#"], + [&t3_caps[7] == "#", &t3_caps[8] == "#", &t3_caps[9] == "#"] + ], + to: [ + [&t3_caps[10] == "#", &t3_caps[11] == "#", &t3_caps[12] == "#", &t3_caps[13] == "#"], + [&t3_caps[14] == "#", &t3_caps[15] == "#", &t3_caps[16] == "#", &t3_caps[17] == "#"], + [&t3_caps[18] == "#", &t3_caps[19] == "#", &t3_caps[20] == "#", &t3_caps[21] == "#"], + [&t3_caps[22] == "#", &t3_caps[23] == "#", &t3_caps[24] == "#", &t3_caps[25] == "#"] + ] + }); + } + } + + (t2, t3) +} + +#[derive(Debug)] +struct Transform2 { + from: [[bool; 2]; 2], + to: [[bool; 3]; 3] +} + +impl Transform2 { + fn rotate(from: &[[bool;2];2]) -> [[bool;2];2] { + [ + [from[1][0],from[0][0]], + [from[1][1],from[0][1]] + ] + } + + fn flip(from: &[[bool;2];2]) -> [[bool;2];2] { + [ + [from[0][1],from[0][0]], + [from[1][1],from[1][0]] + ] + } + + fn matches(&self, other: &[[bool; 2]; 2]) -> bool { + let mut any_match = false; + let mut spinning_other = other.clone(); + for _ in 0..4 { + any_match = any_match || + self.from == spinning_other || + self.from == Transform2::flip(&spinning_other); + + spinning_other = Transform2::rotate(&spinning_other); + } + any_match + } +} + +#[derive(Debug)] +struct Transform3 { + from: [[bool; 3]; 3], + to: [[bool; 4]; 4] +} + +impl Transform3 { + fn rotate(from: &[[bool;3];3]) -> [[bool;3];3] { + [ + [from[2][0],from[1][0],from[0][0]], + [from[2][1],from[1][1],from[0][1]], + [from[2][2],from[1][2],from[0][2]] + ] + } + + fn flip(from: &[[bool;3];3]) -> [[bool;3];3] { + [ + [from[0][2],from[0][1],from[0][0]], + [from[1][2],from[1][1],from[1][0]], + [from[2][2],from[2][1],from[2][0]] + ] + } + + fn matches(&self, other: &[[bool; 3]; 3]) -> bool { + let mut any_match = false; + let mut spinning_other = other.clone(); + for _ in 0..4 { + any_match = any_match || + self.from == spinning_other || + self.from == Transform3::flip(&spinning_other); + + spinning_other = Transform3::rotate(&spinning_other); + } + any_match + } +} diff --git a/2017/src/bin/day_22.rs b/2017/src/bin/day_22.rs new file mode 100644 index 0000000..917ed63 --- /dev/null +++ b/2017/src/bin/day_22.rs @@ -0,0 +1,73 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +use std::collections::HashSet; + +fn main() { + let args = AdventArgs::init(); + let input_width = args.input[0].len(); + let input_height = args.input.len(); + + let mut position = Point { + x: (input_width / 2) as i32, + y: (input_height / 2) as i32, + }; + let mut direction = Direction::Up; + + let mut weakened: HashSet = HashSet::new(); + let mut infected: HashSet = HashSet::new(); + let mut flagged: HashSet = HashSet::new(); + + for (y, line) in args.input.iter().enumerate() { + for (x, c) in line.chars().enumerate() { + if c == '#' { + infected.insert(Point { + x: x as i32, + y: y as i32 + }); + } + } + } + + let mut infections_caused = 0; + + let bursts = if args.part == 1 { + 10_000 + } else { + 10_000_000 + }; + + for _ in 0..bursts { + if args.part == 1 { + if infected.contains(&position) { + direction = direction.rotate_right(); + infected.remove(&position); + } else { + direction = direction.rotate_left(); + infected.insert(position); + infections_caused += 1; + } + } + else { + if weakened.contains(&position) { + infected.insert(position); + weakened.remove(&position); + infections_caused += 1; + } else if infected.contains(&position) { + direction = direction.rotate_right(); + flagged.insert(position); + infected.remove(&position); + } else if flagged.contains(&position) { + direction = direction.rotate_right().rotate_right(); + flagged.remove(&position); + } else { + direction = direction.rotate_left(); + weakened.insert(position); + } + } + position = position.shift(&direction); + } + + println!("Infections caused {}", infections_caused); + +} diff --git a/2017/src/bin/day_23.rs b/2017/src/bin/day_23.rs new file mode 100644 index 0000000..d199af0 --- /dev/null +++ b/2017/src/bin/day_23.rs @@ -0,0 +1,168 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +use std::str::FromStr; + +fn main() { + let args = AdventArgs::init(); + + if args.part == 1 { + let instructions: Vec = args.input.iter() + .map(|line| line.parse().unwrap()) + .collect(); + + let mut program = Program::new(instructions.clone(), args.part == 1); + let mul_called = program.run(); + println!("Mult called {} times", mul_called); + } else { + println!("Result is {}", run_as_rust()); + } + +} + +fn to_register(c: char) -> usize { + (c as u32 - 'a' as u32) as usize +} + +struct Program { + instructions: Vec, + registers: [i64; 8], + pc: i64 +} + +impl Program { + fn new(instructions: Vec, part1: bool) -> Program { + let mut reg = [0; 8]; + if part1 == false { + reg[0] = 1; + } + Program { + instructions: instructions, + registers: reg, + pc: 0 + } + } + fn run(&mut self) -> u32 { + use Instruction::*; + + let mut mul_called = 0; + + while self.pc >= 0 && (self.pc as usize) < self.instructions.len() { + let ins = self.instructions[self.pc as usize].clone(); + + match ins { + Set(x, y) => { + let y_val = self.get(y); + self.set(x, y_val); + }, + Sub(x, y) => { + let x_val = self.get(x); + let y_val = self.get(y); + self.set(x, x_val - y_val); + }, + Mul(x, y) => { + let x_val = self.get(x); + let y_val = self.get(y); + self.set(x, x_val * y_val); + mul_called += 1; + }, + Jnz(x, y) => { + if self.get(x) != 0 { + self.pc = self.pc + self.get(y) - 1; + } + }, + } + self.pc += 1; + } + + mul_called + } + + fn get(&self, register: Data) -> i64 { + use Data::*; + match register { + Register(c) => self.registers[c], + Literal(i) => i + } + } + + fn set(&mut self, register: Data, value: i64) { + use Data::*; + match register { + Register(c) => { + self.registers[c] = value; + }, + _ => {} + } + } +} + +#[derive(Debug, Clone)] +enum Instruction { + Set(Data, Data), + Sub(Data, Data), + Mul(Data, Data), + Jnz(Data, Data) +} + +impl FromStr for Instruction { + type Err = String; + + fn from_str(s: &str) -> Result { + use Instruction::*; + + let mut str_iter = s.split_whitespace(); + let ins = str_iter.next(); + let x = str_iter.next().map(|x| x.parse::()); + let y = str_iter.next().map(|x| x.parse::()); + + match (ins, x, y) { + (Some("set"), Some(Ok(x)), Some(Ok(y))) => Ok(Set(x, y)), + (Some("sub"), Some(Ok(x)), Some(Ok(y))) => Ok(Sub(x, y)), + (Some("mul"), Some(Ok(x)), Some(Ok(y))) => Ok(Mul(x, y)), + (Some("jnz"), Some(Ok(x)), Some(Ok(y))) => Ok(Jnz(x, y)), + (_, _, _) => Err(format!("Unknown instruction {}", s)) + } + } +} + +#[derive(Debug, Clone, Copy)] +enum Data { + Literal(i64), + Register(usize) +} + +impl FromStr for Data { + type Err = String; + + fn from_str(s: &str) -> Result { + use Data::*; + + match (s.parse(), s.chars().next()) { + (Ok(num), _) => Ok(Literal(num)), + (Err(_), Some(c)) => Ok(Register(to_register(c))), + (_, _) => Err(format!("Invalid data {}", s)) + } + } +} + + +fn run_as_rust() -> i64 { + let mut h: i64 = 0; + let mut b: i64 = 99 * 100 + 100000; + let c: i64 = b + 17000; + + while b <= c { + let f = (2..b).any(|d| { + b % d == 0 + }); + + if f { + h += 1; + } + + b += 17; + } + + h +} diff --git a/2017/src/bin/day_24.rs b/2017/src/bin/day_24.rs new file mode 100644 index 0000000..eb7fddd --- /dev/null +++ b/2017/src/bin/day_24.rs @@ -0,0 +1,60 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + let components: Vec = args.input.iter() + .map(|line| { + let mut split = line.split('/'); + Component { + a: split.next().unwrap().parse().unwrap(), + b: split.next().unwrap().parse().unwrap() + } + }) + .collect(); + + if args.part == 1 { + let strongest = build_strongest(0, components); + println!("{}", strongest); + } else { + let (strongest, longest) = build_longest(0, components); + println!("length: {}, strength: {}", longest, strongest); + } +} + +fn build_strongest(start: u32, components: Vec) -> u32 { + components.iter().enumerate() + .filter(|&(_, c)| c.a == start || c.b == start) + .map(|(i, c)| { + let end = if c.a == start { c.b } else { c.a }; + let mut subset = components.clone(); + subset.remove(i); + c.strength() + build_strongest(end, subset) + }).max().unwrap_or(0) +} + +fn build_longest(start: u32, components: Vec) -> (u32, u32) { + components.iter().enumerate() + .filter(|&(_, c)| c.a == start || c.b == start) + .map(|(i, c)| { + let end = if c.a == start { c.b } else { c.a }; + let mut subset = components.clone(); + subset.remove(i); + let (s, l) = build_longest(end, subset); + (c.strength() + s, 1 + l) + }).max_by(|&(s1, l1), &(s2, l2)| { + l1.cmp(&l2).then(s1.cmp(&s2)) + }).unwrap_or((0, 0)) +} + +#[derive(Debug, Clone)] +struct Component { + a: u32, + b: u32 +} + +impl Component { + fn strength(&self) -> u32 { + self.a + self.b + } +} diff --git a/2017/src/bin/day_25.rs b/2017/src/bin/day_25.rs new file mode 100644 index 0000000..8d7b0da --- /dev/null +++ b/2017/src/bin/day_25.rs @@ -0,0 +1,125 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +extern crate regex; +use regex::Regex; + +use std::slice::Iter; +use std::collections::HashSet; + +fn main() { + let args = AdventArgs::init(); + let program = parse(&args.input); + + let mut position: i32 = 0; + let mut state = program.state(program.start).expect("Started out of program bounds"); + let mut tape = HashSet::new(); + + for _ in 0..program.iterations { + let instruction = if tape.contains(&position) { + &state.if1 + } else { + &state.if0 + }; + if instruction.write { + tape.insert(position); + } else { + tape.remove(&position); + } + position += instruction.offset; + state = program.state(instruction.next).expect("Redirected to unknown state"); + } + + println!("{}", tape.len()); +} + +fn parse(input: &Vec) -> Program { + let state_re = Regex::new(r"state (\w)").unwrap(); + let iterations_re = Regex::new(r"(\d+) steps").unwrap(); + let write_re = Regex::new(r"Write the value (\d)").unwrap(); + let move_re = Regex::new(r"Move one slot to the (\w+)").unwrap(); + + let mut lines = input.iter(); + let start = parse_char(&mut lines, &state_re); + let iterations = parse_number(&mut lines, &iterations_re); + + let mut states = Vec::new(); + while let Some(heading) = lines.next() { + states.push(State { + id: state_re.captures(heading).unwrap()[1].chars().next().unwrap(), + if0: parse_instruction(&mut lines, &write_re, &move_re, &state_re), + if1: parse_instruction(&mut lines, &write_re, &move_re, &state_re) + }); + } + + Program { + start: start, + iterations: iterations, + states: states + } +} + +fn parse_char(lines: &mut Iter, re: &Regex) -> char { + re.captures( + lines.next().unwrap() + ).unwrap()[1].chars().next().unwrap() +} + +fn parse_number(lines: &mut Iter, re: &Regex) -> u32 { + re.captures( + lines.next().unwrap() + ).unwrap()[1].parse().unwrap() +} +fn parse_direction(lines: &mut Iter, re: &Regex) -> i32 { + if re.captures( + lines.next().unwrap() + ).unwrap()[1] == *"left" { + -1 + } else { + 1 + } +} + +fn parse_bool(lines: &mut Iter, re: &Regex) -> bool { + re.captures( + lines.next().unwrap() + ).unwrap()[1] == *"1" +} + +fn parse_instruction(lines: &mut Iter, write_re: &Regex, offset_re: &Regex, next_re: &Regex) -> Instruction { + lines.next(); + Instruction { + write: parse_bool(lines, &write_re), + offset: parse_direction(lines, &offset_re), + next: parse_char(lines, &next_re) + } +} + +#[derive(Debug)] +struct Program { + start: char, + iterations: u32, + states: Vec +} + +impl Program { + fn state(&self, i: char) -> Option<&State> { + self.states.iter().find(|s| s.id == i) + } +} + +#[derive(Debug)] +struct State { + id: char, + if0: Instruction, + if1: Instruction +} + +#[derive(Debug)] +struct Instruction { + write: bool, + offset: i32, + next: char +} + + diff --git a/2017/src/bin/day_3.rs b/2017/src/bin/day_3.rs new file mode 100644 index 0000000..69ded88 --- /dev/null +++ b/2017/src/bin/day_3.rs @@ -0,0 +1,62 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +use std::collections::HashMap; + +fn main() { + use Direction::*; + + let args = AdventArgs::init(); + let input = args.one_number_input().unwrap(); + + let mut memory: HashMap = HashMap::new(); + let mut last_allocated = 1; + + let mut current = Point { + x: 0, + y: 0 + }; + memory.insert(current, last_allocated); + + let mut steps_per_direction = 1; + let mut steps_to_next_turn = 1; + let mut turns_to_spiral_increase = 2; + + let mut current_index = 1; + let mut current_direction = Right; + + while (args.part == 1 && current_index != input) || (args.part == 2 && last_allocated < input) { + current = current.shift(¤t_direction); + current_index += 1; + + steps_to_next_turn -= 1; + if steps_to_next_turn == 0 { + current_direction = current_direction.rotate_left(); + turns_to_spiral_increase -= 1; + if turns_to_spiral_increase == 0 { + steps_per_direction += 1; + turns_to_spiral_increase = 2; + } + + steps_to_next_turn = steps_per_direction; + } + + if args.part == 2 { + last_allocated = memory.get(¤t.left()).cloned().unwrap_or(0) + + memory.get(¤t.right()).cloned().unwrap_or(0) + + memory.get(¤t.up()).cloned().unwrap_or(0) + + memory.get(¤t.down()).cloned().unwrap_or(0) + + memory.get(¤t.up().left()).cloned().unwrap_or(0) + + memory.get(¤t.up().right()).cloned().unwrap_or(0) + + memory.get(¤t.down().left()).cloned().unwrap_or(0) + + memory.get(¤t.down().right()).cloned().unwrap_or(0); + + memory.insert(current, last_allocated); + } + } + + println!("{:?}", current); + println!("Distance: {}", current.x.abs() + current.y.abs()); + println!("Last Allocated Value: {}", last_allocated); + +} diff --git a/2017/src/bin/day_4.rs b/2017/src/bin/day_4.rs new file mode 100644 index 0000000..a9a098a --- /dev/null +++ b/2017/src/bin/day_4.rs @@ -0,0 +1,37 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let valid_count = args.input.iter() + .map(|line| { + let words = line.split_whitespace().map(|x| x.to_string()).collect::>(); + if args.part == 1 { + let mut deduped_words = words.clone(); + deduped_words.sort(); + deduped_words.dedup(); + words.len() == deduped_words.len() + } else { + !words.iter().enumerate().any(|(i, word1)| { + words.iter().enumerate().any(|(j, word2)| { + i != j && is_anagram(word1, word2) + }) + }) + } + }) + .filter(|&valid| valid) + .count(); + + println!("Valid count: {}", valid_count); +} + +fn is_anagram(word1: &str, word2: &str) -> bool { + let mut chars1 = word1.chars().collect::>(); + chars1.sort(); + let mut chars2 = word2.chars().collect::>(); + chars2.sort(); + + chars1.len() == chars2.len() && + chars1.iter().zip(chars2.iter()).all(|(c1, c2)| c1 == c2) +} diff --git a/2017/src/bin/day_5.rs b/2017/src/bin/day_5.rs new file mode 100644 index 0000000..49bdbd1 --- /dev/null +++ b/2017/src/bin/day_5.rs @@ -0,0 +1,25 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let mut jumps: Vec = args.input.iter().map(|line| line.parse().unwrap()).collect(); + let mut steps_taken = 0; + let mut current_position: i32 = 0; + + while current_position >= 0 && (current_position as usize) < jumps.len() { + let previous_position = current_position; + current_position += jumps[current_position as usize]; + + if args.part == 1 || jumps[previous_position as usize] < 3 { + jumps[previous_position as usize] += 1; + } else { + jumps[previous_position as usize] -= 1; + } + + steps_taken += 1; + } + + println!("Escaped in {} jumps", steps_taken); +} diff --git a/2017/src/bin/day_6.rs b/2017/src/bin/day_6.rs new file mode 100644 index 0000000..be9a515 --- /dev/null +++ b/2017/src/bin/day_6.rs @@ -0,0 +1,61 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let init_layout = parse_space_separated_ints(&args.input[0]).unwrap(); + + let mut layouts = vec!(init_layout); + let mut balances = 0; + let mut cycle_found = false; + let mut cycle_size = 0; + + while !cycle_found { + balances += 1; + let new_layout = find_next_layout(&layouts); + + if let Some(index) = layouts.iter().position(|x| *x == new_layout) { + cycle_found = true; + cycle_size = layouts.len() - index; + }; + + layouts.push(new_layout); + } + + if args.part == 1 { + println!("Did {} rebalances", balances); + } else { + println!("Cycle was {} long", cycle_size); + } +} + +fn find_next_layout(layouts: &Vec>) -> Vec { + let previous_layout = layouts.last().unwrap(); + rebalance(&previous_layout) +} + +fn rebalance(layout: &Vec) -> Vec { + let biggest_container = layout.iter() + .enumerate() + .max_by(|&(ai, &asize), &(bi, &bsize)| { + asize.cmp(&bsize).then(bi.cmp(&ai)) + }) + .map(|(i, _)| i) + .unwrap(); + + + let mut new_layout = layout.clone(); + let mut to_redistribute = new_layout[biggest_container]; + new_layout[biggest_container] = 0; + let mut target = (biggest_container + 1) % layout.len(); + + while to_redistribute > 0 { + new_layout[target] += 1; + to_redistribute -= 1; + target = (target + 1) % layout.len(); + } + + new_layout +} + diff --git a/2017/src/bin/day_7.rs b/2017/src/bin/day_7.rs new file mode 100644 index 0000000..3c3b185 --- /dev/null +++ b/2017/src/bin/day_7.rs @@ -0,0 +1,62 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +extern crate regex; +use regex::Regex; + +fn main() { + let args = AdventArgs::init(); + + let names_re = Regex::new(r"[a-z]+").unwrap(); + let weight_re = Regex::new(r"\d+").unwrap(); + + let tree: Vec<(String, Vec, i32)> = args.input.iter() + .map(|line| { + let mut matches = names_re.find_iter(line); + let base = matches.next().unwrap().as_str().to_string(); + let leaves = matches.map(|m| m.as_str().to_string()).collect(); + let weight = weight_re.find(line).unwrap().as_str().parse().unwrap(); + (base, leaves, weight) + }).collect(); + + let mut possible_roots: Vec = tree.iter().map(|&(ref id, _, _)| id.clone()).collect(); + for &(_, ref leaves, _) in &tree { + for leaf in leaves { + let index = possible_roots.iter().position(|x| x == leaf).unwrap(); + possible_roots.remove(index); + } + } + let root = &possible_roots[0]; + + if args.part == 1 { + println!("{:?}", root); + } else { + find_unweighted_plate(&root, &tree); + } +} + +fn find_unweighted_plate(root: &String, tree: &Vec<(String, Vec, i32)>) -> i32 { + let root_node = find_node(&root, &tree); + let &(_, ref leaves, ref weight) = root_node; + let leaf_weights: Vec = leaves.iter().map(|leaf| { + find_unweighted_plate(&leaf, &tree) + }).collect(); + + if let Some(base_leaf_weight) = leaf_weights.first() { + if let Some(different_leaf_weight) = leaf_weights.iter().find(|&w| w != base_leaf_weight) { + println!("Unbalanced plate is off by {}", (different_leaf_weight-base_leaf_weight).abs()); + println!("Towers on plate: {:?} weigh {:?}", leaves, leaf_weights); + // This still needs some manual work to get to the puzzle + // output. Take the first unbalanced plate, figure out + // which is the unbalanced tower visually, find its + // individual weight in the file, and add/subtract as + // necessary. + } + } + + leaf_weights.iter().sum::() + weight +} + +fn find_node<'a>(name: &String, tree: &'a Vec<(String, Vec, i32)>) -> &'a (String, Vec, i32) { + tree.iter().find(|&&(ref id, _, _)| id == name).unwrap() +} diff --git a/2017/src/bin/day_8.rs b/2017/src/bin/day_8.rs new file mode 100644 index 0000000..0359747 --- /dev/null +++ b/2017/src/bin/day_8.rs @@ -0,0 +1,99 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +extern crate regex; +use regex::Regex; + +#[macro_use] +extern crate lazy_static; + +use std::str::FromStr; +use std::collections::HashMap; +use std::cmp; + +fn main() { + let args = AdventArgs::init(); + + let instructions: Vec = args.input.iter() + .map(|line| line.parse().unwrap()) + .collect(); + + let mut memory: HashMap = HashMap::new(); + let mut max_mem_ever = 0; + + for instruction in instructions { + if instruction.is_true(&memory) { + instruction.execute(&mut memory); + max_mem_ever = cmp::max(max_mem_ever, memory.values().max().cloned().unwrap_or(0)); + } + } + + let max_mem = memory.values().max().cloned().unwrap_or(0); + + if args.part == 1 { + println!("Highest value in memory is {}", max_mem); + } else { + println!("Highest value in memory ever is {}", max_mem_ever); + } +} + + +struct Instruction { + target_register: String, + action: String, + value: i32, + condition_register: String, + condition: String, + condition_value: i32 +} + +#[derive(Debug)] +struct InstructionParseError { + reason: String +} + +impl FromStr for Instruction { + type Err = InstructionParseError; + fn from_str(s: &str) -> Result { + lazy_static!{ + static ref INSTRUCTION_RE: Regex = Regex::new(r"^(\w+) (inc|dec) (-?\d+) if (\w+) (<|>|<=|>=|==|!=) (-?\d+)").unwrap(); + } + match INSTRUCTION_RE.captures(s) { + Some(caps) => Ok(Instruction{ + target_register: caps[1].to_string(), + action: caps[2].to_string(), + value: caps[3].parse().unwrap(), + condition_register: caps[4].to_string(), + condition: caps[5].to_string(), + condition_value: caps[6].parse().unwrap() + }), + None => Err(InstructionParseError { + reason: format!("{} did not match regex", s) + }) + } + } +} + +impl Instruction { + fn is_true(&self, memory: &HashMap) -> bool { + let mem = memory.get(&self.condition_register).cloned().unwrap_or(0); + match self.condition.as_ref() { + "<" => mem < self.condition_value, + ">" => mem > self.condition_value, + "<=" => mem <= self.condition_value, + ">=" => mem >= self.condition_value, + "==" => mem == self.condition_value, + "!=" => mem != self.condition_value, + _ => panic!("Unknown condition: {}", self.condition) + } + } + + fn execute(&self, memory: &mut HashMap) { + let modifier = if self.action == "inc" { + self.value + } else { + -self.value + }; + *memory.entry(self.target_register.clone()).or_insert(0) += modifier; + } +} diff --git a/2017/src/bin/day_9.rs b/2017/src/bin/day_9.rs new file mode 100644 index 0000000..e0ca0c0 --- /dev/null +++ b/2017/src/bin/day_9.rs @@ -0,0 +1,42 @@ +extern crate advent_of_code_2017; +use advent_of_code_2017::*; + +fn main() { + let args = AdventArgs::init(); + + let mut cancelled = false; + let mut in_garbage = false; + + let mut depth = 0; + let mut total_score = 0; + let mut total_garbage = 0; + + for c in args.input[0].chars() { + if cancelled { + cancelled = false; + } else if c == '!' { + cancelled = true; + } else if in_garbage { + if c == '>' { + in_garbage = false; + } else { + total_garbage += 1; + } + } else { + if c == '<' { + in_garbage = true; + } else if c == '{' { + depth += 1; + total_score += depth; + } else if c == '}' { + depth -= 1; + } + } + } + + if args.part == 1 { + println!("Total score is {}", total_score); + } else { + println!("Total garbage is {}", total_garbage); + } +} diff --git a/2017/src/lib.rs b/2017/src/lib.rs new file mode 100644 index 0000000..53d7d20 --- /dev/null +++ b/2017/src/lib.rs @@ -0,0 +1,225 @@ +extern crate structopt; +#[macro_use] +extern crate structopt_derive; +use structopt::StructOpt; + +use std::path::PathBuf; +use std::io::BufReader; +use std::io::prelude::*; +use std::fs::File; +use std::process; + +#[derive(StructOpt, Debug)] +#[structopt(name = "AOC2017", about = "An Advent of Code CLI arguments object.")] +struct AdventCli { + #[structopt(help = "Which part of the puzzle you are solving")] + part: u32, + + #[structopt(help = "Input file", parse(from_os_str))] + input: PathBuf +} + +pub struct AdventArgs { + pub part: u32, + pub input: Vec +} + +impl AdventArgs { + pub fn init() -> AdventArgs { + let opt = AdventCli::from_args(); + let input = match AdventArgs::read_file(&opt.input) { + Ok(input) => input, + Err(error) => { + // Typically I would think of exiting the program like + // this to be bad form, but in this case I'm matching the + // interface of StructOpt: if the input parameters were + // invalid, just quit now with a nice message. + eprintln!("Error reading file: {}", error); + process::exit(1); + } + }; + AdventArgs { + part: opt.part, + input: input + } + } + + fn read_file(file: &PathBuf) -> Result, std::io::Error> { + let file = File::open(file)?; + let file_reader = BufReader::new(file); + file_reader.lines() + .collect::, _>>() + .map(AdventArgs::preprocess_file_lines) + } + + fn preprocess_file_lines(lines: Vec) -> Vec { + lines.iter() + .filter(|line| line.len() > 0) + .map(|line| line.trim_right().to_string()) + .collect() + } + + pub fn one_number_input(&self) -> Result { + self.input[0].parse() + } + pub fn number_per_line_input(&self) -> Result, std::num::ParseIntError> { + self.input.iter().map(|line| line.parse()).collect() + } +} + +pub fn parse_space_separated_ints(line: &String) -> Result, std::num::ParseIntError> { + line.split_whitespace() + .map(|x| x.parse::()) + .collect() +} + + +#[derive(Hash, Eq, PartialEq, Debug, Clone, Copy)] +pub struct Point { + pub x: i32, + pub y: i32 +} + +impl Point { + pub fn up(&self) -> Point { + Point { + y: self.y-1, + ..*self + } + } + + pub fn down(&self) -> Point { + Point { + y: self.y+1, + ..*self + } + } + + pub fn left(&self) -> Point { + Point { + x: self.x-1, + ..*self + } + } + + pub fn right(&self) -> Point { + Point { + x: self.x+1, + ..*self + } + } + + pub fn shift(&self, dir: &Direction) -> Point { + use Direction::*; + + match *dir { + Right => self.right(), + Left => self.left(), + Up => self.up(), + Down => self.down() + } + } +} + +#[derive(Debug)] +pub enum Direction { + Left, + Up, + Down, + Right +} + +impl Direction { + pub fn rotate_left(&self) -> Direction { + use Direction::*; + match *self { + Right => Up, + Up => Left, + Left => Down, + Down => Right + } + } + + pub fn rotate_right(&self) -> Direction { + use Direction::*; + match *self { + Right => Down, + Up => Right, + Left => Up, + Down => Left + } + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct Point3d { + pub x: i32, + pub y: i32, + pub z: i32 +} + +impl std::ops::Add for Point3d { + type Output = Point3d; + + fn add(self, other: Point3d) -> Point3d { + Point3d { + x: self.x + other.x, + y: self.y + other.y, + z: self.z + other.z + } + } + +} + +impl Point3d { + pub fn manhattan_distance(&self) -> i32 { + self.x.abs() + self.y.abs() + self.z.abs() + } +} + +pub fn knot_hash(input: &String) -> String { + let suffix: [usize; 5] = [17, 31, 73, 47, 23]; + let lengths: Vec = input.as_bytes() + .iter().map(|&x| x as usize) + .chain(suffix.iter().cloned()) + .collect(); + + let mut position = 0; + let mut list: Vec = (0..256).collect(); + + for i in 0..64 { + let skip = lengths.len() * i; + knot_hash_round(&mut list, &lengths, &mut position, skip); + } + + let mut current_char = 0; + let mut result = String::new(); + for (i, l) in list.iter().enumerate() { + current_char = current_char ^ l; + if i % 16 == 15 { + result.push_str(&format!("{:02x}", current_char)); + current_char = 0; + } + } + result +} + +fn knot_hash_round(list: &mut Vec, lengths: &Vec, position: &mut usize, skip: usize) { + for (inner_skip, &length) in lengths.iter().enumerate() { + knot_hash_reverse_segment(list, *position, length); + *position = (*position + length + skip + inner_skip) % list.len(); + } +} + +fn knot_hash_reverse_segment(list: &mut Vec, position: usize, length: usize) { + let mut a = position; + let mut b = position + length - 1; + let len = list.len(); + while a < b { + list.swap(a%len, b%len); + + a += 1; + b -= 1; + } +} + -- cgit v1.2.3