summary refs log tree commit diff homepage
path: root/2017
diff options
context:
space:
mode:
authorJune McEnroe <programble@gmail.com>2017-12-09 02:50:05 -0500
committerJune McEnroe <programble@gmail.com>2017-12-09 02:50:05 -0500
commit2368fef619c053175eda97fac09f3b4e9e505386 (patch)
tree8a3c53df1f965a4301ce72cec8950d0062d088bb /2017
parentDay 7, part 2 (diff)
downloadaoc-2368fef619c053175eda97fac09f3b4e9e505386.tar.gz
aoc-2368fef619c053175eda97fac09f3b4e9e505386.zip
Day 8
Diffstat (limited to '2017')
-rw-r--r--2017/input/day08.txt1000
-rw-r--r--2017/src/bin/day08.rs57
2 files changed, 1057 insertions, 0 deletions
diff --git a/2017/input/day08.txt b/2017/input/day08.txt
new file mode 100644
index 0000000..eefae91
--- /dev/null
+++ b/2017/input/day08.txt
@@ -0,0 +1,1000 @@
+o dec -427 if wnh < -1
+ugc dec -128 if baj <= 3
+ugc inc 294 if xml <= -1
+ugc inc -277 if wfu < -2
+l inc 302 if sqf == 0
+l inc -940 if wnh > -6
+vke inc 687 if fy >= -3
+b inc 976 if ugc > 118
+rz dec 201 if jyi < 5
+y dec -960 if l >= -647
+baj dec 879 if xbp <= 3
+vke dec 360 if b <= 981
+az dec 237 if baj <= -875
+wnh dec 818 if pp > -7
+baj dec -434 if ugc >= 121
+az inc 501 if k < 1
+y inc 43 if sb < 4
+e dec -195 if o < 3
+y inc 729 if u == 0
+l inc 993 if xbp <= 0
+u inc -252 if o < 5
+k inc 547 if k == 0
+e inc -781 if c != 4
+y inc -963 if k >= 545
+k inc -906 if xml != -9
+k dec 394 if rz <= -210
+l dec 676 if baj < -442
+rz inc -376 if sqf >= -7
+l inc -388 if sz >= 6
+jyi dec 464 if jyi < -1
+sb dec -397 if rz == -577
+jyi dec -391 if b != 975
+rz dec 85 if xbp != 2
+rz dec -971 if az != 255
+e inc 622 if vke < 337
+pp dec 506 if l < -318
+k inc -471 if az < 262
+wnh dec -346 if vke <= 331
+sb dec 23 if o != 1
+y dec -29 if k != -349
+fy inc 83 if sb < 377
+c dec -283 if tme < 3
+az dec 852 if e == 34
+fy inc 935 if b == 976
+pp dec 553 if e <= 44
+sz dec 847 if k < -366
+wnh dec -717 if o != -1
+xbp dec -607 if e == 26
+jyi inc -362 if y > 788
+wfu inc 306 if baj <= -440
+sb inc -512 if pp == -1065
+jyi dec -190 if sqf != -4
+k dec 810 if sqf >= -6
+u inc 76 if fy > 1011
+sqf inc -844 if c <= 286
+wnh inc -326 if k <= -1162
+wnh dec -199 if baj == -447
+k inc -828 if sqf < -839
+wnh inc 288 if l > -321
+o dec 769 if c != 280
+pp dec -95 if rz > 299
+vke dec -752 if b <= 982
+rz inc 334 if pp == -964
+sqf inc 987 if y >= 797
+eia inc -938 if az > 271
+tme dec 849 if b > 972
+vke inc 322 if c <= 282
+l inc -43 if baj >= -446
+fy dec 760 if rz <= 641
+sqf dec 947 if wnh != -80
+e inc 267 if eia == -6
+xbp dec -340 if b >= 975
+xbp dec 887 if wfu != 315
+az inc 911 if o < -766
+sb inc 494 if wnh < -87
+sqf dec -25 if sz <= 8
+fy dec -36 if xml == 0
+ugc dec 429 if rz >= 652
+sz dec 139 if ugc <= 130
+eia inc -762 if sz != -141
+c inc 868 if vke == 1079
+l dec 36 if pp > -974
+jyi dec -645 if wnh != -81
+tme inc -361 if tme > -840
+sqf inc 761 if eia != -762
+o inc 361 if xbp != -548
+pp dec -999 if pp > -969
+sz inc -383 if k <= -1995
+y dec -940 if ugc != 132
+sqf dec -957 if k < -1989
+tme dec 528 if e >= 38
+baj inc -803 if rz == 643
+y inc 799 if sz > -530
+fy dec 120 if vke != 1086
+wnh inc 141 if pp <= 36
+c dec 481 if wfu == 306
+tme inc 536 if eia < -758
+sz inc 954 if u <= -174
+o dec 473 if y <= 2528
+l dec 976 if wfu >= 297
+tme inc -26 if baj != -1252
+k dec 786 if xml > -7
+az dec 817 if sqf == 178
+c dec 980 if k == -2776
+baj dec -954 if tme == -348
+rz inc -178 if vke <= 1088
+jyi inc 426 if fy >= 930
+xbp inc -708 if wnh >= 63
+c inc 364 if az > 353
+l dec -393 if xml == 0
+wfu dec -619 if l != -983
+y inc -454 if xbp == -547
+wnh inc 909 if jyi >= 642
+az inc 251 if k > -2777
+c inc 985 if rz >= 470
+e inc -810 if wnh <= 978
+e inc 785 if fy == 934
+wnh dec -872 if vke >= 1083
+baj dec -827 if rz > 457
+wfu dec -186 if sqf > 170
+sqf inc 522 if wnh > 970
+sb inc 307 if wfu <= 489
+ugc dec -765 if sz == 432
+wfu inc 429 if e > 7
+fy inc 730 if jyi <= 653
+sb dec -265 if sb >= 376
+b dec -276 if c == 1033
+u inc -99 if k > -2788
+e inc 114 if l >= -986
+vke dec -845 if wnh >= 963
+c inc -263 if xbp > -549
+sz inc 905 if sz > 425
+baj dec 298 if o >= -412
+l dec 118 if baj == -719
+rz inc -472 if pp >= 31
+sb dec 489 if fy <= 1670
+xbp dec 876 if sqf == 178
+y dec 504 if o != -407
+u inc 410 if xbp >= -1427
+xml dec 95 if xml != -2
+wfu dec 440 if xml <= -101
+sqf dec -270 if pp <= 39
+k inc -812 if pp >= 34
+jyi dec -498 if pp > 27
+jyi dec 848 if vke != 1924
+xbp inc 675 if sqf > 440
+jyi dec -697 if b <= 981
+jyi dec 172 if baj > -725
+fy inc 349 if c >= 767
+wnh inc -683 if c >= 771
+e inc -667 if u <= 144
+jyi dec -991 if rz != -7
+sb inc 547 if k < -3586
+l inc -645 if jyi != 1669
+sqf dec 912 if xml > -99
+u inc 782 if az >= 354
+az dec 752 if xbp > -755
+y dec 296 if k >= -3603
+c dec -816 if fy >= 2007
+sqf inc 776 if pp < 43
+wfu inc 502 if l != -1742
+sb dec 228 if e != -542
+fy inc 171 if k == -3595
+wnh dec 998 if jyi < 1663
+k dec -762 if xbp == -748
+tme dec -660 if az == -394
+eia inc 969 if vke == 1924
+l inc -324 if sqf != 309
+az inc -982 if sz >= 1336
+rz dec 651 if tme == 321
+xbp dec -196 if vke == 1924
+eia inc 538 if b > 973
+eia inc -326 if k >= -2842
+baj dec -47 if eia <= 422
+jyi inc -851 if eia == 419
+ugc dec -846 if xbp >= -553
+e inc -473 if wfu < 1424
+sqf inc -401 if k < -2832
+c inc 975 if c > 1591
+o inc -235 if xbp == -552
+xml dec -34 if k < -2827
+xbp inc 333 if e >= -1016
+baj dec -74 if sz > 1327
+xml dec -288 if vke >= 1921
+sqf inc -180 if pp <= 42
+wfu dec 820 if b != 971
+e inc -113 if vke <= 1923
+jyi inc 466 if rz > -661
+eia inc -410 if pp != 44
+az dec -404 if l > -2078
+wfu inc -537 if az < -979
+xbp inc -667 if pp != 37
+sz inc -774 if b == 979
+sz dec 35 if b >= 979
+b inc -641 if e < -1020
+eia dec 914 if c <= 1588
+pp inc -250 if o > -647
+b dec 46 if k < -2830
+u inc 275 if c < 1589
+rz dec -946 if az < -971
+sqf inc -197 if sz == 1337
+sqf dec -853 if tme >= 321
+b dec -719 if b >= 923
+baj dec 614 if e == -1015
+o inc -224 if u < 1195
+sqf dec 130 if vke <= 1925
+eia inc 388 if xml >= 224
+xbp dec 561 if pp > -218
+o dec -959 if k >= -2841
+tme inc -89 if az >= -972
+xml dec 745 if b >= 1652
+baj dec 649 if xml <= 235
+wfu inc -762 if o <= 101
+l inc 424 if jyi >= 1277
+rz dec 685 if o == 101
+u dec -49 if baj >= -1868
+u dec -495 if eia >= -517
+az inc -450 if y > 1273
+sz dec -860 if y == 1283
+wnh inc -896 if xml >= 226
+eia dec -319 if tme >= 229
+vke inc -535 if o == 92
+vke dec 10 if fy > 2190
+b dec -683 if l == -1646
+tme dec -522 if jyi > 1274
+tme inc -211 if wnh < -604
+u dec -383 if rz <= 285
+baj inc 928 if u >= 1732
+eia inc -286 if y <= 1282
+pp dec -422 if ugc <= 1747
+e dec -123 if o != 96
+u dec -163 if wfu == -159
+y dec 802 if rz <= 289
+o dec -992 if eia >= -199
+sqf dec 275 if e < -887
+az inc 801 if e < -889
+pp inc 893 if c < 1595
+sz inc 913 if o < 1094
+wfu inc 870 if k <= -2833
+tme inc -203 if wnh < -609
+eia dec 431 if xml < 228
+sqf dec -722 if sz == 3110
+xml inc -527 if fy > 2175
+sqf dec -314 if fy < 2176
+baj inc -425 if l < -1636
+rz dec -774 if k >= -2838
+jyi inc -797 if pp != 1097
+u inc 856 if o < 1091
+ugc dec 29 if o > 1089
+wnh dec 629 if rz <= 1070
+rz dec 919 if fy != 2184
+wfu dec -789 if fy >= 2178
+o inc 229 if wfu < 1491
+wnh inc -873 if sb != 432
+wfu inc -29 if rz != 1062
+pp dec 542 if ugc == 1739
+tme dec -321 if l <= -1638
+baj dec 515 if b < 2340
+k dec 976 if sqf >= 701
+e dec -940 if eia >= -631
+b inc 173 if l <= -1644
+e inc 649 if sb < 439
+ugc inc 598 if c > 1579
+baj dec 920 if u == 2755
+sz inc 165 if eia < -622
+c inc -461 if fy != 2181
+sqf dec -574 if pp == 558
+jyi inc -511 if o <= 1089
+k dec -876 if pp == 558
+l dec -830 if wnh < -1234
+az inc -524 if pp < 550
+y inc 141 if vke < 1383
+tme inc 365 if rz <= 1067
+u inc 33 if e >= 696
+sqf inc -241 if sz == 3275
+k dec 918 if baj == -2793
+jyi inc 82 if y > 471
+sb dec 730 if k >= -3857
+u dec -690 if wnh <= -1237
+jyi dec 962 if e >= 695
+xml dec -513 if wnh <= -1238
+sqf inc -77 if sz >= 3285
+wfu inc 697 if az > -624
+l dec 200 if eia < -621
+l inc 258 if k < -3846
+wnh dec -578 if b <= 2513
+l inc -871 if wnh < -659
+pp dec 916 if b < 2496
+eia inc -445 if fy <= 2189
+b dec -759 if o >= 1077
+ugc inc -582 if xml != 219
+vke dec 915 if sz < 3280
+e dec 752 if sz != 3271
+k inc 447 if pp > 550
+wnh inc -272 if jyi > -910
+b inc 762 if xml >= 209
+vke inc 33 if eia < -1070
+wnh dec -943 if vke >= 501
+y dec -627 if wnh != 4
+k dec -240 if eia >= -1080
+tme inc -731 if eia <= -1069
+y inc 138 if pp < 567
+wfu dec -839 if u < 3480
+sz dec -268 if az >= -624
+tme inc 413 if l > -1629
+vke inc 699 if l == -1626
+pp dec 962 if fy != 2179
+pp inc -972 if eia != -1068
+e dec -223 if xbp < -1445
+pp inc -559 if xbp > -1440
+pp inc -869 if sb <= -299
+wfu dec 229 if sz == 3543
+az dec -885 if fy != 2189
+tme inc -542 if wfu >= 2806
+sqf dec -797 if e >= 172
+l inc -159 if c >= 1119
+baj dec 602 if e > 158
+sb dec -546 if sb < -295
+ugc inc -531 if k != -3171
+xbp inc -800 if sqf > 1033
+eia dec 281 if tme >= -255
+b inc -997 if tme != -247
+k inc 140 if xml >= 216
+pp inc -83 if pp > -1377
+sb inc -697 if l <= -1781
+baj inc 101 if wnh < 19
+b inc -330 if wnh < 17
+baj dec -602 if ugc > 1219
+fy dec 642 if tme == -247
+e inc 212 if c >= 1120
+sqf dec 693 if c > 1122
+tme dec 277 if az <= 265
+k dec 430 if ugc >= 1222
+rz inc 182 if wfu >= 2806
+sb inc 158 if wfu == 2807
+wfu inc -223 if wfu == 2807
+pp dec -734 if ugc != 1224
+rz dec -809 if c != 1124
+vke dec -963 if y < 1247
+sqf dec -654 if l != -1791
+az dec -939 if o < 1090
+eia inc 753 if vke == 1470
+fy dec 494 if u > 3473
+jyi inc -739 if ugc > 1217
+jyi inc 216 if e != 380
+l inc -95 if ugc > 1222
+pp dec 400 if baj > -2695
+o dec -915 if k < -3603
+c dec 810 if c <= 1128
+fy dec 33 if k >= -3598
+c inc -193 if sz <= 3540
+ugc inc -415 if l > -1885
+c inc 12 if baj != -2692
+eia dec 376 if c != 309
+jyi inc 168 if xbp != -2255
+u dec 814 if sz != 3553
+wfu dec 247 if xbp != -2247
+xml dec -716 if eia <= -970
+sqf dec -985 if baj <= -2689
+sz inc 280 if pp != -1867
+tme dec 277 if jyi <= -1475
+pp dec 122 if l == -1883
+tme dec -329 if sz != 3818
+eia dec 980 if sb == -291
+jyi inc 373 if b > 3696
+y inc -203 if baj < -2688
+ugc inc 263 if u == 2664
+eia inc -278 if xbp >= -2250
+ugc dec 654 if xbp <= -2246
+fy inc 814 if rz == 2053
+wnh inc 709 if y != 1034
+e dec 939 if tme > -476
+wfu inc -792 if az > 1193
+u inc -506 if baj <= -2689
+b inc 350 if vke == 1480
+o inc 938 if o > 1074
+jyi inc -219 if rz == 2053
+wfu dec 349 if u >= 2162
+u dec -97 if o > 2025
+pp inc -211 if vke != 1471
+wfu dec -194 if b < 3699
+l dec 96 if sqf <= 1980
+vke dec 179 if az >= 1198
+vke dec -317 if wnh != 719
+tme inc 606 if baj < -2689
+k dec 148 if fy > 1829
+jyi dec 294 if y >= 1041
+wfu inc 963 if xbp > -2245
+sb dec -932 if o == 2022
+wnh inc -640 if c <= 316
+rz inc 90 if o != 2021
+tme inc 466 if rz != 2134
+l dec -771 if k < -3586
+vke dec 91 if e <= -551
+fy dec -312 if b < 3705
+vke dec -529 if wnh >= 71
+b dec -595 if xml < 937
+tme dec 540 if b != 4293
+o dec 502 if baj <= -2702
+tme inc -270 if jyi > -1991
+b dec -298 if u >= 2157
+c dec -599 if sz <= 3813
+y dec -909 if b > 4588
+y inc 477 if pp != -2201
+xbp inc 201 if u < 2163
+jyi inc 101 if sb >= 636
+l dec 75 if b == 4589
+e inc -15 if e <= -558
+fy inc -471 if sb != 638
+jyi inc 715 if u < 2167
+pp dec 364 if az == 1203
+az dec -740 if sqf >= 1988
+tme inc 772 if wnh < 75
+k dec 634 if u > 2156
+eia dec 141 if u <= 2162
+baj dec 776 if l < -1184
+wnh dec -920 if fy <= 1677
+xbp dec 169 if c <= 320
+sqf inc -193 if vke < 1736
+fy dec 96 if vke > 1724
+u inc -282 if az < 1206
+xml inc -395 if wnh != 1000
+az inc -492 if k <= -4233
+sz inc -210 if u < 1883
+c inc -584 if eia == -2380
+pp inc -772 if wnh >= 994
+ugc inc -946 if xml >= 528
+l dec -848 if rz < 2147
+o dec -570 if sqf > 1780
+ugc inc -849 if e < -564
+sb dec -327 if pp > -3332
+sqf dec -937 if u != 1869
+xbp inc 765 if o >= 2592
+ugc inc -2 if fy > 1574
+xml inc -976 if y < 2432
+o inc 762 if b > 4587
+xml inc 384 if tme == -210
+u inc -612 if wnh < 1005
+u inc -229 if e != -582
+eia dec 814 if wfu <= 1989
+fy inc -41 if sb > 964
+fy dec -487 if wnh != 1004
+xml dec -44 if jyi < -1164
+k dec 107 if sqf == 2727
+sz inc -819 if rz < 2141
+k inc 862 if wnh < 1009
+vke inc -935 if b == 4592
+k dec -547 if y != 2429
+k dec -804 if l >= -331
+o dec -869 if jyi >= -1178
+fy inc -527 if wfu != 1986
+vke inc -900 if jyi <= -1175
+ugc inc 878 if pp < -3322
+sz inc 96 if eia > -3192
+tme inc -888 if l != -346
+rz dec -879 if e == -574
+y inc -89 if wfu <= 1983
+u dec 106 if xml <= -21
+az dec 724 if y <= 2423
+sb inc -951 if wnh == 999
+wnh inc -583 if xbp == -1450
+sz dec -906 if c >= 311
+az inc -192 if b <= 4583
+l dec 307 if vke <= 1728
+xbp dec 553 if xbp >= -1455
+u inc 581 if tme > -1100
+e inc 993 if xml >= -22
+baj dec 484 if y != 2422
+u dec 797 if xbp <= -2002
+xml dec -448 if sqf > 2729
+l dec -97 if wnh <= 413
+c dec -211 if baj <= -3959
+k dec 925 if xbp > -2008
+wnh inc 198 if c == 316
+l inc 22 if l <= -331
+jyi inc -293 if xbp <= -2006
+e dec 271 if y <= 2432
+pp dec 309 if pp > -3327
+c dec 645 if jyi <= -1181
+l inc 706 if y <= 2428
+xbp inc 477 if c >= 307
+l inc -998 if u != 811
+xbp inc 879 if az != 1193
+k dec 954 if wfu != 1985
+sb inc -627 if jyi == -1173
+vke inc 766 if wnh != 614
+pp inc -177 if wnh != 616
+y inc -426 if wfu == 1986
+wnh inc -932 if wfu >= 1979
+sqf inc 328 if u != 821
+l dec -995 if u < 827
+xml inc 856 if sb < -606
+tme dec 985 if b >= 4586
+y dec 992 if wnh > -320
+baj dec -833 if y == 1011
+fy dec -733 if vke <= 1735
+xml inc 471 if ugc <= -491
+c dec -970 if tme < -2082
+eia inc -404 if sqf != 3051
+sqf inc 646 if rz < 3025
+jyi dec 997 if vke >= 1729
+c inc 114 if pp <= -3502
+b inc 385 if l != -322
+ugc inc -76 if rz < 3016
+sqf dec -180 if wfu == 1986
+jyi inc 876 if jyi == -2170
+jyi inc -663 if c == 1400
+k dec -530 if sb >= -612
+jyi inc 790 if rz < 3032
+vke dec -964 if wnh >= -319
+k inc 165 if ugc > -505
+xml dec -928 if vke > 2684
+pp inc 739 if e < 155
+sz inc 711 if baj < -3110
+o inc -420 if y < 1020
+xbp inc 362 if jyi <= -1162
+wnh inc -228 if az > 1201
+jyi inc 931 if xbp < -275
+rz inc 650 if wfu > 1983
+rz inc 136 if k > -4667
+c dec -923 if xml != 2236
+az dec -127 if u == 819
+fy dec 717 if baj <= -3115
+eia inc 14 if o <= 3807
+tme inc 928 if sqf >= 3879
+vke inc -148 if e <= 155
+tme inc 959 if az <= 1337
+c dec 306 if e <= 139
+vke inc -622 if b == 4974
+c inc -818 if sb >= -611
+az inc -107 if l >= -328
+l dec 42 if u <= 826
+fy inc -175 if ugc == -508
+e inc 208 if o <= 3806
+fy inc 239 if c != 1515
+sz dec -678 if wnh != -542
+sz dec 660 if e < 348
+az dec 636 if wfu > 1982
+tme inc -537 if k > -4658
+sb dec 977 if eia <= -3580
+u inc -171 if b < 4982
+wnh inc 141 if baj == -3119
+rz inc -648 if l == -362
+eia dec 910 if eia != -3579
+sz dec -202 if l != -355
+fy dec -235 if sz <= 6214
+vke inc 635 if eia == -4491
+eia inc -472 if b < 4977
+k dec -936 if tme < -729
+u dec -793 if eia <= -4958
+jyi inc -273 if jyi == -236
+xml dec 101 if u == 1441
+baj inc 553 if sz > 6205
+c dec -315 if wfu <= 1995
+e dec 504 if l < -356
+u dec -563 if eia > -4968
+wnh inc -81 if pp != -2768
+rz dec -784 if xml == 2140
+xbp dec 113 if l != -366
+b dec -545 if vke > 2554
+c dec -978 if e <= -151
+baj dec -782 if eia == -4963
+wnh dec 524 if pp < -2765
+sz dec 272 if sb >= -1587
+baj inc -501 if jyi > -519
+xml dec -246 if y < 1013
+az inc -607 if xml < 2377
+az dec -25 if pp >= -2769
+pp dec -488 if eia < -4962
+b inc -551 if xml > 2382
+sz inc 318 if az == 612
+xml dec -645 if pp == -2278
+u dec 681 if e < -140
+b inc -690 if sb >= -1588
+baj dec 927 if xml < 3034
+e dec 645 if wnh >= -1015
+sqf dec 621 if xbp <= -394
+rz inc 963 if fy <= 2513
+tme dec -163 if sz == 6252
+vke inc -132 if baj > -3220
+tme inc -151 if sqf <= 3265
+az dec 47 if fy >= 2505
+u inc -185 if vke > 2421
+jyi inc 785 if sb != -1582
+k dec -427 if e > -795
+sz dec 652 if xbp != -395
+eia inc -102 if eia >= -4967
+b inc -860 if wfu < 1990
+rz dec -501 if b > 3416
+y dec -772 if pp == -2278
+sz dec -982 if y >= 1777
+rz inc 874 if fy != 2510
+fy inc 965 if rz < 5410
+sb inc 303 if c < 1830
+pp inc 658 if wnh == -1010
+fy inc 206 if xml > 3029
+fy dec 60 if az > 558
+xbp inc -260 if jyi != 276
+xbp inc 398 if e >= -799
+sb dec -532 if xml < 3036
+wfu inc -63 if az != 565
+ugc inc -898 if xbp <= 0
+rz dec 875 if e < -789
+l inc -517 if az < 558
+wnh dec 936 if u == 1138
+k inc 665 if pp >= -1623
+xbp inc 200 if rz == 4533
+k inc 521 if b < 3428
+baj dec -634 if baj >= -3215
+l dec 265 if rz > 4523
+sb dec -725 if l >= -624
+eia inc 959 if wnh < -1944
+rz dec 721 if b == 3418
+sqf inc -659 if sb <= -746
+pp dec -30 if sb == -752
+sqf dec 938 if b <= 3424
+k inc 166 if k < -2108
+u dec 392 if o >= 3799
+l inc -784 if tme == -721
+sb dec 217 if pp >= -1596
+wnh dec -926 if b == 3418
+u inc -7 if rz < 3821
+sb dec -197 if baj >= -2582
+u inc -449 if vke > 2419
+c dec 688 if c <= 1827
+fy dec 53 if sz < 6578
+c dec 687 if jyi < 284
+pp dec -391 if tme == -721
+pp dec 695 if ugc <= -1392
+xbp dec 132 if e > -803
+e dec 215 if eia > -4111
+sb dec 602 if eia > -4112
+xbp inc -885 if baj == -2578
+vke dec -709 if sqf >= 1655
+az dec -378 if xbp > -819
+vke dec -263 if sb != -1368
+baj dec -783 if l >= -1413
+k inc 792 if c != 442
+c inc -31 if sb < -1368
+sb dec 904 if rz < 3821
+fy inc 167 if eia == -4106
+xml inc -764 if e > -999
+wnh dec -530 if baj <= -1794
+jyi dec -748 if e >= -998
+u inc -653 if e >= -1014
+tme inc -791 if l <= -1403
+fy dec -800 if e == -1008
+az dec 783 if k < -1313
+e inc -553 if pp >= -1900
+wfu dec -472 if baj < -1802
+xbp dec -53 if b >= 3427
+fy dec 174 if xbp < -816
+o dec 581 if vke < 3406
+k inc -458 if y <= 1785
+az inc 59 if az == 160
+tme inc 291 if wfu > 1978
+pp dec -933 if wfu >= 1989
+jyi dec -982 if l >= -1415
+pp inc 403 if jyi == 1258
+l inc -149 if pp >= -1491
+fy dec -663 if sb < -2275
+vke inc -866 if vke >= 3401
+sqf dec -397 if l < -1553
+xbp inc 1000 if wfu > 1981
+wnh inc -188 if wfu >= 1979
+l dec -260 if l > -1569
+baj inc 109 if xml <= 3033
+wfu dec -98 if rz < 3820
+az inc -676 if c < 417
+e dec -459 if wfu != 2083
+sb inc -556 if sz >= 6586
+l dec -104 if pp != -1490
+jyi dec 835 if e < -1096
+u inc 63 if wfu < 2094
+k dec 531 if ugc > -1405
+wfu dec 438 if xbp < 184
+wnh dec 304 if sz < 6589
+xml inc -278 if ugc <= -1391
+pp inc -25 if y == 1783
+k dec 179 if xml == 2753
+wfu dec 711 if u > -303
+eia dec 575 if wfu >= 931
+sb inc -1 if ugc <= -1398
+pp dec -948 if xml >= 2751
+xbp dec -441 if pp >= -558
+baj inc -558 if fy == 5077
+c dec -901 if sqf < 2063
+xml dec 572 if jyi >= 420
+c dec -286 if sqf >= 2051
+az inc 1 if tme >= -1221
+c dec 551 if eia > -4682
+sz dec 261 if xml == 2181
+b dec 354 if l >= -1192
+jyi inc 34 if xbp != 188
+wnh inc -591 if wfu == 935
+eia inc 639 if rz > 3807
+sqf inc 211 if sz != 6320
+fy inc 310 if baj < -2241
+fy inc -680 if az < -451
+b inc -352 if pp == -576
+k dec -704 if sqf != 2280
+ugc inc -664 if c == 1050
+eia inc -501 if e < -1103
+u dec 943 if b >= 3414
+baj inc -20 if sb >= -2284
+eia dec 571 if jyi > 461
+u dec 642 if o > 3212
+b inc -212 if rz >= 3808
+k dec -305 if wfu < 926
+eia dec -47 if k >= -1784
+u inc -15 if sz > 6316
+ugc inc -61 if xml <= 2184
+sz dec 663 if fy > 4700
+vke dec -340 if k == -1780
+eia dec 103 if l >= -1188
+vke inc -941 if wfu != 928
+baj inc 323 if rz > 3813
+fy dec 41 if wnh != -1573
+jyi inc 20 if pp >= -573
+o dec -656 if e != -1099
+sb dec 473 if tme >= -1225
+b dec 622 if vke != 2797
+c inc 484 if tme < -1221
+rz inc 363 if y > 1780
+b inc -74 if e != -1105
+sz dec -38 if k < -1784
+b dec -518 if xbp <= 192
+xbp inc -795 if sqf >= 2265
+u inc -484 if baj >= -2268
+fy dec 302 if wfu == 935
+k dec 643 if wnh == -1566
+wnh inc 16 if xbp < -611
+eia dec 289 if pp >= -575
+b inc 673 if rz == 4175
+wnh inc 305 if wfu <= 935
+b inc 18 if wfu == 935
+az inc 810 if pp == -568
+sb dec -609 if pp >= -559
+sz dec 311 if ugc >= -2122
+wfu dec -836 if wnh == -1252
+wfu dec -78 if baj <= -2270
+baj dec -186 if wfu < 1779
+c dec -129 if tme > -1220
+fy dec 662 if tme != -1214
+jyi inc 624 if u != -2394
+sb inc -906 if pp != -573
+rz dec -263 if wfu >= 1780
+k inc -364 if xml > 2179
+rz dec 214 if ugc < -2117
+o dec -539 if xbp < -606
+wnh inc -708 if l <= -1188
+sqf dec -901 if y != 1785
+ugc dec 0 if c != 1048
+wnh dec 712 if b < 4338
+wnh dec -554 if baj < -2086
+sb dec 777 if baj == -2078
+l dec 713 if c > 1046
+o inc 44 if eia == -4284
+rz inc 77 if o != 4456
+xml inc 862 if az > 346
+wfu dec 242 if k > -2151
+b dec 998 if k >= -2152
+sz dec 202 if o != 4460
+tme inc 941 if wfu < 1537
+pp inc -536 if c == 1050
+wfu inc 557 if y != 1781
+e inc -982 if y != 1783
+u dec -49 if y != 1790
+az inc 602 if jyi <= 1102
+e inc -457 if c != 1040
+wnh inc 914 if tme < -279
+tme inc -262 if c == 1050
+c inc -611 if c == 1050
+xml inc 921 if az >= 953
+tme inc -910 if k > -2148
+xml inc 994 if o >= 4452
+c inc 433 if xbp == -612
+wfu dec 591 if jyi == 1101
+jyi dec -916 if wnh < -1045
+eia dec -514 if jyi == 2007
+tme dec -305 if o <= 4463
+c dec -404 if baj <= -2076
+rz dec -942 if wfu > 1501
+xbp inc 286 if k == -2144
+xbp inc -119 if fy >= 3743
+ugc inc 171 if baj != -2074
+l dec -784 if xbp < -443
+ugc dec 146 if sqf < 3173
+c dec 397 if c > 1272
+k dec 468 if fy != 3743
+wnh inc -174 if sz == 5145
+u dec -225 if eia == -4284
+sqf inc 687 if fy == 3743
+e inc 705 if jyi == 2008
+wfu inc -904 if c <= 887
+jyi dec -593 if wfu <= 597
+tme inc 807 if e < -1554
+fy inc -497 if az > 946
+rz inc -921 if sz == 5146
+az dec -401 if wfu >= 591
+sz dec 728 if k > -2149
+c dec 884 if vke <= 2787
+l dec 764 if vke <= 2804
+xml dec 226 if b < 3346
+sqf dec -84 if c < 879
+eia inc 634 if e <= -1556
+o inc -473 if az >= 1357
+sb inc 917 if o == 3988
+ugc inc 411 if tme >= -334
+jyi inc 214 if az != 1353
+xbp inc -296 if c <= 879
+k inc -416 if sb < -3525
+eia inc -847 if tme != -350
+sb dec 525 if k <= -2139
+sqf inc -749 if sz > 4415
+c inc -382 if xbp != -749
+l dec -705 if wfu < 594
+sz dec 38 if xbp >= -739
+sqf dec 431 if xbp != -733
+b inc 766 if xbp >= -748
+wfu inc -263 if tme != -341
+wnh inc 435 if c != 494
+sqf dec -207 if vke != 2807
+sb inc -192 if sz < 4419
+sb inc 985 if wfu > 319
+wfu inc 478 if ugc != -2097
+eia inc -44 if rz < 4042
+u inc 457 if jyi >= 2818
+sb inc 929 if sb == -3249
+vke dec -199 if vke >= 2793
+sqf dec -144 if u < -1656
+sqf dec -917 if ugc == -2097
+rz dec 958 if b == 4109
+k inc -532 if vke <= 2996
+y dec -150 if sqf <= 3804
+jyi dec -149 if u == -1651
+jyi dec 939 if wfu < 337
+xml inc 266 if wnh <= -782
+pp inc 130 if tme == -338
+u inc 665 if xml > 4994
+o inc -510 if tme >= -341
+k dec -273 if sz != 4421
+vke inc 392 if wnh < -778
+pp dec -464 if wfu <= 334
+xml dec 746 if xbp != -741
+xml dec 215 if eia != -4541
+b inc 26 if sz > 4420
+wnh inc -601 if l != -1183
+u dec -660 if xbp < -744
+o dec -362 if xml < 5004
+k dec 689 if y > 1924
+ugc dec -245 if sb <= -2315
+rz inc 746 if o >= 3835
+sqf inc -65 if baj == -2078
+xml dec -571 if az > 1365
+xml inc -309 if wnh < -1379
+wnh dec -554 if y == 1933
+vke inc 542 if xbp == -741
+e inc -386 if o == 3840
+b inc -605 if c > 495
+az inc -784 if sz <= 4426
+pp inc 308 if sz < 4418
+c dec -79 if eia < -4549
+sb inc 224 if b >= 3497
+rz dec 681 if az <= 578
+ugc inc 210 if c <= 500
+baj inc -271 if o < 3834
+l inc 476 if sz < 4422
+o dec -432 if tme >= -345
+baj inc -713 if u < -982
+u inc -192 if baj == -2791
+baj dec 411 if wnh <= -833
+pp dec 728 if y == 1933
+ugc inc -200 if sb != -2096
+l dec 787 if fy == 3252
+pp dec -924 if rz >= 3136
+o inc 792 if o <= 4280
+b dec -300 if u < -1171
+sqf dec -328 if az >= 580
+vke dec 887 if baj >= -2799
+u inc -252 if vke == 3050
+o dec 640 if eia <= -4541
+sb inc -919 if wnh >= -836
+l dec 463 if wnh <= -841
+rz dec -942 if b <= 3797
+az dec -170 if fy <= 3253
+e inc 718 if eia > -4545
+az dec 103 if ugc <= -1650
+sqf inc 709 if jyi > 1879
+pp inc 566 if c == 502
+e inc -611 if sz <= 4417
+baj inc -998 if wfu != 328
+o dec 891 if sqf < 4450
+sz dec -86 if pp <= -143
+xbp dec 199 if sz > 4411
+rz inc -158 if c != 487
+rz inc -710 if wfu > 324
+ugc dec -635 if fy >= 3241
+k inc -221 if az <= 738
+sqf inc -74 if e > -1839
+az dec -317 if az >= 743
+eia dec 596 if tme <= -339
+vke dec 708 if wnh == -832
+u dec 414 if sz == 4417
+y inc 388 if e < -1841
+xml inc -783 if y == 1941
+o dec 695 if c < 498
+ugc dec -944 if baj != -2787
+b inc -964 if baj <= -2787
+vke dec -208 if sqf == 4373
+vke inc -206 if rz >= 2274
+ugc inc 726 if tme < -333
+eia inc 986 if ugc < 667
+baj dec -139 if vke < 2343
+o dec -19 if eia != -4156
+wnh inc -396 if sz > 4419
+ugc inc -74 if rz >= 2277
+pp inc 239 if wnh < -828
+sz inc -741 if u == -1594
+c inc 340 if k < -3089
+xml dec 156 if sqf >= 4371
+sqf dec 433 if b != 2841
+vke dec 231 if tme < -334
+u inc 393 if eia > -4150
+xbp dec -482 if u >= -1599
+fy inc 40 if u > -1601
+baj dec 29 if sz <= 3684
+sz dec 874 if xml != 4531
+ugc inc -50 if pp <= 103
+sb dec 96 if xbp == -458
+e inc 266 if jyi != 1894
+sz inc 336 if y == 1933
+eia dec -592 if wfu > 321
+rz dec -580 if o > 2863
+xml dec -468 if l != -701
+sqf inc -672 if sqf == 3940
+vke dec -600 if jyi < 1891
+e dec -31 if baj < -2677
+rz dec -409 if rz != 2275
+jyi inc 839 if ugc > 536
+wfu inc -886 if c > 830
+vke inc 500 if l == -708
+sz inc 490 if tme >= -344
+rz inc -478 if rz != 2684
+sqf inc -367 if o != 2853
+baj inc -461 if u <= -1585
+fy dec -642 if c <= 827
+ugc inc -371 if b > 2836
+l inc -983 if jyi <= 2727
+b dec 599 if wfu <= -565
+rz inc -852 if baj <= -3149
+sz dec -453 if c != 827
+vke inc 631 if jyi < 2725
+b inc 145 if xml >= 4996
+sqf inc -921 if ugc == 168
+c inc 933 if xml < 5002
+l dec 994 if y <= 1934
+eia dec 59 if wnh <= -828
+wfu dec 600 if ugc >= 166
+b dec -316 if az > 1050
+sz dec 832 if y < 1940
+fy dec -517 if fy >= 3280
+c inc -801 if jyi <= 2727
+xbp dec 381 if xml < 5007
+rz dec 115 if baj >= -3142
+az inc -553 if tme > -332
+wfu inc 837 if rz <= 2093
+ugc inc -490 if tme <= -334
+fy inc 645 if xbp >= -843
+tme inc -756 if tme >= -341
+rz inc -987 if e != -1543
+xml inc -423 if jyi > 2715
+rz inc 985 if c <= 975
+ugc inc -698 if o > 2847
+rz dec 498 if l <= -2684
+baj dec -826 if xbp != -845
+k inc 829 if o >= 2849
+xbp inc 632 if az == 1060
+ugc inc 778 if baj >= -2321
+y inc -806 if sz == 3249
+baj dec -91 if y != 1120
+xml dec 932 if fy == 4448
+fy inc -682 if xbp != -207
+eia inc -640 if u > -1602
+l inc -736 if baj == -2225
+xbp inc 244 if l >= -3429
+pp inc 26 if sqf < 1974
+wfu inc -465 if e != -1541
+e dec -224 if l != -3426
+wfu dec 424 if sb > -3117
+wfu inc 699 if u > -1597
+ugc dec -222 if b > 3298
+c dec 57 if c > 967
+e inc 318 if fy > 4440
+jyi dec -93 if pp != 102
+jyi inc 71 if xbp < 34
+pp inc 598 if xbp <= 42
+az inc 143 if wnh == -832
+xml dec 13 if baj > -2227
+ugc inc -643 if az >= 1200
\ No newline at end of file
diff --git a/2017/src/bin/day08.rs b/2017/src/bin/day08.rs
new file mode 100644
index 0000000..e5a9ad0
--- /dev/null
+++ b/2017/src/bin/day08.rs
@@ -0,0 +1,57 @@
+use std::collections::HashMap;
+use std::io::{self, Read};
+
+fn solve1(input: &str) -> i32 {
+    let mut regs = HashMap::new();
+    for line in input.lines() {
+        let mut words = line.split_whitespace();
+        let dest = words.next().unwrap();
+        let op = words.next().unwrap();
+        let val = words.next().unwrap();
+        assert_eq!(Some("if"), words.next());
+        let src = words.next().unwrap();
+        let cmp = words.next().unwrap();
+        let rhs = words.next().unwrap();
+
+        let mut val: i32 = val.parse().unwrap();
+        if op == "dec" {
+            val = -val;
+        }
+        let rhs: i32 = rhs.parse().unwrap();
+        let src = *regs.entry(src.to_owned()).or_insert(0);
+        let dest = regs.entry(dest.to_owned()).or_insert(0);
+
+        let cond = match cmp {
+            "==" => src == rhs,
+            "!=" => src != rhs,
+            "<=" => src <= rhs,
+            ">=" => src >= rhs,
+            "<" => src < rhs,
+            ">" => src > rhs,
+            _ => unimplemented!(),
+        };
+        if cond {
+            *dest += val;
+        }
+    }
+    regs.values().cloned().max().unwrap()
+}
+
+fn main() {
+    let mut input = String::new();
+    io::stdin().read_to_string(&mut input).unwrap();
+
+    println!("Part 1: {}", solve1(&input));
+}
+
+#[test]
+fn part1() {
+    assert_eq!(1, solve1(
+"\
+b inc 5 if a > 1
+a inc 1 if b < 5
+c dec -10 if a >= 1
+c inc -20 if c == 10
+"
+    ));
+}