aoc

commit e968c9fb2941d772697b7c7cf790b2f5f44159d8

Author: Honza Pokorny <honza@pokorny.ca>

Archive 2020

  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 
  | 0 


diff --git a/2020/project.clj b/2020/project.clj
new file mode 100644
index 0000000000000000000000000000000000000000..c023e04fe03b711ea568eaa7564dd8239e51840d
--- /dev/null
+++ b/2020/project.clj
@@ -0,0 +1,8 @@
+(defproject aoc "0.1.0-SNAPSHOT"
+  :description "FIXME: write description"
+  :url "http://example.com/FIXME"
+  :dependencies [[org.clojure/clojure "1.10.1"]]
+  :main ^:skip-aot aoc.core
+  :target-path "target/%s"
+  :profiles {:uberjar {:aot :all
+                       :jvm-opts ["-Dclojure.compiler.direct-linking=true"]}})




diff --git a/2020/resources/input01.txt b/2020/resources/input01.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3c039b7ba24e88f68dce34a38df090ffe61bbba8
--- /dev/null
+++ b/2020/resources/input01.txt
@@ -0,0 +1,200 @@
+1895
+1732
+1660
+1658
+1878
+367
+2010
+1989
+431
+1946
+1614
+2003
+945
+1856
+1934
+1937
+1781
+1947
+1991
+1917
+1604
+1707
+1966
+1959
+1182
+1828
+1880
+1908
+1942
+1687
+1611
+1922
+1913
+1803
+1976
+1718
+1885
+1971
+2000
+1912
+1981
+1776
+1901
+1941
+1935
+1977
+1907
+1893
+1898
+1975
+2001
+1833
+1951
+1939
+1988
+1870
+1985
+1932
+1930
+1938
+1926
+1931
+1982
+76
+1979
+657
+1872
+1933
+1961
+1987
+1998
+1994
+418
+1914
+1929
+1810
+2009
+1712
+830
+1990
+1900
+1876
+1753
+1859
+1965
+1963
+1905
+1921
+1685
+1694
+697
+1899
+1997
+1964
+1927
+1952
+1894
+1960
+1986
+1883
+1616
+1993
+1892
+1943
+2005
+1995
+1915
+1663
+1954
+1902
+1191
+1948
+1875
+1850
+1955
+1962
+1984
+1957
+1969
+1887
+1953
+1786
+1638
+1909
+1881
+603
+1973
+1784
+1869
+1925
+1968
+1737
+1807
+1950
+1992
+1936
+1918
+1891
+1897
+1940
+1919
+1910
+1862
+1958
+1832
+1904
+1791
+1920
+1874
+1729
+1643
+2007
+1871
+1999
+1584
+1890
+1924
+1974
+1701
+1906
+143
+1725
+1945
+1783
+1873
+1903
+167
+1855
+1633
+1956
+1996
+1808
+1884
+1916
+829
+2002
+1852
+1835
+1889
+1983
+1949
+1970
+1774
+1764
+1609
+1882
+1857
+2004
+1911
+1896
+1980
+2006
+1967
+2008
+1972
+1648
+1923
+1978
+1675
+1831




diff --git a/2020/resources/input02.txt b/2020/resources/input02.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f4997c30891eed45500c538ec98feed1af7d4301
--- /dev/null
+++ b/2020/resources/input02.txt
@@ -0,0 +1,1000 @@
+6-10 s: snkscgszxsssscss
+6-7 b: bbbbbxkb
+2-4 n: nnnjn
+1-2 j: jjjj
+5-9 z: jgzzzqhbj
+4-11 m: mfmmmpmjmkdr
+12-15 t: twqrxttwttthtkxbz
+8-9 z: ftzjzzzzr
+17-18 h: cpkhssvpphzvprfnft
+7-8 b: bjbbbbbb
+4-5 p: pppppppppgppps
+16-18 r: rrrrrrrrrrrrrrrrrr
+9-16 v: vvvrpvbvvvvvvvvvwvvh
+11-15 d: ddddddddddddddjd
+9-14 g: ggbggghggggggggw
+1-5 d: ddddbd
+1-4 x: xxxwxxx
+1-2 l: bdjjddlqg
+1-4 b: lbbxb
+15-16 f: ffffffffffffffmz
+10-16 m: mmlmmmvmmmbhmmmq
+4-15 v: vlfvvqphhjfvlgt
+5-12 m: mmmmjmwmmmmcmmm
+7-8 q: qqqqqqxkq
+4-9 h: hhzhhhhhhhhhsh
+3-7 t: thltdtjtstzrtwtt
+6-7 k: kkkkkkk
+1-5 q: jqwqd
+4-13 x: xxxxxxxxxxxxxxxxxx
+1-4 l: llfl
+6-12 n: nnffnfnnmnffnx
+4-6 m: xmvxnmpmm
+5-7 m: mmmmbmmmmmmmmm
+9-17 f: ffffflffbfffffcffff
+4-10 k: kkklkkkkkhktkkbkzq
+8-15 z: kdxxzzlhpzgbzjzz
+2-5 q: qrqqbqqqqqqqkqq
+3-5 t: zrttht
+9-12 t: ttxgntjmvntctpfrt
+2-3 k: kkkk
+8-10 j: jjjjjjjjjj
+2-9 k: vkwkhcqnk
+9-10 t: ttttttthtt
+4-6 b: bbbbbbbb
+9-12 n: xnvnnvldhthlsn
+2-4 w: wwwwwwj
+6-10 t: tttttwttttvtt
+3-10 j: jqjjjxjdjnjjjj
+15-18 q: kqlncdqwclqpjzrbnq
+7-8 p: gpwbjppp
+3-13 m: mmmmlsmfvmhmmmm
+7-10 s: wdshsrsgsl
+8-16 f: fffffffxfffffffcf
+16-18 s: ssskswhsvslwsssrsq
+12-14 j: gjjjjkjgjkjhjvj
+13-14 t: gtttvftwtgvhlt
+6-7 v: vvvvvgbv
+2-8 l: ssldslmvl
+3-9 l: bflzllqkqlkll
+8-9 n: rrnnnnnnsn
+7-14 p: bqsrxgplkpdvbpkn
+2-5 z: wzbclnsxt
+2-4 k: knkxk
+6-8 d: drddjddjdd
+15-16 p: ztgptpfpcwppqrzppps
+1-3 k: nmsqksv
+7-10 n: pwhbcwnlznfnvrlnds
+13-15 t: tttttttttttttttttt
+10-12 b: bbbbbbdbbgfxbbbf
+3-5 w: rwwwj
+18-19 x: xxxxmxxxxwpxxxfxgln
+1-4 g: lfsjtgggg
+13-15 x: mxzgtxhrxjhxtnf
+13-14 d: ddddddddddddlx
+3-5 r: rrrtrrtmlr
+1-7 t: thttttttttt
+2-5 g: sngggj
+8-9 n: tnnnnnnnn
+6-10 w: wkwwjfwltk
+12-18 n: nnnnnnnnnnnnnnsnnh
+14-18 m: mmmmmmmmmmmmmmmmmmmm
+5-15 v: fvvfrcqkvkggnpl
+13-19 f: ffffffftfffdnffffpsf
+13-15 k: kgkkkmkkkgftklb
+4-6 h: hhhchvh
+7-14 l: qmbdhdjbrglxql
+13-17 w: kwwwwwwwwwwwdpwww
+1-5 q: pqqqdqqqq
+8-9 p: vhwphvpfp
+2-4 h: hljmh
+1-2 c: tmcc
+3-5 f: dpnvwffhlp
+3-5 m: mmmmmm
+10-12 c: ngjnczmcscxc
+2-4 x: mxxj
+4-6 m: xbmkmm
+1-6 l: kllllsblqhngl
+11-18 x: xprkjcrxkgxxgwtbmx
+4-6 k: vwxshkkkkbtfbhl
+11-15 z: dzzkzjjzzzzzzzlmzbn
+5-6 f: ffffnfffflfjff
+3-6 d: ddddddbd
+6-9 r: wrrrvrrrr
+8-9 n: nnnnjnnnt
+2-7 b: bxptdkctbrxfllpvj
+3-4 x: hxxv
+5-14 n: nrnnnlsnznnzrqnjxnp
+1-3 w: wwww
+9-12 x: xxmxxxxxxxxxtxx
+10-14 j: jjnjjjjlvjkcsjjdllvj
+4-6 w: wgwbwwww
+10-12 t: ttqttttttttl
+10-11 t: ttwtttttttv
+9-15 t: ttttttttftttttttt
+2-3 p: pfgp
+2-4 z: brrksnvqjzwqjvjs
+8-9 n: knnnftzjbqj
+6-7 w: swjwwdwwwwwwwww
+1-2 j: xjlrkjjztrjfpss
+13-14 l: llllllllllllvlllllr
+7-12 l: lllllllllllblllll
+7-8 j: gqdcmjqh
+3-9 g: gchkbvgvgw
+15-17 b: bbbbcbbbgbbbbbmbg
+1-7 h: qlmhhcdhhhhhhhhhh
+2-15 c: ccccccccccccccscccc
+1-2 q: xvch
+3-9 w: wwwwwwxwww
+2-4 x: jskx
+3-7 t: btwsnvts
+9-11 g: gkhgwctggbm
+2-7 g: xvgwwltdvnzscbtqwb
+1-11 k: kkqkpkkdkkkkkkkhkk
+4-12 h: nbqlhjbqhxtnxlzlr
+3-4 d: dwdd
+8-9 k: kkkzbckklqqkhfkqkk
+7-8 c: pcxmqdwc
+2-4 v: qbvwvvnvvp
+3-9 c: pfqcblwxcrmx
+1-9 t: fwgtcrftktt
+7-8 p: pppppppp
+6-13 w: dnwfhwkjffpdwgzdf
+10-14 k: kkkkkkhkkwkkkkkk
+2-4 s: zscssddtpmqblmd
+11-13 b: dbvzwthlcmbkb
+1-4 k: kqlxwvbkckwzmqxvtcc
+2-10 s: sxssssgsssxsssnss
+3-9 w: nxrmwlpgw
+10-13 w: wwsgwwwwwwwkw
+9-13 v: vhvvwjvcvbvvg
+5-7 n: fbvnjpt
+3-4 x: xxxx
+9-10 l: rlllmlllll
+7-9 d: ddddddddhd
+4-8 z: zzzhzzzf
+11-12 m: mmmmmmmmmmkf
+4-8 m: bmfzppcqttct
+2-4 m: mfmcmmmcx
+2-9 p: rppzgvshn
+7-8 r: rrrrrrrrrrvr
+6-7 p: hkltppp
+7-10 m: mmmmmfmmtmmmpbmm
+6-14 p: pppppppppppppxp
+4-6 p: wbspppnlmc
+2-4 n: xnfnl
+2-5 q: nqkcqmvwp
+2-3 d: ddkbkdjd
+5-9 b: qxjbblbrb
+14-16 b: bbbbbbbbbbbbbqbbb
+5-6 p: dppppp
+5-8 j: kxztnjjn
+14-18 k: krkkkkckkkkmktkkkkd
+7-8 n: nnngxnfpnn
+16-17 c: ccmccccccccccccfcccc
+1-3 g: wggg
+1-2 c: cqcckc
+2-8 g: gjwdkbds
+10-17 s: hswqssmttskspdlkkss
+14-16 b: bbbbbbbbbbbbpbbrbbbb
+12-16 r: srrmcbrrcrzrdwzng
+2-3 h: fcws
+9-13 p: gkgpqpghpjbpz
+9-10 m: mmmmmmmmmmm
+3-4 b: brbb
+2-3 p: gncvqdhp
+2-7 g: gdggggggggggggg
+2-7 j: jjjjjjrjqjjj
+3-5 v: ltptjlntf
+1-7 w: gwwwwwfww
+7-10 z: zzzzzzmzzzz
+10-12 x: xxhxxxxxxgxsxxxx
+11-12 b: bbbbbbbbbbbbd
+16-17 v: vvvvvvvvvvvvvvjht
+1-4 x: bxxx
+16-19 g: gggggggwggggggjgggg
+5-10 q: qjpqqvlnkqxmlv
+4-6 p: qrpffplvpp
+7-9 r: rrrrrrgrb
+2-3 g: bgjg
+10-12 t: ttjttttnttdtt
+2-4 g: dgng
+11-12 r: rrmrrrlrtrrj
+1-5 v: qvvvvvvvvvvvvvv
+3-18 p: ftnfnpmjprmrzmhbnxj
+10-12 w: dqnsjjxsqrwq
+2-4 z: lzgkzsb
+8-9 n: dwclxdtnndtpcgqmx
+10-11 w: zjwdsphbbwlhp
+2-9 d: zzprkgzczbs
+14-19 c: gpjfrvsrcnbxbclctxc
+1-9 f: fmhfvfffrfws
+12-14 d: ddrddbddddddddhmdg
+14-15 s: sslsssmsnssdxsj
+2-10 v: ljppzjfvfnfp
+1-2 z: qbwbzknrzzs
+18-19 l: llllllllfllllllllll
+2-3 p: ppgp
+13-15 k: knkkkkkckkkkhkxk
+3-6 v: vbjvmv
+4-8 h: hmhcxfhg
+12-14 v: vvngcvvvvkvgvs
+2-3 j: xdjjrk
+5-13 s: sssssrqsssssq
+1-7 s: sssssssss
+6-14 b: ptlvmbbrbxnvqbrmp
+16-18 w: wwwswwnwwmwwwwwwwf
+1-4 k: kkknkkkkk
+1-4 g: ggrbk
+9-11 r: rrrhrrrrrrrrr
+11-13 x: xxxxxxxxxxxxnx
+3-8 x: nsxvlvdfbkpxsgscn
+12-15 h: hghhchvjhhhhlvhhhhh
+11-12 n: nnnnnnnnnnjqn
+10-13 r: jrzfzrzrqblmks
+7-8 w: wwwwwwwh
+3-4 k: kkbft
+1-9 c: cccccjccccccn
+2-7 r: rrvnrxrvrzsrbrs
+3-10 l: llgdldmlplqlhdlll
+4-8 m: mmzmbmgm
+5-6 q: sfxqnftnbnqwq
+5-6 v: vvvvgvvqv
+9-14 h: dhmwrhzqqvhhhfhfhhht
+4-7 p: jwwppvpklc
+9-13 z: zzzzzzzzzpzzzx
+13-14 l: fllklltlllllcphllll
+12-15 m: htmbmqgljcmvmclgnm
+9-10 b: bbbbbbbnbb
+6-12 x: nxjbxxhxxxxgdxx
+6-7 t: tttbwlk
+8-11 q: fqqjtlswqgkqdqc
+16-20 t: xplwqxbwtsfptbvtvcxt
+3-4 k: kklkkkkkkxkkkk
+3-9 m: kmmsvmpmxmgmb
+6-12 j: jjtjjjjjjjjpjjwj
+3-4 m: kkmbmzkx
+7-8 f: gmfxlgfjtfst
+1-3 w: wwwn
+1-7 k: knkktkkn
+13-16 v: vvvvvvvvvvvvvvvmvv
+10-11 h: rhvdhnfhvtchlfhh
+10-12 x: xgxwbqxkxxcwsfd
+10-14 m: mmmrdxpcmcmmmkmmmmm
+2-5 x: vvxpx
+8-9 h: hhhhhhhmfh
+16-19 j: jmwjjjjjjjjjjjjjjjz
+2-3 r: sqrnr
+14-19 p: ppppppppppppppppppk
+2-5 w: wwwww
+15-16 q: dppxtnhmxrhmncrqq
+4-5 v: drhpp
+1-4 p: pkhn
+3-6 q: gwmrfwh
+6-10 v: dlvvfhvvkb
+1-8 q: qqqqqqqqqdqqqqqqqq
+17-18 n: nnnnnnnnnxnnznnpnng
+3-7 m: gmxzffwmbdm
+12-14 m: dmzmcmmhjmqltm
+3-16 w: drcbwtvqgbppbwzvm
+8-10 d: ddbddddzdddddkpd
+8-9 m: mmmmmmmmmmmm
+1-3 l: glll
+7-11 x: fxrxxdxxxqxnxx
+6-7 d: ddddxgdd
+7-8 g: hgggbggg
+2-3 w: pwwtww
+7-10 h: lhwbhjhzhx
+3-14 b: bbbrvrbsfbnxrgqbbq
+4-7 l: jzqkxlnpxlglfsll
+6-7 b: hbpbbbb
+2-4 w: pskwwxzpjvmwcnfr
+13-15 m: mmmmmmmmxmpmxmmm
+4-9 k: krxkzqzkkhrpqth
+4-7 f: xfffkvfqzwhcfwkhq
+4-10 q: qqqqqcqbqqq
+14-15 s: lgszsdststlpgjbs
+7-12 s: sspbsssskfns
+7-8 d: cdddqpnd
+13-15 p: ppppppppppppxppp
+10-11 r: rrrfxrrrrrrrrr
+10-12 z: zzzzzzzzzvzvzz
+3-4 l: lllwll
+7-9 p: ppppkpppqpppppsvx
+3-4 k: kkkrk
+4-5 v: zxmmvmhvr
+14-15 r: rrrrrrrrrrrrrfjr
+6-10 b: vwbgbbbbdbqsbb
+5-7 j: jsjjjkv
+3-4 m: tzmhr
+11-13 r: rrrrrrrrrrqrhrr
+1-4 s: psqmcssnk
+5-6 z: zdkzzzz
+3-5 p: cnpmbtknqdppmcjpzvcn
+13-14 g: ggggkggggmtggd
+14-17 c: nxmzcczccnvdcxpcmb
+6-10 w: wlwwbdwwwwwwww
+9-17 l: llllllllllllllllll
+2-12 j: jpjdjjjzmjxj
+1-3 n: szjntnnl
+7-8 l: dpxlmhlbts
+5-16 s: sssssssssssssssrs
+1-6 m: pmqvlc
+7-15 f: ffffffffqfkfffdxff
+10-11 w: wwwwwwwwwwswwww
+7-12 p: tkppvfpwksrp
+4-7 f: fdjdgdvsksbfbnjkspc
+4-11 b: bjmvfrmlmlbndl
+1-3 r: rrrnxhgbwr
+5-10 h: xhhmhhhlhbh
+10-11 h: hghhhhhhdlhhh
+5-6 g: gptglg
+9-11 t: wtgtxtttqtmttt
+5-11 f: jxqffhfsfmz
+4-7 f: frjffbf
+1-15 m: mmmmmmmmxmmmmmmmm
+1-12 d: drwlbpdbzdgdjpnzmj
+9-14 n: nfnmktjnncnnnln
+1-2 h: pshhjhhhhf
+2-4 t: tgttttttfb
+2-4 w: dwpwhnxbf
+7-11 b: vbcbzhbwhpb
+4-5 k: hknck
+5-12 m: mmmmtdmmmmmmmm
+5-7 w: qwflwxq
+2-5 g: jdnxdlclplvb
+5-7 t: ttrtttttkr
+8-18 l: lwscjwlmdlzlllnsllpw
+2-8 c: cccxtccchbrkr
+1-3 q: qqtqqqqq
+3-13 d: dddddddbddddddd
+1-7 r: jkpzrpfnrgpkc
+9-10 t: ttttttttttt
+11-12 w: wjwplwwwwwmw
+9-12 r: rpsvrhrbnrwqch
+6-11 p: zpzbpkpmtnptsnpbswc
+4-6 t: jhzstt
+3-4 t: ddpkcgpzhd
+4-6 s: cvzshjfrsslxnslqddwt
+1-3 c: cgsczhl
+1-4 d: lddqdqd
+6-7 v: vvvvvvb
+5-8 w: wwwwwwwwww
+5-11 p: ddswpbpppsqpp
+5-6 x: dfzxxxhhqjvj
+3-7 m: mmmmmmmmmm
+4-8 g: ggggggggg
+5-6 j: jjcjjn
+5-6 n: nndtns
+4-5 t: ltxkdpst
+2-8 b: ldwkbzbxgpbbbb
+11-12 w: wwqwdqwwwqhvwww
+15-17 k: klkcxqbwrktxcmqlnb
+5-6 k: tkqhkkkkrkjfd
+12-13 x: nxxxrjxxxdjlxxbt
+9-12 m: mmzmmmrmmfmgmmmmb
+2-5 v: tkbhvlvp
+12-14 v: dvbvvvvhrcvvvxxvvvvv
+14-16 x: xxxxxxxxxxxxxrxxxx
+6-7 v: xvswnvvm
+6-9 c: vcpcksxwbdlc
+5-11 s: sssssjssssrsdjsssq
+6-16 j: jjjjjmjjjjjjjjjnj
+8-12 g: ggggwggggggnggg
+4-5 c: ccczk
+14-15 l: lllllllllllllkm
+10-11 r: rrrrrrrrrrrrr
+3-5 n: dwnvnlj
+2-4 x: xdxxxx
+5-6 j: jjjjjjj
+3-9 k: kkkkkhlrkktt
+3-7 t: stqtgfdprtqjsgznrtjh
+11-16 n: hsnnnnnnnnfnvnpqnnn
+13-16 v: kdvbvxvvtvhvvvvq
+1-3 v: vwpvkvdpxgc
+14-17 v: vvvvvvvvvvvvvnvvhv
+14-15 m: mmmmmmmmmmmmmtm
+6-10 m: mmmmmhmmmm
+5-8 t: tttjrttdsttfttwstf
+6-7 c: ccqcvcc
+2-5 v: vvvvvv
+8-16 c: cccccccccwcpcccmcccc
+4-5 t: ztvttktttttt
+10-11 n: rnmnnnnnnnnnnnnpt
+5-6 g: lgsggggg
+15-18 s: lcsmgkjqzdpcgvsrng
+2-6 p: wwpppp
+9-10 v: vvvvsvvvmvv
+6-11 c: qrmdjxzsmxcmcccgrr
+17-18 b: bbbbbbbbbbbbbbbbbbbb
+6-10 t: thtxgtpxwt
+2-8 f: xkgbrpqfsrhhbnfpdg
+3-8 c: gqkkvgkcqfwdc
+5-6 c: jjcsjf
+8-16 q: fbwdmlwljqqcrqsq
+3-10 m: mjmmsmmmmmmcmm
+5-15 x: xmrvcsjwxxdpsrxzcrzj
+3-7 x: rxngzxxg
+17-19 z: mmvfgzpmbvzsrmkgmmmb
+3-4 z: zdzz
+4-5 v: vzcvb
+3-11 z: tzllpgzzmwxznh
+8-11 x: ptgvnbxzsxwdb
+2-3 r: rrrrr
+6-10 b: bbmbbbbbbb
+6-11 q: wvmqrzrllhxfzmpkp
+13-17 v: vvrgvvsvvcqkvvvvbvvw
+16-18 p: ppppppppnppgppppclp
+13-15 g: gglggggggngggggggggg
+15-17 b: bbbbbbbbbbbbbbbbb
+3-6 t: tpwzktlzkdt
+2-3 m: lmvtnfjzmm
+1-7 j: jzjjfjx
+15-17 r: rtfdnhrrhrrdcswrl
+1-3 d: gdfdmddddwdddlsd
+3-4 r: qrtr
+10-11 m: mmmmmmmmmkc
+2-5 n: gntnnnncc
+9-14 b: bbbbbbbbbbbbbb
+10-13 f: fxfffznffffzwffflz
+5-12 j: vjjrjjjjngjjjjm
+6-8 k: kkkrkklkkkkkkk
+5-7 r: rrhzsxrjjw
+17-18 g: gggggggggggggggggf
+2-3 h: ghhvrh
+1-3 j: hjjxjjjj
+3-5 q: gbqnqkprckxqglkhw
+17-18 n: ngnnnnnqnnnnnnnnnnnn
+2-3 m: xlhmmq
+6-7 p: kvvphgj
+9-12 k: kpkzkkzkkkkkbwk
+9-10 k: kkrkkkkkmt
+5-10 t: tttttttttttttttt
+10-11 l: ztdvlllzfltlwlglkhcj
+7-12 t: bttttqtqttttttttg
+3-4 z: xzvb
+5-10 h: lhcdhkhhhhb
+1-6 z: jqzzqzzzzzzzzzzzzz
+6-7 x: qxxxxtxz
+13-14 g: gggngggggggrgsgg
+1-2 t: tttt
+11-15 w: hpwhwmwlkbwtwmwlj
+8-10 r: rnrhrrmprnrrr
+5-12 z: rshzhwgzhfjb
+15-16 s: sssqssssssssmsss
+9-12 z: zdzzzzzzkzmz
+10-12 c: mfgpskncfcfctjmt
+5-10 p: sppwnpdpptppwdppppp
+3-14 q: mnzfgfmvmsdlqg
+1-13 s: sssssssfssssbsss
+6-8 d: ddddddddd
+2-5 j: vsbbjh
+14-16 m: nmklmsrpjxwpdbmj
+3-8 v: rfvvvjqv
+18-20 p: pppppppppqhpflppbppp
+7-11 x: xxxxxxwxxxx
+3-4 l: llmvlll
+8-9 w: grmvwtwbz
+2-11 m: mmmmmmqmmmsmmmmmmmmm
+6-13 h: hhhhhrshshhhlhhhh
+3-12 t: tnttblttttcvrtttx
+5-18 f: cfffcffvgffffrmlfx
+1-3 n: rnjnnnnnnnnnnnnnnn
+1-2 w: smmdq
+1-5 v: vvvvvv
+5-15 s: tssssscssffhsswssss
+3-11 b: bbbbbbbbsbkbbbr
+13-15 j: xjjpjjcjjjjjjcj
+5-10 g: bvjvgpzgdgkmmzwnwrxz
+2-7 q: qqqqqrq
+10-12 d: fddddbdddxdqpd
+5-7 c: hsccjccrlm
+11-15 r: nrrrlrrvrdlrprw
+13-14 r: drrtbrrrrrrrrcrrr
+8-10 c: ccccxcchfjcccccxpc
+8-9 s: sssssssss
+1-10 r: rvlgkrrrrm
+8-13 w: jwbwcwmwwvwwwwww
+7-12 k: fxkkcnkkbvkxbkphx
+7-8 l: llllmlvll
+11-15 q: qdjpqwgfqjdqnnq
+8-9 m: mmmmmmmvmmm
+6-7 k: kkkksmkb
+4-6 h: hhhlhhhhfhhhhhh
+2-5 k: xzjlwb
+3-12 j: sjwqrjzjgqrj
+5-18 p: ppppppppppppppppphpp
+1-3 g: gggrggggg
+14-15 n: nnnnnnnnnnxnnhnnn
+19-20 d: jkpzsxwsddzccjdkcptj
+2-4 v: wpdz
+1-8 w: dwjtngwwwrwhp
+13-15 t: tttttctttttxvfrt
+6-11 h: ksvshqhhdth
+8-9 k: khfkdkppl
+11-12 d: whlmcdmfgfddd
+11-12 p: htvxpkfngthz
+6-9 v: vqvmvvbbv
+5-8 m: lghmmmrmmw
+14-16 q: dtmqqrqqqqqgpgqtqr
+2-11 f: bfjskxzlgvfml
+10-19 p: kpppppppphppppppppp
+5-7 j: rfbpzmjtjj
+9-10 p: kpppppppqpp
+3-15 k: hgkgrqblnjmsbvrghzdk
+6-7 r: rrtwrwlfrswwr
+3-4 k: fkkdv
+12-20 g: ggggggggkggggggggkgh
+3-5 x: xxxxpxxxxxxxxxb
+8-10 k: kkkkkkkzkh
+4-10 q: qqqmqqqqqcqq
+4-12 t: ttgtqblzqzpttcxdtfn
+18-20 s: sssbbsscsjvslsvsssss
+3-6 x: xxxxxxx
+4-5 t: tttttt
+5-7 q: xqqqqqqqxkqqqqqqqtqq
+2-4 s: zsvq
+6-7 b: mmbcklx
+1-13 z: zzfzkshpslwcn
+1-14 d: ddpddtdddddmmf
+8-13 j: jjjjjjjjjjjjjjjjjz
+5-6 c: cjjlxb
+10-12 v: vvvvvvtvvmvv
+2-3 b: wfbbg
+1-10 l: llllllllllllllllll
+5-10 d: hdbhdgxcjd
+10-13 t: ttttttttttttnt
+5-6 h: vhmhhh
+16-17 x: xxxxxxxxxxxxxxxsqx
+6-14 g: gzggggzhggggzgg
+15-20 f: ffbfxffffvfffffffhfd
+2-3 d: xdvw
+5-7 g: zgggjgq
+2-12 g: ggggggggmgggggg
+6-8 h: hhhhhhphhhlhjhhxfh
+3-10 j: knjklstqxwcsjf
+2-3 h: hvnwjxhpsc
+7-8 w: wwwlwwgw
+14-16 s: chgtpswssxsqtwzrsqt
+5-6 d: zdbdkl
+3-4 p: lwkpbrbp
+8-14 c: cbhtccjmrccrcp
+2-3 s: tctflmgdtsjjfxpl
+3-4 g: gggjkctwdsgl
+2-4 h: ghbh
+4-13 h: fczphhvflghhhd
+3-10 x: jkzhgljwsblcrmbwfx
+12-13 p: npfgppprzpppc
+7-12 l: sqbplmqnlmwph
+1-8 p: hpppvpprppp
+12-18 n: nhbznznxncnkcchscl
+9-10 g: grjxmgzpgk
+6-7 g: rcmkggggggg
+1-7 b: bbbbbbbb
+2-3 t: ttftzqt
+8-10 l: twbjlnblhck
+1-2 c: cvbc
+4-9 d: mfpdddsnd
+5-8 f: flpvbdrfl
+7-12 s: rhspsxlbpsmsclzrdsfc
+2-4 h: vhhh
+1-10 k: bhkkkkkkxkkkzk
+5-15 q: qqqqqqqqqqqqdqdqql
+12-15 c: ljvcklwjvngfgfgrjsv
+8-10 w: pwwtpbwwvwwrwww
+5-13 b: tbjmbfmknjhbb
+1-2 v: cssd
+2-5 s: ssssss
+3-4 h: bhhxxhfh
+3-5 p: pfppp
+13-20 l: lcxxllcfjmllclljllfl
+2-4 p: sqpzk
+2-4 l: xlllb
+1-7 t: ttttttrttttrttttttxt
+10-12 m: bwmmghzmqmmpmj
+5-8 l: jtlljpql
+5-6 d: lddddd
+6-8 c: nljczccdwvnmrlqvlsc
+8-9 d: dzdddcddt
+10-11 z: zzzzzzzzmqj
+3-4 s: msssss
+3-5 z: xzvdzbzt
+2-18 v: bvcbpwkbdmclbnbmsv
+9-12 b: jrcccsndstzbxprkvtq
+3-11 n: vlntglzvvcnngn
+3-8 v: rpgckwptlvdqsrqqt
+6-11 q: qdqdkqvkvhdrdqm
+9-12 b: khbmbgbbvbqb
+9-10 g: gtggggggczgg
+3-5 c: zqctcs
+15-18 z: kbzsdhbbzxfzzqdjzc
+7-8 g: ggggggzx
+9-10 s: sswssrssqms
+14-17 g: ggggcggggggggpggcgg
+10-15 g: qgzmbkjlggrhgkg
+9-11 j: jjjjjjjjqqjjjjjj
+5-6 c: cgcdcchcccbcc
+2-4 g: gggg
+5-13 h: plkhhrmxhxhmh
+11-16 v: vkkqrvbvbcvvnvvvvv
+6-7 c: rlfmqphqrhqkhch
+3-5 z: hzspz
+8-9 d: kddmdddpdvddln
+5-11 k: wkqkcfkpvnkvh
+4-7 r: fnzzwxrxr
+15-16 r: rrrrrrrrrrrrrrwr
+2-19 f: fvffffffffffffffffwf
+9-11 v: hbvbvvgcvvvj
+2-4 m: mrxpv
+13-14 z: zztzgzzpzzzzzg
+4-10 t: qtvtcrfmlkrgtwsvwtw
+3-7 g: ggggggfgggggggg
+5-8 c: ccccfcccnmccc
+6-12 z: bzfcjzdznzwzrzbzzqrn
+14-15 c: ccccccccccccczkccccc
+3-4 j: jjjjjjf
+1-2 x: kxxxx
+3-4 s: sksj
+17-19 c: hvchccvccdxgccnxdcc
+3-6 r: trrrrrrr
+10-11 c: ckcjzcrzcbc
+1-7 p: pmqplfpvgq
+3-4 h: hhmx
+5-6 n: nnwndln
+5-10 v: bkkvfgvqwdt
+7-14 h: hkjlwvhdnhxhwcnhs
+4-12 f: xxwfjfcwslrfzrxfkxj
+2-3 c: ccccc
+4-13 k: kkkdkkkkkkkkkkk
+8-10 b: mqlljkpbbbxbrbfx
+1-4 p: pppp
+14-17 n: nnnnnnnnnnnnnnnngnn
+5-6 d: dddddddvw
+9-10 r: rjtrrrmqrrrzrrrrjrrm
+7-11 x: bxxxxxrwxpmn
+13-14 w: gwmwwwlwwjwjwx
+2-4 d: dddddvddd
+7-9 p: pjmdppgpspcslh
+13-16 l: tllllzllpvllvlzd
+9-11 q: qzmwqqzqtqqq
+4-5 d: dvdngdd
+9-11 j: xxxvjrmgjpk
+3-4 c: rvvcn
+15-16 r: rxvmlslkpmqdqtdd
+2-5 b: sbflb
+4-5 w: wntpw
+8-16 n: nnnnnnnhnqnnnnnnn
+5-6 n: nnnnnnn
+2-5 q: bsjfhq
+6-18 r: prrrqkmrrrvbrrrrdfrv
+3-5 g: xnxlp
+4-11 s: jsstsssjssfssss
+14-16 d: dddddddddsdddddd
+18-19 n: vgngvbhdjfrbnznhhjzn
+11-13 f: ffffffffffgfgf
+5-11 n: dbgvngchnkngt
+3-4 f: gsff
+2-4 r: rfdrlznkzg
+10-18 z: zzgzwzzzzzzdzzmzhzzn
+4-5 s: qscmbssss
+11-15 x: xbxxxxgxxxbxxzw
+2-10 h: dkrnxknmthcv
+12-13 b: bbbbvbsbbbbgcbnb
+4-5 m: mmlmmsmmh
+3-6 j: njrjjkcr
+10-12 x: xxxxwdnxxxxx
+14-16 g: hggggggggngggggg
+8-9 x: gjqfxxxtxxxb
+16-17 f: ffffffffjffkffffmffb
+2-8 z: tsktkzfxntrv
+2-6 v: hvvswd
+1-2 w: xddl
+2-6 k: svwvvkqmzwjkx
+9-12 p: ppppppppbppspppb
+12-19 m: mdjmlhsmxmwcmmmmmmm
+3-5 x: rxjxb
+17-18 r: rrrrrrrrrrrrrrrrwk
+2-9 b: cbfbqcfwbmwd
+1-11 h: hhhhhbhhhhmvhhhh
+2-3 j: jkjjgjhxj
+5-6 f: fffffffffhf
+17-18 j: jprvtszvgsbtxlrhljsz
+1-4 m: mmhmmmp
+2-6 p: xvfkpkc
+1-2 f: xqtfcf
+1-5 r: brrrrrr
+7-10 w: wwhwwwdwwj
+1-4 w: vwwdh
+1-3 f: hnpvgfwth
+10-12 k: kkkkkkkkkdkq
+5-13 r: rrpqrrvrqrswzr
+9-17 x: xjxxvxvbtxxxtpxpx
+12-13 j: njrjkcjgbjjnj
+2-4 l: lvll
+12-17 p: dpppprpbppnvpppprp
+4-18 b: zftbmbxgzfzdvdnvhb
+12-16 r: lcqgqjthprlxrzrrx
+2-7 m: msclccmxhsmf
+3-4 b: bfkb
+2-6 k: skfgrk
+4-5 q: qqqhhx
+6-8 c: cccmvcch
+16-17 l: bxnlvbvwzvfvbcmxl
+7-12 c: cccccccccccc
+6-7 b: bbbbjsjbbbs
+2-7 q: phxnfxqrqv
+4-5 h: hhhhhh
+9-15 n: nqnnglsjnnghxrn
+3-4 h: hkkh
+5-11 r: rlsjvrrrrrl
+5-7 b: bbbbzbwbbbb
+2-3 f: qczff
+8-14 c: fccqccccccclccccck
+1-8 r: rrbfmjsr
+4-5 p: dpphz
+11-13 d: wdmwkcqddrdvdz
+8-15 h: hhhhhhhhhhhhhhhhh
+6-10 l: dhgdclhlkltnc
+14-15 t: tttntttnthtttzw
+4-6 p: pppppdp
+13-14 l: dvlnvlgtbpnhll
+11-12 s: brsqgfsnpmwskhdnm
+6-7 j: httjvjj
+2-14 w: wwwfwjzwrzfwnwjwwm
+8-9 w: wwrwwwwgt
+2-5 r: dvrwb
+7-9 b: wwvqbsbjb
+1-12 l: lljxlbslwlgn
+11-12 m: mmmmmmhmmmwbmkmmt
+10-11 l: lblllmllldl
+3-9 w: wwpwwwwbfwwwm
+9-10 q: pcrqfqlskz
+7-9 l: llvlllblklllx
+6-7 g: qgggjmwg
+5-10 v: vvvvvxbrvvp
+9-10 d: hqddgkkdrpdd
+17-18 q: qqqqqqqlqqqqqqqqdt
+6-10 h: hspnhhzldxphdh
+8-13 l: vvvscdnlblllml
+6-12 p: ppkrprpxwpppwx
+4-5 k: tkslb
+7-8 d: hdjdhnzdd
+9-10 x: wkxtblgxxjxxlqnfxxlx
+8-9 g: rggggggdk
+10-20 d: kcgdtbbswwdtvgdgxfwd
+3-4 g: gggggg
+16-17 l: llnzlqllllzllllmllll
+4-10 r: nsrrrbzrfzcrrzrrdqk
+4-6 k: kkkkkpkk
+4-8 n: nnnmntnnrnnn
+12-14 l: lllllllllwlqllll
+3-6 r: rrrrrrr
+1-6 s: ssskcshsxtd
+7-15 d: ndrbdnntdmkddxd
+9-10 j: pjjjjgjsjhjj
+7-10 k: pkbkkkkkgkq
+4-8 m: mmxmmmdmmmmm
+9-13 c: ngjcrcccvbcvqdjmph
+3-5 q: qqqqqq
+7-10 s: fcssnsssssslxspr
+3-5 k: kkkkvv
+5-10 f: tlbcvgwfzlf
+5-9 x: xxxxqxxxx
+2-10 q: qrprhbrhjhb
+3-4 g: gggmgg
+8-10 j: jjjjjjjgjpjjj
+2-4 v: dvzvvtfm
+7-12 q: zvzqprjhqdcqfzr
+12-13 f: ffffffffffffqf
+2-3 f: fffsdwq
+10-11 z: ztzzjzjzzzlzzz
+5-7 k: kkkkqtkkkkk
+6-9 z: dfbzhgsrzsp
+2-4 b: wpqb
+9-15 c: cwchcdhxlqzccxbb
+8-11 q: qqxptqqvqrgqg
+5-7 t: ttttztcvtjtkts
+2-6 n: nnbmdnjxclwkffrnxff
+3-7 p: pppppph
+9-12 d: xhmfndzcddfddvgddf
+1-5 h: hthmhvlthhhhh
+6-7 m: mmmmmmm
+6-7 j: jjjvjjjrj
+1-5 q: mqnqwqqqqqjq
+10-11 b: bmbbbdbpbbbbzbb
+1-4 k: gvccvdltkwcdd
+12-16 s: sssssssssssjssshs
+4-10 k: wzvlkmdhcklhdp
+10-13 z: zzzzzzzzzfzzj
+6-12 g: bmzmvvggpgtm
+3-11 m: nvcpfgvnsqmwxmmz
+1-5 n: dnwnnnnnnnbndnnn
+4-5 h: lhhhh
+4-5 g: gggdg
+2-5 h: xthqhfj
+2-4 f: lfkf
+4-6 k: rqbhrtzktmvmrxck
+4-5 q: jqdsc
+10-11 h: hhhhhhhhhvjh
+2-17 r: rrrrrrrprwrrrfjrr
+16-17 b: bbbbbbbbbbbbbbbbhbbb
+3-5 z: pkvzzfrljrjctw
+13-14 w: wwwwwwwjwwwwww
+8-10 d: dddddddldzpq
+1-4 b: sbbgb
+2-10 d: vnhpzmvpcddhs
+8-15 t: zftpwtrtqjqtfntp
+11-12 j: djjjjjjjcjjcj
+4-7 r: jrrtrrrvmzzrrvsl
+2-4 r: rpkp
+3-4 b: qbxc
+10-11 w: wwwwwwfzkdmnwwv
+6-14 z: mztxzzztmzwzzqvm
+12-14 w: wwwwwwmsgwdwsqwjwww
+6-10 f: zfhqjfhnjfdvwsfftf
+2-11 q: mwbbqdncdfq
+8-11 v: zvtvvwvfvvq
+6-8 n: xnwhzmdskwhn
+8-15 q: qqqqkqqqqqqqqqst
+1-4 n: nnnnn
+5-18 c: sqczchcwcccclccccccc
+3-4 j: klgr
+11-12 m: mmmmmmmmmmmm
+2-3 d: qdxfmqwbmdnvj
+1-5 m: cmmmm
+6-7 l: llllllll
+1-9 m: zmmmmmmmlmmmmmmm
+9-11 m: dwspwrmjsxpc
+5-6 p: qpppfz
+10-19 t: fvtphwzsptqzntbkxqt
+7-9 m: mpcmpmmmvptmm
+3-9 h: hhhpqqwhhtm
+11-16 p: pppppppppppppppvp
+1-9 k: ktkklkkkkkkk
+10-17 q: rthtqvgspqkvfkgkqfhj
+11-14 g: ggxgggggxggzggcnggg
+3-4 t: tttt
+9-10 t: sqtbdttthtttm
+1-4 t: ttkbgdzztbxd
+3-8 f: gxfcrrsfntftvffnfqff
+9-11 q: qqqqqqqjlqqq
+12-13 v: vvvvvvvvvvvvk
+7-11 b: nbxbbbsmbtkb
+7-8 k: kkkkkknn
+4-6 j: jjjjlv
+13-16 m: mmcmmmmmmmmmmmmvs
+7-9 k: kdkkkkrkgkk
+1-4 c: crcdlrdbzc
+1-16 k: kkkkkkkkkkgmkkktkkk
+2-12 l: llllrlllllllll
+4-9 g: gggbkgpgz
+6-7 q: qqqqqqjq
+6-7 v: hvvvvpm
+10-14 t: ttfxmqtgtttttbtct
+5-7 h: hwhhfrnch
+4-13 w: zdlrqvxwwzsfrfq
+4-5 h: hhhshhhh
+2-4 n: vhjfnz
+5-6 s: sssssss
+11-13 n: nnwrnnnlnngnn
+3-4 s: wbss
+3-4 s: wnss
+16-17 p: ppfprptkpmzkbjppp
+2-4 v: pvxv
+8-9 w: swwwwwwhwwnwwwxj
+4-6 s: pzhkvss
+4-5 x: wnxpx
+4-5 f: fsfwp
+4-5 z: zzdjz
+3-6 v: vnvvvvvvvvvvv
+5-6 f: wfxfff
+4-7 z: zzzqfzz
+3-5 q: qqjqsqqqf
+3-7 w: kwwkmww
+6-7 h: hhhhhhgh
+2-5 v: vvbzvvkn
+8-15 r: svrqpqrgrrhmzbms
+9-17 n: jnnnncnnnnnxnnnnnp
+5-6 n: dgnhsc
+5-7 l: lplltbv
+4-6 n: mmrnsbcqr
+7-8 w: wwjwwwwww
+1-16 c: bccccccfcccccccdcc
+6-9 l: sjnlmxwllg
+3-9 q: cqvhkwhtstwrl
+5-9 h: khvxhhhgfchhknhhhz
+8-9 c: ccccccccdc
+2-19 n: jjxbmbwmnqbblfbgzsz
+3-4 p: pppp
+1-3 b: jzxbbb
+3-6 h: hhhgjhhw
+2-8 f: vfxftzkmlzk
+11-19 h: mmdptdzhwdbjhvkccrhk
+4-14 s: sssvsdpsssssspns
+11-12 f: fffffffflfbk
+2-13 h: nhbgtbjvbpmrnhf
+1-3 t: ttttttttttttttttttm
+3-4 t: tsttr
+2-9 n: fnkknptqn
+1-8 j: qjpjjjjjjtpxjqjw
+2-12 c: clccccccccckccc
+18-19 f: dpftffzcfhqffddfpff
+1-4 j: trjj
+9-11 z: zwzmzzczsdd
+5-8 g: vrpbggfn
+2-5 k: qksvzkj
+2-4 f: wfdfjlfwmjrdmxx
+4-12 l: bnplnlgqcwql
+13-14 n: nqlfdnnnnnnnvbnwnlh
+4-8 l: dgxhsrql
+10-11 k: qvwcrkxtkjxlq
+5-6 g: ckgggg
+6-14 h: xbhhvzvxbhhhhhbhkzhh
+6-9 w: whwdwrxgc
+7-9 b: bbrbnjbfb
+7-8 w: brwwkfvwwwww
+2-11 g: gmggghngggg
+12-17 l: bgslljzntbmvtkbgllgg
+12-18 g: gggggggggggkggggggg
+1-3 l: gllllllll
+14-16 k: jkkqkkgkrkvxkkkkskgb
+2-3 v: vljvgnvm
+7-8 r: jrjvrprr
+7-8 f: xxffrnff
+2-18 j: jhjjjjjjjjjtjjfjjpjr
+8-9 q: rfllhmnqtrkv
+2-3 n: lnndv
+2-15 s: hzzsrprnnjlwdfs
+1-5 q: vqqqq
+9-18 b: gxbpbbppbrbbnlkmbb
+2-13 b: bbbbbbbbbbbbpb
+6-7 t: mtrftthtttftttztttst
+1-7 z: nfzzzzvzzczzzzzzzz
+4-12 m: mmmcmmmmmmmmmm
+9-11 p: jpswppqbmpfpzpg
+10-11 c: ccccccpcccc
+2-6 t: ztscdrkxxctdft
+3-13 q: mqfqqqqjqqfqdqqq
+16-20 z: zzjcxdmzgzzzppbtztzz
+5-15 w: wwwpwhwqcwwwwwgw
+2-4 p: pczp
+5-7 d: ddddmdfd
+2-3 f: fftc
+1-3 v: vvmv
+11-15 k: tjkcvkkkkgkzkkxqv
+4-6 b: vdkvbn
+7-8 c: wbcjhswc
+9-10 l: lllbqrllll
+4-5 s: sjnlw
+12-14 j: mjtmzfjjtsgvgtq
+1-3 l: llrllml
+12-13 d: dngddlqdtgdcd
+3-5 l: cblhld
+3-4 r: trrq
+1-3 c: kcccc
+9-10 g: bgbgjggpvgpgpggg
+3-6 d: szwlfm
+13-14 f: ffffffffffffzfff
+6-7 d: ddddddddddnnddddr
+7-16 h: xmbpwmhsznmldhnxflc
+4-6 q: qqqnqqqg
+2-7 t: ttwbpmnthmjr
+8-16 x: xbcxxbwxxrpxnfxd
+2-3 d: dngdd
+9-10 n: qkxfdljnnl
+4-5 f: ftfffff
+12-15 n: nnnnnncnnnnnnnsnn
+1-2 d: dkdd
+2-5 v: vvvvgv
+1-14 v: jvvvvvvvvvvvvmvvv
+5-6 r: rrrrrr
+2-3 b: bnvbbbtbjgxfchnkhcjb
+1-14 g: wjggxgggggggxgmrvcg
+1-6 x: bhvxhxxxx
+1-2 r: rprr
+6-7 c: cccccccqc
+4-8 b: bbgplbbcdtbbdbgbbhbz
+1-4 w: wjgw
+1-3 h: zhzzt
+2-11 j: sjjrtjkjhjj
+6-7 m: mlmrrmm




diff --git a/2020/resources/input03.txt b/2020/resources/input03.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e1bd0f655fb0729445f15cd68aeb4a8e8cd5887c
--- /dev/null
+++ b/2020/resources/input03.txt
@@ -0,0 +1,323 @@
+.#.......#...........#.........
+..##.......#.#.#.....##...#....
+.......#..#.....#...#..........
+...#..........###...#........##
+#.#..#.#.##.#........#.#.....#.
+#..#....#..#....#..............
+#..#........#..................
+..#.#...#.#...#....#.#.#..#....
+..............#..#.............
+.##....#...................#...
+........#..........#......#...#
+.##..#..#...##..........#...#..
+.#...#....#.........#...#.....#
+.#........##............#.#....
+...........#..............##...
+.#..#......#..#..............#.
+..#.#.#...........#........#...
+..###..........#....#.#......#.
+.......#...##..........#.......
+........#...#..................
+....#....#..#.......#........#.
+.......##.#......#.....#...##..
+..#.#........................#.
+.#.....#.##..............#.#...
+..#.#...#.#..#....#....#.......
+.#....##.....#....#........#...
+..#...........#.##....#...#....
+..#.##...#....#.#.....##...#...
+.......#...####...#...#.......#
+.#...#.........................
+.......................#.......
+.....#.#.........#..........#.#
+#.........#............###..#..
+.....#.#.............###.......
+...#..#........#.#.......#.....
+...................#....#......
+...#..#...#............#..##...
+...#.....#....#.......##......#
+.....#....#...##..#..#...#...#.
+..........#...........#.#.#....
+..#.......#...#.....#......#...
+.........#.......##......#..#.#
+..#.....#..#.###...#.#......#..
+#....#...#..#...#.....#........
+..#......#..#.......#.#.....#..
+#......#...#......#.....##.#...
+........##.......#.......#.....
+.#.#...............#...........
+..............#...#.#....#.....
+....#......#.#..#......#.......
+...##....#....#...#............
+.#...............#...........#.
+.#.#...#.#.....#.....#...#.#...
+...##...........#.....#..#...#.
+.#.#...##.#.#......#......#....
+.##.....#.......##....#.#.#....
+.......#...........#....#....#.
+....#...........#......#.####..
+......#....#...#...##.......#..
+......................#.#####..
+..#...#.#...#..#..#......#.....
+....#........##.......##....#..
+#.#......##.........##.#..#...#
+.#.#....#...#..#...#...##....#.
+.....##...#....#....#.#........
+......#..#....#.#...#..........
+.........#...................#.
+............#.###....#.#.......
+...#.#.....#......#....#.#..#..
+..............#..#.#.#.#.......
+#..##...................##.....
+..#.......#..#.........##..#...
+.........##...#......#........#
+..#.........#........##.###.#..
+...........#.#....#.....###....
+..#....##.#..#.##....#.....##..
+..#.....#.##..................#
+#....#.........................
+..............#..#...#.#.......
+......#..#.#.##....#..........#
+..#.........#.####.....#.......
+......#..#.#..........#...#....
+......#.................#..#.#.
+.....#..........#..............
+....#.....#............#....##.
+.....#.....#........#..........
+............#.....#...#........
+........#....#.#...............
+#.....#.........#......#..#.#..
+...#..#......#......#.......#..
+.....#......#.#....#..#...#...#
+......................#..##....
+.............#.........###....#
+#..............#.#..........##.
+...#.#.................##......
+...........#.#.....#...........
+.........#.................#.#.
+........#........#...#..##...#.
+........#......##.......###....
+..............#.#.#............
+.#.....###...##.#......#.....#.
+.............#......#.#.#...#.#
+..#.........#.......#.....#....
+......#........#...##......#...
+.##..........##......#.#.....#.
+..#.##....#....#...............
+......#...#..#.....#.....#...#.
+.......##..##..#............##.
+..............#...##........#..
+#....#................#..#.....
+........#.......#.#.#...#......
+......#.......#..............#.
+#.#..#...#........#....#..####.
+..#........#...........#.....#.
+.##...........................#
+.............#...........#.....
+.#.....#.#...#.........#.......
+..........#...#....#....#......
+.#..#........##....#...........
+.......###......##...#.........
+..........#.#.#..#.#....#......
+........##..#.........#....#...
+........#.#......#.#...#.#..#..
+....#....................#.##..
+##....#..#...........#.....#.#.
+...#..............##...##..#.#.
+......#.##.#.......#..#...#....
+....#..#..##.....#.....#.#....#
+.......#....##.##..............
+#..##....#.....#.#.............
+..................#......#..#..
+..#......#...#..#.......#...#..
+...........#....#.#.....#......
+#..#...##.........###..#......#
+.......#......................#
+#.......#....................#.
+..#..#..........#..#..#....#...
+.##..#..#.....#.#..##..........
+#..###.......#..##..#...#..#.#.
+.....##......###.....#.#.##...#
+..............#...#....#.#.....
+#...........#..................
+..............#....#..##..#..#.
+.........#.............#.......
+.#.#....#....#...............##
+.##.##.#.....###.....#.........
+....#..............##......#...
+....#........##................
+....#.....#....#....##....##...
+.#........#......#......#......
+....#..........#...............
+##..........#......#.....#.....
+........#.#..#.#..#.....##.....
+..##......#.#.......#.#..#.....
+.#.......#......#...........#..
+..#.#..#.#..................#..
+...#...#...#...##......#.......
+.#...##....#...#...#...#.......
+.......#.#.......#.............
+.#.##.#.....#...........#.##.#.
+.#.##.#........#...##..........
+.#.....#.....#....#..#.........
+...##.............##...........
+.#........##.....#.......#...#.
+...........#..#..##........##..
+.....#..#......................
+..#.......#....................
+.....#......#....#....#.......#
+........#..#.#.....#......#....
+..........#..#.....#......#....
+..........#####.....#........#.
+........#..#...#.#....#......#.
+.........#...#....#.#..........
+......#....##..........#...#...
+#..............###.#.#.........
+.#.#............##......#.#..#.
+......#........................
+...#..#......#.......#....#...#
+.......#....##.....#.#......##.
+...........#..........#..#.....
+...........#..#.....###......#.
+.......#....#..##......#.......
+.........#.#.#.......#..#...#..
+.......#.......##.....##...#...
+..............#....#.....#.....
+...#....#.....#.#..........##..
+###.........#.............#....
+...##......#.#........#....#..#
+#....###.......#...#.#......##.
+....#...##.......#......#.....#
+.....#......#..................
+#........##....#....#.#........
+........#.......###...#........
+........#..#.......###.........
+..............#......#..#......
+#......#.....#....#.#..........
+.#......##.#.#.....#...#.#....#
+.##...........#..#.##.....#....
+.....#.....................#...
+.#..#...#...##.#...#...........
+.......#.......##..#.#..#......
+.......##.....#.....#..........
+.................#.............
+#........#..#.......##.........
+#...#..###.#..#....#.#.###.....
+..#.......#.......#.......#....
+..............#............##..
+.#...#..#...##.........#....#..
+#...........#...#..............
+.......#.....#......#..#.....#.
+..........#......#.............
+##.........###..##.#....#..#.#.
+..............###..............
+#..##.............##.....#.....
+....##...................#..#..
+....#.....#..............#..#.#
+........#........##...#.....##.
+#...........#.##..........##...
+#......##.....#...............#
+..##..#....#.................#.
+#.......##.....................
+...............#.##..##......#.
+..#.##..#.#....#.......##......
+......##....#............##....
+.#..#..##.....#.##....#........
+#.........#..........#...#....#
+...#.......#.............#.#.#.
+..##............#...##........#
+.......#.#.#........#..........
+.....#.............#.....#.....
+.........#.........#.........#.
+#.....#....#.......#...........
+.........#....#.............#.#
+.##..#.......#...#......#......
+....#....#....#........#....#..
+............#.......#..#......#
+.#............#.##........##...
+..#...##...#....#...#.#...#..#.
+#...#..........#..##.........#.
+..#.........................#.#
+...........#.........#..#.##...
+.#..................#..#.......
+......#......#...........#..#..
+...##.....#.....#..#.......#...
+.........#.#.......#......#....
+...........#................#..
+.....#...#..#............##....
+.#.......#..#....#..........#..
+#.....#..#.....#..##.......##..
+...#.......#...#....#...#.#..##
+...#...##......#....#....#.....
+.......###.#..#.......#......#.
+........#.#...#..#..#...#....#.
+....#.........##.#.....#.......
+....#.........#..##........#...
+..#...........#......#....#.##.
+.....................#.........
+...................##......#..#
+......#.#.....##..##..........#
+..#.##........#.#.#..........#.
+.#.......#...##.#....#....#....
+#.#......#..#..#.......#.......
+.............#........#.......#
+....#...#.....#........#...#...
+..#..............##..#.........
+..#.................#..#...##..
+....#..#...#...................
+......#.........##.#..#..#...##
+........#..#....#.......#.#.##.
+.#...#...........#..........#..
+##.....#...#............##...#.
+.##.....#...#..................
+.#.......####.#..##.##.#......#
+.............#...#..#..#.......
+...#.##.........#.#....#.......
+...........##...##....#....##..
+........#......#...#...........
+...........#..#...#....#.##....
+..##....#..........#....#...#..
+#....#.#.#.......#.#...........
+......#............##..........
+#.#.###..#....#.......#...#....
+.#......##..#..#.#.........#..#
+..#.........#........#....#....
+......##.#.......##....#..#..##
+.............#...#............#
+......#......#...#.#.#.##.#....
+#.#...#.##.....#..............#
+..........#.............##.##..
+#......#....#...#.#.#.#..#....#
+........#........#...#.#......#
+.....#...........#.............
+...........#....#..........#...
+....####...#..##....#.#........
+.#......#...#..#...........#...
+#......###..#.##.###...........
+..#...........#.........#....#.
+................#.#....#..#.##.
+...................#......#....
+....#.#.....#.......#...###.##.
+.#........#.#....#...#..#...#..
+....#..###.................#..#
+.....#.#..#........#......#..#.
+....#.....#...............#...#
+............##.#.........#..#..
+.......#..#..##.#.#...##.......
+..#..........##..#..#........#.
+..............#..#...#.........
+......#.#....#........##.......
+.#.....##....#..#...#.......##.
+..............#.##.............
+#..#..#...##....##.#.....##.#..
+..#...###..#.........##........
+........##......#.....#..###...
+.....#......##.###.............
+....#.....#.#..#.#..#..........
+....#..#.......#...........#...
+.#.............#..#......##....
+..#.#......#.#.................
+.......#.#.#............#..#...
+......###....##............#..#
+.........#....#......#.........
+..........#...............#..#.




diff --git a/2020/resources/input04.txt b/2020/resources/input04.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cecabe26162287d74e0cfc706e175c7bc43bce1c
--- /dev/null
+++ b/2020/resources/input04.txt
@@ -0,0 +1,1056 @@
+iyr:2013 hcl:#ceb3a1
+hgt:151cm eyr:2030
+byr:1943 ecl:grn
+
+eyr:1988
+iyr:2015 ecl:gry
+hgt:153in pid:173cm
+hcl:0c6261 byr:1966
+
+hcl:#733820
+hgt:166cm eyr:2025 pid:79215921 byr:1952 iyr:2014 ecl:blu
+
+eyr:2022
+hgt:165cm hcl:#733820
+iyr:2013 pid:073015801 ecl:oth
+cid:101
+
+iyr:2013
+ecl:brn hcl:#623a2f
+cid:246 byr:1948 pid:122719649
+hgt:160cm
+eyr:2026
+
+eyr:2028
+pid:229371724 hgt:154cm hcl:#ceb3a1 byr:2000 ecl:hzl iyr:2017
+
+eyr:2029 ecl:amb
+byr:1980
+hgt:177cm pid:914628384 hcl:#623a2f iyr:2013
+
+iyr:2019
+eyr:2026 hcl:#efcc98 pid:475316185 byr:1945
+hgt:76in
+ecl:amb
+
+pid:371759305 iyr:2018 hcl:#623a2f eyr:2026 byr:1984 hgt:174cm
+
+iyr:2010 pid:184800910 ecl:amb cid:108 eyr:2028
+hcl:#cfa07d
+
+iyr:2012 hcl:#b6652a hgt:160cm pid:223041037
+eyr:2029 byr:1920 ecl:oth cid:212
+
+pid:775975903
+hgt:163cm byr:1966
+eyr:2023 ecl:amb iyr:2010
+
+pid:465404256 hcl:#7a54af ecl:blu hgt:180cm iyr:2018
+eyr:2024 byr:1933
+
+hcl:#18171d
+iyr:2018 hgt:185cm
+byr:1929 eyr:2024
+ecl:oth
+pid:#b0990a
+
+byr:2017
+hcl:#cfa07d pid:184cm hgt:187in ecl:#e97c0d iyr:2022 eyr:2013
+
+hgt:176cm iyr:2019 eyr:2024 ecl:brn byr:1943
+pid:532967054 hcl:007b47
+
+pid:171225044 hcl:#888785 byr:1992 ecl:amb iyr:2012 eyr:2030
+hgt:180cm
+
+byr:1969
+pid:689216275 iyr:1934 eyr:2031 ecl:#e5bc14 hcl:#fffffd
+
+pid:166619054 cid:125 hcl:#cfa07d hgt:164cm byr:1946
+ecl:brn iyr:2014 eyr:2023
+
+ecl:#c1ae72 pid:458692331 hcl:#b6652a eyr:1966 byr:1951 iyr:2023
+
+cid:253 pid:9096156879 hcl:9911e5
+byr:2007
+iyr:2019 eyr:2033 hgt:181cm
+ecl:blu
+
+ecl:oth pid:180428876 iyr:2019 byr:2001 eyr:2024 hgt:172cm hcl:#7d3b0c
+cid:81
+
+hgt:167cm
+byr:2007 eyr:2030
+iyr:1961 ecl:lzr hcl:#cfa07d
+pid:#e254d8
+
+pid:377737133 hgt:160cm byr:1958 hcl:#866857 ecl:oth iyr:2015 eyr:2022 cid:350
+
+hgt:188cm
+eyr:2025 ecl:brn hcl:#efcc98
+iyr:2015 pid:321192707
+byr:1996
+
+byr:1956 iyr:2018 hcl:#b6652a
+eyr:2024
+ecl:blu cid:343
+hgt:152cm pid:192659885
+
+hgt:163cm
+iyr:2012 byr:1952 eyr:2022 hcl:#efcc98 ecl:grn pid:337866006
+
+cid:134
+byr:1941 eyr:2027 ecl:oth
+iyr:2012 pid:303690324 hcl:#7d3b0c
+
+ecl:grn byr:1945 eyr:2028 hcl:#cfa07d iyr:2012 cid:108 pid:388941584 hgt:171cm
+
+pid:962215061 ecl:brn iyr:2019 eyr:2025 cid:163 hcl:#cfa07d byr:1958 hgt:187in
+
+ecl:amb
+byr:1989 pid:118257086 iyr:2019 cid:320 hgt:158cm eyr:2027 hcl:#733820
+
+pid:813286578
+iyr:2019 eyr:2031 hcl:#341e13 hgt:161cm byr:1950
+ecl:oth
+
+byr:1976 ecl:blu
+eyr:2024
+hcl:#fffffd
+hgt:153cm pid:552154655 iyr:2019
+
+eyr:2025 pid:109518209 iyr:2013 byr:1923
+hgt:162cm
+ecl:oth
+
+hgt:178cm byr:2007 hcl:#7f431f pid:7365694093 eyr:2037
+ecl:blu iyr:2018
+
+eyr:2021
+cid:105 iyr:2013 byr:1995 ecl:grn hgt:181cm
+pid:733189859 hcl:#b6652a
+
+hcl:#6b5442 eyr:2028 iyr:2013 byr:1958 hgt:169cm
+ecl:gry pid:651263830
+cid:51
+
+iyr:2018 cid:59 eyr:2027 ecl:blu
+hgt:174cm pid:269821917 byr:1971
+
+byr:1936 eyr:2025 ecl:hzl hcl:#b6652a
+iyr:2019
+pid:670202082
+hgt:186cm
+
+byr:1958
+ecl:gry hcl:#7d3b0c pid:000522430 eyr:2020
+hgt:168cm
+
+iyr:2015 eyr:2022
+pid:630105579 hcl:#7d3b0c byr:1935
+ecl:gry hgt:153cm
+
+ecl:gry hcl:#fffffd hgt:172cm byr:1944
+eyr:2021
+iyr:2013 cid:58 pid:554670072
+
+byr:1983
+eyr:2022
+iyr:2012 hgt:176cm
+ecl:brn pid:201965494 hcl:#dd8296
+
+cid:124 byr:1935 eyr:2020 ecl:blu
+hcl:#a97842 pid:666776663 iyr:2010
+hgt:68in
+
+byr:1943 pid:139343878 hgt:181cm hcl:#733820 cid:206 iyr:2018 ecl:brn
+eyr:2029
+
+pid:114742677
+ecl:amb hgt:160cm
+byr:1975 eyr:2030
+hcl:#866857
+
+iyr:2012 ecl:amb hgt:170cm pid:221200950 eyr:2028
+hcl:#733820 cid:274
+
+eyr:2020
+pid:167438086 iyr:2020 hcl:#fffffd hgt:178cm byr:1996
+ecl:blu
+
+iyr:2015 hcl:#b6652a
+pid:905439259
+byr:1962 cid:209 ecl:brn hgt:150cm eyr:2024
+
+iyr:2016 ecl:amb
+pid:855119486
+cid:77
+hgt:192cm byr:1947 eyr:2021 hcl:#888785
+
+hcl:#341e13
+iyr:2011 hgt:157cm eyr:2030
+pid:103806645 cid:90 ecl:grn byr:1976
+
+hcl:#fffffd byr:1957
+cid:284 eyr:2026
+pid:031705251 iyr:2019
+hgt:166cm
+
+eyr:2019 byr:2019 hgt:167in
+iyr:2014 ecl:gmt
+
+hcl:#18171d cid:93
+eyr:2027
+iyr:2013
+pid:821161144 ecl:brn byr:2002 hgt:170cm
+
+hgt:181cm
+byr:1972 iyr:2018 hcl:#fffffd
+pid:745667222 eyr:2023
+ecl:hzl
+
+hcl:#602927 byr:1996 ecl:blu pid:503245375
+hgt:166cm eyr:2028 iyr:2018
+
+hgt:59in byr:1966
+ecl:oth iyr:2016 eyr:2029 hcl:#866857
+
+cid:179 iyr:2012 hgt:182cm eyr:2024 pid:451186596 hcl:#6b5442 ecl:blu
+
+eyr:2023 iyr:2016
+hcl:#18171d hgt:173cm cid:182 pid:979409688 ecl:brn byr:1972
+
+iyr:2014 eyr:2027 byr:1977 ecl:brn hgt:171cm hcl:#b6652a pid:124307431
+
+byr:1929 pid:048990845 ecl:hzl hgt:193cm cid:159 hcl:#b6652a eyr:2028
+
+ecl:gry hgt:181cm iyr:1934 byr:1970
+eyr:2015 pid:5818817055 cid:98
+
+hgt:179cm
+iyr:2014
+eyr:2030
+pid:397317466 byr:1967
+hcl:#a97842
+ecl:grn
+
+pid:138485312 ecl:hzl
+hgt:151cm
+iyr:2010 hcl:#866857 byr:1936 cid:345 eyr:2021
+
+ecl:oth
+pid:687490850 eyr:2028 hcl:#9bd268 hgt:157cm iyr:2012 byr:1994
+
+byr:1933 pid:575158994 hgt:192cm iyr:2017 eyr:2022 hcl:#602927
+ecl:gry
+
+iyr:2012
+hcl:#7d3b0c
+ecl:oth
+eyr:2023 pid:615952261 byr:1959
+hgt:152cm
+
+byr:2010
+iyr:2011 hcl:z ecl:grn hgt:152cm pid:6079261766
+
+hcl:#18171d iyr:2012
+byr:1986 ecl:blu
+pid:836367740 hgt:191cm eyr:2024 cid:200
+
+ecl:blu pid:909247319 iyr:2019 eyr:2026 byr:1958
+hgt:170cm
+hcl:#b6652a cid:256
+
+eyr:2027 hcl:#efcc98 iyr:2010 hgt:191cm ecl:brn byr:1933
+
+byr:1921
+pid:414637667 hcl:#8d840f cid:291 iyr:2013 ecl:amb eyr:2029 hgt:172cm
+
+byr:1961 iyr:2020 eyr:2025 pid:675731511 hgt:71in
+ecl:blu hcl:#623a2f
+
+byr:1959 iyr:2002
+hcl:#ceb3a1 eyr:2027 ecl:#633ff4
+pid:815877728
+
+ecl:gry pid:812104470 byr:1938
+hgt:70cm
+eyr:2028 cid:285 iyr:2016 hcl:#b6652a
+
+cid:99 hgt:152cm byr:1971
+eyr:2020 hcl:#733820
+ecl:gry
+iyr:2012 pid:020521112
+
+pid:803066169 hgt:157cm iyr:2014 hcl:#b6652a eyr:2025 ecl:brn byr:1981
+
+hcl:fafcd9 eyr:2021
+hgt:76in
+pid:359286290 cid:207 iyr:2018 ecl:grt
+
+pid:179471060 byr:1966 ecl:amb hcl:#18171d eyr:2029 iyr:2015 hgt:190cm
+
+hcl:#efcc98 ecl:gry
+byr:1942
+eyr:2026 iyr:2011
+hgt:158cm pid:721512314
+
+ecl:oth eyr:2024 hcl:#8bc738
+hgt:167cm iyr:2014 pid:729168992
+
+hcl:#b6652a
+pid:179977662
+iyr:2018
+ecl:gry
+byr:1973
+hgt:155cm
+cid:126 eyr:2030
+
+byr:2012 eyr:1955 hcl:z iyr:1981 pid:#66167e hgt:175in ecl:grt
+
+hgt:154cm cid:301 iyr:2010 hcl:#7d3b0c pid:573851812 ecl:grn eyr:2030
+
+pid:601712917 ecl:hzl eyr:2001 cid:70 hgt:162cm hcl:#6b5442 iyr:2018
+byr:1959
+
+hgt:183cm byr:1996 eyr:2023 hcl:#866857 iyr:2018 pid:259910953 ecl:brn
+
+pid:751991211 hcl:z iyr:2015 eyr:2024 byr:1939 ecl:oth hgt:161cm
+
+eyr:2026 byr:1947
+ecl:grn iyr:2018 cid:248 hcl:#ef5900 hgt:66in
+
+iyr:2028 eyr:1994 pid:9211015765
+ecl:amb
+hcl:cd429d
+byr:2013
+hgt:176cm
+
+hgt:193cm ecl:amb eyr:2023
+iyr:2020 byr:1933
+cid:50
+hcl:#efcc98 pid:482745318
+
+byr:2014 pid:619629999
+ecl:oth hgt:159cm eyr:2027 iyr:2018 hcl:#b6652a
+
+hcl:#b6652a eyr:2028 byr:1921
+ecl:blu
+pid:866536313 hgt:185cm iyr:2020
+
+eyr:2027 pid:904225608 iyr:2010 cid:57 hgt:161cm hcl:#83ee3c ecl:gry byr:2001
+
+byr:1968 pid:120450875 iyr:2018 hgt:165cm ecl:grn eyr:2022 hcl:#7d3b0c
+
+hcl:#a97842 byr:1964
+eyr:2027 ecl:oth hgt:186cm iyr:2010
+cid:226 pid:632344779
+
+pid:135449714
+cid:348 iyr:2019
+hcl:#602927
+ecl:oth eyr:2029
+hgt:184cm byr:1992
+
+eyr:2027
+byr:1929 hgt:181cm hcl:#fffffd iyr:2019 pid:369478657
+ecl:blu
+
+hgt:177cm eyr:2021 iyr:2016 ecl:gry byr:1938 hcl:#602927 pid:034365656
+
+iyr:2020 hcl:#866857
+eyr:2028
+pid:183612456 ecl:#9e25d3 hgt:159cm byr:1934
+
+pid:664990234 hcl:#efcc98 cid:185 iyr:2018
+ecl:brn
+hgt:192cm
+byr:1942
+eyr:2029
+
+eyr:2027
+hgt:163cm pid:760854338 cid:228
+byr:1958 iyr:2014
+hcl:#efcc98 ecl:gry
+
+iyr:2014
+hcl:#18171d hgt:157cm ecl:amb eyr:2025 byr:1957 pid:347369874
+
+pid:013801431 byr:1999
+hgt:181cm eyr:2029
+ecl:amb iyr:2010
+hcl:#b6652a
+
+hgt:153 eyr:2030 byr:2022
+hcl:z cid:84 ecl:hzl iyr:2020
+
+cid:315 iyr:2011
+hgt:151cm hcl:#ffb5f9
+pid:427813663 byr:1999 ecl:brn eyr:2025
+
+eyr:2024
+cid:205 byr:2000 iyr:2020 hgt:173cm ecl:gry
+
+eyr:2026 byr:1996 iyr:2018 ecl:grn hgt:158cm pid:026432567 hcl:#602927
+
+iyr:2014
+ecl:hzl
+byr:1964 eyr:2020 hgt:184cm pid:031793197 hcl:#fffffd
+
+ecl:oth hgt:165cm byr:1982 pid:172329608 hcl:#733820
+iyr:2019
+eyr:2020 cid:347
+
+byr:2014 iyr:2011 hgt:179cm
+hcl:z eyr:2020 ecl:grt
+cid:134
+
+ecl:gry
+iyr:2011 hcl:#a97842
+byr:1942 pid:789953865 cid:172 hgt:180cm eyr:2027
+
+hgt:179cm pid:975853536
+iyr:2018 byr:1989 hcl:#602927
+eyr:2021 ecl:amb
+
+byr:2011
+iyr:2015
+ecl:oth
+hcl:85d233 cid:207 eyr:2020 hgt:138 pid:6169876
+
+ecl:hzl eyr:2029 hcl:#efcc98
+hgt:188cm iyr:2018 cid:143 byr:1973
+
+hcl:#ceb3a1 pid:762609805
+byr:1962
+hgt:150cm
+iyr:2016 eyr:2024 ecl:oth
+
+iyr:2012
+pid:181821528 byr:1922 ecl:gry hcl:#a97842 hgt:169cm eyr:2028
+
+eyr:2029 pid:776605704 byr:1964 hgt:175cm hcl:#623a2f ecl:grn
+iyr:2011
+
+byr:1989 iyr:2019
+ecl:gry pid:397990288
+hcl:#602927 hgt:67in eyr:2030
+cid:259
+
+hcl:#866857 iyr:2018 ecl:blu byr:1938 cid:227 eyr:2028 hgt:171cm
+pid:779192850
+
+byr:1974 hcl:#cfa07d eyr:2026 hgt:59in cid:51 iyr:2019
+ecl:oth pid:091591737
+
+byr:1952 cid:301 pid:804465935 hgt:152cm eyr:2025 hcl:#888785
+iyr:2013 ecl:hzl
+
+hcl:6a32f0 eyr:2027
+iyr:2014
+ecl:amb byr:1933 cid:185
+hgt:75cm
+
+byr:1945 hcl:#b6652a
+hgt:163cm ecl:brn eyr:2025 iyr:2015 pid:829875350
+
+byr:1940 hgt:174cm iyr:2014 pid:9989523268 ecl:gry eyr:2026
+hcl:#efcc98
+
+iyr:2011 ecl:lzr
+byr:1998 hgt:182cm
+eyr:2029 hcl:z
+
+pid:091142801
+hcl:#c0946f byr:1983 ecl:blu iyr:2017 hgt:183cm eyr:2027
+
+ecl:oth iyr:2011 hgt:158cm byr:1950 pid:902512428 hcl:#623a2f eyr:2028
+
+eyr:2020
+iyr:2020
+ecl:oth byr:1938 hcl:#d5eb7e
+pid:829945241 hgt:171cm
+
+byr:1971
+pid:998912876 eyr:2022
+iyr:2012 hcl:#cfa07d cid:338 ecl:brn
+hgt:183cm
+
+ecl:amb hcl:#7d3b0c pid:331124964 iyr:2013 byr:1945 hgt:189cm eyr:2028
+
+pid:012740434 iyr:2019
+byr:1998
+hgt:172cm eyr:2028
+cid:102 hcl:#866857
+ecl:amb
+
+hcl:#866857
+eyr:2027 hgt:181cm byr:1954 ecl:blu
+iyr:2010
+pid:211721858
+
+byr:1984 pid:876360762 hgt:72cm
+eyr:2040 hcl:a60c15 iyr:1948 ecl:lzr
+
+hgt:167cm byr:1930 ecl:oth pid:740024142 eyr:2024 hcl:#341e13
+iyr:2018
+
+byr:1968 hcl:#623a2f ecl:brn
+cid:210 hgt:155cm
+iyr:2017 pid:216618180 eyr:2024
+
+byr:1966 pid:131332466 hgt:174cm ecl:amb
+hcl:#733820
+iyr:2013 eyr:2023
+
+eyr:1985
+pid:#fde6c1
+hcl:z byr:2017 iyr:2027 hgt:163cm
+
+iyr:2016 ecl:hzl hgt:171cm
+hcl:#888785 pid:390140479 byr:1976
+
+cid:327 eyr:2023 byr:1954
+hgt:192cm iyr:2012
+pid:413357852 ecl:blu
+
+iyr:2014 ecl:hzl hgt:154cm byr:1962 pid:904474869 hcl:#6b5442 eyr:2023
+
+ecl:hzl iyr:2012 eyr:2027 pid:663644982 hgt:175cm cid:56
+byr:1980 hcl:#ceb3a1
+
+eyr:2020 iyr:2012 hgt:190cm byr:1993 hcl:#a97842
+ecl:amb pid:418635216
+
+pid:845398140
+byr:1933 iyr:2016 ecl:oth eyr:2024 hcl:#cfa07d hgt:169cm
+
+eyr:2040 hgt:161cm
+byr:2018 ecl:blu
+iyr:2022 hcl:#866857 cid:252
+pid:286344655
+
+hcl:#6b5442
+eyr:2027
+hgt:191cm iyr:2012
+pid:642929864 ecl:amb byr:1934
+
+iyr:2015 hcl:#cfa07d ecl:grn
+eyr:2029 pid:163012663 hgt:150cm
+
+eyr:2030 byr:1938 hgt:188cm iyr:2018
+pid:652645847 hcl:#b6652a ecl:grn
+
+pid:157056211 iyr:2010 hcl:#cfa07d ecl:gry
+eyr:2024 byr:1961 hgt:177cm
+
+eyr:2020 hcl:#60945e ecl:brn iyr:2011 pid:688090869 hgt:171cm
+byr:1941
+
+eyr:2023 hgt:188cm byr:1964 hcl:#7d3b0c ecl:gry iyr:2017
+
+byr:1996
+hcl:#733820 pid:142902538
+eyr:2023 iyr:2012 ecl:oth
+hgt:166cm
+
+hgt:62in cid:125 eyr:2022 hcl:#b6652a iyr:2011
+ecl:amb pid:220826562
+
+ecl:grn hgt:72in byr:1991 eyr:2020 pid:281076310 hcl:#6b5442
+
+iyr:2030 hgt:78 eyr:1966 byr:2008 cid:260 ecl:grt hcl:5d2e21
+
+iyr:2017 pid:388674097 byr:1950 ecl:grn cid:338
+hgt:159cm
+hcl:#6b5442
+eyr:2025
+
+hgt:92 eyr:2031 cid:52 pid:169cm hcl:2695be
+iyr:1987
+byr:2011
+
+pid:396358436 hcl:#ceb3a1
+byr:1976 eyr:2025
+iyr:2012 ecl:brn
+hgt:174cm
+
+pid:389292752
+eyr:2027 cid:335 hgt:65in byr:1974 hcl:#6b5442 ecl:oth iyr:2019
+
+ecl:amb iyr:2010 hcl:#602927 hgt:164cm byr:1966 pid:749383114 eyr:2026
+
+pid:656206688
+hgt:175cm
+hcl:#6b5442 byr:1961 eyr:2028
+ecl:amb iyr:2010
+
+hgt:179cm eyr:2028 byr:1958
+pid:095076581 ecl:gry
+hcl:#733820
+iyr:2017
+
+byr:1960
+cid:309 ecl:utc iyr:2012
+hgt:172cm pid:395100903
+eyr:2030 hcl:#cfa07d
+
+eyr:2021 cid:98 pid:387957353 byr:1941
+hgt:192cm
+hcl:#efcc98 ecl:brn
+
+pid:143359781
+hcl:#a97842
+byr:1996
+hgt:184cm eyr:2020 cid:319 ecl:blu iyr:2020
+
+eyr:2025 iyr:2013 hgt:154cm hcl:#b6652a ecl:oth byr:1979 pid:976151938
+
+iyr:2017
+hgt:118 ecl:#f0f31e
+eyr:2028
+hcl:z
+
+iyr:2016 hgt:153cm hcl:#6d55cd eyr:2026 ecl:hzl byr:1943 pid:257485710 cid:165
+
+hcl:#ceb3a1 ecl:blu byr:1937 hgt:152cm iyr:2020 eyr:2026 pid:032844291
+
+hcl:#fffffd byr:1937 pid:122104515 ecl:hzl
+iyr:2018
+eyr:2027 hgt:163cm
+
+byr:1987 pid:052848077 hcl:#341e13
+iyr:2015 hgt:172cm eyr:2022
+
+pid:897642631 iyr:2015 byr:1941 hcl:#733820 ecl:brn eyr:2020 hgt:179cm
+
+hcl:#7d3b0c ecl:grn eyr:2029 pid:232785519 cid:258 iyr:2013 byr:1999
+
+hgt:152cm ecl:gry hcl:#18171d eyr:2020 byr:1971 iyr:2020 pid:211826434
+
+hcl:#866857
+eyr:2022 pid:979633771 ecl:hzl iyr:2014 byr:1963
+
+cid:124
+ecl:utc hgt:77 hcl:#866857
+byr:1979 iyr:2013
+pid:92518200 eyr:1968
+
+hcl:#888785 eyr:2022 pid:233642738 byr:1959 hgt:191cm
+ecl:blu iyr:2010
+
+pid:#adbcd3 ecl:zzz eyr:2025 cid:129 byr:2028 hcl:z hgt:166cm iyr:2011
+
+cid:131 hgt:169cm
+iyr:2020
+byr:1994
+eyr:2021
+ecl:amb hcl:#c0946f
+pid:243158461
+
+hcl:#18171d byr:1980 ecl:oth hgt:153cm eyr:2028 iyr:2020 pid:629055498
+
+hcl:#b6652a
+hgt:152 ecl:blu pid:175cm iyr:2015 byr:1941 eyr:1961
+
+eyr:2025 hcl:#7d6ede byr:1988
+hgt:150cm
+ecl:hzl cid:267
+pid:794369607
+iyr:2012
+
+pid:538963835
+ecl:oth byr:1958
+hgt:173cm
+eyr:2027 cid:63
+iyr:2018 hcl:#602927
+
+hcl:#866857
+hgt:163cm byr:1925 iyr:2011
+ecl:oth
+eyr:2023 cid:163
+
+ecl:grn pid:411555227 byr:1974 eyr:2020 hgt:153cm iyr:2015 hcl:#a97842
+
+cid:111 pid:473064654 byr:1948
+ecl:brn iyr:2013
+hcl:#16fa7a
+eyr:2024 hgt:184cm
+
+iyr:2016 hgt:170cm byr:1993 pid:487807940 hcl:#efcc98 eyr:2024 ecl:gry
+
+hcl:#a97842 pid:891517350 iyr:2012
+byr:1937
+ecl:amb
+eyr:2030
+hgt:171cm
+
+cid:330 ecl:gry
+hgt:163cm eyr:2021
+hcl:#733820 byr:1991 pid:109734880
+
+ecl:brn iyr:1934 eyr:2021
+hgt:62
+hcl:z pid:720470429
+
+ecl:blu
+pid:669045673 iyr:2015
+hgt:164cm
+hcl:#866857
+
+hgt:158cm hcl:#623a2f byr:1950
+eyr:2020 ecl:gry pid:708073090
+iyr:2018
+
+hgt:158cm iyr:2017 eyr:2027
+ecl:brn pid:840573419 hcl:#18171d byr:1968
+
+ecl:oth cid:81 hcl:#ceb3a1 eyr:2021
+iyr:2020 byr:1959
+hgt:62in
+pid:634019849
+
+hgt:180cm pid:651174767 iyr:2013 byr:1948 eyr:2022 hcl:#efcc98 ecl:grn
+
+eyr:2021 ecl:grn
+cid:95 hcl:#733820 iyr:2016 hgt:174cm byr:1931
+
+hcl:90e96c eyr:1948 ecl:zzz
+byr:1984 pid:8325286529
+hgt:59in
+cid:180
+
+cid:293 hgt:193cm ecl:oth hcl:#602927
+eyr:2021 byr:1959 iyr:2016
+
+pid:425216058
+hcl:#7d3b0c hgt:67in ecl:blu eyr:2022
+iyr:2016 byr:1936 cid:182
+
+ecl:#c93c79 byr:2021 iyr:2021
+hgt:69cm pid:#fa092e eyr:2040
+
+hcl:#733820 iyr:1964
+hgt:190cm
+pid:121828083 byr:2028 ecl:blu eyr:2030
+
+byr:1986
+eyr:2023 ecl:hzl hcl:#c0946f hgt:152cm pid:750393977 cid:308 iyr:2015
+
+hgt:152cm byr:2004 hcl:z eyr:2038 ecl:#e92725 iyr:2023 pid:55783937
+
+ecl:grn eyr:2023 hcl:#7d3b0c byr:1940 iyr:2017 pid:312213917 hgt:166cm
+
+ecl:grn pid:293691668
+byr:1949 hgt:60in
+eyr:2021
+hcl:#efcc98 iyr:2017
+
+iyr:2018 hgt:156cm ecl:oth
+hcl:#ceb3a1
+pid:622764582 eyr:2020 cid:124
+
+eyr:2021
+pid:146888876 byr:1962 iyr:2010 cid:63 ecl:amb hgt:188cm hcl:#a97842
+
+pid:861542171 hcl:#866857
+ecl:brn
+iyr:2010 byr:1975
+eyr:2020
+
+hgt:157cm hcl:#18171d eyr:2022 byr:1936 iyr:2014 pid:478341738 ecl:amb
+
+ecl:brn
+eyr:2026
+pid:553753060 hgt:186cm
+iyr:2019
+hcl:#623a2f
+byr:1991
+
+iyr:2018 ecl:blu hcl:#cfa07d hgt:162cm byr:1924 pid:721804049 eyr:2023
+
+byr:1970 hgt:181cm eyr:2027 ecl:hzl pid:171cm iyr:2012 hcl:#5f4282
+
+cid:52
+ecl:blu iyr:2011
+pid:027908077 hcl:#b6652a hgt:158cm
+byr:1986
+
+pid:160cm hcl:91324c eyr:2034 iyr:2015
+byr:2021
+hgt:175in ecl:brn
+
+cid:164 iyr:2014 byr:1948 hgt:163cm pid:701930596 ecl:gry
+eyr:2020 hcl:#733820
+
+byr:1951 hcl:#fffffd pid:456803587 hgt:157cm ecl:blu iyr:2010 eyr:2020
+
+ecl:#663e48
+pid:9157891148 hgt:66cm iyr:1989
+byr:1932
+
+byr:1993
+hgt:167cm
+ecl:amb iyr:2010 hcl:#3da943 pid:340209998 eyr:2021
+
+byr:1968
+eyr:2021 pid:915482982 hcl:#84a907 iyr:2020 hgt:176cm ecl:grn
+
+hgt:190 ecl:oth hcl:#6b5442
+byr:2023
+pid:5211866539
+iyr:2028 cid:276
+
+hcl:#ceb3a1 hgt:177cm byr:1966
+pid:#9f5b93
+iyr:2002 eyr:1958
+ecl:oth
+
+hcl:#888785 eyr:2025 iyr:2017
+hgt:187cm pid:856993600 ecl:oth
+
+hgt:186
+hcl:z
+eyr:2025
+byr:2013 pid:6869591443 ecl:oth
+
+iyr:2015 pid:317156655 cid:144
+hgt:151cm hcl:#623a2f ecl:brn
+byr:1966 eyr:2021
+
+ecl:hzl pid:161653223 eyr:2026 iyr:2017 byr:1980
+hcl:#18171d
+
+iyr:2009
+pid:618443261
+byr:1989 hcl:#23ef8c eyr:2026 hgt:167cm ecl:grn
+
+ecl:oth
+hcl:#fffffd iyr:2018 eyr:2022 pid:953490888
+
+eyr:2026 hcl:#c0946f hgt:165cm iyr:2016 byr:1921
+ecl:blu pid:490419824
+
+hgt:150cm hcl:#b6652a ecl:brn byr:1937 iyr:2013 pid:824096447 eyr:2027
+
+ecl:amb
+hcl:#733820 byr:1997 iyr:2015 cid:269 hgt:96 eyr:2022 pid:475968048
+
+byr:1985 hgt:186cm eyr:2022 ecl:gry
+pid:050842095 iyr:2014
+
+ecl:hzl byr:1942 cid:294 hgt:191cm pid:768437232
+eyr:2024 hcl:#623a2f
+
+byr:1974 eyr:2022 hcl:#afb1a8 ecl:oth
+hgt:159cm
+cid:252
+pid:619988658 iyr:2018
+
+ecl:oth eyr:2029 hgt:175cm
+pid:548668762 byr:1982 iyr:2020 hcl:#c0946f
+
+ecl:gry hcl:#18171d
+hgt:166 pid:#3f6172 iyr:1978
+eyr:2031 byr:2021
+
+byr:1933 hcl:#c0946f ecl:gry eyr:2028
+pid:594772420
+hgt:167cm
+iyr:2020
+
+cid:332 hcl:#623a2f iyr:2018 pid:706055429 byr:1971 eyr:2022 ecl:gry
+
+hgt:187cm hcl:#888785
+pid:224041851 eyr:2029
+ecl:blu iyr:2012 byr:1991
+
+ecl:#9c38d0
+hgt:161in
+hcl:099d45 byr:2015 eyr:1994
+pid:2730108307
+iyr:2024 cid:229
+
+hgt:184cm ecl:grn byr:1938 pid:996091727
+cid:115
+hcl:#866857 iyr:2020 eyr:2020
+
+pid:883396674 iyr:2019
+eyr:2023 ecl:blu
+byr:1979 hcl:#733820 cid:125
+hgt:181cm
+
+hgt:190cm cid:325 hcl:#866857 eyr:2027 ecl:gry
+iyr:2013 pid:317703100 byr:1968
+
+hcl:#866857
+ecl:gry pid:652638412
+eyr:2025 iyr:2015 hgt:158cm byr:1953
+
+byr:1956
+hcl:#cfa07d eyr:2025
+pid:728272575 hgt:162cm
+cid:291 ecl:blu iyr:2020
+
+hgt:189cm byr:1980 hcl:#97fd64 ecl:grn iyr:2013
+pid:181599378 eyr:2029
+
+iyr:2018
+hcl:#007101 ecl:brn byr:1947 cid:265 hgt:159cm pid:288707610 eyr:2024
+
+hgt:62cm pid:2407695078
+eyr:2039 byr:2014
+iyr:1930 hcl:z
+ecl:grt
+
+hgt:65cm
+ecl:hzl
+byr:1994 eyr:2004 hcl:z cid:130 pid:863191800
+
+pid:125685599 byr:1995
+ecl:blu cid:57 hgt:172cm
+iyr:2020
+hcl:#b6652a
+eyr:2024
+
+ecl:gry byr:1961
+iyr:2010 eyr:2022 pid:591409441
+cid:314
+hcl:#341e13
+
+iyr:2020
+ecl:hzl hcl:#efcc98 byr:1983 hgt:174cm
+eyr:2028
+
+eyr:2029 byr:1924 iyr:2013 pid:662719101
+ecl:amb cid:77
+
+ecl:oth
+iyr:2013 byr:1947 pid:532607157 hcl:#7d3b0c eyr:2030 hgt:191cm
+
+pid:528940525 hcl:#18171d
+iyr:2014 eyr:2029 cid:181
+byr:1967
+ecl:gry hgt:64in
+
+hgt:71in iyr:2019 hcl:#cfa07d eyr:2029
+pid:785691813
+byr:1996 ecl:hzl cid:335
+
+byr:2015
+pid:174cm hgt:79 hcl:z iyr:1970 cid:66 eyr:1993 ecl:lzr
+
+hgt:188cm
+eyr:2025 cid:107 ecl:grn
+pid:286480470 hcl:#623a2f byr:1967
+iyr:2015
+
+eyr:2027 hcl:#7d3b0c cid:287
+pid:319840760 iyr:2017 hgt:179cm ecl:gry
+
+byr:1976 ecl:brn iyr:2020 eyr:2023 hgt:154cm pid:964286153
+
+iyr:2015 eyr:2027 hgt:173cm byr:1983 pid:500176757 ecl:amb hcl:#7d3b0c
+
+cid:282 pid:697942299 hgt:185cm
+eyr:2026 hcl:#7d3b0c iyr:2017 byr:2002 ecl:amb
+
+iyr:2014 hcl:#18171d pid:044482202
+ecl:oth
+hgt:163cm eyr:2021 byr:1982
+
+ecl:gry hcl:#7d3b0c
+iyr:2019 eyr:2020 hgt:187cm
+pid:617117265
+
+eyr:2035
+ecl:#5525a9 cid:123 byr:2009 pid:15381071 iyr:2028
+hcl:#b6652a
+
+eyr:2021 hgt:165cm cid:207
+iyr:2010 ecl:gry
+byr:1929 hcl:#733820 pid:442632632
+
+pid:69132960 cid:84 hgt:107 eyr:2023
+ecl:gmt iyr:2016
+hcl:z
+byr:2020
+
+eyr:2027 pid:281765118 hcl:#ceb3a1 hgt:193cm
+byr:1955 ecl:gry cid:321 iyr:2010
+
+ecl:brn hgt:71in
+cid:189 byr:1962 eyr:2023 iyr:2018 pid:780797141 hcl:#866857
+
+pid:984503466 ecl:amb hgt:192cm byr:1942 hcl:#dcc50d iyr:2020 eyr:2030 cid:250
+
+hcl:#7d3b0c eyr:2028
+hgt:178cm
+ecl:gry
+iyr:2011
+byr:1923
+pid:960277768
+
+byr:2000 ecl:amb cid:199 eyr:2027 iyr:2020 pid:785585164 hcl:#888785
+hgt:164cm
+
+iyr:2015 pid:619005249
+ecl:brn byr:1955 eyr:2028
+hgt:183cm
+hcl:#a97842
+
+ecl:grn
+byr:1970 cid:339
+iyr:2011 hcl:#a97842 pid:952307953 eyr:2027 hgt:159cm
+
+hcl:ff4451 iyr:2022
+byr:1972 ecl:#86cbc5 pid:29044223 eyr:1985
+hgt:62cm
+
+hcl:#623a2f iyr:2013 eyr:2023 hgt:164cm byr:1956
+ecl:oth
+
+eyr:2028 hcl:#733820 pid:767003752 byr:1935 hgt:167cm iyr:2016
+ecl:oth
+cid:215
+
+cid:125 ecl:amb
+iyr:2019 hcl:#18171d eyr:2022 hgt:163cm
+pid:239764055
+byr:1954
+
+ecl:gry
+iyr:2019 hcl:#cfa07d byr:1929 pid:221011852
+cid:274 eyr:2026 hgt:158cm
+
+hcl:#a97842 iyr:2016 hgt:159cm
+byr:1998 ecl:hzl eyr:2020 cid:207
+
+pid:051242790
+iyr:2024
+byr:1975 hcl:#602927
+ecl:grn hgt:160cm eyr:2014
+
+ecl:#0b3ea5 hcl:z pid:#122ff0
+byr:2007
+hgt:178 iyr:2013
+eyr:1950
+
+hgt:171cm hcl:#cfa07d pid:674448249
+ecl:hzl eyr:2026
+cid:297 byr:1928
+
+ecl:hzl eyr:2021 hcl:#b6652a pid:856617617
+byr:1949
+hgt:153cm iyr:2015
+
+hgt:164cm ecl:gry
+eyr:2025
+pid:147932207 iyr:2011 byr:1984 hcl:#fffffd
+
+eyr:2027 hcl:#7d3b0c
+pid:377701492 ecl:gry byr:1971 hgt:174cm
+iyr:2023
+
+byr:2001 hcl:#4784a2 hgt:161cm iyr:2014 eyr:2025 pid:955262336
+ecl:amb




diff --git a/2020/resources/input05.txt b/2020/resources/input05.txt
new file mode 100644
index 0000000000000000000000000000000000000000..17dfa0b17f1390a7319a15ec730cdc959fa9700b
--- /dev/null
+++ b/2020/resources/input05.txt
@@ -0,0 +1,859 @@
+BBFFBFFRRR
+FBBFFBBLRR
+FFBFBFBRRR
+FFFBFBFRRR
+BBFFBBFLRR
+BFFBFBFLRL
+FBBBBBFRRR
+FFFFBFFLLR
+BFBFFBFLLR
+FFBBFFFLRR
+BFFFFFFLLL
+FBFFBFFRLL
+FFBFFBFRLR
+FBBBFBFRRR
+FBFFBBBRRL
+FBFFBFFLRL
+BFBBFFFLLL
+FBBFBFBRRL
+BFFBFFFLRR
+FFFFBFFRLR
+FFFBBBFRLR
+FBFFFBFLLL
+BFBFBBBLRR
+FBBBFFBRLR
+BBFFFFFLLL
+BFFFFBFRRL
+FBBBFBFRRL
+FFBBBFBRLR
+FFFFBBFLLL
+FBFBFBBRLL
+BFFFBFBRLL
+FFBFBFBRLR
+FBFFFBBRLR
+BBFFFBBLRR
+BFFBBFFRRL
+BFBBBFFRRR
+FFBFBFFRRL
+FBFBBFBLLR
+BFFBFBBRRR
+BFFFFBFLLR
+FFFBFFFRRR
+FBFFFBFRLR
+BFBFFBFRLR
+FBBBFFFLLR
+FBBFFBFLLL
+BFBBFBFLLR
+FFBFBBFLLL
+BFFFBFBLRL
+FBBFBBBLLL
+FFFBFFBLLR
+BFFFFFFRRR
+BFBBBBFRRL
+FFBFBBFRLL
+FBBBFBBLRL
+BFFBFBFLRR
+BBFFFBFRRL
+BFFBBFFLRR
+BFBFFFFLLR
+FBFBFFFLRR
+BFBBFBBLRL
+FBFBFFFRLR
+FFBBBFFRLR
+BBFBBFFRLR
+BFFFFBBRLL
+FFFBFBBLRR
+FFFFBFBRRL
+BFFBFBFRRL
+FBFFBBBRRR
+BFBBFFBLRL
+FFBBFFFLLL
+FBFBBFBRRR
+FBBBFFFLRL
+FBBFFBFLRR
+FBBBBBFRRL
+BFFFBBBLRL
+FFFBBFBRLL
+FFFFFBBLLR
+FFBFBBBRLL
+FFBBFBFLLR
+FBFBBFFLLL
+FFFBFFBRLL
+BFBBFBFRLR
+BFBFBBFRRL
+FFFBFFFLRL
+FBBFBBFRLR
+BFFBFFBRRL
+BBFFFBBRLR
+FBBBBBFRLL
+FFBBFFFRLL
+BBFBFBBRLR
+FFBBBFFLLR
+BFBBBBBLLL
+FFFBFBBLLL
+FBFFBFFRRL
+FBFBFFBLLL
+BFFBBBFRRL
+FBBBBBFLLL
+FBFBBFBLRR
+FFBBBBFLLR
+BBFFBFFRRL
+FBBBBBFLRR
+FBFFFFFRLR
+FBFFBBFLLR
+FFBBBFBLRR
+BFFFBBBRRL
+FBFBFBFRRL
+FFFBFBBRLL
+FFBFBFBLRL
+FBBBFBBLLL
+FBBBFBFLRL
+FBBBBFFLRL
+FBFBBBBRLR
+FBBFFBFLLR
+FBFFBBFLRR
+FBFFFBBLLL
+BBFFBBFRRR
+FBBFBBBRLL
+BFFBBBFLLR
+FBFFFFFLRR
+FBFFBBFRRL
+BFFBBFBLLL
+FBBBFBBLLR
+FBBBBFBLRL
+FBBBFFFRRR
+FFFFBBFRRR
+BFBFFFFRRR
+BFBFFBBLRL
+BFFFFFBLLR
+BFBBFFFRRR
+FBFFFBFRRL
+BFFBBFFLRL
+FFFBFFBRRL
+FFBFBFBLLL
+FFBFBFFLLL
+BBFFFBBRRR
+FFFFFBFLRL
+BFBFFFBLRL
+BFBFBFFLRR
+BFFBBBBRLL
+BFFFBFFRRR
+BBFBFFBRLL
+FBFFFBBRRL
+FFBBFBBRRL
+FFBFFFFLLR
+FFFBFFFLLL
+FBBFFBBLRL
+BFBFBBFLLR
+FBFBFFFRRL
+BBFFFFFLRR
+BBFFFBFLRL
+BBFFBBBLLL
+BFBBFBFLLL
+BFBFFBFRRL
+FBFFFFBRRL
+FBFFBBBRLR
+BFBBFBBRLL
+BFFBBFFLLR
+FBBBFFBLRL
+BFFFBFFRLR
+FFFBFFBRLR
+BFFBBBFLLL
+FBBBBFFRLL
+FFFFBBBRLR
+FBFFBFFLRR
+FBFBFBBRRL
+FFFFFFBRRR
+FFFBBBFLRL
+FBFFBFBLLR
+FFFBBBBLRL
+BBFBFFBLLL
+FBFFFFBLLR
+BBFBFBBRRR
+BFBFFFBRRR
+FBBFBFFRLL
+FBBBBFFRLR
+FFBBFBBLRL
+BBFBFFBLLR
+FBBBBBBLRL
+BFFFBBFLLL
+BBFBBFFLLR
+FBFFBFBLRL
+BFFFBBBLRR
+BBFFFFFRRR
+BFBFBBBRLR
+BBFFFBFLRR
+FBBFBBFLLR
+BBFBFFBLRR
+BFBBBFFLRR
+FBBFBFFRRL
+FBFBFBBLRR
+BFBBFFBRLL
+FFFBBFBRLR
+BFFBBBFRRR
+FBFFBFFRLR
+FFFBBBBRLL
+FFFFFBBRLR
+FBBFBFBLLR
+FBBFBBFLRR
+BBFFBBFLLR
+FFFBFBBLLR
+FFBFBFFLRR
+BFBBFBFRLL
+BFFFFBFRRR
+BBFBFFFLRL
+BFFFFBFLLL
+FBFBFBFLRL
+BFBBFBBLLR
+BFFBFFFRLL
+BBFBFFFRLR
+BBFFBFFRLL
+FFFBFBBRLR
+FBFBBBFLRL
+FFBFFBBRLR
+BBFFFBBLRL
+BFBBBBFLRR
+FFBFFFBLRL
+FFBBBFBRLL
+BBFFBFFLRR
+BBFFBFFRLR
+FFFFFBFRRR
+BBFBFBBLRL
+BFFBBBBLLL
+FBBBBFBRRR
+FFBBBBBLRL
+FBBFBBFRRR
+FFBBFFBRLL
+BFBFBFBLRR
+BBFBFFFRRR
+BFFFBBFRRR
+FBFBFFFLLL
+FBBFBFBRRR
+BBFFBFBLLR
+BBFBFBFLRR
+BFFFFBBLRL
+BFBBBFFLRL
+BBFBFFBLRL
+BFFBBFFRLL
+FBFFBFFLLR
+FBFBFBBLLL
+BBFBFBFLRL
+BBFFBBBLRL
+FFFFFBBRLL
+FFFBBBBRRR
+FFBBFFFRLR
+FFBFFFBRRR
+FBFBFFBLRR
+FFBFFBBLLL
+FBBFBBFLRL
+FBFFBBBLRL
+FBBBBFFRRR
+BFBBBBBLLR
+FFBFBBBLRR
+FFFFBFBLRR
+BFFFFFFRLL
+FBBFFFBLRR
+BFBBBBBRLL
+FFBBFFBLRL
+BFBBBFFRLR
+FFBFFBFLLL
+FFBBFBFRLR
+BFBFFBBLRR
+FFFFBFFLRR
+FFBFFBFLRL
+BBFFBBFRRL
+FFBFFFFLLL
+BBFBFFBRLR
+FBFBFBBRLR
+BBFFBBBRRR
+FBFFBBBRLL
+BFBFFBBRRR
+BBFFFBFRLL
+FBBFBBBLRL
+FBBFFFFLRR
+BBFFFBBLLL
+FFBFFFFLRL
+FBBFFBFLRL
+FBBBBFFLLR
+BFBBFBFRRR
+FBBFFFBLLL
+FFBFBFFRLL
+FFFBBBFLRR
+FFFBFFFLRR
+FBFFBFFRRR
+BFFFBFFLLR
+BFFFFFFRLR
+BFFFBFFLLL
+FBBBFBBRRL
+BFBFFFBLLL
+FBFBBBBRRR
+BFBBBFBRLR
+BBFFFFBRLR
+FBFFFFFRLL
+FBBFFBBRLR
+BBFBBFFLRR
+BBFFBFFLLR
+BBFFBBFRLL
+FBFFFFFRRL
+FFBFBBFRRR
+FFBFFFFRLL
+BFFFFBBLRR
+BFBFBFBLRL
+FBBFFFFRRR
+FFBBFBBRRR
+BFBBBBBRLR
+FBFFFBBLLR
+BBFFFBFRLR
+FBFFFBBRRR
+FBBFFBFRLR
+BFFFBFBRRR
+FFBBBBBLLL
+FFFFFBFLLR
+FBBFBFBRLL
+BFBFBFBRRL
+BBFFFFBRRL
+FFBFBBFLLR
+FFBBBFFRRL
+FBFFBFBRLR
+FBBFFFFRLL
+BFFBFFFLLR
+FBFFFBBLRR
+BFFBFFFLLL
+BFBFBBBRRR
+BFFFFBFLRL
+FFFFBFBLLL
+FFFBFFBLLL
+BFFFBBFRRL
+BFBFBBFRLL
+FFFBBBBLLL
+BFFBFBBRLR
+BFBBBBBLRR
+BFBBBFBRRL
+FFBFFFBRLR
+BFFBFFFLRL
+FFBFBBBLLL
+BFBFBBFRRR
+BFBFFBFRRR
+FFBFFFBRLL
+FBFFFFFLRL
+BBFFBBFLLL
+BFBFBBBRLL
+FFFBFFFRRL
+FBBBBBBLLR
+FFFBFBBLRL
+FBBFBBFRLL
+FFBFFFFRRR
+FFFBBBFLLR
+BFFBBFFRLR
+FFFFFBFLRR
+FFFBBBBLLR
+FBFFBFBRRL
+FBBFFFFLLL
+FFFFFBFRRL
+BFFBBBFRLL
+FFFBBFFRLL
+FFFBBFFLRR
+FFFFBBFRLL
+BFBBBBBRRR
+BFFBFBFLLL
+BBFBFBFLLR
+FFBBBBFRLR
+FFFBBBFRLL
+BFBBBBFRRR
+FBFBFFBRLR
+FFBFBBFRRL
+BBFFBBBRRL
+FFBFBBFRLR
+FFFFBFFRLL
+FBFFFBBRLL
+BBFFBFBRRL
+BFBFBFBLLR
+FBFBFBBLRL
+FBBFFFFRRL
+FFFBBFFRRR
+FFBBBBBLRR
+BBFBFBBLRR
+FFFFBBBLRR
+FFBBBBBRLL
+FFBFFFBRRL
+BFBBFFFRLL
+FBBBFBFRLL
+BBFFBFFLRL
+BBFFBFBRLR
+BFFBBBBRRR
+FBBBBBBRRL
+BBFBFFFRLL
+BFFBBFFRRR
+BFBBFFFRRL
+FFBFFBFLRR
+FBFBBFFRLL
+FBBFBBFRRL
+BBFBBFFRRR
+FFBBFBFRRL
+FFBBFBFLLL
+FBBFFFFLLR
+BFBFFBBRLR
+BFBBFFFLLR
+FBBBFFFLLL
+FFFBFFBLRR
+FFFBFBFRLR
+BFFBBBBRLR
+FBFFBBBLLR
+FFFFBBBRRR
+FFBBBBFLLL
+FBBBBFBLLR
+BFBFBFFRRL
+BBFFBBBLRR
+FBBFFBFRRL
+FFFBBBFLLL
+BFFFFBBLLL
+BBFBFBFRRR
+BFBBBFBLRR
+FBBFBBBLLR
+FFBBBBFLRL
+FFFBFFBLRL
+FBBBFFBRRL
+BFFBBFBRLL
+BFBFBFBRRR
+BBFBFBBRLL
+FBFFFBFRLL
+BFFFBFBLRR
+BFBFFFFLRL
+BBFFFFBLRR
+BFBBFFBRRL
+BBFBFBBLLR
+FFFBBBFRRL
+BFBBBFFRRL
+FFBFFBFLLR
+FFBBBFBLLL
+FBFBBBFLLL
+FFBBBBBRLR
+BBFFBBBRLL
+BFBFBBBRRL
+FFBBFBBRLL
+FBFBBFBLRL
+BBFFBFBLLL
+FBFBFFFLRL
+FFBFFBBLRL
+FFBFBBFLRL
+BBFBFBBLLL
+FFBBFBFRLL
+BBFBBFFLLL
+FBFFFFBLRL
+FBFBBBFRLR
+FFBFFBFRLL
+FBBFFFBRRR
+FBFBFFBLRL
+BFFFFBBLLR
+FBFBFBBRRR
+BBFFBBFLRL
+BFBBFFFRLR
+FBFFFFFLLR
+FBBFFBBLLL
+FFFFFBBRRL
+FFFBBFBRRL
+BFFBBBBRRL
+FBFFFBFLRL
+FFBBFFFLLR
+FBBBBBBLRR
+BFFFBBFRLL
+FFBFFFBLLR
+FBBBFFFRLL
+FFFFBBBLRL
+BBFFBFBLRR
+FFFFBBFLRR
+BFFBFBFRLR
+FFBFBBBLRL
+FBFBFBFLLR
+FFBBFBBRLR
+BFBFBFFRRR
+BBFFFFBRLL
+FFBFBFFRRR
+FFBFBBFLRR
+BFBBFBFLRR
+FFFFBBBLLR
+FFBBBBBRRL
+FBBFFBBRRR
+FFFBBBBRLR
+BFFBBBFLRL
+BFBBFFBRRR
+BBFFBBFRLR
+FBBBBBFLRL
+FFFBBFFLLL
+BFBBBFFRLL
+FBFFFFFLLL
+FBFBBFBLLL
+FFFBFFBRRR
+BFBFBFFLLL
+BFBFBFBLLL
+BFBBBFFLLL
+FFFFBBFRLR
+BFFBBFBRRL
+BFBBFBBLLL
+FBBFBFBRLR
+BFFFBFFLRL
+FBFBBFFLRL
+FFFFFBFLLL
+FBBFFBFRRR
+FBFBBBBLLL
+FBBBBBFRLR
+FBFFBBFRLL
+FFBFFBFRRR
+FFBFFFFRRL
+BFFBFBBLLR
+BFBBFBBRRR
+FFBBFBBLRR
+FBFFFFBRLR
+FFBBBBFRLL
+BBFFFBFRRR
+FFFBFBBRRR
+BFFFBFFRLL
+BFFBBBBLRR
+FBBBBFBLLL
+BFFFFFFLLR
+BFBFFFFLRR
+BFFBBBBLLR
+FFBBBFBRRR
+FBBFBFFRRR
+FBBFFFBRLR
+BFBFBBFRLR
+BFFBFFBRLL
+FBFBBFBRLR
+BFFFFFBLRR
+BFFBFFBRRR
+BFBFFBFLRL
+BBFFFBFLLL
+BBFBFBFLLL
+BFBFBFFLRL
+FBBFBFFLLL
+FBFFBFBLLL
+BFFFBFBRLR
+FFFBFFFRLL
+BBFBFFFLLL
+BFFFBBBRLR
+FBFBFBFLRR
+FFBBBBFRRR
+FBFBFBFRLR
+BBFFBFFLLL
+FBBBBFBLRR
+FBBBBBFLLR
+BFBFFFFRLL
+FBFFFBFLRR
+FFBFFFBLLL
+BFBFFBBLLR
+FFBBBFBLLR
+FBFFFBBLRL
+FFBBBFFRRR
+FBBBFBFLLR
+FBBBBFFLRR
+FBFFBBBLLL
+FFBFBFFLLR
+FFFFFBBLLL
+BFFFFFBLRL
+BBFFFFBRRR
+BFBFFFBRRL
+BBFFFFFRRL
+BFBBBBBLRL
+FBBBBFBRLL
+FFBFFFFLRR
+BFBBBFFLLR
+BFFFFBBRLR
+FFBBFFBRRL
+BFBFBFFRLR
+FFBBBBFLRR
+BFBFFBFLLL
+FBBFFBBRRL
+FFFBBFFLLR
+FFFFBFFRRR
+BFFBBBFRLR
+BFFFFFBRRR
+FFBFBFBLLR
+FFFBBBFRRR
+BBFBFBFRLR
+FFBBFFBLLR
+FBFBBBBLRL
+FFFBFBFLRL
+FFFFBBBRLL
+FBFFFFBRRR
+FFBBBFFRLL
+FBFBFFBRRL
+BFFBFFBLLL
+FFFFFBFRLL
+BBFFFBBRLL
+FBBFBFBLRL
+BFBFBFFLLR
+BFBBFBBRLR
+FFBFFFBLRR
+BBFBFFFLRR
+FBBFBBBLRR
+FBBBFFBLLR
+BFBBBBBRRL
+BFBBFFBLLR
+FBBBFBFLRR
+BFFBFBBLLL
+BFFBFFBLRL
+BFBFBFBRLR
+FBFFBBBLRR
+FBFBBBBRRL
+BFBFBBFLLL
+FBFBBBBLRR
+BFFBBFBRLR
+FFFBFBFRRL
+BFFFFBBRRR
+FBFFBBFRLR
+BFBBFBFLRL
+BFFFBBBLLL
+BFFFFFBRLR
+BBFFFFBLRL
+BFFBFFFRRR
+BFBBBBFRLL
+FBFBBFBRLL
+FBBFFFBLLR
+FFFBBFBRRR
+FBFBBBBLLR
+FFFFBFFLLL
+FFFFFBFRLR
+BFFFFBFRLR
+FBBFFFBLRL
+BFBFFBFLRR
+FFFFFFBRLL
+FFBBFFFLRL
+BBFFFFBLLL
+FFFBBFFRRL
+FBBFBBFLLL
+FBFFBFBLRR
+FFBBFBBLLL
+BFFFBBBRRR
+BFFFBBBLLR
+BBFBFBFRLL
+BFFFBBFRLR
+FFBFBBBRRL
+FBFBFFFRRR
+FBBBBBBRRR
+FFBBBFFLRL
+BFFBFBBRRL
+BFBFBFFRLL
+BFFFBFFRRL
+BBFFBBBRLR
+BBFFFFFRLL
+FFBBFFBRRR
+FBBFBFFLLR
+FBBBFBBRLR
+FFBFFBBRRL
+FBBBFFBLLL
+FBBFFFBRRL
+BFFBFFFRRL
+FBBFBFFRLR
+BFFBBBBLRL
+FFBFFBBRRR
+FBFBBBFLRR
+BFBBBBFRLR
+FFFBFBFLLL
+FBBBBBBRLL
+FFBFFBBLRR
+BBFFFFFLLR
+FFFFBBFRRL
+BBFFFFFRLR
+FBFBFFBRLL
+BBFFBFBRRR
+FBFFFBFLLR
+FFBBFBBLLR
+FBFBFFFRLL
+BFBBBFBRLL
+FFFFFFBRLR
+FFBBFFFRRL
+BBFBBFFRLL
+FBBFFFFRLR
+BBFBBFFLRL
+FBBFFBBLLR
+BFFFBBFLLR
+BBFBFBBRRL
+BFFBFFBLLR
+FFBBFBFRRR
+FBBBBFBRLR
+FFFBFBFLLR
+FFBBBFBRRL
+FFBBBFFLLL
+FFBFBBBRLR
+FBFBBFFLRR
+FFFBFBBRRL
+FFFFBFBRRR
+FFFFBBBLLL
+FFFBFBFLRR
+BFBBBFBLLR
+BFBFFFFRRL
+BFBBFFBLRR
+FFBFFBFRRL
+BFBBFBFRRL
+BFFFFFBRRL
+FBBBBFFLLL
+FFBFBBBLLR
+FBBBFBFRLR
+FFFBBFFRLR
+BBFFBFBRLL
+BBFBFBFRRL
+FFBBBBFRRL
+FBBBFBBLRR
+BFFBFFBRLR
+FFBBFFBRLR
+FFBFBFBLRR
+BFBFFFBLLR
+BFFFBBFLRL
+FBBBFBBRLL
+BBFFFBFLLR
+BBFFFBBRRL
+BFBFFFBRLL
+BFBFFFBLRR
+FFBFBFFRLR
+BFFFFFFRRL
+BFFFBFFLRR
+BFBBBBFLRL
+FFFBFFFLLR
+BFFFFFFLRR
+BBFBBFFRRL
+BFFFFFFLRL
+FFFFBFBRLL
+BFFBBFBLRR
+FFFFBFFLRL
+BBFFFFFLRL
+FBBFBFBLRR
+FBFBBFFRLR
+FFFFFBBRRR
+BFFFBFBRRL
+FBFFBFBRRR
+BBFFFBBLLR
+BFFBFBBLRR
+FFFBFBFRLL
+FBFBBFFRRR
+FFBFBBBRRR
+BFBFFFBRLR
+FBBFFFBRLL
+FFBFBFBRRL
+FFBBBFBLRL
+FBBFBBBRRL
+FBFFBFBRLL
+BFBFBBFLRL
+FFFBBBBLRR
+BFFBFBBRLL
+FFFBFFFRLR
+FBFBFFBLLR
+FBFFBBFLLL
+FBBBFBBRRR
+FBBFBBBRRR
+FBFBBBFRRL
+BFBBFBBRRL
+BFBFBBBLRL
+FBBFBBBRLR
+FFBBFFBLRR
+FBBFBFFLRL
+FBFBFFBRRR
+FFBBBBBLLR
+BFBBFFFLRR
+FFBBFBFLRR
+BFBBBBFLLR
+BFBFFBBRRL
+FBFBBFFRRL
+BFFFFFBLLL
+FBBBBFBRRL
+FBBBFFBRLL
+BBFBFFFLLR
+FFFBBFBLLL
+BFFFBBBRLL
+BFBFFBBLLL
+BFBFBBBLLR
+FBFFBBFLRL
+FFFFBBFLRL
+FBBFFFFLRL
+FBBBBFFRRL
+BFBBFBBLRR
+BFBFBFBRLL
+FBBBFBFLLL
+FBFBBBBRLL
+FBBBFFBLRR
+FFBBFBFLRL
+FFFFBFBLRL
+FFBBBFFLRR
+FFBBFFFRRR
+FFBFFBBRLL
+FFFFBFFRRL
+FBBFFBFRLL
+BFFFBBFLRR
+BFBFFBBRLL
+BFFBBFFLLL
+FBBBBBBLLL
+BFFBFBFRRR
+BFBFFFFRLR
+BFFBFBBLRL
+BFBBBFBLRL
+FBFBFBFRLL
+FBBFBFFLRR
+BFBBBFBLLL
+BFFBBBFLRR
+BFBBBBFLLL
+BFBBFFBRLR
+FFFBBFBLRR
+FFFFBBFLLR
+FFBFFBBLLR
+FBFBBBFLLR
+BFBBBFBRRR
+BFFFFFBRLL
+BBFBFFBRRL
+BFBBFFBLLL
+FFFBBBBRRL
+FBFBBBFRRR
+BFFBBFBLRL
+BFFBFFFRLR
+FFFFFBBLRR
+FBFBFFFLLR
+FFBFFFFRLR
+FBFFFBFRRR
+FBFBFBFRRR
+FFBFBFBRLL
+FFFFFFBRRL
+FFBBBBBRRR
+FFFBBFFLRL
+BFFFBFBLLL
+FBFFFFBLRR
+FBBBBBBRLR
+FBFBBFBRRL
+FFBBFFBLLL
+FBFFBBFRRR
+FBFFFFBLLL
+BBFBFFFRRL
+FFFFBFBLLR
+BFFBFBFLLR
+BBFBFFBRRR
+FBFFFFFRRR
+FFBFBFFLRL
+BFFBBFBLLR
+FBBBFFFRRL
+BFFBBFBRRR
+BFBFBBFLRR
+FBBBFFFRLR
+FBBFBFBLLL
+FBFBFBFLLL
+BFBBFFFLRL
+BBFFBBBLLR
+BFFFFBBRRL
+FFFBBFBLLR
+BFFFFBFRLL
+FFFFFBBLRL
+FBFBBBFRLL
+BFBFFBFRLL
+FBFFBFFLLL
+FBFBFBBLLR
+FFFFBFBRLR
+BFFFBFBLLR
+BFFBFFBLRR
+BFFFFBFLRR
+FBBFFBBRLL
+FFFFBBBRRL
+FBBBFFBRRR
+BFFBFBFRLL
+BBFFBFBLRL
+FFFBBFBLRL
+BBFFFFBLLR
+FBFFFFBRLL
+BFBFBBBLLL
+FBFBBFFLLR
+FBBBFFFLRR




diff --git a/2020/resources/input06.txt b/2020/resources/input06.txt
new file mode 100644
index 0000000000000000000000000000000000000000..066f613981adda1259e599fc6b6b1df87167e742
--- /dev/null
+++ b/2020/resources/input06.txt
@@ -0,0 +1,2042 @@
+ybcgtxznorvjel
+brlyvoexnjtgcz
+lnbgtxvoiyecjrz
+
+lcajnyxgzqwim
+qznygxmlvwja
+gmjzynxaqwls
+
+cmljinrupeykatzdsfox
+ugwqhknvb
+
+gsdqbrnhotmfwivl
+prozsgfwnthvmiq
+
+vsjpurgokf
+dfxpqzabeulknwmjvcsr
+pfuvstryihjk
+
+islxfdrtvzwkyoguh
+ogylskzvuftqhirxbdw
+fkrtgsxudhioylznvw
+
+c
+c
+
+uvwigmrlpbqh
+qvgriwlbmhpz
+nhlsptgbvwimrq
+
+izhmeksc
+zarebypguktc
+fzxkveoc
+hzcneqkl
+
+wsaklcyumfjgxpe
+gjlueyimxawpkoscf
+tgpaeywujxkslmf
+
+uzxkhngrtem
+heumxtrkzgj
+kzxtqvehmfyurdgi
+xmhtzrukeg
+tkhgujzmxenr
+
+veaxitpwqlkmfcdgu
+tuylgfjb
+ftuglh
+
+uqnklfemcd
+fueknldq
+eqkfdhnmtl
+opyelgnqdfkxw
+qzkslfden
+
+q
+bu
+k
+q
+
+wqeaklcysthvrb
+srhcatklwbqyev
+ylrqbthswkceva
+tsbryhlavcwekq
+aketrswybhvlqc
+
+tyd
+ymt
+yvt
+
+hwvclzeby
+vywecbhl
+wecyqsohlvb
+cvlwheyb
+blyvewhgc
+
+wieapdrco
+edicwpa
+cpdwia
+hdwgyvpica
+
+jvy
+fjv
+vj
+vjf
+
+czdf
+dfzc
+dczf
+
+gpmrwtuoy
+tymroagbipw
+wombgpcyktr
+dtrlongqypmwhsjvfxz
+gmrwpyto
+
+ocnmpvjx
+pvjxcm
+bmyjrgvxpkc
+
+jeygorhmxiak
+hxifjagoemr
+
+ncjziqtmpawdufxye
+eubydnxpatfwjzkcm
+
+abmysdl
+cpqbifaynmdsl
+mjsbdyla
+mrdbvjswyal
+bvsladmy
+
+qafokiv
+oqhaik
+oqmkifa
+qaligznro
+
+aiblwmouqx
+mqwbaxolui
+oxuibwlmaq
+
+zvefqkjusco
+xuewoskj
+kuzfqjsoe
+puankilsjodbre
+kutoqsjefh
+
+celsgxhzpjrodmitfukvn
+ejkrmnpsgfxvoaihulcz
+zuimrfyohspkjvcxelgn
+
+lbrxfchematouyniw
+labiudxyoenh
+ikelubxgaoynhz
+jnahsdibeuxylov
+xovbhaiunlsey
+
+ipsrknazqblw
+dgxutyvejmfc
+
+sxizpwamjhn
+imhnzxawsjp
+ahnpswxmizj
+wmisxanjzhp
+
+gtbhymj
+zawfkbsiud
+
+gylpjarczexv
+zyajpvoecrlgx
+kzrlojeayxgvp
+veztfaypxqrljg
+
+xfivwhodjknmzauqcletpygb
+hypeczniafgkoqultxvbdwjm
+qxfhjptgnlkvycoudwmizaeb
+jizanpbfcyuetmqokhlwvxdg
+gjwtexvdfpuamiconybzhlqk
+
+tvy
+yv
+yiv
+yv
+yv
+
+whueklivtpca
+iplkuahwe
+tlsekhiuwap
+mizpgjwlbahuekr
+
+mdp
+mdp
+mpd
+pdm
+
+xjnhkvoewc
+osfjprwxhcieavkd
+hqjxwkvonec
+jlgxctoqhevwkn
+kzvjhyxweco
+
+yk
+yk
+
+hdnxtrvyeiwam
+asrwvdhmxeycint
+vwxptebdzyioagqmhr
+
+tfczy
+ctyfn
+tycf
+cwytf
+ytfc
+
+rmtbfezuojpa
+utbjepomarzf
+rbatejfumpzo
+frtuoepamzbj
+faejrztmbpuo
+
+afenbkzjyugowxcpvr
+wouafcenbpjvkygzxr
+gvneprcbujxzayokfw
+vzyparnkxcgbfwouej
+ubzxvkrcgnjeapfowy
+
+vwuqrecngfdlk
+lkrnvqgufwdc
+wrnldgkqvcfeu
+cuwnbgvqfdrkl
+
+xbh
+vacqro
+snxumhe
+
+gxlf
+fglx
+gxfl
+xlgf
+lfxg
+
+uzlryvkmdbweqjocatxnhi
+lzjedxqowyhmnabkiufvcrt
+ntkrmlwcqdbzaxejyuhvoi
+
+fbns
+nbf
+nabylt
+
+arsif
+qzorln
+apb
+gcvyuhxtkwe
+jm
+
+svu
+uvz
+pvuf
+ucv
+
+hpjfklnwizys
+pzrcfhyslkiqwn
+zskfylihnpow
+wgfbdkszlypeihn
+
+vkmcijegnxar
+bvknimxrejcga
+vegkjcxniram
+egkjvmxciran
+akgixcjrnemv
+
+ewixgnuavo
+unoeayxkgi
+yeiaucxnm
+ixaekznu
+ajulsenirbqtfhxpd
+
+frqlmnxdbgewzo
+rdtmqlzovkbuncj
+qmzxrndoeiyflb
+
+ukpnyzjiohf
+gjfpkinzuoy
+ygjozinfupk
+iyvjpeozkfnu
+kiupfhoyjngzs
+
+hrpwvsugjafeoyd
+djawruhovfezcb
+
+cepdjoqftlbanyzxgh
+cgnayjbfxzeophtdq
+
+xqg
+halqr
+qub
+qub
+
+po
+ldjb
+
+zxnqu
+zduxsbq
+nzuqxgf
+niqzxu
+zquxl
+
+qn
+ev
+cz
+bmwjfhlg
+
+kpfrostvwjqzd
+ukbsrjpdzfcowq
+
+yjtl
+jytl
+ltyjz
+yltj
+
+dwty
+djsct
+gtdj
+
+hoj
+jyho
+jhos
+ojh
+
+eupzntdmk
+pulhzta
+
+vdfuricnlkjq
+cdufvkijqrn
+fkdrpnjcuviq
+qnfvjudcirk
+drijcfkuqvn
+
+nvbldpqsx
+wbdzhqp
+iamjtyfg
+
+iwqexpmtoadjvryuzshk
+twzoyhjukxmqsreaipvd
+umryqtvxsdpziohaejkw
+eruvdmyzapthwqixjkos
+
+wtgkdqunxroablp
+uqmljdantokrpwxg
+nkoupqzlgxwdat
+
+vepioalcghjydn
+zutlfxvorkn
+qbvnlo
+
+lmie
+ebim
+ykmhei
+smie
+msbeic
+
+segdzmcnijfpy
+pmngjzisdcey
+daumgeznqikljcyp
+
+hocwkeizbmvgnsd
+jfirpydx
+itqjdyl
+
+dbwtrzqo
+bwdztr
+pwbdtzr
+wrtbdz
+
+tcl
+ctl
+
+izfnvwsygkjp
+nkfpvyzsgij
+ygjvfipksnz
+kvpgjysnfzi
+jxiboavkfnzgpsy
+
+gxulavdzi
+xeorucjdlym
+
+hfc
+cfh
+
+oaixdvhwf
+kuivdwfxzha
+
+jsxny
+ynsxj
+yjxsn
+nxsyj
+xysnj
+
+usnjaimqdl
+dnuxgy
+hdnpcugz
+
+ejofu
+ufe
+uef
+feu
+
+defovtzlc
+avocyzft
+zxwcvftb
+
+cbga
+vgb
+
+rac
+a
+jgzaxotn
+av
+
+ugnotpd
+ntugodpx
+pudgomt
+tdislogp
+
+filsprncvbdamgozwuh
+fzqucamrswpihvdlgob
+
+keaqcjtmzwipdyonvufsl
+voysnkmwlzqpfeguiacdtj
+ndacvykmeozbsuwpiftlq
+wodcqfputzknsyevilma
+
+aobpjhfwndq
+wnbjofqdpah
+fnwqdcgxphabj
+wadfqbhinjp
+
+dfegup
+pdgyu
+
+qmdthgnfsoacekpjr
+zwqjois
+
+cuqwdn
+cdnwi
+cwyvd
+tokwjdsxcr
+
+hlbrqytujx
+fdcxlwjquyznksv
+wyupmxqjfilsk
+
+hkrsp
+yhwpsrk
+krhsp
+gorspkh
+
+kdnsfavte
+snadektv
+namkstved
+etavlknds
+esdatkvn
+
+zbvuponkx
+zkjybcanxi
+xbunzkv
+
+sixh
+xbgha
+
+uxfay
+urqibka
+uao
+
+lsjkxqirzbcw
+sqkbzwjclixr
+qsclikrzhxwb
+
+ozldp
+dlpz
+dztglp
+
+rl
+lr
+lr
+
+xchdwlniyzjvfskqgu
+jczdgywxisl
+jxyspdclgizmw
+
+dblfawuprytvz
+mceiqnsxkgltp
+pmcxtohlg
+
+s
+s
+r
+zdkl
+
+xsftzi
+rhmvobe
+gitkn
+ucgzt
+
+zfboewhsdi
+sfozwbdhie
+
+iulc
+cilu
+iluc
+ucli
+
+orlegwpi
+polwidg
+pomlwiy
+
+wuzngeba
+bnazuce
+ubzane
+
+vywm
+ym
+
+nfmsueclkpqgwai
+utlevwmrcxosqkpd
+
+stkubmdgxnprayjvihocf
+jdnhiurkyopfsbmagxtezcv
+fokmgyscrpijnbhxtudav
+caogfvytximuhrjdpbnsk
+
+rsabjcmtdwynx
+bficzdrnlsjouhta
+
+mw
+wm
+mw
+
+iebmfugxoyqlrpcvjztkwdnh
+pelfsdutxqcymaozjhnr
+
+pebjavucfqyrdzgml
+cbzypflawgmjuvredq
+yzrujflgcqebvdapm
+gbfuqznldejsyvparmc
+jcaqeuwvplbfgdmryz
+
+hkg
+xelcms
+f
+
+lihonytfdumjsewrzabpc
+hlpcdubrwoazsfmiynetj
+owuibptxmdhzyrecsfan
+
+riosndbpujgcwethz
+hwfrzietbougpsdqjn
+drntjpzeguiowshb
+pwubneoztjsgdhri
+rezkbtghcjwdoinspu
+
+njsa
+u
+fb
+
+sfx
+s
+s
+
+ucqsmn
+istuq
+
+ingklxq
+cnoekp
+
+jlygxaiwrpdfnheouvc
+dvfaingtxwpkozjhylercu
+pigfacjweynhuovxlrd
+
+vpxbtozuemlny
+jkgymlvebinctudpxa
+byzxemqvtulpn
+ytvunxzwqblepm
+
+jfbkglhtpqudix
+grnicbtpqzdxv
+
+bfokwpmzhtlgquaiejr
+iawgbmqvzleoxrhtfpu
+zwompxutlbhaifseqrg
+xpbqhitclyzrunwodgfesma
+
+q
+qg
+q
+vq
+q
+
+ekipdozabfsxvugqltjwyrc
+dztsokinlyrfxceqjwuavpbg
+
+eqnkifs
+ifqknes
+
+laecqkp
+pugqayce
+elcxpraqoj
+pecqvfwa
+qcepljak
+
+arnb
+qnab
+nbaq
+dnbaomv
+
+cbormguajxfiplwvts
+dxifemjgwzrobtlpcqvua
+aofmcpilxjvbguwtr
+
+umvdxnwzfqapk
+pwuqfzadjmne
+uzqpmfyacdw
+
+mhaeksjiqb
+bfqjokusih
+jgklnsivbywdc
+sxpkfirjomqb
+
+nhzaplu
+ahkipmvo
+brtjwg
+
+mkjxlagycu
+uckjxlgma
+kjcuxmgal
+
+ve
+ve
+
+jvkobmcq
+gjmqkobc
+qjbomcwk
+cybojqmk
+mjbqocfk
+
+ducqha
+qdlhac
+
+wlfkid
+hipcfkwdlryb
+fwlkdi
+kdifwvl
+
+ezs
+sze
+esz
+zes
+esz
+
+hz
+utfzphv
+ahzgk
+shz
+
+jxclzr
+rwfjmu
+jro
+ojrlny
+
+topn
+wbcojtesg
+yrdlqhfz
+
+wktxsnufbhygzraijlcoed
+ciokuzgyrsenbaxhdwjft
+nszoywipjhrfxgqbdaeutc
+tcxzrysbfuieaovndhwj
+bkyouicwtfzlxshjaednr
+
+aoylnseditpgum
+ounmkyzedplaibqs
+
+fahocyurtgvbsq
+byufcgohqvatr
+guvoyqthcrbdfa
+cbfhayvqrugto
+
+dgil
+dig
+idg
+apdgi
+dig
+
+rfzmeoyuq
+remzyhbip
+xtvrykdsancjzmw
+pzryfugom
+eryomgzlh
+
+ro
+or
+ro
+doar
+rpo
+
+tbomqznewpgu
+zpwbegtquonm
+gbunzwtqpmeo
+pmnobqtewzgu
+
+tzkielrca
+pwgouhfjvdybsnqm
+
+bqxr
+om
+
+fkvlmqye
+bnqlyda
+yojczstxupq
+qiye
+
+wcdl
+wcld
+lwcd
+wdcl
+
+udx
+suhx
+
+ypmrvaj
+aphrjxowvyz
+jarvpmq
+vpcwarbj
+tugveaprjsn
+
+cubgyqflopxnj
+apnxvc
+
+c
+c
+c
+c
+c
+
+ykdeblvoijpqtns
+sbnoigt
+nbmitoxas
+ibosnxt
+
+klbdfgmo
+va
+ylcu
+
+sgdrutfcbwxleyvmqjoz
+hztjqbduiefkvxwcygmolr
+eymudvjwlqcxrzfgtob
+
+jcghosr
+jpagrmecsho
+
+xtlgomkfpciezyq
+ylrgtxmchkq
+dgtlkwymvxnqc
+cgxalbkydwsjmqt
+
+lvg
+vg
+vjgka
+
+xulzdqyef
+xuezfldyq
+zduyfqexl
+lqfezuydx
+
+afpboknehzmculswdyjqix
+winjabfuyedmzoshxlcqpk
+smnaybfjzkowdpleiuchqx
+bqsuknafemzvpljihwycdox
+
+huvrzdawnce
+irvodxzmnksq
+tvrdneazfcu
+nldygvuezr
+
+ifwousayrbjvxcpld
+ugrnfjhvbcoatspxk
+vsiobyrcpjdfzuaxq
+
+ubeisxaw
+klqn
+ok
+rmf
+n
+
+j
+grpy
+mnwf
+
+yrsnckxbuvhdtmgeqapj
+asjkxuymdbrlechvqotngp
+adrjpnbhmutgkxecyvqsi
+
+agtlryz
+pywxhgqu
+okyghqduj
+mbycgvhjq
+
+aihswznpod
+bdaezc
+
+grdiok
+dtkoxqrnl
+
+vqjpfiembrcyohxlgdts
+uhvgxiceoyafmtpqs
+gqpcfextaviomwhys
+voygtpxhmiqcfse
+
+alv
+xohjegy
+
+k
+z
+h
+
+wdoc
+dwco
+domcw
+
+pencwlstgb
+toapxnsye
+taehsxpjn
+
+unhav
+dbslritz
+eucw
+ekv
+eag
+
+fewghvcj
+hcejwfvg
+jgxwfvclheu
+ewjfzvghc
+ehfcgjwv
+
+moaclkpxythqvesdgzuwib
+nrvlkyaiuhwsxfjzeoqmdb
+
+hda
+dah
+dha
+dha
+dha
+
+kgu
+efntky
+liw
+zyh
+
+zqtohusn
+jmuhq
+lxqvkruhciwey
+mjqthzanbu
+
+ljtief
+lijeft
+jlteif
+fiejlbt
+fjtlie
+
+qdxygilu
+tldagovk
+npmdckoaltg
+
+i
+i
+i
+i
+i
+
+wk
+dal
+uzmbsen
+k
+
+cqlxwzvetfakbidmgoujhs
+afzghkswqibynljtoecvrx
+swzkjhatgqvblxfneoci
+
+h
+on
+h
+h
+
+fzvckrajbeso
+ejrcfnsxv
+tlupewdmcirygv
+vjqrec
+
+hadxcqevfmr
+hxdarvmfcqe
+chdvexqmfr
+vrhmxecq
+ehoxqnrcumv
+
+wkdtuyegzqichna
+uihqapcwdmteznykg
+tnjrqcydihfgvwzbseuak
+dagetcyqizhnuwk
+
+jie
+bei
+ei
+eji
+
+td
+t
+t
+t
+
+dbqvtxjeranwmofhigc
+mtgcdevirwahnxjoqbf
+cftanqvibjmhxgowyred
+
+iqgphzrawkevmjfds
+jhifptdmra
+jdxaobfypmnhirc
+xtdamplhrfibj
+
+majypozns
+pomjzusayn
+zmspayjon
+mjnzoaspy
+
+puvwane
+avwpnue
+ewvaun
+dauqnevw
+
+jsvcumahzqktyp
+obifedg
+wnolrxg
+
+ewgot
+odycnb
+tjgwo
+
+di
+id
+id
+di
+idcw
+
+itovydpksgxmblqhun
+ogxaiurvmhlsfwdbpzcy
+gdemlsyaijofbpuvxhz
+
+kwdqozmvuegtsrxi
+uyetkxigdwosq
+
+cw
+cw
+cw
+
+aoh
+ano
+
+rnywdtil
+dpvhtrf
+tgblnpd
+keactdx
+tgrdzos
+
+mfip
+impf
+fmpi
+impf
+imfp
+
+kqpvbyjnewx
+ywjxpknqzeb
+nqeukpjbwxy
+penxzqbjykw
+
+zpyjigfcuxdktarq
+yapfiqrtdkcgjx
+aepjcrbgyxftikdq
+jptaiqdcykxrgf
+
+ftwedcvib
+btcdfewl
+ivdfwbtce
+ftcdxeqbkwu
+bvfeitwcd
+
+uiqj
+qi
+
+oxghqnsd
+udygoh
+hdoxg
+rpafchvogd
+
+hpbytijfwx
+jywtpixhbsf
+pwhyfjbxiqt
+qtipwfjxbhy
+xqhfbptywij
+
+dfslmxhie
+smzwlfqehi
+
+kpr
+stcve
+
+irt
+rti
+irt
+rti
+
+bunl
+nlb
+lprhdby
+
+bo
+ob
+ob
+
+bowdlaegtqypmiz
+wonjglmdyapqhike
+
+akwfdicyteo
+kaoewyidtcf
+wyafoeitckd
+ctwaifokeyd
+
+usikpnl
+plunkis
+nliskuwp
+upisnkl
+alinspukr
+
+fmosyehatupnxcrbl
+zmtfcoghsperajnbylxu
+ltnfweypcbmarosxhu
+fuabtspeojcrhknlmyx
+pcmdlsoxrytevqfnbuahi
+
+tpjvhomdzurfsbqgxieynw
+deopwshxkgtibylnzqmrfujv
+bpxszafutyhgdenwvmqijro
+ixtjfrpbozsngqwmduhyve
+elfvxrhspguyinzjwtmbodq
+
+kvgqfjtzonx
+lptjicfezk
+tbxkfjmvz
+
+d
+q
+d
+rg
+
+gvnmslbrqduhipyx
+sygxvmblqrjhipau
+ufirbqgpvhsklxmy
+bhrpgqxmivyulzs
+
+mdfikeywgxsqlbn
+ilqgnfbdkexymsw
+mynqlfgeidbkxws
+kndefxlymisbgqw
+bmgfeiwxkndsqly
+
+firjqazycdmlpebwvkuh
+nyopgcvhsxlujedkmfrq
+
+ctmupagrjydizes
+hdqxglckzvabwi
+
+uogtnvfbwa
+qkgxofaeictuvnj
+ngfuolytshmvr
+
+bhgrcpltzvqjwfas
+tchsrqzwbpgvafj
+wgharjbsptqzfvc
+qftchjazrgspbvw
+
+sbzjewryqhpxcivnk
+expnzhsqykirbjcw
+oyagjndwhkpxlqbmcrizefs
+
+sfhpqjndwvb
+rjvbwnphsqfedm
+ndbphlfwjvqs
+
+whrefxbvuma
+hxmrubvfwea
+
+t
+t
+t
+
+favkeblzcnt
+ymcz
+xucgdszp
+cjzrh
+irpqwozc
+
+my
+m
+m
+
+alsknvxifqcpjymrz
+fpjcrqzmlyxvsaikn
+
+yaj
+ykanc
+atx
+
+ilupyjozc
+zcjbiolu
+czjioulsg
+cokzbjuil
+auvmjzohqrwilc
+
+wsxunpgv
+vgwsu
+ugswvq
+usafwhvg
+gfwuqsv
+
+s
+sw
+
+wvqdzfolabmirjc
+ljwarzcmbfqodiv
+aswzbmdjtnlfqovgxc
+
+znrmjsy
+nsjrymz
+ymrnzsj
+
+vpgac
+dgjvpcua
+vycgpfa
+pvcga
+rapvcg
+
+mb
+mb
+bmnt
+bm
+
+gsnjzuby
+wntqv
+nhld
+
+onzrkyudwapxf
+dkupywnraxof
+
+lmst
+slmt
+tldsmvp
+tsmol
+sltm
+
+s
+n
+
+qsagxhkyeinrvb
+kiyeqrnbgxvash
+syerxqghivnkab
+rqkasenivxghyb
+
+ncfrvqmgkahtpbozdjy
+fvdzwkoam
+lixodafekmzv
+dokuazvfm
+zdoakvfms
+
+vlhbq
+ouqvrxhls
+sfhqlvx
+
+qxorudp
+peduq
+qundp
+qdpu
+
+rhpyabj
+brycauhjp
+apbhrxyj
+
+ygk
+ktpy
+kvyn
+yvkn
+
+xkhagnmpdcv
+hjoakl
+
+dxcjugqvpleairsytkh
+rqndpilgchysvoeutxma
+
+njeikmhawblcdxoygufrpt
+gnrxuicweofdtpkjhslamby
+perifdanxhwtbzokgumyclj
+
+ghpdecujkxzltysfbv
+xftkvhudgcplyjzesb
+cbksuezftdjhwvxgipyl
+
+wxtz
+wztx
+
+bcva
+acvb
+avcb
+
+oydfhxunzaijlpgeqb
+qzeafxwrpiycndmogbj
+finjbylagzdqxoep
+pyqbjondvzgefixa
+aonbixfejqdpgzy
+
+edzm
+ejmz
+mgliz
+
+q
+qb
+yn
+glq
+fwu
+
+whbkfvgpmjzdl
+gzmvwpjdbltfh
+
+prkxeaoygt
+zfrewaysbtx
+
+hoytqlezuxdmcnw
+zqtyewudcfnomxh
+hrxinwocqtdemzu
+wzmjhquxdngcpoe
+
+pnwldbucofxq
+nlwbcoqfxpud
+icwpxnbodyqmluvf
+ozfwdhclupxbqn
+dcqonulbwpxf
+
+ywfjkqrgidnhbuea
+aeyidkwghubrjqf
+ihjrakdwbuefgqy
+irdjgbwfeqaukyh
+hyeujqrkiwdagfb
+
+jstapqk
+wmeujqts
+utzmwqjs
+zxqbmstj
+yrsthdignvqj
+
+yva
+actvy
+
+okqvf
+mfok
+akfno
+oakvf
+
+cdfugre
+gedfucr
+dfcerug
+
+ingczmjrfp
+pmcfrgnijz
+mepzjirfcgn
+zsnmhpfguwircjq
+
+dpw
+zlpwd
+pwd
+dpw
+
+wbzluvga
+yiupsdj
+yfu
+ncfou
+pfu
+
+fbxnrjdosah
+rnfdasxjbhoz
+nohdxufrjkabs
+
+dfgyeismzkr
+nhukvdazrwgqisl
+xbzkgsmderi
+ksditprgzb
+zkdsgir
+
+gjytlskbrhdcwfq
+ljirabqwtygcosuhd
+
+bk
+kbdi
+yjk
+ik
+
+ksquemnvtlxofj
+xeqoflmadtunsvjkc
+jtvnequxslfmok
+qvnkmtxosljeuf
+
+zxqlnj
+qzkjl
+jqlz
+jlqz
+qjzl
+
+jniylks
+jiyheksb
+jydtiaks
+
+o
+o
+h
+
+e
+e
+e
+e
+
+hrpgqasc
+grpschqa
+rzgcsjphq
+
+ecitkohxdb
+okteihdcxb
+xobijctedhk
+ktboecaixhd
+
+paubelofzrwmsvhg
+pagezysfb
+
+esgvqfzkijypan
+zeivfdksgqapyrjn
+
+wi
+i
+inkm
+i
+
+zcun
+uc
+uc
+okcug
+
+trogu
+oyrug
+ozgrfuqn
+
+raj
+oz
+pbr
+
+iwhxjelgd
+jiwhexldg
+hlgjxdwei
+jlwxhgeid
+xhldjzgwtmief
+
+kclge
+srlkec
+kelc
+
+eofisurvqxh
+ukvfrisqxoe
+uexrqifsvo
+
+okdimecwvfuhrljtpxgyanbzqs
+xacwijpeqlkbuvdsgofmtnzhyr
+
+amwgdsovpnryclfeit
+rcwyfevgotlidanspm
+vtneaoylpdifcrwgsm
+tonlrdacsfigpyvewm
+pisgdcmtovwfelnyra
+
+uetxnmzilhksb
+kminofleutjwdpz
+tmeculxqkzin
+kqlimryetnavzu
+
+cmnjsbqvde
+qmzdbnjsv
+vngjtmpsbqd
+dqnmspbvj
+dmsqvjbn
+
+kgxdn
+gxndf
+
+onpwxkus
+sgnpkw
+pwnrvks
+sknbpwta
+wopksn
+
+gfqylwtcvpjsk
+cwvplskgfxty
+lkgvywscptf
+ogwspvfylktc
+
+dgbcvjfieurw
+iknqeztowur
+
+fzsar
+fno
+
+jiaxdfroq
+rqhxjigaynd
+iudjaqrx
+qmxardfvji
+qxjcdira
+
+ghfosy
+yfgs
+hfspb
+fucaiq
+
+ynrbkleixc
+sezybviarnl
+
+ywcanufmveh
+vafuecjm
+
+qcrmvuihkboexdlftp
+kufohcswxpearvbyqd
+hrnzpkocxfdevqujbs
+qoxuhjpfvbckdre
+gkdfvpbheqocuxr
+
+wtk
+ktw
+
+xcadnijfkvqystgluz
+kznliathwoxsmvybrgeqf
+klzsivxayqnfgut
+
+clo
+lco
+ocl
+oacql
+lco
+
+iyzkvsdhpngo
+remlyvz
+
+uyzw
+zuv
+zu
+
+tq
+t
+
+oeicrl
+byxrsfdz
+rcjog
+cr
+irck
+
+pgistdzl
+y
+xmq
+m
+afn
+
+g
+dhg
+g
+vwg
+
+nfgtoy
+ugyft
+tygfo
+futyegr
+gstlwpkyf
+
+vn
+nmv
+vn
+nv
+nv
+
+ozivnfbaktuedlrcs
+oramfqlcbuswtvdzjni
+
+jxp
+xpj
+
+mc
+wabq
+lrgsuezypd
+wiv
+
+eofl
+snpkflyqmdzwb
+jehlirf
+cjflrh
+fljc
+
+ltubcvkymoajwxzsrhndpgf
+ogvibsazqtujrdewfxymph
+
+egdchpsvwjfaqybn
+zndqagubwpkscyjh
+
+wlbjgnopeayszicrmf
+nosbgiezpjaywqfmrlc
+jgilbrmwosyzcafnep
+agycorlqmzweibpjfsn
+zjlrpnfbeasidmcgyowt
+
+vijh
+ndsfcamyxz
+woujvp
+
+uhealmbgtyix
+zilxmb
+pvxlfqmwsidb
+
+fjmdnvrbg
+gdlvuqhkpb
+kbczdvgp
+
+lqkt
+tkjqi
+
+wcrmtpf
+bkqws
+
+ngzltjq
+nlkut
+iwlrytn
+xltsmnu
+ztlnacfj
+
+exfviczl
+iczhelxv
+zelivxc
+vfilzexcp
+xlzvfice
+
+ytgac
+tacyk
+qacy
+candymh
+
+yrqczhgfovwnisbu
+vhlgknps
+
+sbwugclexy
+wbzuhlgsc
+umvwiknljcdotbfgs
+rluhbcqgsaw
+
+vymaruskjc
+akvrsmjuyc
+vrcyuasmbjk
+pursajkvycm
+czpmyusvajrk
+
+ofwvqmlr
+vmq
+vmq
+
+ysnwieoauzq
+nuyqesaowz
+yoesanuwqz
+kuzgoswayqnle
+
+eomivztrgn
+ivmretong
+invkmrge
+vnmzegcri
+vyrmflsjgiuen
+
+eqrmyzpvkwfbgtjlxshdoin
+gzolfstrvybjeqnmxpikhd
+nroxitkevgzmypjdqbsfhl
+ofgmtrjilnbekxhsqyzdpv
+dhlqnvgsjiyzbkpotxrefm
+
+hozruskcedfwiaq
+coptzfyuvxldrm
+
+l
+l
+l
+
+dyslqoiw
+ymjqdi
+
+syxnhbi
+dpkvjr
+eukgwozaf
+ekjz
+
+yvwbgqcrotjlnpeha
+lhpoetrgabvnqjwy
+blgszmfkhyntepwoaixqrvj
+byrpjoenhagwtuvql
+
+z
+v
+tgy
+
+d
+d
+d
+d
+d
+
+dc
+dca
+dc
+cd
+dcz
+
+locsfetpwknxbzgvja
+jxgnvfzphceiskaotwl
+fotrsavxmjyhnwpgzelck
+sfvpqhxgyjeonazclmwkt
+choefxapjniztgwlvskq
+
+kbyxoztlp
+ilptzojgvnexw
+atxmzkolcp
+uqkszlopdxt
+
+zj
+ojpz
+
+khjzinxbsvytagfwrdpclm
+gkfnjmrsaxublcov
+nxlacsrmgkvbfju
+uagsxkrfmbvcjnl
+kexajvcfrnlsmgb
+
+jwstzrmqyg
+qiolxndue
+
+aljc
+onxjpaltygwvucz
+qacrjls
+ajcfhl
+ijqralc
+
+hinlgsoyjrwux
+onlujsyxgirwh
+
+l
+l
+l
+l
+l
+
+eoqhmwpjxdkib
+dpewgjm
+epjmdw
+edpnmjw
+pjdewm
+
+wvhaks
+vrgoah
+
+dvqanm
+ladgcypwnmhjz
+xsidnmae
+fidranekum
+datnmb
+
+vkashdfylrcigpz
+fzpsydgrvwcl
+kdpglscryfz
+sgzqcytfoplebudmxr
+ldzsywpjfrgc
+
+gtme
+mgfptwe
+tmge
+
+ameogqc
+ogqcema
+meocqag
+ecmaoqg
+oeamicgq
+
+jg
+hgij
+fjg
+
+dgypvjbrik
+zriqkvgpdbjaxy
+
+ezfbiwhrtgl
+ozfxebispgdtnv
+btegzjafui
+
+jiabmdnuftcsgqw
+kazroxypl
+
+mqoaxjcuzhngk
+jgswxaykfmehvuiqzon
+lbuakqzjhdmnxgo
+
+bacszqyketnvpguofhrwmx
+ptszqxamuewikbngyfhvdroc
+heqrcosaxtwgbplfnzuvykmj
+
+knxabluhoyviedjfpsmrqcw
+scqixedwvumkoanjbrfyhl
+tisjfuywcqnremhobldkaxv
+shvojgwydialxekbmcufnrq
+
+nyxmrhszik
+mapcikqstjfrzx
+
+gdlctrjzek
+hjsgkeyr
+
+qepm
+eqlpm
+eqmp
+mqxepn
+pqem
+
+bvgkrl
+vboc
+wcbvziu
+vqfpdabh
+
+gpn
+ngmpc
+
+twpvxflgjqoumydkbc
+uprelhcmqwdksixynzta
+
+h
+h
+
+jhnxwesqrpc
+vpsgmitbaoyfudjz
+
+yuwbhtsmjlcqefdv
+ebmutvlfcqdsjhy
+utswqzjlbvycpadefmh
+sejvrxgqdlmbtouyhnfc
+zijctvqmlyuahfbsdep
+
+dflwcg
+mrflgw
+wfduygl
+
+ytnlzrju
+uvztnjly
+zljbryutn
+zyjlnut
+tljuozyn
+
+hskjpotzxndciuveygqbf
+tovpizqhkfjyxucsgdbne
+zchinjfgpxuvqodbtseky
+ewpzdvhbgqnkcfujixsoyt
+
+hwogmrjsanyfkxcuzlqip
+zgefdbcrvawhsknxlup
+
+vpnoqlyctz
+lazbrndtc
+cbzlduthn
+ztnslmcwkegjx
+
+g
+g
+g
+mg
+
+scdpkxnwevjzuliaot
+ieltzxk
+etkilxz
+ekrxizlmt
+lztxefikb
+
+fojsglve
+
+mpdxfg
+kfdxma
+dkfxavtm
+wnbxdmcof
+
+lsoytwjgnxfpu
+jxnluyisgp
+jygpxslnmur
+npsjlguyx
+
+rdh
+rdh
+
+apbutxfrwydzin
+xrgnqelbdtoczafhjm
+drkuztfnxba
+
+bdmstxhqnrzeyj
+fubwrmohipenjclkgya
+
+usrxcktp
+srxotup
+rulpxit
+euxptrn
+
+pryjxzemofknaqwh
+owzqrhmknsjaedxyfb
+ahkijzwfrmqnxolscvey
+uqnxfkrwmatcsgeyohjz
+
+gq
+q
+q
+q
+
+hbkieng
+behdikgm
+dkbeygh
+ebgshk
+
+xcdliskjvqhazmgp
+zdilgjchpavusmxk
+jwxavzlkchdobmgyspi
+vijgcxakdhlpqszm
+
+qkoxgd
+zkuxdmbyqcglf
+
+hjxscnryl
+nsmahy
+snmhy
+ovthdys
+
+vbwhoizkgsncaqr
+waobkhsivcrznjqg
+wzsrcgnabkhoqiv
+oanbsyrhicgwvzkxq
+hurqnbcgovfkawzis
+
+zxvbs
+bdpn
+qb
+bv
+
+hdkixlmqovte
+ihtrouqdnxlk
+ltioudhqkx
+bxidhtklufoqw
+
+s
+scvai
+s
+sb
+ws
+
+uaxeycr
+aubsiqxrv
+aohrdkxu
+reaux
+
+trcfn
+txbgc
+tcp
+
+udrgmasezv
+zotwyimlkq
+
+o
+o
+tdo
+o
+
+ambertifpjuzvwk
+dcyhwogqfiaxnlzps
+
+smzcqpikr
+szmqcpkri
+cqokmsrpzi
+
+tzkopc
+pkcz
+pckz
+
+avioqkyrntbesulwzp
+oylhrtfzvainkuxbw
+
+hqieuv
+hiqcu
+ihwuq
+
+itfe
+wcied
+uvnigke
+ltieq
+
+jrbmngvx
+wousyqdiehcgk
+ztfplg
+
+zdhewmyr
+wjgqt
+ynwdcef
+kmvnwhfep
+wyco
+
+x
+x
+x
+x
+
+phkfsnxwce
+dztiaygqu
+jvrmltid
+
+ayhkqv
+havyqk
+vyhkaq
+vyajenhgqk
+vakhyq
+
+dxlepoksgznvuyjcihwqtf
+lyqaihgexkcozwdsjnbtmfu
+ysecldonhztfkruwxgjqi
+
+epo
+azoeq
+mfg
+tbujywxr
+eod
+
+myek
+kmey
+meky
+
+iwyngr
+vishbag
+kinsq
+lzxoeticmudfp
+nhjswiv
+
+fbtscavdzrkxeqyuhiw
+orafstylxkgphmed
+fehrsanktydx
+
+covl
+ypkqdc
+xzc
+ejwsgafcbh
+vcutm
+
+mlsfecori
+ehpsya
+
+dpvgtqzocn
+ngdvoqptzc
+toqcdgvnpz
+vdqptznocg
+ncgzqdotvp
+
+adsqywe
+msdeawq
+edwaqs
+vedwasnq
+qdaswe
+
+bqmpnhvtoakiyr
+roufkiapnqeym
+
+fydeiohqas
+sqoycfhad
+safyqhod
+ghadsxfyqomv
+
+qdxmrofjwb
+qwkidye
+lgqyziawd
+
+erqsduihwmjcz
+umericogzyjsqhn
+
+hsct
+hsct
+thcs
+ctsh
+
+vtnbqai
+qtianb
+
+tdwhrmbvyalqfojzicpxe
+cltemhoxwbpqyrijvzad
+wxjmpyzdqoeabichtrlv
+ogzwhbdmtqxecvryjipla
+
+wnkjevsuqrtbfygih
+jzagctiudpbqyfvhomkr
+qtfkshvgryibujn
+
+qowgkyzsfetprnd
+sgrdfepwnyzqtok
+pgnrwdkzofyesqjt
+wfcpkntezoyshgdlqr
+dfrongetpszqwyk
+
+fdmxzviro
+odcszimujfqaknx
+xmoivfhdwz
+yoidfzmvxbg
+
+nxmtopbehydczsrj
+hrtspxjyiwczdngfb
+uzjranxksdbltpyhv
+
+zoia
+zioa
+cazoi
+
+kwfnrcbjushlme
+wsnmelhrjcubk
+
+lhf
+hl
+hl
+
+qvtia
+vqal
+ovqa
+qva
+valqy
+
+jxfkt
+evhj
+kgjo
+puyasnjliz
+xkmj
+
+cbhxvorjpgzd
+dcbxgjhporzv
+pjdbxhrogzvc
+ogbrpjdvxzch
+
+ks
+skh
+sk




diff --git a/2020/resources/input07.txt b/2020/resources/input07.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1390fba3afd7a0e2d60044dd00340162bbda4356
--- /dev/null
+++ b/2020/resources/input07.txt
@@ -0,0 +1,594 @@
+mirrored gold bags contain 3 light teal bags.
+clear gold bags contain 5 light maroon bags, 4 pale tomato bags, 5 clear blue bags.
+dark olive bags contain 5 plaid black bags, 2 dim plum bags, 2 light cyan bags.
+bright white bags contain 2 pale violet bags, 5 mirrored orange bags, 3 faded beige bags.
+posh green bags contain 4 shiny gray bags.
+posh lime bags contain 3 muted lavender bags, 1 clear magenta bag, 5 muted orange bags, 3 mirrored cyan bags.
+striped turquoise bags contain 3 pale red bags, 4 wavy lime bags, 4 wavy aqua bags.
+pale fuchsia bags contain 1 striped purple bag.
+dark magenta bags contain 4 light indigo bags, 1 wavy lavender bag, 1 clear teal bag.
+drab teal bags contain 5 pale bronze bags.
+muted aqua bags contain 4 wavy bronze bags, 1 pale plum bag.
+vibrant brown bags contain 4 dull turquoise bags.
+vibrant green bags contain 5 dim violet bags, 2 dotted red bags, 2 dull indigo bags.
+wavy black bags contain 3 posh yellow bags, 5 wavy coral bags.
+light fuchsia bags contain 1 dull violet bag, 5 dim indigo bags, 4 plaid red bags, 5 dotted bronze bags.
+drab bronze bags contain 5 dim tan bags, 4 mirrored yellow bags, 5 dim indigo bags.
+plaid silver bags contain 4 pale orange bags.
+wavy red bags contain 3 muted chartreuse bags, 4 light silver bags.
+light aqua bags contain 4 dark cyan bags, 3 shiny aqua bags, 1 light olive bag, 3 wavy purple bags.
+wavy salmon bags contain 1 shiny blue bag, 2 bright green bags, 5 dark beige bags.
+vibrant indigo bags contain 4 drab lime bags, 5 plaid turquoise bags.
+striped violet bags contain 3 dim violet bags, 3 striped purple bags.
+dull salmon bags contain 5 vibrant turquoise bags, 5 muted black bags.
+dark lavender bags contain 5 pale gold bags, 5 pale silver bags.
+clear lavender bags contain 1 faded turquoise bag.
+striped crimson bags contain 2 dull turquoise bags, 1 dotted red bag, 5 striped yellow bags.
+posh chartreuse bags contain 2 wavy lavender bags, 2 striped black bags, 5 dim blue bags, 5 bright fuchsia bags.
+clear tomato bags contain 1 mirrored violet bag, 4 pale gold bags, 5 bright bronze bags.
+clear brown bags contain 3 plaid fuchsia bags.
+pale aqua bags contain 3 pale indigo bags, 1 dark lime bag, 4 dim magenta bags.
+bright maroon bags contain 4 wavy yellow bags, 4 bright tan bags, 2 posh indigo bags, 4 shiny white bags.
+wavy purple bags contain 1 faded beige bag, 2 drab salmon bags, 3 mirrored yellow bags.
+muted salmon bags contain 5 bright olive bags, 2 striped white bags, 3 dotted coral bags.
+dotted maroon bags contain 4 striped brown bags.
+wavy turquoise bags contain 1 dim indigo bag, 3 clear lavender bags.
+muted tomato bags contain 2 wavy turquoise bags, 4 pale crimson bags.
+faded teal bags contain 2 dotted yellow bags, 4 dull olive bags.
+dotted blue bags contain 4 striped plum bags, 4 striped cyan bags, 2 drab bronze bags.
+posh teal bags contain 2 vibrant purple bags, 4 plaid fuchsia bags, 2 light green bags, 3 light chartreuse bags.
+muted gold bags contain 1 muted green bag, 1 vibrant brown bag, 5 pale crimson bags.
+clear olive bags contain no other bags.
+dotted beige bags contain 4 posh beige bags, 2 pale silver bags.
+vibrant lavender bags contain 4 dark tomato bags, 5 dim black bags, 3 dim aqua bags.
+wavy maroon bags contain 1 drab turquoise bag, 1 shiny indigo bag.
+muted magenta bags contain 4 posh indigo bags, 4 faded brown bags.
+dull tomato bags contain 1 pale green bag, 1 plaid gold bag, 5 plaid yellow bags, 5 mirrored blue bags.
+mirrored black bags contain 5 drab crimson bags.
+dull green bags contain 4 shiny orange bags.
+dark cyan bags contain 3 pale gold bags.
+faded black bags contain 2 clear beige bags, 4 bright red bags, 1 striped black bag.
+wavy indigo bags contain 2 pale brown bags.
+dim white bags contain 3 clear violet bags, 3 vibrant indigo bags.
+muted green bags contain 1 bright white bag.
+posh coral bags contain 3 shiny purple bags, 2 light brown bags, 3 pale gray bags, 1 dull turquoise bag.
+dull white bags contain 5 bright plum bags, 5 light green bags, 3 plaid purple bags, 1 faded white bag.
+bright salmon bags contain 3 dull indigo bags, 3 muted plum bags, 3 muted bronze bags.
+dotted green bags contain 1 posh purple bag.
+posh salmon bags contain 1 shiny brown bag, 2 dark red bags, 3 drab gold bags.
+pale olive bags contain 4 shiny maroon bags, 3 shiny white bags, 2 dim lavender bags.
+dotted lime bags contain 4 mirrored plum bags, 2 dotted blue bags, 3 light salmon bags.
+dim blue bags contain 5 shiny lime bags, 5 wavy cyan bags, 3 dotted cyan bags, 5 vibrant turquoise bags.
+dim gold bags contain 3 wavy lavender bags, 4 dark silver bags, 4 striped green bags, 4 posh plum bags.
+drab lime bags contain 3 clear black bags.
+dim red bags contain 1 mirrored olive bag, 1 plaid violet bag.
+posh white bags contain 3 pale indigo bags, 1 pale black bag, 5 light green bags, 2 light maroon bags.
+dim brown bags contain 5 dotted black bags, 5 dotted red bags.
+drab gold bags contain 4 mirrored orange bags, 5 drab beige bags, 4 pale gold bags.
+shiny green bags contain 5 mirrored gray bags, 4 pale maroon bags, 1 striped coral bag.
+clear teal bags contain 3 vibrant crimson bags, 4 posh teal bags, 5 striped lime bags, 3 plaid green bags.
+wavy coral bags contain 3 drab beige bags, 2 drab magenta bags.
+plaid tan bags contain 4 faded yellow bags, 4 dull gray bags, 2 shiny lime bags.
+shiny blue bags contain 1 faded white bag, 5 dull turquoise bags.
+striped green bags contain 4 dull blue bags, 1 muted tan bag, 1 wavy lavender bag, 1 muted gray bag.
+wavy tan bags contain 4 wavy bronze bags, 2 pale plum bags, 2 plaid indigo bags, 2 light lavender bags.
+faded violet bags contain 5 dull turquoise bags, 4 bright orange bags, 5 drab lavender bags.
+striped magenta bags contain 5 dotted orange bags, 5 wavy red bags.
+drab beige bags contain 4 pale gold bags.
+shiny coral bags contain 3 mirrored bronze bags.
+faded indigo bags contain 5 clear violet bags, 5 vibrant fuchsia bags, 5 posh violet bags.
+muted maroon bags contain 4 wavy coral bags.
+pale violet bags contain 1 clear olive bag, 1 wavy fuchsia bag, 1 dull lime bag.
+wavy chartreuse bags contain 2 faded blue bags.
+faded purple bags contain 5 clear olive bags, 1 wavy orange bag, 2 posh beige bags, 1 mirrored salmon bag.
+dull fuchsia bags contain 2 dark tan bags.
+light gold bags contain 1 pale blue bag, 4 wavy cyan bags, 1 shiny chartreuse bag.
+bright tan bags contain 2 shiny brown bags, 4 drab gold bags.
+plaid fuchsia bags contain 4 shiny gold bags, 1 mirrored orange bag, 4 dark chartreuse bags, 1 faded tomato bag.
+striped indigo bags contain 4 clear brown bags, 3 wavy silver bags, 1 plaid teal bag, 3 pale maroon bags.
+drab salmon bags contain 1 wavy bronze bag, 2 pale violet bags, 5 plaid indigo bags.
+muted teal bags contain 1 wavy maroon bag, 2 pale purple bags, 4 clear blue bags, 2 bright salmon bags.
+clear violet bags contain 2 light chartreuse bags, 1 light silver bag, 4 dark brown bags.
+posh red bags contain 4 light lavender bags, 4 plaid brown bags.
+muted gray bags contain 1 pale olive bag.
+posh black bags contain 1 muted maroon bag.
+dotted silver bags contain 3 dull turquoise bags, 4 dotted black bags, 3 mirrored black bags.
+wavy olive bags contain 3 dotted coral bags, 5 dim silver bags.
+plaid olive bags contain 3 muted plum bags.
+dim lavender bags contain 2 pale gold bags, 5 mirrored turquoise bags, 1 dull lime bag, 1 dull beige bag.
+dark silver bags contain 4 light silver bags, 1 plaid fuchsia bag.
+shiny tomato bags contain 2 pale coral bags, 4 dim lavender bags, 1 dim purple bag, 3 wavy magenta bags.
+dull purple bags contain 1 shiny maroon bag.
+wavy orange bags contain 2 dim black bags, 1 wavy aqua bag, 4 dull turquoise bags, 3 wavy bronze bags.
+dim gray bags contain 2 faded bronze bags, 3 dull beige bags, 3 pale purple bags, 5 drab gold bags.
+muted yellow bags contain 4 wavy aqua bags.
+striped maroon bags contain 1 plaid plum bag, 5 dotted chartreuse bags, 3 dotted cyan bags, 2 bright plum bags.
+muted white bags contain 2 dark blue bags, 4 posh aqua bags, 5 mirrored violet bags, 5 posh lavender bags.
+wavy cyan bags contain 3 dim black bags, 2 striped lime bags.
+striped teal bags contain 2 bright blue bags, 1 vibrant black bag.
+posh olive bags contain 2 dim plum bags, 5 shiny turquoise bags, 1 vibrant tomato bag, 5 bright magenta bags.
+dotted crimson bags contain 2 clear gray bags.
+clear plum bags contain 4 vibrant teal bags.
+vibrant chartreuse bags contain 4 posh bronze bags, 5 light purple bags.
+vibrant teal bags contain 3 clear blue bags, 4 muted tan bags, 2 wavy fuchsia bags.
+striped beige bags contain 4 faded tomato bags.
+muted bronze bags contain 1 clear lavender bag, 4 mirrored gray bags.
+light lavender bags contain 2 plaid turquoise bags.
+dotted white bags contain 1 light yellow bag, 5 dull maroon bags, 5 posh brown bags, 2 clear olive bags.
+pale teal bags contain 4 dark aqua bags, 5 dull violet bags.
+wavy lime bags contain 2 drab red bags, 1 clear olive bag.
+vibrant black bags contain 3 dim tan bags.
+pale coral bags contain 5 dull gold bags.
+plaid maroon bags contain 2 light fuchsia bags.
+wavy aqua bags contain 5 dark coral bags, 5 mirrored orange bags, 3 muted aqua bags.
+bright blue bags contain 3 faded bronze bags, 1 bright red bag, 5 mirrored coral bags.
+wavy silver bags contain 1 posh olive bag, 1 shiny lime bag, 3 shiny beige bags.
+faded maroon bags contain 1 dull tan bag.
+light yellow bags contain 5 light lavender bags, 5 pale black bags, 1 plaid brown bag, 3 pale violet bags.
+wavy fuchsia bags contain no other bags.
+pale plum bags contain 4 light teal bags, 2 pale black bags, 1 pale green bag, 4 wavy bronze bags.
+drab white bags contain 3 dark tan bags, 5 muted orange bags, 5 dull violet bags, 1 mirrored fuchsia bag.
+pale salmon bags contain 5 faded violet bags, 1 clear cyan bag.
+clear crimson bags contain 4 pale lavender bags, 1 dull turquoise bag, 2 mirrored blue bags.
+posh gray bags contain 4 muted brown bags, 3 shiny teal bags.
+dark aqua bags contain 1 shiny maroon bag, 5 dim brown bags, 4 striped maroon bags, 5 dim blue bags.
+muted red bags contain 3 muted chartreuse bags, 4 wavy red bags, 1 drab tomato bag, 3 shiny yellow bags.
+mirrored purple bags contain 2 clear blue bags, 2 mirrored lavender bags, 1 pale gold bag, 3 bright silver bags.
+striped yellow bags contain 4 light silver bags, 2 dotted red bags, 3 mirrored black bags, 2 faded tomato bags.
+dotted teal bags contain 1 drab bronze bag, 3 muted red bags, 5 mirrored gray bags, 4 bright olive bags.
+clear turquoise bags contain 5 dim bronze bags, 3 faded silver bags, 1 dotted olive bag.
+dull lavender bags contain 5 clear olive bags, 1 mirrored orange bag.
+mirrored indigo bags contain 3 bright fuchsia bags, 3 dotted salmon bags.
+shiny salmon bags contain 2 bright turquoise bags, 1 light plum bag.
+plaid red bags contain 3 clear brown bags, 4 drab tomato bags, 2 plaid indigo bags.
+drab black bags contain 5 dull maroon bags, 2 dark silver bags, 5 bright red bags, 5 bright cyan bags.
+pale purple bags contain 5 light blue bags, 1 dull maroon bag.
+plaid crimson bags contain 2 dark turquoise bags, 5 mirrored bronze bags, 5 dull gold bags, 2 posh yellow bags.
+striped lime bags contain 2 wavy lime bags, 2 shiny teal bags.
+plaid yellow bags contain 5 muted chartreuse bags.
+dark violet bags contain 2 plaid fuchsia bags, 2 muted bronze bags, 3 posh green bags.
+bright red bags contain 4 faded plum bags, 3 dim lavender bags.
+striped purple bags contain 3 mirrored turquoise bags, 1 shiny yellow bag.
+shiny red bags contain 4 wavy coral bags, 3 vibrant salmon bags.
+striped cyan bags contain 2 dark yellow bags.
+posh magenta bags contain 3 vibrant indigo bags, 2 pale violet bags, 3 bright fuchsia bags, 1 shiny teal bag.
+drab cyan bags contain 3 plaid gold bags, 3 clear black bags, 5 striped green bags.
+dim chartreuse bags contain 2 wavy coral bags, 2 striped black bags, 4 dotted tomato bags, 1 muted maroon bag.
+faded beige bags contain 5 dim tomato bags, 3 plaid turquoise bags.
+mirrored teal bags contain 4 posh silver bags, 3 dotted brown bags.
+light turquoise bags contain 2 bright gray bags.
+drab fuchsia bags contain 4 shiny brown bags, 1 muted olive bag.
+mirrored bronze bags contain 3 dull turquoise bags, 3 mirrored turquoise bags, 2 drab red bags.
+shiny fuchsia bags contain 3 striped gray bags, 3 faded blue bags.
+dim beige bags contain 4 dark blue bags, 1 vibrant aqua bag, 2 shiny brown bags, 5 dull violet bags.
+drab gray bags contain 1 wavy maroon bag.
+drab orange bags contain 5 plaid brown bags, 1 vibrant yellow bag, 1 mirrored beige bag, 4 pale white bags.
+dull magenta bags contain 4 light purple bags, 3 dark brown bags.
+vibrant magenta bags contain 4 clear gray bags, 2 shiny aqua bags, 4 striped yellow bags, 3 shiny magenta bags.
+drab tomato bags contain 5 drab crimson bags, 2 dull gold bags, 4 light silver bags.
+wavy violet bags contain 3 faded plum bags.
+mirrored fuchsia bags contain 1 mirrored black bag.
+shiny white bags contain 4 light silver bags, 3 dotted fuchsia bags, 2 faded brown bags, 1 bright bronze bag.
+clear chartreuse bags contain 4 plaid cyan bags, 1 striped gold bag.
+muted turquoise bags contain 3 drab crimson bags, 3 drab olive bags.
+faded aqua bags contain 1 dotted teal bag.
+vibrant gold bags contain 2 light green bags, 1 dotted gold bag.
+drab plum bags contain 5 dim salmon bags, 3 dotted teal bags.
+dotted chartreuse bags contain 2 dull turquoise bags, 1 bright chartreuse bag, 4 faded tan bags, 1 mirrored lavender bag.
+dull silver bags contain 1 mirrored indigo bag.
+pale yellow bags contain 4 drab coral bags.
+clear black bags contain 3 dim coral bags.
+faded gold bags contain 3 faded chartreuse bags, 1 posh gray bag, 3 drab tomato bags.
+muted chartreuse bags contain 1 clear olive bag.
+shiny indigo bags contain 3 vibrant yellow bags, 2 plaid orange bags.
+dull indigo bags contain 5 bright fuchsia bags, 2 shiny yellow bags, 2 plaid indigo bags, 4 bright olive bags.
+faded silver bags contain 2 vibrant olive bags, 4 muted tomato bags.
+pale green bags contain 1 pale red bag, 5 dull lavender bags, 4 clear olive bags.
+dull violet bags contain 1 shiny black bag, 1 shiny fuchsia bag, 3 plaid indigo bags, 2 posh crimson bags.
+dotted lavender bags contain 2 striped lavender bags.
+clear orange bags contain 1 dotted cyan bag, 4 clear tomato bags.
+bright crimson bags contain 1 dull black bag, 2 dim tomato bags, 1 drab bronze bag, 4 wavy orange bags.
+dark orange bags contain 1 vibrant teal bag, 3 dull maroon bags, 4 light purple bags.
+bright teal bags contain 5 mirrored tomato bags, 4 dull lime bags, 4 shiny olive bags.
+vibrant beige bags contain 2 dark turquoise bags.
+dark yellow bags contain 5 dark orange bags, 4 pale red bags, 2 striped fuchsia bags, 5 faded turquoise bags.
+bright fuchsia bags contain 5 striped gray bags, 3 light teal bags, 5 mirrored orange bags.
+clear maroon bags contain 2 dotted yellow bags, 1 mirrored green bag, 4 dotted coral bags, 3 dull indigo bags.
+dim lime bags contain 3 dull fuchsia bags.
+striped olive bags contain 5 wavy fuchsia bags, 2 light purple bags.
+dull gray bags contain 4 dark beige bags, 1 mirrored white bag.
+dim orange bags contain 5 mirrored white bags.
+faded salmon bags contain 2 muted cyan bags.
+clear red bags contain 2 dim violet bags, 1 shiny purple bag, 3 faded salmon bags, 2 mirrored brown bags.
+plaid white bags contain 1 shiny aqua bag, 1 vibrant teal bag.
+shiny violet bags contain 3 striped lime bags, 5 mirrored chartreuse bags, 3 pale red bags, 1 muted orange bag.
+wavy green bags contain 2 dark tomato bags.
+pale lavender bags contain 3 pale orange bags.
+dark fuchsia bags contain 4 pale turquoise bags, 4 pale plum bags, 5 light purple bags, 3 dark beige bags.
+posh indigo bags contain 2 pale violet bags, 5 shiny coral bags, 1 faded chartreuse bag, 2 plaid indigo bags.
+light brown bags contain 1 posh black bag, 4 clear cyan bags.
+faded red bags contain 1 drab maroon bag.
+dark bronze bags contain 1 pale green bag, 4 shiny blue bags, 1 mirrored lime bag.
+pale orange bags contain 4 plaid violet bags, 5 dim silver bags, 1 dim cyan bag, 3 clear blue bags.
+dull brown bags contain 1 light tomato bag, 4 pale tomato bags.
+mirrored plum bags contain 1 shiny tan bag, 5 wavy brown bags.
+dull lime bags contain 4 mirrored orange bags.
+drab yellow bags contain 3 clear teal bags, 3 posh aqua bags, 4 posh fuchsia bags, 3 posh turquoise bags.
+bright cyan bags contain 5 muted lavender bags, 1 wavy purple bag.
+drab chartreuse bags contain 1 wavy tan bag.
+drab tan bags contain 5 drab bronze bags, 5 pale green bags, 1 wavy fuchsia bag.
+shiny tan bags contain 1 pale red bag, 5 clear aqua bags.
+dotted black bags contain 2 dim black bags.
+dull blue bags contain 3 clear blue bags, 5 bright gold bags, 4 pale tomato bags, 4 drab beige bags.
+light olive bags contain 2 mirrored salmon bags, 2 drab violet bags, 2 bright beige bags.
+mirrored magenta bags contain 4 drab tomato bags, 5 clear teal bags, 3 dark coral bags, 5 shiny white bags.
+bright silver bags contain 1 posh brown bag.
+vibrant blue bags contain 3 clear tan bags.
+dark indigo bags contain 3 dim aqua bags, 5 bright aqua bags.
+bright brown bags contain 3 muted purple bags, 1 muted blue bag, 1 light green bag, 1 dark red bag.
+dark salmon bags contain 3 dotted fuchsia bags, 2 dim tan bags.
+mirrored maroon bags contain 2 posh purple bags.
+faded crimson bags contain 1 posh white bag, 2 muted blue bags, 3 dark fuchsia bags, 3 light red bags.
+bright lavender bags contain 4 bright chartreuse bags, 5 muted purple bags, 4 dull aqua bags, 1 shiny blue bag.
+mirrored orange bags contain no other bags.
+wavy bronze bags contain no other bags.
+wavy yellow bags contain 2 mirrored yellow bags, 1 muted maroon bag, 2 striped purple bags, 4 pale silver bags.
+drab magenta bags contain 3 dim indigo bags, 2 wavy bronze bags, 5 shiny yellow bags.
+wavy blue bags contain 3 mirrored gold bags, 3 shiny lavender bags, 1 dim teal bag, 4 clear crimson bags.
+clear purple bags contain 2 dark beige bags.
+light cyan bags contain 1 dotted white bag, 5 muted yellow bags, 1 wavy lime bag.
+clear yellow bags contain 2 plaid olive bags, 1 muted red bag, 1 mirrored bronze bag, 5 striped violet bags.
+light plum bags contain 5 dotted fuchsia bags, 4 vibrant white bags, 5 muted red bags, 5 drab red bags.
+vibrant fuchsia bags contain 1 posh green bag.
+pale maroon bags contain 5 light purple bags, 5 shiny aqua bags, 3 clear teal bags, 2 clear green bags.
+dark teal bags contain 2 dark lavender bags, 4 striped black bags, 1 drab lime bag, 2 dim teal bags.
+clear fuchsia bags contain 2 shiny violet bags, 4 posh aqua bags, 4 bright red bags.
+dotted magenta bags contain 2 dull olive bags, 1 clear magenta bag, 5 light beige bags, 1 dark brown bag.
+muted black bags contain 2 clear blue bags, 2 muted red bags.
+dim magenta bags contain 4 plaid silver bags, 4 plaid olive bags.
+striped lavender bags contain 4 clear blue bags.
+dull beige bags contain no other bags.
+wavy lavender bags contain 2 shiny blue bags, 3 faded tomato bags, 5 dotted tan bags, 5 dull maroon bags.
+light maroon bags contain 5 dim violet bags, 3 wavy turquoise bags, 3 mirrored salmon bags.
+plaid green bags contain 1 dim teal bag, 5 pale brown bags, 2 striped chartreuse bags.
+shiny plum bags contain 1 posh lavender bag, 3 vibrant red bags, 5 dark maroon bags, 1 dotted bronze bag.
+plaid turquoise bags contain 4 light silver bags.
+dim cyan bags contain 1 shiny coral bag, 4 bright lime bags.
+shiny lime bags contain 3 wavy green bags, 5 posh white bags, 1 striped purple bag.
+dim maroon bags contain 1 muted crimson bag.
+dim aqua bags contain 1 dotted silver bag, 3 faded blue bags, 4 striped purple bags.
+muted blue bags contain 2 posh yellow bags, 3 bright tan bags, 1 vibrant salmon bag.
+vibrant olive bags contain 5 clear aqua bags.
+plaid black bags contain 3 striped orange bags.
+vibrant violet bags contain 2 pale gold bags.
+light bronze bags contain 1 shiny maroon bag, 3 light blue bags.
+pale magenta bags contain 5 pale tomato bags.
+vibrant yellow bags contain 4 striped gray bags, 4 dotted yellow bags, 1 wavy fuchsia bag, 3 wavy purple bags.
+shiny black bags contain 5 shiny yellow bags, 3 light purple bags, 1 pale olive bag, 1 clear blue bag.
+dim crimson bags contain 5 posh gray bags, 1 bright chartreuse bag.
+plaid salmon bags contain 2 wavy fuchsia bags, 1 posh olive bag, 2 dim tan bags.
+shiny cyan bags contain 5 light green bags, 1 clear olive bag, 5 pale olive bags.
+pale silver bags contain 3 mirrored orange bags, 1 light lavender bag, 2 faded tomato bags, 1 muted chartreuse bag.
+light red bags contain 4 shiny gray bags, 4 wavy salmon bags, 4 clear lime bags.
+dark turquoise bags contain 4 mirrored orange bags, 4 vibrant brown bags, 4 striped brown bags, 4 mirrored purple bags.
+dark gray bags contain 1 pale violet bag, 5 striped turquoise bags, 2 wavy red bags, 2 light bronze bags.
+pale gray bags contain 5 drab tan bags, 3 clear gray bags.
+striped gold bags contain 2 dotted beige bags.
+muted cyan bags contain 2 light bronze bags, 3 clear green bags.
+faded white bags contain 3 striped tomato bags, 4 shiny black bags, 2 drab tomato bags.
+clear lime bags contain 3 dotted fuchsia bags, 3 vibrant purple bags, 1 shiny bronze bag, 3 muted green bags.
+dull bronze bags contain 5 plaid turquoise bags, 4 dark crimson bags, 3 pale yellow bags, 3 posh chartreuse bags.
+mirrored cyan bags contain 4 clear olive bags, 2 vibrant purple bags, 4 dull olive bags.
+pale bronze bags contain 3 vibrant purple bags, 4 dotted silver bags, 2 mirrored black bags.
+pale blue bags contain 1 dark brown bag, 2 light brown bags, 2 drab lime bags.
+clear bronze bags contain 4 clear blue bags, 2 light chartreuse bags, 1 pale violet bag.
+clear aqua bags contain 2 clear cyan bags.
+plaid plum bags contain 3 faded plum bags.
+mirrored lime bags contain 4 posh brown bags.
+plaid lavender bags contain 1 bright beige bag, 5 bright lime bags, 4 faded aqua bags.
+drab crimson bags contain 2 shiny yellow bags, 1 posh brown bag.
+shiny beige bags contain 2 muted aqua bags, 1 vibrant purple bag, 4 pale black bags, 3 dark chartreuse bags.
+dim green bags contain 4 bright yellow bags, 1 shiny fuchsia bag, 1 wavy tomato bag, 4 shiny black bags.
+drab coral bags contain 5 dark coral bags.
+posh turquoise bags contain 1 dim violet bag, 2 faded turquoise bags.
+dotted plum bags contain 2 dull salmon bags, 5 light green bags, 3 pale red bags, 2 posh yellow bags.
+posh yellow bags contain 1 mirrored salmon bag, 1 drab tomato bag, 3 dark tomato bags, 2 dark chartreuse bags.
+faded orange bags contain 1 drab yellow bag.
+dull teal bags contain 2 plaid crimson bags, 5 shiny violet bags, 1 dull coral bag.
+faded brown bags contain 5 muted red bags.
+bright chartreuse bags contain 5 clear lime bags.
+mirrored tan bags contain 4 striped lavender bags, 4 light plum bags.
+clear indigo bags contain 5 plaid fuchsia bags, 2 plaid brown bags, 5 striped gray bags.
+light teal bags contain 1 dull beige bag, 1 mirrored turquoise bag, 1 mirrored orange bag, 5 wavy bronze bags.
+shiny gold bags contain 2 dark coral bags, 1 mirrored orange bag.
+striped white bags contain 5 dull fuchsia bags.
+wavy white bags contain 5 dull chartreuse bags, 5 wavy green bags.
+mirrored beige bags contain 4 bright white bags, 5 plaid magenta bags, 3 plaid crimson bags, 1 shiny teal bag.
+muted purple bags contain 5 pale black bags, 5 wavy aqua bags.
+vibrant crimson bags contain 5 dim bronze bags, 2 vibrant plum bags.
+striped aqua bags contain 3 plaid cyan bags, 3 light beige bags, 2 drab cyan bags.
+dull crimson bags contain 1 light white bag, 3 drab indigo bags, 1 clear fuchsia bag.
+clear magenta bags contain 4 light brown bags.
+posh maroon bags contain 1 faded plum bag, 3 light olive bags.
+bright violet bags contain 2 dotted bronze bags, 4 clear teal bags, 3 striped magenta bags, 3 muted indigo bags.
+faded coral bags contain 5 dark violet bags, 3 plaid teal bags.
+faded bronze bags contain 5 dotted fuchsia bags, 5 wavy bronze bags, 2 dotted purple bags, 5 dim black bags.
+light beige bags contain 2 shiny olive bags.
+mirrored white bags contain 1 dark indigo bag, 1 drab maroon bag, 3 shiny beige bags, 5 light blue bags.
+muted silver bags contain 4 wavy lime bags, 1 dark tomato bag, 1 bright fuchsia bag, 4 dotted olive bags.
+wavy gray bags contain 2 mirrored turquoise bags, 5 light lavender bags, 3 muted chartreuse bags.
+clear salmon bags contain 5 bright tomato bags, 2 wavy aqua bags.
+dull turquoise bags contain 1 pale tomato bag.
+shiny yellow bags contain 4 dull lime bags, 3 shiny maroon bags, 3 light silver bags.
+mirrored aqua bags contain 3 posh magenta bags, 4 drab tomato bags.
+dull orange bags contain 5 dim teal bags, 3 light olive bags, 2 light magenta bags, 2 plaid orange bags.
+plaid blue bags contain 3 pale purple bags, 1 shiny turquoise bag.
+dim olive bags contain 3 shiny tomato bags, 4 dim black bags, 1 light plum bag.
+dim fuchsia bags contain 1 dark chartreuse bag, 1 mirrored cyan bag, 3 plaid red bags.
+dark plum bags contain 1 light yellow bag, 1 mirrored lime bag, 2 bright salmon bags.
+faded tomato bags contain 2 muted chartreuse bags, 4 dark chartreuse bags.
+dotted aqua bags contain 2 dull lavender bags, 4 pale tomato bags.
+plaid lime bags contain 3 vibrant indigo bags, 1 muted red bag, 1 posh silver bag, 1 dim indigo bag.
+vibrant lime bags contain 5 drab turquoise bags, 2 vibrant chartreuse bags, 4 clear blue bags.
+posh brown bags contain 2 wavy red bags, 2 drab beige bags.
+bright beige bags contain 3 faded blue bags, 4 muted red bags, 5 mirrored lavender bags, 2 pale red bags.
+dotted yellow bags contain 5 striped gray bags, 3 pale gold bags, 2 clear olive bags, 5 mirrored yellow bags.
+dull gold bags contain 5 clear tomato bags, 5 drab beige bags, 4 bright silver bags, 4 drab crimson bags.
+dark maroon bags contain 2 wavy turquoise bags, 4 dark chartreuse bags.
+drab olive bags contain 4 faded bronze bags.
+posh plum bags contain 2 dull tan bags.
+light indigo bags contain 2 wavy yellow bags.
+vibrant tan bags contain 5 shiny teal bags.
+dim purple bags contain 5 light olive bags, 5 mirrored violet bags.
+vibrant gray bags contain 3 bright turquoise bags, 4 dim maroon bags, 4 vibrant chartreuse bags, 2 faded turquoise bags.
+pale tan bags contain 2 light salmon bags, 3 dotted silver bags, 5 clear lime bags, 1 shiny teal bag.
+dark tan bags contain 5 dim indigo bags, 3 shiny beige bags, 5 dim tan bags, 2 pale black bags.
+dotted tomato bags contain 3 shiny black bags, 3 pale crimson bags, 2 dim tan bags.
+posh violet bags contain 4 posh crimson bags, 1 muted fuchsia bag, 4 pale cyan bags, 3 mirrored gold bags.
+clear tan bags contain 2 bright tan bags, 5 faded beige bags.
+bright bronze bags contain no other bags.
+dotted brown bags contain 2 dotted black bags, 3 wavy coral bags.
+muted violet bags contain 3 faded magenta bags, 3 bright magenta bags.
+faded plum bags contain 2 dull lime bags, 4 dim coral bags, 5 shiny maroon bags, 3 pale red bags.
+dark lime bags contain 4 dim tomato bags.
+dull aqua bags contain 4 drab beige bags, 4 drab maroon bags.
+posh purple bags contain 2 vibrant purple bags, 5 shiny gold bags, 2 plaid turquoise bags.
+dull plum bags contain 5 dark brown bags, 4 muted black bags, 1 striped lavender bag.
+faded turquoise bags contain 3 shiny yellow bags, 4 faded plum bags, 5 pale violet bags, 4 dim lavender bags.
+striped bronze bags contain 1 muted bronze bag, 4 clear green bags, 4 shiny fuchsia bags, 5 pale red bags.
+mirrored blue bags contain 4 clear tomato bags, 5 shiny orange bags, 1 dull beige bag, 1 striped silver bag.
+shiny orange bags contain 2 light bronze bags, 4 dark tomato bags, 2 drab gold bags.
+shiny gray bags contain 1 dark maroon bag.
+drab red bags contain 5 wavy purple bags.
+posh fuchsia bags contain 3 mirrored chartreuse bags, 3 vibrant teal bags.
+light crimson bags contain 2 shiny aqua bags, 2 plaid chartreuse bags, 1 shiny gold bag, 1 wavy maroon bag.
+vibrant white bags contain 1 shiny brown bag, 5 light purple bags, 4 dull olive bags, 5 clear cyan bags.
+dark green bags contain 5 drab indigo bags, 1 striped coral bag.
+striped fuchsia bags contain 5 vibrant plum bags.
+bright turquoise bags contain 1 striped fuchsia bag, 3 posh purple bags, 5 dim aqua bags.
+striped tan bags contain 1 dotted cyan bag.
+shiny magenta bags contain 2 dark yellow bags, 1 faded silver bag, 4 muted orange bags, 3 bright fuchsia bags.
+dim violet bags contain 4 wavy bronze bags, 1 bright bronze bag.
+vibrant orange bags contain 2 faded chartreuse bags, 2 vibrant turquoise bags, 2 dull white bags.
+pale gold bags contain 5 light lavender bags, 4 mirrored orange bags, 4 muted chartreuse bags.
+pale red bags contain no other bags.
+plaid brown bags contain 3 mirrored orange bags.
+posh aqua bags contain 5 light blue bags, 1 dark indigo bag, 1 pale red bag, 2 vibrant turquoise bags.
+muted lime bags contain 1 dim chartreuse bag, 1 dotted olive bag, 4 pale violet bags, 3 muted fuchsia bags.
+dotted fuchsia bags contain 4 light teal bags, 1 muted chartreuse bag, 3 dark chartreuse bags, 4 dim lavender bags.
+dim turquoise bags contain 4 clear beige bags, 1 posh magenta bag, 3 faded brown bags.
+muted coral bags contain 4 dark salmon bags, 1 pale tomato bag, 2 shiny brown bags.
+dull chartreuse bags contain 3 shiny white bags, 4 shiny blue bags, 1 pale crimson bag.
+muted indigo bags contain 4 posh silver bags, 1 pale maroon bag, 1 dotted red bag, 1 drab coral bag.
+dim salmon bags contain 5 pale black bags, 3 dark salmon bags, 3 pale red bags, 5 dotted purple bags.
+dotted bronze bags contain 1 dim aqua bag, 2 mirrored maroon bags, 4 muted olive bags, 3 dull fuchsia bags.
+drab silver bags contain 2 dim coral bags, 3 dim salmon bags.
+striped salmon bags contain 2 dotted purple bags, 2 posh green bags, 3 plaid beige bags.
+mirrored tomato bags contain 5 faded tomato bags, 4 wavy red bags.
+dotted cyan bags contain 1 posh white bag, 3 striped lime bags, 4 dotted purple bags, 2 muted red bags.
+striped blue bags contain 4 dark silver bags, 4 pale silver bags.
+faded green bags contain 3 dotted violet bags, 3 pale turquoise bags.
+striped gray bags contain 2 pale tomato bags, 2 dark chartreuse bags, 5 muted red bags, 3 pale violet bags.
+pale lime bags contain 4 posh maroon bags, 2 drab plum bags, 3 drab coral bags.
+posh beige bags contain 4 wavy purple bags, 2 shiny gold bags, 1 dark tan bag.
+dotted tan bags contain 2 bright silver bags, 1 posh bronze bag, 2 dim coral bags, 2 dim tomato bags.
+shiny brown bags contain 4 dim violet bags, 5 bright silver bags.
+mirrored silver bags contain 1 striped blue bag, 2 shiny teal bags, 2 light coral bags, 1 dim beige bag.
+clear silver bags contain 4 mirrored fuchsia bags, 5 dull olive bags, 1 plaid crimson bag.
+dotted orange bags contain 1 mirrored turquoise bag, 3 wavy lime bags, 3 dotted yellow bags, 5 muted lavender bags.
+shiny purple bags contain 1 shiny beige bag, 3 plaid chartreuse bags.
+drab brown bags contain 2 dull indigo bags, 3 mirrored cyan bags, 1 dim crimson bag.
+vibrant tomato bags contain 5 faded plum bags.
+light tan bags contain 1 dark gold bag, 3 light salmon bags.
+vibrant cyan bags contain 4 shiny aqua bags.
+dotted purple bags contain 4 wavy coral bags.
+vibrant red bags contain 4 faded tan bags, 1 drab aqua bag, 4 striped black bags.
+faded lime bags contain 3 light olive bags, 3 striped yellow bags.
+posh gold bags contain 1 dull indigo bag, 1 mirrored chartreuse bag.
+shiny aqua bags contain 2 vibrant turquoise bags.
+light orange bags contain 3 vibrant violet bags, 2 dotted yellow bags, 1 dark gray bag, 5 striped chartreuse bags.
+pale black bags contain 1 plaid brown bag, 2 muted chartreuse bags.
+drab violet bags contain 5 clear cyan bags, 1 pale gold bag, 4 drab salmon bags, 2 posh orange bags.
+dim silver bags contain 5 clear cyan bags.
+muted beige bags contain 1 dim tomato bag, 3 light olive bags.
+drab turquoise bags contain 3 plaid orange bags, 1 light purple bag.
+dark red bags contain 2 vibrant yellow bags, 4 mirrored fuchsia bags, 5 posh bronze bags, 2 dark gold bags.
+vibrant maroon bags contain 5 drab beige bags, 1 dark beige bag, 1 dark brown bag, 4 pale maroon bags.
+wavy magenta bags contain 3 light tomato bags, 5 muted gold bags, 3 muted cyan bags.
+shiny chartreuse bags contain 5 pale yellow bags.
+dull cyan bags contain 4 bright maroon bags, 4 faded bronze bags.
+light black bags contain 4 shiny teal bags, 5 faded beige bags, 1 muted gold bag, 4 plaid silver bags.
+bright green bags contain 5 striped lime bags, 4 muted yellow bags, 4 light beige bags, 4 plaid violet bags.
+striped orange bags contain 1 mirrored orange bag, 2 bright salmon bags.
+muted plum bags contain 3 mirrored orange bags, 1 muted chartreuse bag, 2 dull olive bags, 4 dull brown bags.
+pale white bags contain 5 light silver bags.
+mirrored gray bags contain 1 mirrored violet bag, 5 striped gray bags, 5 dim aqua bags, 4 wavy fuchsia bags.
+wavy beige bags contain 2 shiny beige bags.
+dotted red bags contain 4 dotted purple bags, 3 muted aqua bags, 2 pale tomato bags, 4 pale bronze bags.
+posh lavender bags contain 2 dotted tomato bags, 3 dim lavender bags, 2 muted gray bags, 3 light plum bags.
+mirrored yellow bags contain 4 wavy gold bags.
+wavy brown bags contain 3 dim fuchsia bags, 4 dull turquoise bags.
+plaid chartreuse bags contain 5 plaid red bags.
+shiny turquoise bags contain 2 faded turquoise bags, 3 muted tan bags.
+mirrored brown bags contain 4 dotted fuchsia bags, 4 dim red bags, 2 dotted plum bags.
+dim tan bags contain 1 drab tomato bag, 3 wavy red bags, 1 plaid turquoise bag, 2 clear lavender bags.
+faded yellow bags contain 1 clear bronze bag, 3 clear olive bags.
+bright orange bags contain 5 mirrored blue bags, 3 shiny blue bags.
+striped red bags contain 5 bright green bags, 3 wavy yellow bags.
+bright indigo bags contain 2 light maroon bags, 5 shiny bronze bags, 2 bright white bags.
+light gray bags contain 2 dotted maroon bags.
+light silver bags contain no other bags.
+bright gold bags contain 2 striped fuchsia bags.
+drab purple bags contain 5 light silver bags, 2 dull yellow bags, 2 shiny teal bags.
+mirrored coral bags contain 4 dim plum bags.
+light coral bags contain 3 dim lavender bags, 5 wavy green bags, 2 light bronze bags.
+plaid indigo bags contain 3 mirrored orange bags, 5 pale gold bags.
+dark crimson bags contain 4 dark turquoise bags, 4 plaid green bags, 4 clear fuchsia bags.
+wavy teal bags contain 1 pale silver bag, 4 mirrored chartreuse bags, 4 shiny black bags.
+dull tan bags contain 4 muted magenta bags.
+light violet bags contain 4 faded yellow bags, 5 light maroon bags, 3 clear teal bags, 2 pale crimson bags.
+striped silver bags contain 3 plaid fuchsia bags.
+shiny crimson bags contain 5 muted yellow bags.
+mirrored salmon bags contain 1 dim tan bag.
+dotted coral bags contain 5 dark tan bags.
+wavy gold bags contain 2 wavy turquoise bags, 4 dim indigo bags, 3 wavy bronze bags.
+vibrant bronze bags contain 1 pale purple bag.
+posh silver bags contain 4 posh chartreuse bags, 3 bright salmon bags, 1 dotted bronze bag, 3 shiny coral bags.
+bright purple bags contain 5 clear beige bags, 3 pale yellow bags, 1 wavy tomato bag, 5 pale lavender bags.
+muted tan bags contain 4 bright white bags, 5 dotted silver bags, 2 clear blue bags, 4 mirrored turquoise bags.
+light white bags contain 2 shiny purple bags, 1 dull aqua bag, 2 vibrant blue bags.
+faded fuchsia bags contain 2 dark green bags, 3 shiny violet bags, 4 drab plum bags, 3 vibrant olive bags.
+clear gray bags contain 2 muted red bags.
+dark tomato bags contain 4 dotted purple bags, 3 faded turquoise bags.
+light magenta bags contain 1 dull fuchsia bag.
+light purple bags contain 3 drab magenta bags, 4 dark coral bags, 3 light silver bags.
+vibrant turquoise bags contain 4 dotted black bags.
+dim indigo bags contain 4 muted chartreuse bags.
+dim bronze bags contain 3 drab gold bags, 4 clear brown bags, 2 muted tan bags.
+clear green bags contain 2 plaid fuchsia bags, 1 wavy bronze bag.
+dull maroon bags contain 2 wavy yellow bags, 1 dotted fuchsia bag, 4 mirrored yellow bags.
+dotted gray bags contain 5 dotted white bags, 2 pale tomato bags, 5 bright tan bags, 3 plaid turquoise bags.
+plaid gray bags contain 5 wavy lime bags, 4 dull aqua bags.
+mirrored crimson bags contain 1 shiny lavender bag, 4 plaid purple bags.
+shiny silver bags contain 5 vibrant lavender bags, 3 light coral bags, 5 dark aqua bags.
+dotted salmon bags contain 3 pale tomato bags.
+muted crimson bags contain 4 clear olive bags, 3 dull plum bags, 1 dark gray bag, 1 wavy lime bag.
+muted lavender bags contain 1 bright chartreuse bag, 3 pale yellow bags, 3 pale crimson bags.
+posh tan bags contain 4 faded tomato bags, 3 dotted olive bags, 4 striped maroon bags.
+vibrant salmon bags contain 4 vibrant indigo bags, 1 plaid orange bag.
+faded chartreuse bags contain 2 mirrored orange bags, 1 pale crimson bag.
+striped tomato bags contain 3 dim tan bags, 2 wavy gold bags.
+dim yellow bags contain 1 clear purple bag, 1 wavy red bag, 1 drab bronze bag.
+wavy tomato bags contain 5 dotted tomato bags, 3 dim salmon bags, 5 light tan bags, 3 dull brown bags.
+bright lime bags contain 3 mirrored turquoise bags, 3 dotted tan bags, 3 posh black bags, 5 wavy gold bags.
+muted brown bags contain 4 shiny indigo bags, 4 muted tan bags, 3 wavy tan bags.
+pale cyan bags contain 1 dotted black bag.
+drab green bags contain 1 muted cyan bag.
+dim teal bags contain 4 faded lavender bags, 2 pale violet bags.
+drab lavender bags contain 1 pale gold bag, 5 vibrant brown bags, 4 posh indigo bags, 1 plaid olive bag.
+dotted turquoise bags contain 2 muted lime bags, 4 striped indigo bags.
+clear white bags contain 2 bright lime bags, 1 mirrored coral bag.
+dark purple bags contain 5 wavy crimson bags, 5 light olive bags.
+light tomato bags contain 4 posh black bags, 1 faded blue bag, 5 dim black bags, 3 dull lime bags.
+bright aqua bags contain 3 clear tomato bags.
+bright tomato bags contain 1 clear green bag, 3 bright gray bags, 3 mirrored cyan bags, 5 posh chartreuse bags.
+dull yellow bags contain 5 wavy purple bags, 3 light purple bags, 5 clear cyan bags, 2 wavy coral bags.
+striped coral bags contain 3 mirrored black bags, 5 wavy coral bags, 2 posh white bags.
+shiny bronze bags contain 2 dim tomato bags, 3 dull lime bags.
+vibrant aqua bags contain 4 dull olive bags, 4 mirrored turquoise bags, 1 vibrant teal bag.
+faded magenta bags contain 3 plaid chartreuse bags, 5 plaid white bags, 1 drab lime bag, 3 mirrored fuchsia bags.
+pale beige bags contain 3 wavy gray bags, 5 mirrored tomato bags, 1 bright beige bag.
+pale crimson bags contain 1 pale violet bag, 4 pale black bags, 5 dim tomato bags, 1 mirrored turquoise bag.
+dark blue bags contain 4 dark maroon bags, 1 faded brown bag, 2 wavy red bags.
+posh tomato bags contain 2 posh beige bags, 4 dark maroon bags.
+dim plum bags contain 2 muted crimson bags, 1 striped coral bag, 2 plaid yellow bags, 5 striped violet bags.
+dull black bags contain 3 posh tomato bags, 1 vibrant yellow bag, 4 mirrored salmon bags, 2 light green bags.
+wavy plum bags contain 4 wavy blue bags.
+bright coral bags contain 4 posh gold bags, 2 plaid lime bags, 3 shiny black bags, 5 dim magenta bags.
+posh blue bags contain 2 dotted turquoise bags, 2 bright olive bags, 2 plaid gold bags.
+vibrant purple bags contain 2 mirrored orange bags, 4 dull lavender bags, 2 pale red bags.
+dark white bags contain 4 drab lime bags.
+wavy crimson bags contain 2 dark salmon bags, 5 wavy yellow bags, 2 bright bronze bags, 2 drab crimson bags.
+clear coral bags contain 4 vibrant blue bags.
+muted olive bags contain 3 plaid brown bags, 1 dim fuchsia bag, 2 posh yellow bags.
+plaid violet bags contain 4 muted aqua bags.
+plaid teal bags contain 4 bright tan bags, 2 dark tomato bags.
+plaid purple bags contain 3 posh teal bags.
+pale turquoise bags contain 2 faded purple bags, 4 mirrored maroon bags, 1 mirrored salmon bag.
+muted fuchsia bags contain 5 bright bronze bags, 4 muted gold bags.
+bright olive bags contain 2 faded blue bags, 3 faded turquoise bags, 5 light bronze bags, 3 dim tan bags.
+bright gray bags contain 1 bright white bag, 2 muted orange bags.
+light blue bags contain 1 dotted purple bag, 3 dim black bags, 3 posh purple bags, 2 mirrored violet bags.
+posh bronze bags contain 3 plaid fuchsia bags, 1 drab gold bag, 4 mirrored orange bags, 4 light teal bags.
+faded olive bags contain 3 striped blue bags, 3 dim salmon bags, 4 pale red bags, 2 dull maroon bags.
+dull coral bags contain 2 wavy gold bags, 1 dark magenta bag.
+dull olive bags contain 3 plaid turquoise bags, 3 plaid fuchsia bags, 4 wavy lime bags, 1 dotted black bag.
+plaid orange bags contain 1 dark salmon bag, 1 striped turquoise bag.
+clear blue bags contain 3 dim tan bags, 3 muted red bags, 3 faded tomato bags.
+dark chartreuse bags contain 4 bright bronze bags, 1 dim indigo bag.
+plaid tomato bags contain 5 shiny turquoise bags, 4 clear tan bags, 2 dotted bronze bags, 5 muted magenta bags.
+mirrored green bags contain 2 light silver bags, 3 light brown bags, 4 vibrant purple bags, 2 posh green bags.
+drab blue bags contain 4 drab indigo bags.
+vibrant silver bags contain 3 striped violet bags, 1 striped white bag, 2 bright blue bags.
+shiny olive bags contain 3 drab tomato bags.
+dull red bags contain 4 dim cyan bags, 3 wavy lime bags.
+vibrant plum bags contain 3 wavy coral bags, 2 light lavender bags.
+faded cyan bags contain 1 dim brown bag, 5 posh indigo bags.
+dotted violet bags contain 1 pale tomato bag, 5 dim plum bags.
+striped brown bags contain 5 dim coral bags, 4 clear blue bags.
+dotted indigo bags contain 5 clear salmon bags, 4 dim bronze bags.
+posh cyan bags contain 2 vibrant magenta bags.
+clear beige bags contain 1 bright olive bag.
+dark black bags contain 4 dull crimson bags, 3 plaid green bags.
+mirrored lavender bags contain 5 dark silver bags.
+bright black bags contain 4 shiny brown bags, 1 vibrant crimson bag, 2 posh white bags, 3 wavy gold bags.
+pale indigo bags contain 5 shiny gold bags, 3 light bronze bags, 3 striped turquoise bags.
+plaid cyan bags contain 1 shiny tan bag, 4 dark tan bags, 1 dull yellow bag.
+bright plum bags contain 1 pale chartreuse bag, 3 plaid red bags, 1 faded beige bag, 1 posh gray bag.
+drab maroon bags contain 3 dull olive bags, 1 pale green bag, 2 mirrored turquoise bags.
+pale chartreuse bags contain 4 dim tomato bags.
+striped black bags contain 4 vibrant turquoise bags, 3 faded white bags, 4 light plum bags, 1 pale black bag.
+dotted gold bags contain 5 posh teal bags, 5 striped violet bags.
+posh orange bags contain 1 clear green bag.
+light green bags contain 5 wavy turquoise bags, 2 pale red bags, 3 dark tomato bags, 3 dull turquoise bags.
+plaid beige bags contain 4 light silver bags, 4 plaid turquoise bags, 5 drab purple bags, 4 clear lime bags.
+mirrored violet bags contain 2 wavy fuchsia bags, 5 bright bronze bags.
+striped plum bags contain 2 plaid indigo bags, 5 bright yellow bags, 1 wavy magenta bag.
+bright yellow bags contain 3 wavy yellow bags.
+drab aqua bags contain 5 dark red bags, 2 light gold bags.
+plaid bronze bags contain 1 drab magenta bag.
+faded tan bags contain 4 shiny aqua bags, 2 light chartreuse bags.
+drab indigo bags contain 5 dotted beige bags, 3 dull lime bags, 1 striped violet bag, 4 vibrant tan bags.
+dark gold bags contain 4 mirrored lime bags, 3 dark salmon bags.
+muted orange bags contain 1 dull yellow bag, 2 shiny brown bags.
+plaid gold bags contain 4 drab coral bags, 5 shiny cyan bags.
+posh crimson bags contain 3 light brown bags, 3 bright bronze bags, 3 shiny yellow bags.
+bright magenta bags contain 5 dim lavender bags.
+light chartreuse bags contain 2 drab bronze bags, 3 dim coral bags.
+dim tomato bags contain no other bags.
+dark beige bags contain 3 mirrored yellow bags, 2 dull olive bags, 5 striped brown bags.
+clear cyan bags contain 5 drab beige bags, 1 shiny yellow bag, 5 wavy purple bags, 5 dark chartreuse bags.
+dark coral bags contain 3 dim lavender bags, 3 pale green bags, 4 mirrored orange bags, 1 dim coral bag.
+light lime bags contain 5 mirrored brown bags.
+shiny lavender bags contain 5 drab tan bags.
+faded lavender bags contain 1 light salmon bag, 2 dotted purple bags, 5 pale gold bags, 3 muted gold bags.
+pale tomato bags contain 5 dim coral bags.
+plaid coral bags contain 3 dull blue bags, 1 posh white bag, 3 light orange bags.
+dim coral bags contain no other bags.
+dotted olive bags contain 5 mirrored green bags, 3 drab aqua bags, 2 dull beige bags, 3 dim indigo bags.
+dark brown bags contain 1 muted tan bag, 5 wavy lime bags.
+mirrored red bags contain 5 vibrant aqua bags, 3 bright gray bags, 4 striped gray bags, 2 light lavender bags.
+mirrored olive bags contain 5 dark chartreuse bags, 1 dim lavender bag, 5 faded plum bags.
+dim black bags contain 1 shiny yellow bag, 4 plaid indigo bags.
+shiny maroon bags contain 1 mirrored orange bag, 1 muted chartreuse bag, 5 wavy bronze bags, 1 dull lavender bag.
+pale brown bags contain 4 light teal bags, 1 light plum bag, 3 bright aqua bags.
+striped chartreuse bags contain 2 shiny maroon bags.
+mirrored chartreuse bags contain 4 dotted tan bags, 4 bright bronze bags.
+plaid magenta bags contain 1 vibrant yellow bag, 5 wavy aqua bags, 5 dull turquoise bags, 2 wavy fuchsia bags.
+light salmon bags contain 3 muted tan bags, 3 faded turquoise bags, 4 drab bronze bags, 3 bright bronze bags.
+faded blue bags contain 1 wavy red bag, 5 wavy fuchsia bags, 4 bright bronze bags, 3 faded turquoise bags.
+plaid aqua bags contain 1 pale tan bag, 3 light white bags.
+mirrored turquoise bags contain 5 drab beige bags, 1 faded plum bag, 4 mirrored orange bags.
+shiny teal bags contain 2 pale black bags, 4 dull indigo bags, 4 vibrant teal bags.
+vibrant coral bags contain 3 drab turquoise bags, 4 striped beige bags, 1 wavy turquoise bag, 4 light crimson bags.
+faded gray bags contain 3 striped purple bags.




diff --git a/2020/resources/input08.txt b/2020/resources/input08.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2aacf1d97e45e6bedf087c8d108304b404723bb1
--- /dev/null
+++ b/2020/resources/input08.txt
@@ -0,0 +1,636 @@
+jmp +1
+acc -15
+acc +14
+acc +18
+jmp +443
+jmp +286
+acc +27
+jmp +522
+jmp +1
+acc -19
+acc +22
+acc +37
+jmp +111
+acc +28
+acc +43
+acc +18
+nop +597
+jmp +479
+jmp +604
+jmp +499
+acc +0
+acc +22
+acc +13
+jmp +566
+acc -12
+acc +0
+nop +153
+jmp +173
+jmp +192
+jmp +292
+acc +36
+acc +7
+jmp +440
+acc -17
+acc +40
+acc +24
+acc -7
+jmp +519
+nop +16
+acc +15
+acc +42
+jmp +445
+jmp +350
+acc +42
+acc +12
+acc +2
+jmp +133
+acc +12
+acc +3
+acc +27
+jmp +186
+acc +25
+acc +46
+jmp +285
+acc +32
+acc -11
+acc -6
+jmp +565
+nop +215
+acc +1
+acc +35
+jmp +1
+jmp +502
+acc +27
+acc +19
+acc -8
+acc -8
+jmp +531
+jmp -21
+nop +292
+acc +8
+acc -13
+jmp +26
+acc +1
+acc +45
+nop -42
+jmp +323
+jmp +39
+jmp +336
+acc +19
+jmp -51
+acc +45
+acc +26
+jmp +278
+jmp +6
+acc +40
+nop +271
+acc -10
+nop -4
+jmp +272
+nop -61
+acc +4
+acc -14
+acc +27
+jmp -70
+acc -9
+acc +29
+jmp +416
+acc +25
+acc +45
+jmp +19
+jmp +39
+acc -19
+acc +7
+jmp +248
+acc +11
+acc +36
+jmp +515
+acc +45
+acc +49
+jmp +329
+acc +30
+acc +31
+acc +28
+acc +26
+jmp +8
+jmp +283
+acc +32
+jmp +127
+acc +4
+acc +20
+jmp +92
+jmp +50
+jmp +133
+acc +5
+acc +8
+jmp +313
+acc +38
+acc +34
+jmp +395
+acc +14
+acc +29
+jmp +392
+nop +246
+jmp +374
+nop +429
+nop +388
+acc +3
+acc +0
+jmp +432
+acc -1
+acc +35
+acc +35
+jmp +148
+acc +8
+acc +11
+acc +12
+acc -10
+jmp +434
+acc -19
+jmp +330
+nop +329
+acc +30
+jmp +239
+acc -6
+jmp -136
+jmp +418
+nop +385
+jmp +1
+acc +34
+acc +9
+jmp +410
+nop -13
+acc +31
+acc +15
+acc +37
+jmp -142
+jmp +109
+acc -16
+nop +405
+nop +343
+jmp +8
+acc +44
+acc -15
+acc +7
+acc +9
+jmp +185
+acc +6
+jmp +35
+nop -25
+jmp +93
+acc +22
+acc -17
+acc +15
+acc +39
+jmp +41
+nop -123
+acc +15
+acc +6
+jmp -35
+acc +48
+jmp +422
+acc -7
+nop +67
+nop +66
+acc +48
+jmp -29
+acc -11
+acc +16
+jmp +92
+acc +45
+jmp +92
+jmp +212
+acc -3
+acc -18
+nop -186
+nop +7
+jmp -28
+nop +292
+acc +7
+nop -120
+acc +46
+jmp +48
+acc -3
+acc -16
+acc +50
+jmp -44
+acc -2
+acc -11
+jmp +236
+jmp +344
+acc +33
+acc +44
+acc +39
+nop -45
+jmp -53
+acc -11
+nop +380
+acc +35
+jmp +113
+nop +203
+acc +40
+jmp +167
+acc +44
+jmp +394
+jmp +229
+jmp -167
+jmp -204
+acc +21
+acc +49
+jmp +25
+acc -19
+acc -17
+acc +44
+jmp -11
+acc +40
+acc +12
+jmp +253
+acc +21
+jmp +349
+jmp +285
+acc +0
+nop +261
+acc +15
+acc +38
+jmp +10
+acc +27
+jmp +1
+jmp +373
+jmp -151
+acc +6
+jmp -48
+acc +14
+acc -8
+jmp -61
+acc +8
+acc +20
+jmp +1
+jmp +1
+jmp +208
+acc -18
+acc +32
+jmp +94
+jmp +262
+acc +0
+jmp -156
+nop +188
+nop +312
+acc +21
+acc +6
+jmp -123
+acc +47
+jmp +316
+acc +25
+nop +290
+jmp +62
+acc -7
+acc +36
+nop +212
+acc +14
+jmp +332
+jmp +291
+jmp +226
+acc +30
+jmp -161
+acc +39
+acc +38
+jmp +203
+nop +63
+nop -6
+acc -15
+nop -56
+jmp +72
+acc +1
+acc +34
+acc +22
+acc +19
+jmp -135
+acc +27
+jmp -303
+acc +1
+acc +48
+acc -19
+jmp +142
+acc +50
+jmp +298
+acc +43
+acc +0
+acc +50
+acc +12
+jmp +137
+acc +41
+nop +252
+jmp -310
+acc +13
+acc +34
+acc -15
+acc +43
+jmp +236
+acc +5
+acc -8
+acc +25
+acc +45
+jmp +153
+acc -12
+acc +31
+acc -1
+jmp +120
+jmp +236
+acc +38
+nop -238
+jmp -328
+jmp +81
+acc +48
+acc +15
+acc -9
+jmp -73
+nop -49
+jmp -271
+acc -17
+acc -17
+jmp +106
+nop +212
+jmp -290
+acc +36
+nop +109
+jmp +186
+jmp -310
+acc +4
+acc +16
+jmp +117
+jmp +1
+acc +10
+jmp +20
+acc +12
+jmp -311
+acc +12
+acc +30
+nop +182
+jmp -315
+acc +25
+acc +12
+acc +30
+jmp +50
+acc -19
+jmp -333
+acc +30
+nop +87
+jmp -199
+acc +8
+jmp +112
+acc -8
+jmp -313
+acc +7
+acc +32
+jmp +1
+jmp +230
+acc +25
+acc +45
+acc +20
+acc +0
+jmp -307
+acc +30
+nop -253
+acc +7
+acc +39
+jmp -113
+acc -12
+jmp +209
+acc +42
+acc +17
+acc -19
+acc +24
+jmp -170
+acc +30
+acc +9
+acc -1
+jmp -328
+acc +19
+acc +45
+jmp +132
+nop -244
+nop +35
+jmp +34
+acc -10
+acc +26
+acc +35
+nop -238
+jmp +54
+acc +15
+nop -378
+acc +42
+jmp -43
+acc -9
+acc -5
+acc -11
+nop -307
+jmp -129
+nop -202
+acc -9
+nop -376
+acc +11
+jmp -75
+jmp +14
+acc -1
+acc +32
+acc -14
+acc +16
+jmp +39
+acc +42
+acc +32
+jmp -133
+acc +1
+acc +17
+nop +85
+acc +35
+jmp +83
+acc +27
+acc +0
+acc -12
+jmp -93
+acc +48
+acc +35
+nop +154
+jmp -287
+jmp -347
+jmp -348
+acc +18
+jmp -374
+acc -15
+jmp +36
+jmp -123
+acc -11
+jmp +55
+acc +19
+acc +23
+jmp -339
+nop +5
+acc +44
+acc +2
+jmp +1
+jmp -417
+acc +23
+jmp -253
+acc -9
+acc -3
+jmp -138
+jmp -227
+acc +12
+jmp -437
+acc +47
+acc +19
+acc -6
+jmp -245
+acc +2
+jmp -328
+acc -14
+acc +25
+acc +4
+acc -2
+jmp -411
+jmp -351
+jmp -459
+acc +3
+acc +48
+jmp -134
+nop +54
+acc -14
+jmp -298
+jmp -401
+acc -14
+acc +25
+nop -55
+acc -10
+jmp -312
+acc -7
+acc +45
+jmp -74
+acc +30
+jmp -462
+acc +5
+acc -8
+jmp -355
+acc +9
+acc +44
+acc +44
+jmp -150
+jmp -484
+acc +14
+acc +19
+acc -6
+jmp -474
+acc -18
+jmp -166
+jmp -264
+acc -15
+acc +17
+acc +29
+jmp -149
+nop -273
+acc +31
+acc +0
+acc -2
+jmp -410
+jmp -411
+acc +47
+acc -6
+nop -287
+jmp -436
+acc +4
+nop +88
+jmp -158
+acc +32
+jmp +1
+acc -15
+jmp -319
+acc -6
+acc -18
+acc +49
+jmp -256
+acc -18
+acc +31
+acc +27
+acc +27
+jmp -351
+jmp +58
+acc +12
+jmp +1
+acc +32
+nop -151
+jmp -411
+acc +19
+acc +7
+jmp -287
+acc +30
+jmp -496
+acc -11
+acc +5
+acc +42
+acc +25
+jmp -249
+acc -1
+jmp -243
+jmp -190
+acc +32
+acc +32
+acc +14
+jmp +12
+acc +5
+acc +30
+acc +34
+jmp -46
+acc -13
+acc +5
+acc +45
+jmp -271
+acc +29
+acc +37
+jmp -323
+nop -18
+acc -2
+acc +21
+acc -12
+jmp -453
+acc -14
+acc +19
+nop -173
+jmp -411
+acc +24
+acc -7
+nop -136
+acc +6
+jmp -357
+acc -1
+acc -1
+acc +32
+jmp -264
+acc +26
+jmp -175
+acc +10
+acc +35
+nop -361
+jmp -493
+acc +14
+jmp -206
+jmp -138
+acc -1
+jmp -156
+acc +3
+acc +11
+acc -2
+jmp -213
+acc +35
+acc -13
+acc +47
+acc +45
+jmp -376
+jmp -543
+jmp -479
+acc +29
+jmp -532
+acc +28
+acc +47
+acc -11
+acc -14
+jmp +1




diff --git a/2020/resources/input09.txt b/2020/resources/input09.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3102d884ecfd78e795cfe802218b37de5885672e
--- /dev/null
+++ b/2020/resources/input09.txt
@@ -0,0 +1,1000 @@
+24
+27
+31
+3
+26
+29
+14
+16
+25
+15
+32
+6
+41
+22
+2
+1
+12
+8
+7
+4
+48
+13
+47
+34
+5
+18
+33
+11
+45
+3
+9
+10
+14
+21
+16
+15
+17
+20
+19
+6
+22
+23
+12
+8
+7
+26
+24
+13
+25
+27
+29
+18
+28
+35
+42
+30
+31
+32
+14
+33
+21
+46
+36
+37
+15
+19
+40
+63
+20
+22
+38
+67
+34
+39
+43
+41
+53
+29
+44
+45
+76
+84
+50
+35
+55
+42
+56
+74
+48
+73
+49
+58
+88
+51
+63
+64
+69
+68
+70
+71
+77
+78
+86
+85
+95
+90
+114
+138
+83
+91
+136
+206
+153
+97
+121
+119
+109
+115
+120
+131
+139
+137
+141
+207
+181
+155
+163
+173
+176
+174
+210
+180
+305
+192
+212
+369
+303
+228
+206
+224
+234
+229
+317
+251
+280
+350
+278
+296
+318
+379
+328
+336
+382
+497
+354
+372
+386
+440
+398
+418
+524
+587
+479
+430
+453
+707
+696
+812
+697
+664
+596
+574
+771
+722
+682
+1175
+690
+758
+1140
+726
+826
+784
+816
+897
+992
+883
+1066
+909
+1112
+1179
+1170
+1296
+1318
+2088
+1238
+1380
+1300
+1995
+1372
+1466
+1416
+1448
+1896
+1510
+1542
+2112
+1986
+1725
+1780
+3008
+1949
+1975
+3412
+2282
+2721
+2408
+2734
+2828
+2864
+3018
+3459
+2672
+2788
+2820
+2882
+2958
+3228
+3322
+4231
+3267
+4670
+3505
+3674
+4957
+4257
+4683
+4383
+5522
+4690
+5129
+5080
+5406
+5460
+5492
+5554
+6247
+8175
+5608
+10162
+8195
+9663
+6495
+6589
+6772
+7888
+10278
+8803
+9763
+8640
+13803
+9073
+10928
+10182
+9770
+10540
+10486
+10866
+10952
+11046
+14411
+14422
+12103
+17541
+16981
+18573
+13084
+18918
+24897
+14660
+16528
+17876
+17443
+17713
+18843
+19255
+19559
+19952
+24908
+20310
+35824
+21352
+25363
+24036
+23149
+31188
+25187
+26763
+27744
+29612
+39565
+38870
+40023
+32103
+57441
+38795
+38814
+35156
+36968
+38098
+39207
+39511
+44501
+41662
+43459
+64233
+91977
+47185
+65558
+48336
+51950
+54799
+66614
+90745
+82970
+71310
+76912
+67259
+69071
+74667
+79760
+72124
+73254
+86696
+134559
+86163
+120357
+85121
+115595
+109017
+95521
+146374
+99135
+100286
+103135
+106749
+121413
+140513
+136330
+138569
+139383
+141195
+172859
+142325
+145378
+151884
+157245
+171817
+186982
+198656
+171284
+237704
+180642
+202270
+194656
+195807
+243648
+240330
+305405
+209884
+276843
+274899
+310386
+275713
+279764
+302623
+483245
+287703
+393312
+297262
+309129
+367091
+471520
+412154
+375298
+455541
+376449
+382912
+668211
+470706
+493069
+450214
+484783
+585285
+486727
+977852
+550612
+555477
+578336
+590326
+584965
+596832
+606391
+673711
+664353
+1135059
+957433
+788603
+942268
+973281
+1005691
+759361
+1021318
+920920
+934997
+1378929
+1476397
+971510
+1037339
+1042204
+1796700
+1963894
+1133813
+1163301
+1175291
+1344326
+1385435
+1280102
+1338064
+1423714
+1934652
+2482088
+1760113
+1730871
+2285793
+1680281
+1972336
+2306355
+2421133
+1906507
+2008849
+2013714
+3844847
+2171152
+2761778
+3586788
+2501365
+2297114
+2338592
+3330221
+2618166
+2665537
+3010973
+5061092
+3103995
+3411152
+3440394
+3490984
+4269450
+4310828
+3652617
+3878843
+4807720
+3915356
+3920221
+4022563
+6889816
+4468266
+8460337
+6088153
+6806858
+4635706
+4915280
+4956758
+6931378
+6270783
+8936320
+6114968
+6515147
+6544389
+6851546
+7093011
+7143601
+7675180
+7531460
+7572838
+7794199
+8383622
+7835577
+7942784
+8490829
+11275124
+9103972
+11150853
+9550986
+9592464
+9872038
+11227541
+11071726
+12385751
+12630115
+14768191
+13658748
+13944557
+13395935
+13995147
+15248018
+14818781
+15104298
+19658746
+20778527
+18696436
+16219199
+15778361
+23309610
+23546133
+18654958
+18976010
+20622712
+22502153
+26625262
+20943764
+31323497
+36048062
+25015866
+28477529
+27054683
+27340492
+27391082
+28214716
+29923079
+39319148
+30882659
+31997560
+39640200
+34433319
+34474797
+61865879
+37630968
+39277670
+45995450
+39598722
+39919774
+45959630
+43445917
+64397876
+47998447
+54445765
+53230582
+59097375
+62648035
+68134490
+60805738
+76950116
+58137795
+69563279
+62880219
+77550742
+73710989
+68908116
+106136242
+72105765
+76908638
+121018014
+79197444
+106093952
+79518496
+83365691
+145084606
+96676499
+115878617
+120785830
+107676347
+111368377
+151624261
+118943533
+136591208
+127045911
+134985984
+127701074
+154459380
+131788335
+141013881
+142619105
+148426612
+156427134
+149014403
+281505291
+158715940
+180042190
+189459643
+239295604
+191042038
+228464834
+236664447
+300828020
+219044724
+226619880
+298985723
+255534741
+245989444
+373035355
+290504275
+259489409
+268714955
+272802216
+280802738
+283632986
+291045717
+394416056
+305441537
+307730343
+371084228
+338758130
+599549062
+380501681
+573630236
+410086762
+501267050
+527168722
+519872744
+528204364
+517665597
+373803594
+586244275
+574156492
+532291625
+540292147
+578243753
+1028435772
+685943218
+856423727
+574678703
+596487254
+613171880
+644199667
+646488473
+709842358
+986975474
+1101325214
+906095219
+1106448117
+937255484
+914095741
+891469191
+1145463505
+1049957222
+947960086
+948482297
+1152400245
+1072583772
+1106970328
+1118535900
+1299115098
+1600147354
+1510582995
+1828724675
+1221167176
+1209659134
+1323014238
+2220425353
+1594970770
+2066495986
+1820190960
+1797564410
+1805564932
+1998439519
+1851351225
+1839429277
+2355122639
+2169649473
+3405079861
+2542930856
+2021066069
+2662983240
+2179554100
+2225506228
+2328195034
+3219606695
+2821314530
+2430826310
+2532673372
+3060596453
+2804629904
+4702322845
+3392535180
+3415161730
+3617755370
+3603129342
+6150428742
+3644994209
+4167624311
+3860495346
+4009078750
+4190715542
+4200620169
+5337303276
+5865226357
+5593269825
+7921464859
+4405060328
+7032917100
+5845988040
+5252140840
+4963499682
+5491422763
+6135802714
+9136416972
+6219791634
+9692042932
+7770753653
+7018291072
+7220884712
+7248123551
+7505489555
+7654072959
+11223632642
+7869574096
+8199794292
+8391335711
+8605680497
+10556769507
+12509713835
+13364023478
+10454922445
+9368560010
+11337410803
+10215640522
+10743563603
+11099302396
+11711214397
+12355594348
+13238082706
+13440676346
+14672364031
+26678759052
+14469008263
+14726374267
+18613137699
+15159562514
+19911008689
+16069368388
+22571234870
+21724154358
+16997016208
+17974240507
+19584200532
+19823482455
+20112123613
+21314942918
+20467862406
+27406779191
+23656316868
+21842865999
+22810516793
+28113040377
+25593677054
+27909684609
+28167050613
+36515230030
+29195382530
+35653568920
+34310574799
+41753874688
+31228930902
+48279174226
+48580902783
+44534671151
+65410191556
+48377547015
+37558441039
+40052062938
+77474556756
+40579986019
+50977567406
+42310728405
+44653382792
+70220413014
+47436543053
+67744160932
+53503361663
+54789059584
+56076735222
+84732292565
+60424313432
+63505957329
+65539505701
+93030929807
+68787371941
+71280993840
+77610503977
+78138427058
+79869169444
+80632048957
+82211823831
+82890714424
+155612983814
+162342796542
+117656956067
+175242753638
+105077696224
+92089925845
+107860856485
+242986914570
+108292421247
+119042867364
+150999195772
+154171708264
+330855737452
+143677932759
+129045463030
+136820499541
+140068365781
+238503698238
+148891497817
+165102538255
+162080993275
+160501218401
+162843872788
+270203653027
+201933581788
+225949377314
+197167622069
+199950782330
+224120563588
+200382347092
+211132793209
+285711997358
+227335288611
+291889335818
+616567734810
+265865962571
+283217171294
+269113828811
+272723395789
+276888865322
+493822917606
+472137234815
+324924866063
+309392716218
+432284646302
+322582211676
+323345091189
+360011494857
+397118404399
+467799544359
+400333129422
+397549969161
+411083575539
+424502910680
+411515140301
+546002694133
+493201251182
+496449117422
+608142037357
+669404211075
+595305607465
+541837224600
+549612261111
+582116112007
+600233956511
+632737807407
+648269957252
+682593706533
+631974927894
+720132180837
+645927302865
+893999086583
+1019657177658
+1093907121755
+868132673781
+1328274218194
+809065109462
+822598715840
+836018050981
+904716391483
+1078565229429
+1315437788302
+1038286342022
+1131728373118
+1091449485711
+1123953336607
+1214853919414
+1149846217622
+1264709818540
+1232208884405
+1264712735301
+1454573643734
+1536691319377
+1940793482580
+1529197290299
+1454992412327
+2151385550776
+2353724130324
+2397329964080
+1631663825302
+3808297774058
+1645083160443
+3851903607814
+2116851571451
+1943002733505
+2578945748934
+2129735827733
+2215402822318
+2223177858829
+2877292044848
+2273799554229
+2364700137036
+2719705147628
+2793910025600
+2496921619706
+3996363962338
+2984189702626
+2991683731704
+6843587339518
+3086656237629
+3606377963103
+3276746985745
+3761399653035
+3574666558807
+3588085893948
+3761934731894
+3774818988176
+4708681576667
+4836556719079
+4072738561238
+5855692734679
+5374213664554
+4438580681147
+4496977413058
+5550546539974
+4638499691265
+5481111322332
+5216626767334
+5290831645306
+6661322796436
+5975873434330
+6070845940255
+6363403223374
+6674742131577
+6693034200732
+8103355376161
+6851413544552
+7162752452755
+11601333133902
+8483500564843
+9243046054226
+7847557549414
+11266705079636
+9077080372412
+8569715974296
+11406239274653
+8935558094205
+9135477104323
+10614373125595
+9855126458599
+9929331336571
+14352103871657
+11654234868680
+17307407326327
+13526155676129
+12046719374585
+14174201316416
+13038145354951
+17646796346708
+13544447745284
+19098172512825
+14014165997307
+15010310002169
+25440906396052
+16331058114257
+16417273523710
+20731315241092
+17505274068501
+17705193078619
+18071035198528
+18790684552804
+18864889430776
+18990603562922
+38038722567419
+19784457795170
+23455487012700
+25084864729536
+23700954243265
+28554757747453
+25572875050714
+31109180553479
+31828829907755
+31191244091992
+39455072393359
+31719359075926
+29024475999476
+32515584070670
+31341368116426
+34036251192876
+32748331637967
+33922547592211
+35210467147120
+35576309267029
+63939575729959
+36861719751332




diff --git a/2020/resources/input10.txt b/2020/resources/input10.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f0028b97b8543c4ebe00aa075668ea6f93769d18
--- /dev/null
+++ b/2020/resources/input10.txt
@@ -0,0 +1,97 @@
+8
+40
+45
+93
+147
+64
+90
+125
+149
+145
+111
+126
+9
+146
+38
+97
+103
+6
+122
+34
+18
+35
+96
+86
+116
+29
+59
+118
+102
+26
+66
+17
+74
+94
+5
+114
+128
+1
+75
+47
+141
+58
+65
+100
+63
+12
+53
+25
+106
+136
+15
+82
+22
+117
+2
+80
+79
+139
+7
+81
+129
+19
+52
+87
+115
+132
+140
+88
+109
+62
+73
+46
+24
+69
+101
+110
+16
+95
+148
+76
+135
+142
+89
+50
+72
+41
+39
+42
+56
+51
+57
+127
+83
+121
+33
+32
+23




diff --git a/2020/resources/input11.txt b/2020/resources/input11.txt
new file mode 100644
index 0000000000000000000000000000000000000000..85142c6dfa1d49b11cd3b35a2c3794e04fb2e248
--- /dev/null
+++ b/2020/resources/input11.txt
@@ -0,0 +1,99 @@
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.L.LLLLL.LLLL.LLLLLLLLL..LLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLL
+LLLLLLLLLL.L.LLLLLLL.LL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLL.L.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
+.LLLLLLLLLLLLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LLL.LLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLL.LLLLL.LLLLLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLL.LLLLL.LL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+LLL.LL..L..L.LL.L.L........L.............LLL....LL...L..L.L.....L..L.L.......L..L......LLLL.L.L
+LLLLLLLLLLLLLLLLL..LLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLL
+LLLLLLLLLL.LLLL.LL.LLLL.LLLLLLLLLLLLLLLLLL.L.LLLLLLLLL.LLLL.L.L.LL.LLLLLLLLLLLLL.LL.LLLLLLLLLLL
+LLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LL.LLLLLLLLL.LLLLL.
+LLLLLLLLLLLLLLLLL..LLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLL.L..LLLLLLLL.LLLL.LLLLLL..LLLLLLLLLLLLLLL.LLLL.LLLLLL
+L.LLLLLLLL..LLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLLLLLL.LLLL.LLLLLL
+.LLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLL
+LL.L..LL...LL..L..L.L.L.....L..LL...L.LLL......L.L...L.LL...L.L.L.........L.LL....L.LL.LL...LL.
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.L.LLLLLLLLLLLLLL.LLL..LLLLLL
+LLLLL.LLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLL.L.LLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLLL
+LLL.LLLLLL.LLLLLLL.LLLL.LLL.LLL.LLLL.L.LL.LLLLLLLLLLLL.LLLL.LLL.LL.LLLLLLLLLLLLLLLLLLLLL.LL.LLL
+LLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
+...L...L..L.L...L..L......L.......L.L...L...L...L.....L...L...L....L...LL..L..L.............LL.
+LLL..LLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLLLLLL.LLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLL.LLLLL
+LLLLLLLLLL.LLL..LLLLLLL.L.LLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLL
+LLLLLL.L.L.L.LLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLL.
+LLLLLL.LLL.LLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLL.LLLL.LLLLLLL.LLLL.LLLLL.
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LLL.LLLLL.L.LL.LLLLLL.LLLLLLLL..LLLLLLLLLLL.LLLLLL
+LLLLLL.LLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLL..LLLLLLLLL.LL.LLLLLL
+LLLLLLLLLLLLLLLLLLLLLL..LLLLLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLLLLLLLLL.LLLLL.L.LLLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LL.LLLL.LLLL.LLLLLL
+.L......L..L........LL..LLL...LL.L.....L..L.L..LLL..LLL..LL.LL...LLL.......L...LL...........LLL
+LLLLLLLLLL.LL.LLLL.LLLL.LLLLLLL.LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLL..LLLLLL.LLLLLLLLLLLLLLL.LL.L.L.LLLLLLLLLLLLL.LLLLLLL.LLL..LLLLLL
+LLLLLL.LLL.LLLLLLL.LLLLLLLLL.LL.LLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLL.LLLL.LLLLLLL.LLLL.LLLLLL
+LLLLLLLLLLLLLLLL.L.LLLL.LLLLLL..LLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLL..LLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLL.LL.LLLLL.LL.L.LL.LLLLLLLLLLL
+LLLLLL.LLL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLLL.LLLLLLLLLLLLLLL..LLLL.LLLLLL
+LL.LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLL.LLL.LLLLLL.LLLL..LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLL
+........LL.L..LLLL..L..LLLL..LLL.........L.L......LL.LL..L........L...L..LL..LLLL.L.L.....L.LL.
+LL.LLLLLLL.LLLLLLL.LLLL.LLLL.LL.LLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLL..LLLLLLLLLLLLLLLL.LLLLL.L..LL
+LLLLLLLLL.LLLLLLLL.LLL..LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLL
+LL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLL..LLL.LLLLLLLLLL.LLLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLL.LLL..LLLLLLL.LLLL.LLLLLL
+LLL.LLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL..LLL.LLLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLL.L
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LL.LLLL..LLLLLLLLLLLLLLLLLLL
+..LL..LLL.....LL......L..L.L.LLL........LL......LLL...L......L.LL..L.LL.LL.L.......LL....LL...L
+.LL.LLLLLLLLLLLLLL.L.LL.LLLLLLL.LLL.LL...L.L.LLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLL.LLLLLL
+L.LLLLLLLLLLLL.LLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLL.LLL.LLLL.LLL.LLL.LLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLL..L.LLLL.LLLLLLLL..LLL.LLLLLLL.LLLLLL
+.LLLLLLLLL.LLL.LLL.LLLL.LLL..LLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+L..L...LL...L.LL....L.LL.L..LL.L.........L.........LLLL..L.L..LL...L.L.L....LLL.....L..L.L...LL
+.LLLLLLLLL.LLLL.LL.LLLL.LLLLLLLLL.LLLL.LLLLL.LLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.L..LLLL.LLLL.LLLLLLL..LLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LL.LLLLL.LL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
+L.LLLLLLLL.LLLLLLLLLLLL.LLLL.LL..LLLLL.LLLL.LLLLLL.LLLLLLLL.LLL.LLLLLLLLLLLLLLLLL.L.LLLL.LLLLLL
+LLLLLLLLLL..LLLLLL.LLLLLLLLLLLL.L.LLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL..LL.LLLL.LLLLLLL.LLLL.LLLLLL
+LLL.LLLLLLLLLLLLLL.LLLLLLLLLLLL.LL.LLL.LLLLL.LLLLL.LLL.LLLL.LLLLLL.LL.LLLL..LLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLL..LLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLL
+L.L...L...L..L..L....L...L..LLL..L....L..LL...LLL.LL.L...L.L..L.LLL..L....L.L...LL..L..L.L..L.L
+LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLL.L
+LLLLLLLLLL.LLLLL.L.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLL
+L..LLLLLLLLL.LLLLL.L.LLLLLL.LLL.LLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LL.LLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLL.LLLL.LLLL.LL.LLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LL.L.LLL.LLLLLLLLL.LL.LLLL.LLLLLL
+....L....L..L.....L....L..LL....L.L..L..LL.LLL...L.....L.LLL.L.LL.....L....L.L........L.LLL....
+L.L.LL.LLL.LLLLL.L.LLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LL.LLLL.LLLLLL
+LLLLLLLLL.LLLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLL.LLLLLL.LLLLLLL.LLLLLLLL.LLLL.LLLLLL
+LLLLLLLLL.LL.LLLLLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLLLLLLLL..LLL.L..LLL.LLL.L.LL.LLLLLL..LLLL.LLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLL.LL.LLLLLLL.LLLL.LLLLLL
+.....LL.LL.L.....LL.LL..L...L...LLLLL......L.L....LL...LLL...LLLLL..LL..L....L......L.......L.L
+LLLLLLLLLL.LLLL.LL.LLLL.L.LLLLL.LLLLLL.LL.LL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLL.LL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.L
+LLLL.LLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLL..LLLLLLL.L.LL..LLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLL.LLL.LL.LLLLLLLL.LLLL.LLLLLLLLLLLLLL
+LLLLLLLLLLLLL.LLLLLLLLL.LLLLLL..LLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLL.LLLLLLL.LLLLLLL.LLLLLLLLLLL
+..LLL..L..L...L..L..L.L.....L............L.....L..L....L.LL......L.....L..LLL..L.L..L..........
+LLL.LLLLLL.LLLLLLLLLLLL.LL.LLLLLLLLLLL.LLLLLL.LLLLLLL..LLLL.LLLL.L.L.LLLL.LLLLLLLLLLLLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LL.LL.LLLLLLLLLL.LLL.LL.LLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL
+.LLLLLLLLL.LLLL.LLLLLLLLLLLLL...LL.L.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLL.L.LLLLLL
+LLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLL.LLLLL.LLL.LLLL.LLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLL.LLL.L.LLLLLLLL.LLLLLL..LLLLLLLLLLL
+.LLLLLLLLL.LLLLLLL.LLLL.LLLLLL..LLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
+.L.....LL......L........L.L....LLL......L...L.LL...L...L..LL................L...L..L...........
+LLLLLLLLLL.LLLLLLL.LLLL.LLLL.LL.LLLLLL.LLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LL.LLL.LLLLLLL
+LLLLLL.LLL.LLLLLL..LLL..LLLLLL..LLLLLL.LLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL..LLLLLLLLLL
+LLLLLL..LL.LLLLLLL.LLLL.LLLL.LL.LLL.LL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LL.L.LLLLLL.L.LLLLLL.LLLLLLLLLLLLLLLL.LL
+LLLLLLLLLL.LLLLLL.LLLLLLL.LLLLL.LLLLL.LLLLLL.L.LLLLLLL.LL.LLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLL..LLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLL.LL.L.LLLLLL
+LLLLL.LLLL.LLLLLLL..LLLLLLLLLLL.LLLLLL.LLL.L.L.LLLLLLLLLLLL.LLLL.L.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
+....LLL...LLL.....L.L...LL...L..L....LL...L.L.LLLLL....L......LLLL......L..LLLLL.L.LL...LL..LLL
+LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LL.LLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+.LLLLLLLLL.L..LLLLLLLLLLLLLLLLL.LLLLLL.LLLL..LLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
+LLLLLLLLLL.LLLLLLL.LLLL.L.L.LLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLL.LLLL.LLL.LLLLLL
+LLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLLLL..LLLLLL.LLLL.L.LLLL




diff --git a/2020/resources/input12.txt b/2020/resources/input12.txt
new file mode 100644
index 0000000000000000000000000000000000000000..85892eab86ba12ad042e0b4cd9af1b93c915b941
--- /dev/null
+++ b/2020/resources/input12.txt
@@ -0,0 +1,764 @@
+R90
+W4
+L90
+N2
+E5
+N1
+N5
+R90
+E2
+L90
+F11
+L180
+W4
+L90
+S5
+L90
+F66
+W4
+F2
+E1
+S5
+W5
+F86
+E3
+R90
+N2
+F91
+F94
+R180
+W5
+F18
+R180
+F100
+W5
+F40
+W2
+R180
+F2
+E3
+N4
+W1
+L180
+N3
+E3
+S1
+L180
+W3
+R180
+E2
+F84
+L90
+W1
+N1
+F10
+N4
+R90
+E4
+F55
+S1
+W4
+S5
+W2
+R90
+S5
+E5
+F41
+S1
+W5
+F84
+E3
+F48
+F12
+L90
+F79
+N5
+E2
+F34
+E5
+N2
+F76
+S3
+F73
+W3
+S1
+R180
+W4
+L90
+F9
+E2
+F76
+N3
+F46
+N5
+F41
+S5
+L90
+N3
+L180
+F95
+E3
+R90
+F3
+E4
+F15
+S2
+W5
+R90
+N1
+F26
+F99
+S1
+F13
+F88
+W2
+L90
+W5
+R90
+F2
+E4
+R180
+N2
+F5
+N2
+R90
+S4
+E2
+L90
+F21
+N3
+R90
+E2
+E4
+S1
+W3
+F42
+N3
+E3
+N2
+E1
+L90
+S1
+L90
+F50
+S4
+F24
+S3
+F50
+L90
+F70
+L180
+F19
+N3
+L90
+F18
+L90
+F5
+F70
+R180
+N1
+L90
+E4
+S2
+W3
+N3
+F16
+W5
+F15
+S1
+L180
+S3
+F60
+R180
+F7
+R180
+W4
+R180
+S2
+N5
+W1
+F59
+R90
+S5
+W5
+F80
+L90
+R90
+F62
+R180
+S3
+R180
+W3
+L90
+N2
+F64
+E4
+R180
+S4
+R90
+E3
+F27
+W4
+R90
+F45
+L90
+N1
+E3
+F12
+L180
+F83
+S1
+W5
+L270
+E5
+F97
+F45
+N1
+F16
+F85
+E4
+S2
+N1
+E3
+F41
+N2
+R90
+S2
+R180
+E5
+L270
+F22
+W2
+R180
+N3
+R270
+E5
+L90
+S2
+W5
+F57
+L90
+L90
+F96
+E1
+S4
+W1
+L90
+W1
+F20
+N5
+E4
+R90
+W3
+S5
+R90
+W4
+R270
+F91
+E5
+L90
+F19
+L90
+S4
+R90
+S4
+F58
+R180
+F78
+R180
+F16
+W4
+R90
+F13
+S3
+E3
+F14
+N4
+E4
+R90
+W3
+S4
+W5
+F53
+R90
+S5
+F67
+L90
+W5
+F97
+R90
+W3
+F82
+N5
+F92
+E3
+R90
+F55
+W1
+F100
+E3
+F88
+S2
+E3
+N4
+E1
+F75
+F2
+L180
+E5
+L90
+F40
+N2
+R90
+F25
+N2
+L90
+E4
+F15
+L90
+S3
+W2
+R90
+E2
+R90
+S5
+L90
+F14
+W1
+L180
+F19
+R180
+W4
+S1
+L90
+F14
+N5
+N3
+L90
+N2
+F78
+L90
+N5
+E3
+N2
+F73
+S2
+F88
+N3
+F42
+S5
+F38
+S4
+F73
+R90
+F45
+R90
+F98
+L90
+W5
+S4
+L90
+E3
+L90
+F32
+N2
+F32
+W5
+S1
+R180
+F76
+W1
+L180
+W2
+S1
+R180
+S2
+F1
+S1
+E2
+R90
+N3
+E4
+L90
+S5
+L270
+N2
+F83
+L90
+F53
+L90
+F100
+W1
+L90
+E4
+R90
+S4
+F41
+W2
+R270
+E4
+F65
+R90
+F39
+E5
+R180
+F1
+W2
+R180
+E5
+L270
+E3
+R90
+W3
+R90
+W5
+F17
+E4
+F18
+S2
+N5
+E5
+L90
+W4
+F1
+S4
+E4
+L90
+S3
+E4
+F62
+R180
+F52
+S3
+F10
+S5
+L90
+F28
+R90
+F49
+W3
+F9
+N3
+W2
+N1
+L90
+L90
+E2
+S2
+W2
+F47
+R180
+E1
+R90
+F39
+E3
+N2
+W2
+F86
+F94
+R90
+S2
+R90
+E3
+F88
+N3
+E4
+L90
+S5
+F63
+W5
+L180
+N5
+N2
+F34
+R90
+F19
+N1
+F95
+L90
+E5
+L90
+F3
+R180
+S4
+L90
+F1
+N4
+R90
+E5
+N5
+R90
+E3
+F21
+R180
+S2
+R90
+N2
+L90
+N2
+W2
+E4
+S2
+E1
+N3
+R90
+W1
+L90
+F42
+W4
+F98
+W4
+L90
+F84
+S4
+F67
+W2
+S2
+L90
+S4
+E5
+L90
+F58
+E1
+S1
+W4
+N3
+W3
+R90
+E3
+F19
+S4
+L180
+N3
+R90
+N5
+F77
+N5
+W2
+S1
+L180
+F78
+W5
+S5
+E3
+N2
+F64
+L180
+F21
+R90
+W2
+F44
+N2
+L90
+F91
+S4
+R180
+N2
+W2
+F77
+S5
+F50
+R90
+F21
+W5
+L180
+S4
+F71
+E1
+N4
+R90
+F93
+W1
+N2
+F23
+E4
+L180
+F11
+E4
+F17
+R180
+N3
+R90
+F92
+R180
+F97
+S1
+E1
+F67
+E4
+R90
+F5
+F8
+L180
+L180
+L90
+N3
+N3
+R180
+E2
+F21
+L180
+N1
+S3
+L90
+W1
+L90
+E4
+R90
+F75
+R90
+W3
+F93
+L90
+S4
+F35
+F72
+S5
+E3
+F7
+S3
+R90
+W2
+R90
+F21
+W3
+N5
+F70
+W5
+N2
+L270
+F69
+L90
+S2
+F88
+W5
+S4
+R180
+E2
+F52
+N1
+F93
+N2
+E5
+S4
+L90
+N4
+R90
+F65
+S4
+L180
+S3
+F8
+E4
+R90
+F76
+E3
+F33
+R90
+N2
+F25
+N4
+E1
+S2
+L90
+N1
+L90
+N5
+R90
+E5
+F81
+N5
+F3
+W4
+S1
+F45
+W1
+F43
+E4
+N1
+F45
+E4
+S4
+E4
+N2
+E2
+F15
+W1
+L270
+F84
+R90
+N1
+F21
+N2
+F26
+W1
+N1
+W4
+S4
+F25
+R90
+N5
+R90
+S2
+R90
+E2
+L180
+N4
+R270
+S3
+F46
+S4
+S2
+L90
+N2
+F7
+W1
+S1
+L270
+E2
+R180
+S1
+W4
+N1
+F65
+L90
+E1
+N1
+R90
+N3
+W1
+F47
+R90
+F95
+S4
+L270
+F21
+W4
+S3
+F55
+E2
+N2
+F85
+N2
+R90
+E2
+F8
+S2
+W2
+R90
+W4
+F54
+E4
+F76
+N2
+F5
+F50
+N3
+R180
+W3
+S4
+E1
+L90
+S4
+W1
+F8




diff --git a/2020/resources/input13.txt b/2020/resources/input13.txt
new file mode 100644
index 0000000000000000000000000000000000000000..78137a2f0556423c156c823ef0328e3bd353a303
--- /dev/null
+++ b/2020/resources/input13.txt
@@ -0,0 +1,2 @@
+1005162
+19,x,x,x,x,x,x,x,x,41,x,x,x,x,x,x,x,x,x,823,x,x,x,x,x,x,x,23,x,x,x,x,x,x,x,x,17,x,x,x,x,x,x,x,x,x,x,x,29,x,443,x,x,x,x,x,37,x,x,x,x,x,x,13




diff --git a/2020/src/aoc/core.clj b/2020/src/aoc/core.clj
new file mode 100644
index 0000000000000000000000000000000000000000..5ddabcb526200731ceb11d493d20e53c6dbc951d
--- /dev/null
+++ b/2020/src/aoc/core.clj
@@ -0,0 +1,7 @@
+(ns aoc.core
+  (:gen-class)
+  (:require [aoc.day13 :as day13]))
+
+(defn -main
+  [& args]
+  (day13/main))




diff --git a/2020/src/aoc/day01.clj b/2020/src/aoc/day01.clj
new file mode 100644
index 0000000000000000000000000000000000000000..19290da98555f562ee0272f29c8aa9f01a45bc56
--- /dev/null
+++ b/2020/src/aoc/day01.clj
@@ -0,0 +1,46 @@
+(ns aoc.day01
+  (:require [clojure.java.io :as io]))
+
+(defn lines [s]
+  (clojure.string/split s #"\n"))
+
+;; ------------
+
+(defn read-input []
+  (->> "input01.txt"
+       io/resource
+       slurp
+       lines
+       (map read-string)))
+
+(defn produce-matches-1 [input]
+  (for [x input]
+    (for [y input]
+      (when (= 2020 (+ x y))
+        [x y]))))
+
+(defn compute-1 [input]
+  (->> (produce-matches-1 input)
+       flatten
+       (remove nil?)
+       (take 2)
+       (apply *)))
+
+(defn produce-matches-2 [input]
+  (for [x input]
+    (for [y input]
+      (for [z input]
+        (when (= 2020 (+ x y z))
+          [x y z])))))
+
+(defn compute-2 [input]
+  (->> (produce-matches-2 input)
+       flatten
+       (remove nil?)
+       (take 3)
+       (apply *)))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))




diff --git a/2020/src/aoc/day02.clj b/2020/src/aoc/day02.clj
new file mode 100644
index 0000000000000000000000000000000000000000..578f6b5312cffbfe71335bda1d55f8565860d913
--- /dev/null
+++ b/2020/src/aoc/day02.clj
@@ -0,0 +1,79 @@
+(ns aoc.day02
+  (:require [clojure.java.io :as io]))
+
+(def example "1-3 a: abcde
+1-3 b: cdefg
+2-9 c: ccccccccc")
+
+;; https://gist.github.com/edbond/665401
+(defmacro xor
+  "Evaluates exprs one at a time, from left to right.  If only one form returns
+  a logical true value (neither nil nor false), returns true.  If more than one
+  value returns logical true or no value returns logical true, retuns a logical
+  false value.  As soon as two logically true forms are encountered, no
+  remaining expression is evaluated.  (xor) returns nil."
+  ([] nil)
+  ([f & r]
+     `(loop [t# false f# '[~f ~@r]]
+        (if-not (seq f#) t#
+                (let [fv# (eval (first f#))]
+                  (cond
+                   (and t# fv#) false
+                   (and (not t#) fv#) (recur true (rest f#))
+                   :else (recur t# (rest f#))))))))
+
+(defn parse-line [line]
+  (zipmap [:min :max :letter :password]
+          (rest
+            (re-find #"(\d+)-(\d+) (\w): (\w+)" line))))
+
+(defn string-to-char [s]
+  (first (char-array s)))
+
+(defn password-valid? [p]
+  (let [min          (read-string (:min p))
+        max          (read-string (:max p))
+        freqs        (frequencies (:password p))
+        letter       (string-to-char (:letter p))
+        letter-count (get freqs letter 0)]
+    (and
+     (>= letter-count min)
+     (<= letter-count max))))
+
+(defn password-valid-2? [p]
+  (let [pass (:password p)
+        idx-1 (get pass (dec (read-string (:min p))))
+        idx-2 (get pass (dec (read-string (:max p))))
+        letter (string-to-char (:letter p))]
+    (xor
+     (= idx-1 letter)
+     (= idx-2 letter))))
+
+(defn check-passwords [acc val]
+  (if (password-valid? val)
+    (inc acc)
+    acc))
+
+(defn check-passwords-2 [acc val]
+  (if (password-valid-2? val)
+    (inc acc)
+    acc))
+
+;; ----
+
+(defn read-input []
+  (->> (io/resource "input02.txt")
+       slurp
+       clojure.string/split-lines
+       (map parse-line)))
+
+(defn compute-1 [input]
+  (reduce check-passwords 0 input))
+
+(defn compute-2 [input]
+  (reduce check-passwords-2 0 input))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))




diff --git a/2020/src/aoc/day03.clj b/2020/src/aoc/day03.clj
new file mode 100644
index 0000000000000000000000000000000000000000..9b3ee50ca76655faec3e48d657bfabffb1bd3ab3
--- /dev/null
+++ b/2020/src/aoc/day03.clj
@@ -0,0 +1,73 @@
+(ns aoc.day03
+  (:require [clojure.java.io :as io]))
+
+(def example
+  "..##.......
+#...#...#..
+.#....#..#.
+..#.#...#.#
+.#...##..#.
+..#.##.....
+.#.#.#....#
+.#........#
+#.##...#...
+#...##....#
+.#..#...#.#")
+
+(def paths
+  [[1 1]
+   [3 1]
+   [5 1]
+   [7 1]
+   [1 2]])
+
+(defn read-input []
+  (->> (slurp (io/resource "input03.txt"))
+       clojure.string/split-lines))
+
+(defn all-coordinates [[x y]]
+  (iterate (fn [[xx yy]]
+             [(+ x xx)
+              (+ y yy)])
+           [0 0]))
+
+(defn tree? [s]
+  (= s \#))
+
+(defn count-trees [lines]
+  (fn [acc [x y]]
+    (let [line (nth lines y)
+          spot (nth line x)]
+      (if (tree? spot)
+        (inc acc)
+        acc))))
+
+(defn compute [input coords]
+  (let [infinite-lines (map cycle input)
+        needed-coords (take-while #(< (second %)
+                                      (count input))
+                                  coords)]
+    (reduce (count-trees infinite-lines) 0 needed-coords)))
+
+;; ----------------------------------------------------------------------------
+
+(defn compute-1 [input]
+  (let [infinite-lines (map cycle input)
+        infinite-coords (all-coordinates [3 1])
+        needed-coords (take-while #(< (second %)
+                                      (count input)) infinite-coords)]
+    (reduce (count-trees infinite-lines) 0 needed-coords)))
+
+(defn compute-2 [input]
+  (let [c (partial compute input)
+        coords (map all-coordinates paths)]
+    (->> coords
+         (map c)
+         (apply *))))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/2020/src/aoc/day04.clj b/2020/src/aoc/day04.clj
new file mode 100644
index 0000000000000000000000000000000000000000..d22a5faf793c23ae539143623b798b4679c29211
--- /dev/null
+++ b/2020/src/aoc/day04.clj
@@ -0,0 +1,89 @@
+(ns aoc.day04
+  (:require [clojure.java.io :as io]
+            [clojure.set]))
+
+(def fields #{:byr :iyr :eyr :hgt :hcl :ecl :pid :cid})
+
+(def height-pattern #"(\d+)(cm|in)")
+
+(def hcolor-pattern #"#[a-f0-9]{6}")
+
+(def eye-color-set #{"amb" "blu" "brn" "gry" "grn" "hzl" "oth"})
+
+(def pid-pattern #"\d{9}")
+
+(def validation
+  {:byr (fn [v]
+          (when (= 4 (count v))
+            (let [n (read-string v)]
+              (<= 1920 n 2002))))
+   :iyr (fn [v]
+          (when (= 4 (count v))
+            (let [n (read-string v)]
+              (<= 2010 n 2020))))
+   :eyr (fn [v]
+          (when (= 4 (count v))
+            (let [n (read-string v)]
+              (<= 2020 n 2030))))
+   :hgt (fn [v]
+          (when-let [[_ digits u] (re-find height-pattern v)]
+            (let [n (read-string digits)]
+              (case u
+                "cm" (<= 150 n 193)
+                "in" (<= 59 n 76)))))
+   :hcl (fn [v]
+          (re-matches hcolor-pattern v))
+   :ecl (fn [v]
+          (contains? eye-color-set v))
+   :pid (fn [v]
+          (re-matches pid-pattern v))
+   :cid (fn [v] true)})
+
+(def optional-fields (set [:cid]))
+
+(def required-fields
+  (clojure.set/difference fields optional-fields))
+
+(defn collect-pair [acc p]
+  (let [[k v] (clojure.string/split p #":")]
+    (assoc acc (keyword k )v)))
+
+(defn parse-passport [s]
+  (let [lines (clojure.string/split-lines s)
+        joined (clojure.string/join " " lines)
+        pairs (clojure.string/split joined #" ")]
+    (reduce collect-pair {} pairs)))
+
+(defn valid? [p]
+  (let [pfields (set (keys p))]
+    (=
+      (clojure.set/intersection required-fields pfields)
+      required-fields)))
+
+(defn valid-2? [p]
+  (when (valid? p)
+    (let [ok (map (fn [field]
+                       (let [f (get validation field (constantly true))
+                             v (get p field)]
+                         (f v)))
+                     required-fields)]
+       (every? identity ok))))
+
+;; -----------------------------------------------------------------------------
+
+(defn read-input []
+  (->> (clojure.string/split (slurp (io/resource "input04.txt")) #"\n\n")
+       (map parse-passport)))
+
+(defn compute-1 [input]
+  (count
+   (filter valid? input)))
+
+(defn compute-2 [input]
+  (count
+   (filter valid-2? input)))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))




diff --git a/2020/src/aoc/day05.clj b/2020/src/aoc/day05.clj
new file mode 100644
index 0000000000000000000000000000000000000000..3e80f6789d380702945f82d149e973770e2782d5
--- /dev/null
+++ b/2020/src/aoc/day05.clj
@@ -0,0 +1,65 @@
+(ns aoc.day05
+  (:require [clojure.java.io :as io]))
+
+(def example "FBFBBFFRLR") ;; 44 5
+
+(defn reduce-range [lower upper]
+  (fn [coll direction]
+    (let [size (/ (count coll) 2)]
+    (condp = direction
+      lower (take size coll)
+      upper (drop size coll)))))
+
+(defn find-row [directions]
+  (first
+    (reduce
+      (reduce-range \F \B)
+      (range 0 128)
+      directions)))
+
+(defn find-column [directions]
+  (first
+    (reduce
+      (reduce-range \L \R)
+      (range 0 8)
+      directions)))
+
+(defn find-seat [boarding-pass]
+  {:row (find-row (take 7 boarding-pass))
+   :column (find-column (drop 7 boarding-pass))})
+
+(defn seat-id [{:keys [row column]}]
+  (+ (* row 8)
+     column))
+
+(defn read-input []
+  (->> (slurp (io/resource "input05.txt"))
+       (clojure.string/split-lines)))
+
+(defn compute-1 [input]
+  (->> input
+       (map find-seat)
+       (map seat-id)
+       sort
+       reverse
+       first))
+
+(defn all-seat-ids [input]
+  (->> input
+       (map find-seat)
+       (map seat-id)
+       sort))
+
+(defn compute-2 [input]
+  (let [seat-ids (all-seat-ids input)
+        coll (range (first seat-ids) (inc (last seat-ids)))]
+    (clojure.set/difference
+     (set coll)
+     (set seat-ids))))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/2020/src/aoc/day06.clj b/2020/src/aoc/day06.clj
new file mode 100644
index 0000000000000000000000000000000000000000..2b5fa69763a0bb472325cc7c86fb03467a275cde
--- /dev/null
+++ b/2020/src/aoc/day06.clj
@@ -0,0 +1,52 @@
+(ns aoc.day06
+  (:require [clojure.java.io :as io]))
+
+(def example "abc
+
+a
+b
+c
+
+ab
+ac
+
+a
+a
+a
+a
+
+b")
+
+(defn group-said-yes [group]
+  (apply clojure.set/union
+         (map set group)))
+
+(defn group-all-said-yes [group]
+  (apply clojure.set/intersection
+         (map set group)))
+
+;; ----
+
+(defn read-input []
+  (->> (clojure.string/split (slurp (io/resource "input06.txt")) #"\n\n")
+       (map clojure.string/split-lines)))
+
+(defn compute-1 [input]
+  (->> input
+       (map group-said-yes)
+       (map count)
+       (apply +))
+  )
+
+(defn compute-2 [input]
+  (->> input
+       (map group-all-said-yes)
+       (map count)
+       (apply +)))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/2020/src/aoc/day07.clj b/2020/src/aoc/day07.clj
new file mode 100644
index 0000000000000000000000000000000000000000..798e0a6e50fa7cbb062db0ea1c1b8d457732d961
--- /dev/null
+++ b/2020/src/aoc/day07.clj
@@ -0,0 +1,98 @@
+(ns aoc.day07
+  (:require [clojure.java.io :as io]))
+
+(def example
+  "light red bags contain 1 bright white bag, 2 muted yellow bags.
+dark orange bags contain 3 bright white bags, 4 muted yellow bags.
+bright white bags contain 1 shiny gold bag.
+muted yellow bags contain 2 shiny gold bags, 9 faded blue bags.
+shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags.
+dark olive bags contain 3 faded blue bags, 4 dotted black bags.
+vibrant plum bags contain 5 faded blue bags, 6 dotted black bags.
+faded blue bags contain no other bags.
+dotted black bags contain no other bags.")
+
+(def rule-pattern #"(\d+) (\w+ \w+)")
+(def mine "shiny gold")
+
+(defn parse-sub [s]
+  (let [[_ number color] (re-find rule-pattern s)]
+    {:color color
+     :number (read-string number)}))
+
+(defn parse-contents [s]
+  (when-not (clojure.string/starts-with? s "no")
+    (let [rules (clojure.string/split s #", ")]
+      (map parse-sub rules))))
+
+(defn parse-rule [s]
+  (let [[bag contents] (clojure.string/split s #" contain ")
+        [shade color _] (clojure.string/split bag #" ")
+        contents (parse-contents contents)]
+    {:color (str shade " " color)
+     :contents contents}))
+
+(defn graph [rules]
+  (reduce (fn [acc {:keys [color contents]}]
+            (reduce (fn [acc content]
+                      (update acc (:color content) conj {:color color
+                                                         :number (:number content)}))
+                    acc contents))
+          {} rules))
+
+(defn graph2 [rules]
+  (reduce (fn [acc {:keys [color contents]}]
+            (reduce (fn [acc2 content]
+                      (update acc2 color conj content))
+                    acc contents))
+          {} rules))
+
+(defn get-parents [graph color]
+  (get graph color))
+
+(defn fold [g]
+  (loop [r (into #{} (->> (get-parents g mine)
+                          (map :color)))]
+    (let [r2 (reduce (fn [acc color]
+                        (into acc
+                              (->> 
+                                (get-parents g color)
+                                (map :color))))
+                      r r)]
+      (if (= r r2)
+        r
+        (recur r2)))))
+
+(defn count-contents [g c]
+  (let [contents (get-parents g c)]
+    (if (seq contents)
+      (reduce
+       (fn [acc {:keys [color number]}]
+         (+ acc (* number (count-contents g color))))
+       1
+       contents)
+      1)))
+
+;; ---
+
+(defn read-input []
+  (->> (slurp (io/resource "input07.txt"))
+       (clojure.string/split-lines)))
+
+(defn compute-1 [input]
+  (let [rules (map parse-rule input)
+        g (graph rules)]
+    (count (fold g))))
+
+(defn compute-2 [input]
+  (let [rules (map parse-rule input)
+        g (graph2 rules)]
+    (dec
+      (count-contents g mine))))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/2020/src/aoc/day08.clj b/2020/src/aoc/day08.clj
new file mode 100644
index 0000000000000000000000000000000000000000..a969f09d5caf70362723efedd8a951a63e8986b2
--- /dev/null
+++ b/2020/src/aoc/day08.clj
@@ -0,0 +1,96 @@
+(ns aoc.day08
+  (:require [clojure.java.io :as io])
+
+(def example "nop +0
+acc +1
+jmp +4
+acc +3
+jmp -3
+acc -99
+acc +1
+jmp -4
+acc +6")
+
+(def example-terminating "nop +0
+acc +1
+jmp +4
+acc +3
+jmp -3
+acc -99
+acc +1
+nop -4
+acc +6")
+
+(defn parse-instruction [s]
+  (let [[op n] (clojure.string/split s #" ")]
+    (assoc {}
+           :op (keyword op)
+           :value (read-string n))))
+
+(defn accumulate [acc value]
+  (if (>= value 0)
+    (+ acc value)
+    (- acc value)))
+
+(defn step [acc index {:keys [op value]}]
+  (case op
+    :acc [(+ acc value) (inc index)]
+    :jmp [acc (+ index value)]
+    :nop [acc (inc index)]))
+
+(defn run-computer [coll]
+  (loop [index 0
+         acc 0
+         log #{}]
+    (if (contains? log index)
+      acc
+      (let [[new-acc new-index] (step acc index (nth coll index))]
+        (recur new-index new-acc (conj log index))))))
+
+(defn run-computer-2 [coll]
+  (loop [index 0
+         acc 0
+         log #{}]
+    (cond
+      (contains? log index) :infinite-loop
+      (= index (count coll)) acc
+      :else (let [[new-acc new-index] (step acc index (nth coll index))]
+              (recur new-index new-acc (conj log index))))))
+
+
+;; ----------------------------------------------------------------------------- 
+
+(defn read-input []
+  (->> (slurp (io/resource "input08.txt"))
+       clojure.string/split-lines
+       (map parse-instruction)))
+
+(defn compute-1 [input]
+  (run-computer input))
+
+(defn reverse-it [op]
+  ;; LOL
+  (get {:jmp :nop
+        :nop :jmp}
+       op))
+
+(defn compute-2 [input]
+  (let [input (vec input)
+        indexes (range (count input))
+        possibilities (map (fn [i]
+                          (let [{:keys [op]} (nth input i)]
+                            (if (contains? #{:jmp :nop} op)
+                              (assoc-in input [i :op] (reverse-it op))
+                              input)))
+                        indexes)]
+    (->> possibilities
+         (map run-computer-2)
+         (remove #(= :infinite-loop %))
+         first)))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/2020/src/aoc/day09.clj b/2020/src/aoc/day09.clj
new file mode 100644
index 0000000000000000000000000000000000000000..ee3f16be045660e1b7da38f1c6ccc2e57a8ec4e0
--- /dev/null
+++ b/2020/src/aoc/day09.clj
@@ -0,0 +1,82 @@
+(ns aoc.day09
+  (:require [clojure.java.io :as io]))
+
+(def example
+  "35
+20
+15
+25
+47
+40
+62
+55
+65
+95
+102
+117
+150
+182
+127
+219
+299
+277
+309
+576")
+
+(defn valid? [n coll]
+  (seq (for [x coll
+          y coll
+          :when (not= x y)
+          :when (= n (+ x y))]
+      [x y])))
+
+(defn read-input []
+  (->> (io/resource "input09.txt")
+       io/reader
+       line-seq
+       (map read-string)))
+
+(defn read-example-input []
+  (->> example
+       clojure.string/split-lines
+       (map read-string)))
+
+(defn compute-1 [input size]
+  (loop [step 0]
+    (let [without-old (drop step input)
+          pool (take size without-old)
+          candidate (nth without-old size)]
+      (if-not (valid? candidate pool)
+        candidate
+        (recur (inc step))))))
+
+(defn adds-up? [coll n]
+  (loop [nums []
+         index 0]
+    (cond
+      (= (apply + nums) n) nums
+      (> (apply + nums) n) nil
+      :else (recur (conj nums (nth coll index))
+                   (inc index)))))
+
+(defn find-range [input n]
+  (loop [coll input]
+    (let [r (adds-up? coll n)]
+      (if-not (nil? r)
+        r
+        (recur (rest coll))))))
+
+(defn compute-2 [input n]
+  (let [result (find-range input n)]
+    (+ (apply min result)
+       (apply max result))))
+
+
+(defn main []
+  (let [input (read-input)
+        size 25
+        n (compute-1 input size)]
+    (println n)
+    (println (compute-2 input n))))
+
+(main)




diff --git a/2020/src/aoc/day10.clj b/2020/src/aoc/day10.clj
new file mode 100644
index 0000000000000000000000000000000000000000..1fc7c1445bf345c02ee7480e937e6e293e616781
--- /dev/null
+++ b/2020/src/aoc/day10.clj
@@ -0,0 +1,136 @@
+(ns aoc.day10
+  (:require [clojure.java.io :as io])
+  (:gen-class))
+
+;; (defn read-input []
+;;   (line-seq
+;;     (io/reader
+;;       (io/resource "input10.txt"))))
+
+(def example "16
+10
+15
+5
+1
+11
+7
+19
+6
+12
+4")
+
+(def example2 "28
+33
+18
+42
+31
+14
+46
+20
+48
+47
+24
+23
+49
+45
+19
+38
+39
+11
+1
+32
+25
+35
+8
+17
+7
+9
+4
+2
+34
+10
+3")
+
+(defn read-input []
+  (->>
+       (io/resource "input10.txt")
+       io/reader
+       line-seq
+
+       ;; example2
+       ;; clojure.string/split-lines
+
+       (map read-string)))
+
+(defn builtin [ratings]
+  (->> (apply max ratings)
+       (+ 3)))
+
+(defn jolts [input]
+  (let [device (builtin input)
+        input (conj input device)
+        input (sort input)]
+    (reduce (fn [acc adap]
+              (let [prev (:i acc)
+                    diff (- adap prev)]
+                (if (= 3 diff)
+                  (assoc acc :i adap :j3 (inc (:j3 acc)))
+                  (assoc acc :i adap :j1 (inc (:j1 acc))))))
+            {:i 0 :j1 0 :j3 0}
+            input)))
+
+(defn next-coll [[n & coll]]
+  (filter #(and
+              (> % n)
+               (<= 1 (- % n) 3))
+          coll))
+
+(declare jp)
+
+(defn jolt-possibilities [coll]
+  (let [nexts (next-coll coll)]
+    (if-not (seq nexts)
+      coll
+      (mapcat (fn [next]
+                (jp
+                (filter #(>= % next) coll))) nexts))))
+
+(def jp (memoize jolt-possibilities))
+
+(defn jolt-possibilities-2 [coll]
+  (loop [acc #{}
+         current 0]
+    (let [nexts (next-coll coll)]
+      )))
+
+;; the recursive solution didn't work on the puzzle input because memory :(
+;; the `part-2` fn is someone else's
+
+(defn part-2 [adapters]
+  (let [device (+ (apply max adapters) 3)
+        ;; The number of routes to each adapter is the sum of the number of
+        ;; routes to each of the possible previous adapters (it's like a messy
+        ;; Pascal's triangle) so we can get the solution in one pass.
+        routes (reduce
+                 (fn [r a]
+                   (assoc r a
+                     (apply + (map #(get r % 0) (range (- a 3) a)))))
+                 {0 1}
+                 (sort (conj adapters device)))]
+    (get routes device)))
+
+(defn compute-1 [input]
+  (let [{:keys [j1 j3]} (jolts input)]
+    (* j1 j3)))
+
+(defn compute-2 [input]
+  (let [input (cons 0 input)
+        device (builtin input)
+        input (conj input device)
+        input (sort input)]
+    (count (jp input))))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (part-2 input))))




diff --git a/2020/src/aoc/day11.clj b/2020/src/aoc/day11.clj
new file mode 100644
index 0000000000000000000000000000000000000000..b382b3d13e0de31966ea5d029fbf936b40d451cd
--- /dev/null
+++ b/2020/src/aoc/day11.clj
@@ -0,0 +1,118 @@
+(ns aoc.day11
+  (:require [clojure.java.io :as io]))
+
+(def example "L.LL.LL.LL
+LLLLLLL.LL
+L.L.L..L..
+LLLL.LL.LL
+L.LL.LL.LL
+L.LLLLL.LL
+..L.L.....
+LLLLLLLLLL
+L.LLLLLL.L
+L.LLLLL.LL")
+
+(declare parse-floor)
+
+(defn read-input []
+  (->>
+   (io/resource "input11.txt")
+   slurp
+
+       ;; example
+   clojure.string/split-lines
+   parse-floor))
+
+(defn adjacent [m [sx sy]]
+  (for [x [-1 0 1]
+        y [-1 0 1]
+        :when (not= [x y] [0 0])]
+    (let [fx (+ x sx)
+          fy (+ y sy)]
+      [[fx fy] (get m [fx fy] :empty)])))
+
+(defn visible [m [sx sy]]
+  (for [x [-1 0 1]
+        y [-1 0 1]
+        :when (not= [x y] [0 0])]
+    (let [fx (+ x sx)
+          fy (+ y sy)]
+      (some (fn [[[x y] spot]]
+              (#{:taken :empty} spot))
+            (map (fn [[a b]]
+                   [[a b] (get m [a b] :empty)])
+                 (rest (iterate
+                        (fn [[xx yy]] [(+ xx x) (+ yy y)])
+                        [sx sy])))))))
+
+(defn taken-adjacent [m [sx sy]]
+  (filter #(= :taken (second %))
+          (adjacent m [sx sy])))
+
+(defn taken-visible [m [sx sy]]
+  (filter #(= :taken %)
+          (visible m [sx sy])))
+
+(defn parse-floor [input]
+  (into {}
+        (for [y (range (count input))
+              x (range (count (first input)))]
+          (let [spot (get-in input [y x])
+                tile (case spot
+                       \L :empty
+                       \# :taken
+                       \. :floor)]
+            [[x y] tile]))))
+
+(defn run [input]
+  (into {} (map (fn [[[x y] seat]]
+                  (let [taken-count (count (taken-adjacent input [x y]))]
+                    (case seat
+                      :empty [[x y] (if (zero? taken-count) :taken :empty)]
+                      :taken [[x y] (if (>= taken-count 4) :empty :taken)]
+                      [[x y] seat])))
+                input)))
+
+(defn run-2 [input]
+  (into {} (map (fn [[[x y] seat]]
+                  (let [taken-count (count (taken-visible input [x y]))]
+                    (case seat
+                      :empty [[x y] (if (zero? taken-count) :taken :empty)]
+                      :taken [[x y] (if (>= taken-count 5) :empty :taken)]
+                      [[x y] seat])))
+                input)))
+
+(defn reduce-1 [input]
+  (loop [input input]
+    (let [res (run input)]
+      (if (= input res)
+        res
+        (recur res)))))
+
+(defn reduce-2 [input]
+  (loop [input input]
+    (let [res (run-2 input)]
+      (if (= input res)
+        res
+        (recur res)))))
+
+(defn compute-1 [input]
+  (->> input
+       reduce-1
+       vals
+       frequencies
+       :taken))
+
+(defn compute-2 [input]
+  (->> input
+       reduce-2
+       vals
+       frequencies
+       :taken))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/2020/src/aoc/day12.clj b/2020/src/aoc/day12.clj
new file mode 100644
index 0000000000000000000000000000000000000000..ebfcc64fc577217da6a45e57b6d8dac4a7834d51
--- /dev/null
+++ b/2020/src/aoc/day12.clj
@@ -0,0 +1,155 @@
+(ns aoc.day12
+  (:require [clojure.java.io :as io]))
+
+(def example "F10
+N3
+F7
+R90
+F11")
+
+(def start-pos {:facing :east
+                :north 0
+                :east 0})
+
+(def start-pos-2 {:wp {:north 1
+                       :east 10}
+                  :ship {:north 0
+                         :east 0}})
+
+(defn translate [direction [x y]]
+  (case direction
+      :right [y (- x)]
+      :left [(- y) x]))
+
+(defn translate-wp [pos direction]
+  (update-in pos [:wp] (fn [{:keys [north east]}]
+                         (let [[x y] (translate direction [east north])]
+                           {:north y :east x}))))
+
+(defn parse-inst [[h & body]]
+  {:direction (case h
+                \N :north
+                \E :east
+                \S :south
+                \W :west
+                \F :forward
+                \L :left
+                \R :right)
+   :value (read-string (clojure.string/join body))})
+
+(defn read-input []
+  (->> 
+       (io/resource "input12.txt")
+       slurp
+       ;; example
+       clojure.string/split-lines
+       (map parse-inst)
+       ))
+
+(defn move [direction value]
+  (fn [old]
+    (let [op (case direction
+               :north +
+               :south -
+               :east +
+               :west -)]
+      (if (nil? op)
+        old
+        (op old value)))))
+
+(def right-turns (cycle [:east :south :west :north]))
+(def left-turns (cycle [:east :north :west :south]))
+
+(defn turn-count [n]
+  (case n
+    90 1
+    180 2
+    270 3
+    0 0))
+
+(defn turn [pos {:keys [value direction]}]
+  (let [current-direction (:facing pos)
+        tc (turn-count value)
+        turns (case direction
+                :left left-turns
+                :right right-turns
+                [])
+        next-turns (drop-while #(not= current-direction %) turns)]
+    (nth next-turns tc)))
+
+(defn move-forward [pos {:keys [value direction]}]
+  (let [facing (:facing pos)
+        op (case facing
+             :north +
+             :east +
+             :south -
+             :west -)]
+    (if (contains? #{:north :south} facing)
+      (assoc pos :north (op (:north pos) value))
+      (assoc pos :east (op (:east pos) value)))))
+
+(defn navigate [pos {:keys [value direction]}]
+  (case direction
+    :north   (update pos :north (move direction value))
+    :south   (update pos :north (move direction value))
+    :east    (update pos :north (move direction value))
+    :west    (update pos :north (move direction value))
+    :left    (assoc  pos :facing (turn pos {:direction direction :value value}))
+    :right   (assoc  pos :facing (turn pos {:direction direction :value value}))
+    :forward (move-forward pos {:direction direction :value value})
+    pos))
+
+(defn should-move-wp? [direction]
+  (not= direction :forward))
+
+(defn should-move-ship? [direction]
+  (= direction :forward))
+
+(defn move-ship [pos {:keys [value]}]
+  (let [wx (get-in pos [:wp :east])
+        wy (get-in pos [:wp :north])
+        pos (update-in pos [:ship :east] #(+ % (* wx value)))
+        pos (update-in pos [:ship :north] #(+ % (* wy value)))]
+    pos))
+
+;; (move-ship {:wp {:east -1 :north -2} :ship {:east 1 :north 1}}
+;;            {:value 0})
+
+(defn rotate-wp [pos {:keys [value direction]}]
+  (let [tc (turn-count value)]
+    (reduce (fn [acc _]
+              (translate-wp acc direction))
+            pos
+            (range tc))))
+
+(defn move-wp [pos {:keys [value direction] :as i}]
+  (case direction
+    :north (update-in pos [:wp :north] #(+ % value))
+    :south (update-in pos [:wp :north] #(- % value))
+    :east  (update-in pos [:wp :east ] #(+ % value))
+    :west  (update-in pos [:wp :east ] #(- % value))
+    :right (rotate-wp pos i)
+    :left  (rotate-wp pos i)))
+
+(defn navigate-2 [pos {:keys [value direction] :as i}]
+  (cond
+    (should-move-wp? direction) (move-wp pos i)
+    (should-move-ship? direction) (move-ship pos i)
+    :else pos))
+
+(defn compute-1 [input]
+  (let [final (reduce navigate start-pos input)]
+    (+ (Math/abs (:north final))
+       (Math/abs (:east final)))))
+
+(defn compute-2 [input]
+  (let [final (reduce navigate-2 start-pos-2 input)]
+    (+ (Math/abs (get-in final [:ship :north]))
+       (Math/abs (get-in final [:ship :east])))))
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/2020/src/aoc/day13.clj b/2020/src/aoc/day13.clj
new file mode 100644
index 0000000000000000000000000000000000000000..0a69a9e96aef542fc05b26aeb6ba34d6e0d04e3c
--- /dev/null
+++ b/2020/src/aoc/day13.clj
@@ -0,0 +1,121 @@
+(ns aoc.day13
+  (:require [clojure.java.io :as io]))
+
+(def example "939
+7,13,x,x,59,x,31,19")
+
+(defn parse-input [[earliest timetable]]
+  {:earliest (read-string earliest)
+   :timetable (->> (clojure.string/split timetable #",")
+                   (remove #{"x"})
+                   (map read-string))})
+
+(defn parse-input-2 [[_ timetable]]
+   (->> (clojure.string/split timetable #",")
+        (map read-string)))
+
+(defn read-input []
+  (->>
+   ;; (io/resource "input13.txt")
+   ;; slurp
+
+       example
+       clojure.string/split-lines
+       parse-input
+   ))
+
+(defn short-example [s]
+  (->> (clojure.string/split s #",")
+       (map read-string)))
+
+(defn read-input-2 []
+  (->>
+   ;; (io/resource "input13.txt")
+   ;; slurp
+
+       example
+       clojure.string/split-lines
+       parse-input-2
+   ))
+
+(defn tt [earliest t]
+  (->> (iterate #(+ t %) 0)
+       (drop-while #(< % earliest))
+       first
+       (conj [t])
+       reverse
+       vec))
+
+(defn infinite-timetables-by-id [timetable]
+  (->> timetable
+       (remove symbol?)
+       (map (fn [t] [t (iterate #(+ t %) 0)]))
+       (into {})))
+
+(defn compute-1 [{:keys [earliest timetable]}]
+  (let [
+        tts (map (partial tt earliest) timetable)
+        tts (into {} tts)
+        departure (apply min (keys tts))
+        minutes (- departure earliest)
+        bus-id (tts departure)]
+    (* minutes bus-id)))
+
+(defn bus-valid [m t bus]
+  (cond
+    (nil? bus) :end
+    (= bus "x") true
+    (symbol? bus) true
+    (zero? t) true
+    :else
+    (let [i (get m bus)]
+      (->> (drop-while #(< % t) i)
+           first
+           (= t)))))
+
+(let [tts (infinite-timetables-by-id [6])
+      t 5]
+  (bus-valid tts t nil)
+  )
+
+
+(defn run-2 [tts timetable start-t]
+  (loop [t start-t
+         buses timetable]
+    (let [bus (first buses)
+          res (bus-valid tts t bus)]
+      (if (contains? #{:end false} res)
+          start-t
+          (recur (inc t) (rest buses))))))
+
+(defn compute-2 [timetable]
+  (let [tts (infinite-timetables-by-id timetable)]
+    (loop [t 100000000000000]
+      (println "computing" t)
+      (let [res (run-2 tts timetable t)]
+        (if (contains? #{:end} res)
+          t
+          (recur (inc t)))))))
+
+
+(defn compute-example [timetable t]
+  (= (run-2 (infinite-timetables-by-id timetable)
+            timetable
+            t)
+     t))
+
+(comment
+(compute-example (short-example "67,7,59,61") 754018)
+(compute-example (short-example "17,x,13,19") 3417)
+(compute-example (short-example "67,x,7,59,61") 779210)
+(compute-example (short-example "67,7,x,59,61") 1261476)
+(compute-example (short-example "1789,37,47,1889") 1202161486)
+  )
+
+(defn main []
+  (let [input (read-input)
+        input2 (read-input-2)]
+    (println (compute-1 input))
+    (println (compute-2 input2))))
+
+;; (main)




diff --git a/2020/template.clj b/2020/template.clj
new file mode 100644
index 0000000000000000000000000000000000000000..8a08ac6011f4a4875f5e2f4d8deb8bddcfceedbe
--- /dev/null
+++ b/2020/template.clj
@@ -0,0 +1,25 @@
+(ns aoc.dayxx
+  (:require [clojure.java.io :as io]))
+
+(defn read-input []
+  (->>
+   (io/resource "inputxx.txt")
+   io/reader
+   line-seq
+
+       ;; example
+       ;; clojure.string/split-lines
+   ))
+
+(defn compute-1 [input]
+  input)
+
+(defn compute-2 [input]
+  input)
+
+(defn main []
+  (let [input (read-input)]
+    (println (compute-1 input))
+    (println (compute-2 input))))
+
+(main)




diff --git a/project.clj b/project.clj
deleted file mode 100644
index c023e04fe03b711ea568eaa7564dd8239e51840d..0000000000000000000000000000000000000000
--- a/project.clj
+++ /dev/null
@@ -1,8 +0,0 @@
-(defproject aoc "0.1.0-SNAPSHOT"
-  :description "FIXME: write description"
-  :url "http://example.com/FIXME"
-  :dependencies [[org.clojure/clojure "1.10.1"]]
-  :main ^:skip-aot aoc.core
-  :target-path "target/%s"
-  :profiles {:uberjar {:aot :all
-                       :jvm-opts ["-Dclojure.compiler.direct-linking=true"]}})




diff --git a/resources/input01.txt b/resources/input01.txt
deleted file mode 100644
index 3c039b7ba24e88f68dce34a38df090ffe61bbba8..0000000000000000000000000000000000000000
--- a/resources/input01.txt
+++ /dev/null
@@ -1,200 +0,0 @@
-1895
-1732
-1660
-1658
-1878
-367
-2010
-1989
-431
-1946
-1614
-2003
-945
-1856
-1934
-1937
-1781
-1947
-1991
-1917
-1604
-1707
-1966
-1959
-1182
-1828
-1880
-1908
-1942
-1687
-1611
-1922
-1913
-1803
-1976
-1718
-1885
-1971
-2000
-1912
-1981
-1776
-1901
-1941
-1935
-1977
-1907
-1893
-1898
-1975
-2001
-1833
-1951
-1939
-1988
-1870
-1985
-1932
-1930
-1938
-1926
-1931
-1982
-76
-1979
-657
-1872
-1933
-1961
-1987
-1998
-1994
-418
-1914
-1929
-1810
-2009
-1712
-830
-1990
-1900
-1876
-1753
-1859
-1965
-1963
-1905
-1921
-1685
-1694
-697
-1899
-1997
-1964
-1927
-1952
-1894
-1960
-1986
-1883
-1616
-1993
-1892
-1943
-2005
-1995
-1915
-1663
-1954
-1902
-1191
-1948
-1875
-1850
-1955
-1962
-1984
-1957
-1969
-1887
-1953
-1786
-1638
-1909
-1881
-603
-1973
-1784
-1869
-1925
-1968
-1737
-1807
-1950
-1992
-1936
-1918
-1891
-1897
-1940
-1919
-1910
-1862
-1958
-1832
-1904
-1791
-1920
-1874
-1729
-1643
-2007
-1871
-1999
-1584
-1890
-1924
-1974
-1701
-1906
-143
-1725
-1945
-1783
-1873
-1903
-167
-1855
-1633
-1956
-1996
-1808
-1884
-1916
-829
-2002
-1852
-1835
-1889
-1983
-1949
-1970
-1774
-1764
-1609
-1882
-1857
-2004
-1911
-1896
-1980
-2006
-1967
-2008
-1972
-1648
-1923
-1978
-1675
-1831




diff --git a/resources/input02.txt b/resources/input02.txt
deleted file mode 100644
index f4997c30891eed45500c538ec98feed1af7d4301..0000000000000000000000000000000000000000
--- a/resources/input02.txt
+++ /dev/null
@@ -1,1000 +0,0 @@
-6-10 s: snkscgszxsssscss
-6-7 b: bbbbbxkb
-2-4 n: nnnjn
-1-2 j: jjjj
-5-9 z: jgzzzqhbj
-4-11 m: mfmmmpmjmkdr
-12-15 t: twqrxttwttthtkxbz
-8-9 z: ftzjzzzzr
-17-18 h: cpkhssvpphzvprfnft
-7-8 b: bjbbbbbb
-4-5 p: pppppppppgppps
-16-18 r: rrrrrrrrrrrrrrrrrr
-9-16 v: vvvrpvbvvvvvvvvvwvvh
-11-15 d: ddddddddddddddjd
-9-14 g: ggbggghggggggggw
-1-5 d: ddddbd
-1-4 x: xxxwxxx
-1-2 l: bdjjddlqg
-1-4 b: lbbxb
-15-16 f: ffffffffffffffmz
-10-16 m: mmlmmmvmmmbhmmmq
-4-15 v: vlfvvqphhjfvlgt
-5-12 m: mmmmjmwmmmmcmmm
-7-8 q: qqqqqqxkq
-4-9 h: hhzhhhhhhhhhsh
-3-7 t: thltdtjtstzrtwtt
-6-7 k: kkkkkkk
-1-5 q: jqwqd
-4-13 x: xxxxxxxxxxxxxxxxxx
-1-4 l: llfl
-6-12 n: nnffnfnnmnffnx
-4-6 m: xmvxnmpmm
-5-7 m: mmmmbmmmmmmmmm
-9-17 f: ffffflffbfffffcffff
-4-10 k: kkklkkkkkhktkkbkzq
-8-15 z: kdxxzzlhpzgbzjzz
-2-5 q: qrqqbqqqqqqqkqq
-3-5 t: zrttht
-9-12 t: ttxgntjmvntctpfrt
-2-3 k: kkkk
-8-10 j: jjjjjjjjjj
-2-9 k: vkwkhcqnk
-9-10 t: ttttttthtt
-4-6 b: bbbbbbbb
-9-12 n: xnvnnvldhthlsn
-2-4 w: wwwwwwj
-6-10 t: tttttwttttvtt
-3-10 j: jqjjjxjdjnjjjj
-15-18 q: kqlncdqwclqpjzrbnq
-7-8 p: gpwbjppp
-3-13 m: mmmmlsmfvmhmmmm
-7-10 s: wdshsrsgsl
-8-16 f: fffffffxfffffffcf
-16-18 s: ssskswhsvslwsssrsq
-12-14 j: gjjjjkjgjkjhjvj
-13-14 t: gtttvftwtgvhlt
-6-7 v: vvvvvgbv
-2-8 l: ssldslmvl
-3-9 l: bflzllqkqlkll
-8-9 n: rrnnnnnnsn
-7-14 p: bqsrxgplkpdvbpkn
-2-5 z: wzbclnsxt
-2-4 k: knkxk
-6-8 d: drddjddjdd
-15-16 p: ztgptpfpcwppqrzppps
-1-3 k: nmsqksv
-7-10 n: pwhbcwnlznfnvrlnds
-13-15 t: tttttttttttttttttt
-10-12 b: bbbbbbdbbgfxbbbf
-3-5 w: rwwwj
-18-19 x: xxxxmxxxxwpxxxfxgln
-1-4 g: lfsjtgggg
-13-15 x: mxzgtxhrxjhxtnf
-13-14 d: ddddddddddddlx
-3-5 r: rrrtrrtmlr
-1-7 t: thttttttttt
-2-5 g: sngggj
-8-9 n: tnnnnnnnn
-6-10 w: wkwwjfwltk
-12-18 n: nnnnnnnnnnnnnnsnnh
-14-18 m: mmmmmmmmmmmmmmmmmmmm
-5-15 v: fvvfrcqkvkggnpl
-13-19 f: ffffffftfffdnffffpsf
-13-15 k: kgkkkmkkkgftklb
-4-6 h: hhhchvh
-7-14 l: qmbdhdjbrglxql
-13-17 w: kwwwwwwwwwwwdpwww
-1-5 q: pqqqdqqqq
-8-9 p: vhwphvpfp
-2-4 h: hljmh
-1-2 c: tmcc
-3-5 f: dpnvwffhlp
-3-5 m: mmmmmm
-10-12 c: ngjnczmcscxc
-2-4 x: mxxj
-4-6 m: xbmkmm
-1-6 l: kllllsblqhngl
-11-18 x: xprkjcrxkgxxgwtbmx
-4-6 k: vwxshkkkkbtfbhl
-11-15 z: dzzkzjjzzzzzzzlmzbn
-5-6 f: ffffnfffflfjff
-3-6 d: ddddddbd
-6-9 r: wrrrvrrrr
-8-9 n: nnnnjnnnt
-2-7 b: bxptdkctbrxfllpvj
-3-4 x: hxxv
-5-14 n: nrnnnlsnznnzrqnjxnp
-1-3 w: wwww
-9-12 x: xxmxxxxxxxxxtxx
-10-14 j: jjnjjjjlvjkcsjjdllvj
-4-6 w: wgwbwwww
-10-12 t: ttqttttttttl
-10-11 t: ttwtttttttv
-9-15 t: ttttttttftttttttt
-2-3 p: pfgp
-2-4 z: brrksnvqjzwqjvjs
-8-9 n: knnnftzjbqj
-6-7 w: swjwwdwwwwwwwww
-1-2 j: xjlrkjjztrjfpss
-13-14 l: llllllllllllvlllllr
-7-12 l: lllllllllllblllll
-7-8 j: gqdcmjqh
-3-9 g: gchkbvgvgw
-15-17 b: bbbbcbbbgbbbbbmbg
-1-7 h: qlmhhcdhhhhhhhhhh
-2-15 c: ccccccccccccccscccc
-1-2 q: xvch
-3-9 w: wwwwwwxwww
-2-4 x: jskx
-3-7 t: btwsnvts
-9-11 g: gkhgwctggbm
-2-7 g: xvgwwltdvnzscbtqwb
-1-11 k: kkqkpkkdkkkkkkkhkk
-4-12 h: nbqlhjbqhxtnxlzlr
-3-4 d: dwdd
-8-9 k: kkkzbckklqqkhfkqkk
-7-8 c: pcxmqdwc
-2-4 v: qbvwvvnvvp
-3-9 c: pfqcblwxcrmx
-1-9 t: fwgtcrftktt
-7-8 p: pppppppp
-6-13 w: dnwfhwkjffpdwgzdf
-10-14 k: kkkkkkhkkwkkkkkk
-2-4 s: zscssddtpmqblmd
-11-13 b: dbvzwthlcmbkb
-1-4 k: kqlxwvbkckwzmqxvtcc
-2-10 s: sxssssgsssxsssnss
-3-9 w: nxrmwlpgw
-10-13 w: wwsgwwwwwwwkw
-9-13 v: vhvvwjvcvbvvg
-5-7 n: fbvnjpt
-3-4 x: xxxx
-9-10 l: rlllmlllll
-7-9 d: ddddddddhd
-4-8 z: zzzhzzzf
-11-12 m: mmmmmmmmmmkf
-4-8 m: bmfzppcqttct
-2-4 m: mfmcmmmcx
-2-9 p: rppzgvshn
-7-8 r: rrrrrrrrrrvr
-6-7 p: hkltppp
-7-10 m: mmmmmfmmtmmmpbmm
-6-14 p: pppppppppppppxp
-4-6 p: wbspppnlmc
-2-4 n: xnfnl
-2-5 q: nqkcqmvwp
-2-3 d: ddkbkdjd
-5-9 b: qxjbblbrb
-14-16 b: bbbbbbbbbbbbbqbbb
-5-6 p: dppppp
-5-8 j: kxztnjjn
-14-18 k: krkkkkckkkkmktkkkkd
-7-8 n: nnngxnfpnn
-16-17 c: ccmccccccccccccfcccc
-1-3 g: wggg
-1-2 c: cqcckc
-2-8 g: gjwdkbds
-10-17 s: hswqssmttskspdlkkss
-14-16 b: bbbbbbbbbbbbpbbrbbbb
-12-16 r: srrmcbrrcrzrdwzng
-2-3 h: fcws
-9-13 p: gkgpqpghpjbpz
-9-10 m: mmmmmmmmmmm
-3-4 b: brbb
-2-3 p: gncvqdhp
-2-7 g: gdggggggggggggg
-2-7 j: jjjjjjrjqjjj
-3-5 v: ltptjlntf
-1-7 w: gwwwwwfww
-7-10 z: zzzzzzmzzzz
-10-12 x: xxhxxxxxxgxsxxxx
-11-12 b: bbbbbbbbbbbbd
-16-17 v: vvvvvvvvvvvvvvjht
-1-4 x: bxxx
-16-19 g: gggggggwggggggjgggg
-5-10 q: qjpqqvlnkqxmlv
-4-6 p: qrpffplvpp
-7-9 r: rrrrrrgrb
-2-3 g: bgjg
-10-12 t: ttjttttnttdtt
-2-4 g: dgng
-11-12 r: rrmrrrlrtrrj
-1-5 v: qvvvvvvvvvvvvvv
-3-18 p: ftnfnpmjprmrzmhbnxj
-10-12 w: dqnsjjxsqrwq
-2-4 z: lzgkzsb
-8-9 n: dwclxdtnndtpcgqmx
-10-11 w: zjwdsphbbwlhp
-2-9 d: zzprkgzczbs
-14-19 c: gpjfrvsrcnbxbclctxc
-1-9 f: fmhfvfffrfws
-12-14 d: ddrddbddddddddhmdg
-14-15 s: sslsssmsnssdxsj
-2-10 v: ljppzjfvfnfp
-1-2 z: qbwbzknrzzs
-18-19 l: llllllllfllllllllll
-2-3 p: ppgp
-13-15 k: knkkkkkckkkkhkxk
-3-6 v: vbjvmv
-4-8 h: hmhcxfhg
-12-14 v: vvngcvvvvkvgvs
-2-3 j: xdjjrk
-5-13 s: sssssrqsssssq
-1-7 s: sssssssss
-6-14 b: ptlvmbbrbxnvqbrmp
-16-18 w: wwwswwnwwmwwwwwwwf
-1-4 k: kkknkkkkk
-1-4 g: ggrbk
-9-11 r: rrrhrrrrrrrrr
-11-13 x: xxxxxxxxxxxxnx
-3-8 x: nsxvlvdfbkpxsgscn
-12-15 h: hghhchvjhhhhlvhhhhh
-11-12 n: nnnnnnnnnnjqn
-10-13 r: jrzfzrzrqblmks
-7-8 w: wwwwwwwh
-3-4 k: kkbft
-1-9 c: cccccjccccccn
-2-7 r: rrvnrxrvrzsrbrs
-3-10 l: llgdldmlplqlhdlll
-4-8 m: mmzmbmgm
-5-6 q: sfxqnftnbnqwq
-5-6 v: vvvvgvvqv
-9-14 h: dhmwrhzqqvhhhfhfhhht
-4-7 p: jwwppvpklc
-9-13 z: zzzzzzzzzpzzzx
-13-14 l: fllklltlllllcphllll
-12-15 m: htmbmqgljcmvmclgnm
-9-10 b: bbbbbbbnbb
-6-12 x: nxjbxxhxxxxgdxx
-6-7 t: tttbwlk
-8-11 q: fqqjtlswqgkqdqc
-16-20 t: xplwqxbwtsfptbvtvcxt
-3-4 k: kklkkkkkkxkkkk
-3-9 m: kmmsvmpmxmgmb
-6-12 j: jjtjjjjjjjjpjjwj
-3-4 m: kkmbmzkx
-7-8 f: gmfxlgfjtfst
-1-3 w: wwwn
-1-7 k: knkktkkn
-13-16 v: vvvvvvvvvvvvvvvmvv
-10-11 h: rhvdhnfhvtchlfhh
-10-12 x: xgxwbqxkxxcwsfd
-10-14 m: mmmrdxpcmcmmmkmmmmm
-2-5 x: vvxpx
-8-9 h: hhhhhhhmfh
-16-19 j: jmwjjjjjjjjjjjjjjjz
-2-3 r: sqrnr
-14-19 p: ppppppppppppppppppk
-2-5 w: wwwww
-15-16 q: dppxtnhmxrhmncrqq
-4-5 v: drhpp
-1-4 p: pkhn
-3-6 q: gwmrfwh
-6-10 v: dlvvfhvvkb
-1-8 q: qqqqqqqqqdqqqqqqqq
-17-18 n: nnnnnnnnnxnnznnpnng
-3-7 m: gmxzffwmbdm
-12-14 m: dmzmcmmhjmqltm
-3-16 w: drcbwtvqgbppbwzvm
-8-10 d: ddbddddzdddddkpd
-8-9 m: mmmmmmmmmmmm
-1-3 l: glll
-7-11 x: fxrxxdxxxqxnxx
-6-7 d: ddddxgdd
-7-8 g: hgggbggg
-2-3 w: pwwtww
-7-10 h: lhwbhjhzhx
-3-14 b: bbbrvrbsfbnxrgqbbq
-4-7 l: jzqkxlnpxlglfsll
-6-7 b: hbpbbbb
-2-4 w: pskwwxzpjvmwcnfr
-13-15 m: mmmmmmmmxmpmxmmm
-4-9 k: krxkzqzkkhrpqth
-4-7 f: xfffkvfqzwhcfwkhq
-4-10 q: qqqqqcqbqqq
-14-15 s: lgszsdststlpgjbs
-7-12 s: sspbsssskfns
-7-8 d: cdddqpnd
-13-15 p: ppppppppppppxppp
-10-11 r: rrrfxrrrrrrrrr
-10-12 z: zzzzzzzzzvzvzz
-3-4 l: lllwll
-7-9 p: ppppkpppqpppppsvx
-3-4 k: kkkrk
-4-5 v: zxmmvmhvr
-14-15 r: rrrrrrrrrrrrrfjr
-6-10 b: vwbgbbbbdbqsbb
-5-7 j: jsjjjkv
-3-4 m: tzmhr
-11-13 r: rrrrrrrrrrqrhrr
-1-4 s: psqmcssnk
-5-6 z: zdkzzzz
-3-5 p: cnpmbtknqdppmcjpzvcn
-13-14 g: ggggkggggmtggd
-14-17 c: nxmzcczccnvdcxpcmb
-6-10 w: wlwwbdwwwwwwww
-9-17 l: llllllllllllllllll
-2-12 j: jpjdjjjzmjxj
-1-3 n: szjntnnl
-7-8 l: dpxlmhlbts
-5-16 s: sssssssssssssssrs
-1-6 m: pmqvlc
-7-15 f: ffffffffqfkfffdxff
-10-11 w: wwwwwwwwwwswwww
-7-12 p: tkppvfpwksrp
-4-7 f: fdjdgdvsksbfbnjkspc
-4-11 b: bjmvfrmlmlbndl
-1-3 r: rrrnxhgbwr
-5-10 h: xhhmhhhlhbh
-10-11 h: hghhhhhhdlhhh
-5-6 g: gptglg
-9-11 t: wtgtxtttqtmttt
-5-11 f: jxqffhfsfmz
-4-7 f: frjffbf
-1-15 m: mmmmmmmmxmmmmmmmm
-1-12 d: drwlbpdbzdgdjpnzmj
-9-14 n: nfnmktjnncnnnln
-1-2 h: pshhjhhhhf
-2-4 t: tgttttttfb
-2-4 w: dwpwhnxbf
-7-11 b: vbcbzhbwhpb
-4-5 k: hknck
-5-12 m: mmmmtdmmmmmmmm
-5-7 w: qwflwxq
-2-5 g: jdnxdlclplvb
-5-7 t: ttrtttttkr
-8-18 l: lwscjwlmdlzlllnsllpw
-2-8 c: cccxtccchbrkr
-1-3 q: qqtqqqqq
-3-13 d: dddddddbddddddd
-1-7 r: jkpzrpfnrgpkc
-9-10 t: ttttttttttt
-11-12 w: wjwplwwwwwmw
-9-12 r: rpsvrhrbnrwqch
-6-11 p: zpzbpkpmtnptsnpbswc
-4-6 t: jhzstt
-3-4 t: ddpkcgpzhd
-4-6 s: cvzshjfrsslxnslqddwt
-1-3 c: cgsczhl
-1-4 d: lddqdqd
-6-7 v: vvvvvvb
-5-8 w: wwwwwwwwww
-5-11 p: ddswpbpppsqpp
-5-6 x: dfzxxxhhqjvj
-3-7 m: mmmmmmmmmm
-4-8 g: ggggggggg
-5-6 j: jjcjjn
-5-6 n: nndtns
-4-5 t: ltxkdpst
-2-8 b: ldwkbzbxgpbbbb
-11-12 w: wwqwdqwwwqhvwww
-15-17 k: klkcxqbwrktxcmqlnb
-5-6 k: tkqhkkkkrkjfd
-12-13 x: nxxxrjxxxdjlxxbt
-9-12 m: mmzmmmrmmfmgmmmmb
-2-5 v: tkbhvlvp
-12-14 v: dvbvvvvhrcvvvxxvvvvv
-14-16 x: xxxxxxxxxxxxxrxxxx
-6-7 v: xvswnvvm
-6-9 c: vcpcksxwbdlc
-5-11 s: sssssjssssrsdjsssq
-6-16 j: jjjjjmjjjjjjjjjnj
-8-12 g: ggggwggggggnggg
-4-5 c: ccczk
-14-15 l: lllllllllllllkm
-10-11 r: rrrrrrrrrrrrr
-3-5 n: dwnvnlj
-2-4 x: xdxxxx
-5-6 j: jjjjjjj
-3-9 k: kkkkkhlrkktt
-3-7 t: stqtgfdprtqjsgznrtjh
-11-16 n: hsnnnnnnnnfnvnpqnnn
-13-16 v: kdvbvxvvtvhvvvvq
-1-3 v: vwpvkvdpxgc
-14-17 v: vvvvvvvvvvvvvnvvhv
-14-15 m: mmmmmmmmmmmmmtm
-6-10 m: mmmmmhmmmm
-5-8 t: tttjrttdsttfttwstf
-6-7 c: ccqcvcc
-2-5 v: vvvvvv
-8-16 c: cccccccccwcpcccmcccc
-4-5 t: ztvttktttttt
-10-11 n: rnmnnnnnnnnnnnnpt
-5-6 g: lgsggggg
-15-18 s: lcsmgkjqzdpcgvsrng
-2-6 p: wwpppp
-9-10 v: vvvvsvvvmvv
-6-11 c: qrmdjxzsmxcmcccgrr
-17-18 b: bbbbbbbbbbbbbbbbbbbb
-6-10 t: thtxgtpxwt
-2-8 f: xkgbrpqfsrhhbnfpdg
-3-8 c: gqkkvgkcqfwdc
-5-6 c: jjcsjf
-8-16 q: fbwdmlwljqqcrqsq
-3-10 m: mjmmsmmmmmmcmm
-5-15 x: xmrvcsjwxxdpsrxzcrzj
-3-7 x: rxngzxxg
-17-19 z: mmvfgzpmbvzsrmkgmmmb
-3-4 z: zdzz
-4-5 v: vzcvb
-3-11 z: tzllpgzzmwxznh
-8-11 x: ptgvnbxzsxwdb
-2-3 r: rrrrr
-6-10 b: bbmbbbbbbb
-6-11 q: wvmqrzrllhxfzmpkp
-13-17 v: vvrgvvsvvcqkvvvvbvvw
-16-18 p: ppppppppnppgppppclp
-13-15 g: gglggggggngggggggggg
-15-17 b: bbbbbbbbbbbbbbbbb
-3-6 t: tpwzktlzkdt
-2-3 m: lmvtnfjzmm
-1-7 j: jzjjfjx
-15-17 r: rtfdnhrrhrrdcswrl
-1-3 d: gdfdmddddwdddlsd
-3-4 r: qrtr
-10-11 m: mmmmmmmmmkc
-2-5 n: gntnnnncc
-9-14 b: bbbbbbbbbbbbbb
-10-13 f: fxfffznffffzwffflz
-5-12 j: vjjrjjjjngjjjjm
-6-8 k: kkkrkklkkkkkkk
-5-7 r: rrhzsxrjjw
-17-18 g: gggggggggggggggggf
-2-3 h: ghhvrh
-1-3 j: hjjxjjjj
-3-5 q: gbqnqkprckxqglkhw
-17-18 n: ngnnnnnqnnnnnnnnnnnn
-2-3 m: xlhmmq
-6-7 p: kvvphgj
-9-12 k: kpkzkkzkkkkkbwk
-9-10 k: kkrkkkkkmt
-5-10 t: tttttttttttttttt
-10-11 l: ztdvlllzfltlwlglkhcj
-7-12 t: bttttqtqttttttttg
-3-4 z: xzvb
-5-10 h: lhcdhkhhhhb
-1-6 z: jqzzqzzzzzzzzzzzzz
-6-7 x: qxxxxtxz
-13-14 g: gggngggggggrgsgg
-1-2 t: tttt
-11-15 w: hpwhwmwlkbwtwmwlj
-8-10 r: rnrhrrmprnrrr
-5-12 z: rshzhwgzhfjb
-15-16 s: sssqssssssssmsss
-9-12 z: zdzzzzzzkzmz
-10-12 c: mfgpskncfcfctjmt
-5-10 p: sppwnpdpptppwdppppp
-3-14 q: mnzfgfmvmsdlqg
-1-13 s: sssssssfssssbsss
-6-8 d: ddddddddd
-2-5 j: vsbbjh
-14-16 m: nmklmsrpjxwpdbmj
-3-8 v: rfvvvjqv
-18-20 p: pppppppppqhpflppbppp
-7-11 x: xxxxxxwxxxx
-3-4 l: llmvlll
-8-9 w: grmvwtwbz
-2-11 m: mmmmmmqmmmsmmmmmmmmm
-6-13 h: hhhhhrshshhhlhhhh
-3-12 t: tnttblttttcvrtttx
-5-18 f: cfffcffvgffffrmlfx
-1-3 n: rnjnnnnnnnnnnnnnnn
-1-2 w: smmdq
-1-5 v: vvvvvv
-5-15 s: tssssscssffhsswssss
-3-11 b: bbbbbbbbsbkbbbr
-13-15 j: xjjpjjcjjjjjjcj
-5-10 g: bvjvgpzgdgkmmzwnwrxz
-2-7 q: qqqqqrq
-10-12 d: fddddbdddxdqpd
-5-7 c: hsccjccrlm
-11-15 r: nrrrlrrvrdlrprw
-13-14 r: drrtbrrrrrrrrcrrr
-8-10 c: ccccxcchfjcccccxpc
-8-9 s: sssssssss
-1-10 r: rvlgkrrrrm
-8-13 w: jwbwcwmwwvwwwwww
-7-12 k: fxkkcnkkbvkxbkphx
-7-8 l: llllmlvll
-11-15 q: qdjpqwgfqjdqnnq
-8-9 m: mmmmmmmvmmm
-6-7 k: kkkksmkb
-4-6 h: hhhlhhhhfhhhhhh
-2-5 k: xzjlwb
-3-12 j: sjwqrjzjgqrj
-5-18 p: ppppppppppppppppphpp
-1-3 g: gggrggggg
-14-15 n: nnnnnnnnnnxnnhnnn
-19-20 d: jkpzsxwsddzccjdkcptj
-2-4 v: wpdz
-1-8 w: dwjtngwwwrwhp
-13-15 t: tttttctttttxvfrt
-6-11 h: ksvshqhhdth
-8-9 k: khfkdkppl
-11-12 d: whlmcdmfgfddd
-11-12 p: htvxpkfngthz
-6-9 v: vqvmvvbbv
-5-8 m: lghmmmrmmw
-14-16 q: dtmqqrqqqqqgpgqtqr
-2-11 f: bfjskxzlgvfml
-10-19 p: kpppppppphppppppppp
-5-7 j: rfbpzmjtjj
-9-10 p: kpppppppqpp
-3-15 k: hgkgrqblnjmsbvrghzdk
-6-7 r: rrtwrwlfrswwr
-3-4 k: fkkdv
-12-20 g: ggggggggkggggggggkgh
-3-5 x: xxxxpxxxxxxxxxb
-8-10 k: kkkkkkkzkh
-4-10 q: qqqmqqqqqcqq
-4-12 t: ttgtqblzqzpttcxdtfn
-18-20 s: sssbbsscsjvslsvsssss
-3-6 x: xxxxxxx
-4-5 t: tttttt
-5-7 q: xqqqqqqqxkqqqqqqqtqq
-2-4 s: zsvq
-6-7 b: mmbcklx
-1-13 z: zzfzkshpslwcn
-1-14 d: ddpddtdddddmmf
-8-13 j: jjjjjjjjjjjjjjjjjz
-5-6 c: cjjlxb
-10-12 v: vvvvvvtvvmvv
-2-3 b: wfbbg
-1-10 l: llllllllllllllllll
-5-10 d: hdbhdgxcjd
-10-13 t: ttttttttttttnt
-5-6 h: vhmhhh
-16-17 x: xxxxxxxxxxxxxxxsqx
-6-14 g: gzggggzhggggzgg
-15-20 f: ffbfxffffvfffffffhfd
-2-3 d: xdvw
-5-7 g: zgggjgq
-2-12 g: ggggggggmgggggg
-6-8 h: hhhhhhphhhlhjhhxfh
-3-10 j: knjklstqxwcsjf
-2-3 h: hvnwjxhpsc
-7-8 w: wwwlwwgw
-14-16 s: chgtpswssxsqtwzrsqt
-5-6 d: zdbdkl
-3-4 p: lwkpbrbp
-8-14 c: cbhtccjmrccrcp
-2-3 s: tctflmgdtsjjfxpl
-3-4 g: gggjkctwdsgl
-2-4 h: ghbh
-4-13 h: fczphhvflghhhd
-3-10 x: jkzhgljwsblcrmbwfx
-12-13 p: npfgppprzpppc
-7-12 l: sqbplmqnlmwph
-1-8 p: hpppvpprppp
-12-18 n: nhbznznxncnkcchscl
-9-10 g: grjxmgzpgk
-6-7 g: rcmkggggggg
-1-7 b: bbbbbbbb
-2-3 t: ttftzqt
-8-10 l: twbjlnblhck
-1-2 c: cvbc
-4-9 d: mfpdddsnd
-5-8 f: flpvbdrfl
-7-12 s: rhspsxlbpsmsclzrdsfc
-2-4 h: vhhh
-1-10 k: bhkkkkkkxkkkzk
-5-15 q: qqqqqqqqqqqqdqdqql
-12-15 c: ljvcklwjvngfgfgrjsv
-8-10 w: pwwtpbwwvwwrwww
-5-13 b: tbjmbfmknjhbb
-1-2 v: cssd
-2-5 s: ssssss
-3-4 h: bhhxxhfh
-3-5 p: pfppp
-13-20 l: lcxxllcfjmllclljllfl
-2-4 p: sqpzk
-2-4 l: xlllb
-1-7 t: ttttttrttttrttttttxt
-10-12 m: bwmmghzmqmmpmj
-5-8 l: jtlljpql
-5-6 d: lddddd
-6-8 c: nljczccdwvnmrlqvlsc
-8-9 d: dzdddcddt
-10-11 z: zzzzzzzzmqj
-3-4 s: msssss
-3-5 z: xzvdzbzt
-2-18 v: bvcbpwkbdmclbnbmsv
-9-12 b: jrcccsndstzbxprkvtq
-3-11 n: vlntglzvvcnngn
-3-8 v: rpgckwptlvdqsrqqt
-6-11 q: qdqdkqvkvhdrdqm
-9-12 b: khbmbgbbvbqb
-9-10 g: gtggggggczgg
-3-5 c: zqctcs
-15-18 z: kbzsdhbbzxfzzqdjzc
-7-8 g: ggggggzx
-9-10 s: sswssrssqms
-14-17 g: ggggcggggggggpggcgg
-10-15 g: qgzmbkjlggrhgkg
-9-11 j: jjjjjjjjqqjjjjjj
-5-6 c: cgcdcchcccbcc
-2-4 g: gggg
-5-13 h: plkhhrmxhxhmh
-11-16 v: vkkqrvbvbcvvnvvvvv
-6-7 c: rlfmqphqrhqkhch
-3-5 z: hzspz
-8-9 d: kddmdddpdvddln
-5-11 k: wkqkcfkpvnkvh
-4-7 r: fnzzwxrxr
-15-16 r: rrrrrrrrrrrrrrwr
-2-19 f: fvffffffffffffffffwf
-9-11 v: hbvbvvgcvvvj
-2-4 m: mrxpv
-13-14 z: zztzgzzpzzzzzg
-4-10 t: qtvtcrfmlkrgtwsvwtw
-3-7 g: ggggggfgggggggg
-5-8 c: ccccfcccnmccc
-6-12 z: bzfcjzdznzwzrzbzzqrn
-14-15 c: ccccccccccccczkccccc
-3-4 j: jjjjjjf
-1-2 x: kxxxx
-3-4 s: sksj
-17-19 c: hvchccvccdxgccnxdcc
-3-6 r: trrrrrrr
-10-11 c: ckcjzcrzcbc
-1-7 p: pmqplfpvgq
-3-4 h: hhmx
-5-6 n: nnwndln
-5-10 v: bkkvfgvqwdt
-7-14 h: hkjlwvhdnhxhwcnhs
-4-12 f: xxwfjfcwslrfzrxfkxj
-2-3 c: ccccc
-4-13 k: kkkdkkkkkkkkkkk
-8-10 b: mqlljkpbbbxbrbfx
-1-4 p: pppp
-14-17 n: nnnnnnnnnnnnnnnngnn
-5-6 d: dddddddvw
-9-10 r: rjtrrrmqrrrzrrrrjrrm
-7-11 x: bxxxxxrwxpmn
-13-14 w: gwmwwwlwwjwjwx
-2-4 d: dddddvddd
-7-9 p: pjmdppgpspcslh
-13-16 l: tllllzllpvllvlzd
-9-11 q: qzmwqqzqtqqq
-4-5 d: dvdngdd
-9-11 j: xxxvjrmgjpk
-3-4 c: rvvcn
-15-16 r: rxvmlslkpmqdqtdd
-2-5 b: sbflb
-4-5 w: wntpw
-8-16 n: nnnnnnnhnqnnnnnnn
-5-6 n: nnnnnnn
-2-5 q: bsjfhq
-6-18 r: prrrqkmrrrvbrrrrdfrv
-3-5 g: xnxlp
-4-11 s: jsstsssjssfssss
-14-16 d: dddddddddsdddddd
-18-19 n: vgngvbhdjfrbnznhhjzn
-11-13 f: ffffffffffgfgf
-5-11 n: dbgvngchnkngt
-3-4 f: gsff
-2-4 r: rfdrlznkzg
-10-18 z: zzgzwzzzzzzdzzmzhzzn
-4-5 s: qscmbssss
-11-15 x: xbxxxxgxxxbxxzw
-2-10 h: dkrnxknmthcv
-12-13 b: bbbbvbsbbbbgcbnb
-4-5 m: mmlmmsmmh
-3-6 j: njrjjkcr
-10-12 x: xxxxwdnxxxxx
-14-16 g: hggggggggngggggg
-8-9 x: gjqfxxxtxxxb
-16-17 f: ffffffffjffkffffmffb
-2-8 z: tsktkzfxntrv
-2-6 v: hvvswd
-1-2 w: xddl
-2-6 k: svwvvkqmzwjkx
-9-12 p: ppppppppbppspppb
-12-19 m: mdjmlhsmxmwcmmmmmmm
-3-5 x: rxjxb
-17-18 r: rrrrrrrrrrrrrrrrwk
-2-9 b: cbfbqcfwbmwd
-1-11 h: hhhhhbhhhhmvhhhh
-2-3 j: jkjjgjhxj
-5-6 f: fffffffffhf
-17-18 j: jprvtszvgsbtxlrhljsz
-1-4 m: mmhmmmp
-2-6 p: xvfkpkc
-1-2 f: xqtfcf
-1-5 r: brrrrrr
-7-10 w: wwhwwwdwwj
-1-4 w: vwwdh
-1-3 f: hnpvgfwth
-10-12 k: kkkkkkkkkdkq
-5-13 r: rrpqrrvrqrswzr
-9-17 x: xjxxvxvbtxxxtpxpx
-12-13 j: njrjkcjgbjjnj
-2-4 l: lvll
-12-17 p: dpppprpbppnvpppprp
-4-18 b: zftbmbxgzfzdvdnvhb
-12-16 r: lcqgqjthprlxrzrrx
-2-7 m: msclccmxhsmf
-3-4 b: bfkb
-2-6 k: skfgrk
-4-5 q: qqqhhx
-6-8 c: cccmvcch
-16-17 l: bxnlvbvwzvfvbcmxl
-7-12 c: cccccccccccc
-6-7 b: bbbbjsjbbbs
-2-7 q: phxnfxqrqv
-4-5 h: hhhhhh
-9-15 n: nqnnglsjnnghxrn
-3-4 h: hkkh
-5-11 r: rlsjvrrrrrl
-5-7 b: bbbbzbwbbbb
-2-3 f: qczff
-8-14 c: fccqccccccclccccck
-1-8 r: rrbfmjsr
-4-5 p: dpphz
-11-13 d: wdmwkcqddrdvdz
-8-15 h: hhhhhhhhhhhhhhhhh
-6-10 l: dhgdclhlkltnc
-14-15 t: tttntttnthtttzw
-4-6 p: pppppdp
-13-14 l: dvlnvlgtbpnhll
-11-12 s: brsqgfsnpmwskhdnm
-6-7 j: httjvjj
-2-14 w: wwwfwjzwrzfwnwjwwm
-8-9 w: wwrwwwwgt
-2-5 r: dvrwb
-7-9 b: wwvqbsbjb
-1-12 l: lljxlbslwlgn
-11-12 m: mmmmmmhmmmwbmkmmt
-10-11 l: lblllmllldl
-3-9 w: wwpwwwwbfwwwm
-9-10 q: pcrqfqlskz
-7-9 l: llvlllblklllx
-6-7 g: qgggjmwg
-5-10 v: vvvvvxbrvvp
-9-10 d: hqddgkkdrpdd
-17-18 q: qqqqqqqlqqqqqqqqdt
-6-10 h: hspnhhzldxphdh
-8-13 l: vvvscdnlblllml
-6-12 p: ppkrprpxwpppwx
-4-5 k: tkslb
-7-8 d: hdjdhnzdd
-9-10 x: wkxtblgxxjxxlqnfxxlx
-8-9 g: rggggggdk
-10-20 d: kcgdtbbswwdtvgdgxfwd
-3-4 g: gggggg
-16-17 l: llnzlqllllzllllmllll
-4-10 r: nsrrrbzrfzcrrzrrdqk
-4-6 k: kkkkkpkk
-4-8 n: nnnmntnnrnnn
-12-14 l: lllllllllwlqllll
-3-6 r: rrrrrrr
-1-6 s: ssskcshsxtd
-7-15 d: ndrbdnntdmkddxd
-9-10 j: pjjjjgjsjhjj
-7-10 k: pkbkkkkkgkq
-4-8 m: mmxmmmdmmmmm
-9-13 c: ngjcrcccvbcvqdjmph
-3-5 q: qqqqqq
-7-10 s: fcssnsssssslxspr
-3-5 k: kkkkvv
-5-10 f: tlbcvgwfzlf
-5-9 x: xxxxqxxxx
-2-10 q: qrprhbrhjhb
-3-4 g: gggmgg
-8-10 j: jjjjjjjgjpjjj
-2-4 v: dvzvvtfm
-7-12 q: zvzqprjhqdcqfzr
-12-13 f: ffffffffffffqf
-2-3 f: fffsdwq
-10-11 z: ztzzjzjzzzlzzz
-5-7 k: kkkkqtkkkkk
-6-9 z: dfbzhgsrzsp
-2-4 b: wpqb
-9-15 c: cwchcdhxlqzccxbb
-8-11 q: qqxptqqvqrgqg
-5-7 t: ttttztcvtjtkts
-2-6 n: nnbmdnjxclwkffrnxff
-3-7 p: pppppph
-9-12 d: xhmfndzcddfddvgddf
-1-5 h: hthmhvlthhhhh
-6-7 m: mmmmmmm
-6-7 j: jjjvjjjrj
-1-5 q: mqnqwqqqqqjq
-10-11 b: bmbbbdbpbbbbzbb
-1-4 k: gvccvdltkwcdd
-12-16 s: sssssssssssjssshs
-4-10 k: wzvlkmdhcklhdp
-10-13 z: zzzzzzzzzfzzj
-6-12 g: bmzmvvggpgtm
-3-11 m: nvcpfgvnsqmwxmmz
-1-5 n: dnwnnnnnnnbndnnn
-4-5 h: lhhhh
-4-5 g: gggdg
-2-5 h: xthqhfj
-2-4 f: lfkf
-4-6 k: rqbhrtzktmvmrxck
-4-5 q: jqdsc
-10-11 h: hhhhhhhhhvjh
-2-17 r: rrrrrrrprwrrrfjrr
-16-17 b: bbbbbbbbbbbbbbbbhbbb
-3-5 z: pkvzzfrljrjctw
-13-14 w: wwwwwwwjwwwwww
-8-10 d: dddddddldzpq
-1-4 b: sbbgb
-2-10 d: vnhpzmvpcddhs
-8-15 t: zftpwtrtqjqtfntp
-11-12 j: djjjjjjjcjjcj
-4-7 r: jrrtrrrvmzzrrvsl
-2-4 r: rpkp
-3-4 b: qbxc
-10-11 w: wwwwwwfzkdmnwwv
-6-14 z: mztxzzztmzwzzqvm
-12-14 w: wwwwwwmsgwdwsqwjwww
-6-10 f: zfhqjfhnjfdvwsfftf
-2-11 q: mwbbqdncdfq
-8-11 v: zvtvvwvfvvq
-6-8 n: xnwhzmdskwhn
-8-15 q: qqqqkqqqqqqqqqst
-1-4 n: nnnnn
-5-18 c: sqczchcwcccclccccccc
-3-4 j: klgr
-11-12 m: mmmmmmmmmmmm
-2-3 d: qdxfmqwbmdnvj
-1-5 m: cmmmm
-6-7 l: llllllll
-1-9 m: zmmmmmmmlmmmmmmm
-9-11 m: dwspwrmjsxpc
-5-6 p: qpppfz
-10-19 t: fvtphwzsptqzntbkxqt
-7-9 m: mpcmpmmmvptmm
-3-9 h: hhhpqqwhhtm
-11-16 p: pppppppppppppppvp
-1-9 k: ktkklkkkkkkk
-10-17 q: rthtqvgspqkvfkgkqfhj
-11-14 g: ggxgggggxggzggcnggg
-3-4 t: tttt
-9-10 t: sqtbdttthtttm
-1-4 t: ttkbgdzztbxd
-3-8 f: gxfcrrsfntftvffnfqff
-9-11 q: qqqqqqqjlqqq
-12-13 v: vvvvvvvvvvvvk
-7-11 b: nbxbbbsmbtkb
-7-8 k: kkkkkknn
-4-6 j: jjjjlv
-13-16 m: mmcmmmmmmmmmmmmvs
-7-9 k: kdkkkkrkgkk
-1-4 c: crcdlrdbzc
-1-16 k: kkkkkkkkkkgmkkktkkk
-2-12 l: llllrlllllllll
-4-9 g: gggbkgpgz
-6-7 q: qqqqqqjq
-6-7 v: hvvvvpm
-10-14 t: ttfxmqtgtttttbtct
-5-7 h: hwhhfrnch
-4-13 w: zdlrqvxwwzsfrfq
-4-5 h: hhhshhhh
-2-4 n: vhjfnz
-5-6 s: sssssss
-11-13 n: nnwrnnnlnngnn
-3-4 s: wbss
-3-4 s: wnss
-16-17 p: ppfprptkpmzkbjppp
-2-4 v: pvxv
-8-9 w: swwwwwwhwwnwwwxj
-4-6 s: pzhkvss
-4-5 x: wnxpx
-4-5 f: fsfwp
-4-5 z: zzdjz
-3-6 v: vnvvvvvvvvvvv
-5-6 f: wfxfff
-4-7 z: zzzqfzz
-3-5 q: qqjqsqqqf
-3-7 w: kwwkmww
-6-7 h: hhhhhhgh
-2-5 v: vvbzvvkn
-8-15 r: svrqpqrgrrhmzbms
-9-17 n: jnnnncnnnnnxnnnnnp
-5-6 n: dgnhsc
-5-7 l: lplltbv
-4-6 n: mmrnsbcqr
-7-8 w: wwjwwwwww
-1-16 c: bccccccfcccccccdcc
-6-9 l: sjnlmxwllg
-3-9 q: cqvhkwhtstwrl
-5-9 h: khvxhhhgfchhknhhhz
-8-9 c: ccccccccdc
-2-19 n: jjxbmbwmnqbblfbgzsz
-3-4 p: pppp
-1-3 b: jzxbbb
-3-6 h: hhhgjhhw
-2-8 f: vfxftzkmlzk
-11-19 h: mmdptdzhwdbjhvkccrhk
-4-14 s: sssvsdpsssssspns
-11-12 f: fffffffflfbk
-2-13 h: nhbgtbjvbpmrnhf
-1-3 t: ttttttttttttttttttm
-3-4 t: tsttr
-2-9 n: fnkknptqn
-1-8 j: qjpjjjjjjtpxjqjw
-2-12 c: clccccccccckccc
-18-19 f: dpftffzcfhqffddfpff
-1-4 j: trjj
-9-11 z: zwzmzzczsdd
-5-8 g: vrpbggfn
-2-5 k: qksvzkj
-2-4 f: wfdfjlfwmjrdmxx
-4-12 l: bnplnlgqcwql
-13-14 n: nqlfdnnnnnnnvbnwnlh
-4-8 l: dgxhsrql
-10-11 k: qvwcrkxtkjxlq
-5-6 g: ckgggg
-6-14 h: xbhhvzvxbhhhhhbhkzhh
-6-9 w: whwdwrxgc
-7-9 b: bbrbnjbfb
-7-8 w: brwwkfvwwwww
-2-11 g: gmggghngggg
-12-17 l: bgslljzntbmvtkbgllgg
-12-18 g: gggggggggggkggggggg
-1-3 l: gllllllll
-14-16 k: jkkqkkgkrkvxkkkkskgb
-2-3 v: vljvgnvm
-7-8 r: jrjvrprr
-7-8 f: xxffrnff
-2-18 j: jhjjjjjjjjjtjjfjjpjr
-8-9 q: rfllhmnqtrkv
-2-3 n: lnndv
-2-15 s: hzzsrprnnjlwdfs
-1-5 q: vqqqq
-9-18 b: gxbpbbppbrbbnlkmbb
-2-13 b: bbbbbbbbbbbbpb
-6-7 t: mtrftthtttftttztttst
-1-7 z: nfzzzzvzzczzzzzzzz
-4-12 m: mmmcmmmmmmmmmm
-9-11 p: jpswppqbmpfpzpg
-10-11 c: ccccccpcccc
-2-6 t: ztscdrkxxctdft
-3-13 q: mqfqqqqjqqfqdqqq
-16-20 z: zzjcxdmzgzzzppbtztzz
-5-15 w: wwwpwhwqcwwwwwgw
-2-4 p: pczp
-5-7 d: ddddmdfd
-2-3 f: fftc
-1-3 v: vvmv
-11-15 k: tjkcvkkkkgkzkkxqv
-4-6 b: vdkvbn
-7-8 c: wbcjhswc
-9-10 l: lllbqrllll
-4-5 s: sjnlw
-12-14 j: mjtmzfjjtsgvgtq
-1-3 l: llrllml
-12-13 d: dngddlqdtgdcd
-3-5 l: cblhld
-3-4 r: trrq
-1-3 c: kcccc
-9-10 g: bgbgjggpvgpgpggg
-3-6 d: szwlfm
-13-14 f: ffffffffffffzfff
-6-7 d: ddddddddddnnddddr
-7-16 h: xmbpwmhsznmldhnxflc
-4-6 q: qqqnqqqg
-2-7 t: ttwbpmnthmjr
-8-16 x: xbcxxbwxxrpxnfxd
-2-3 d: dngdd
-9-10 n: qkxfdljnnl
-4-5 f: ftfffff
-12-15 n: nnnnnncnnnnnnnsnn
-1-2 d: dkdd
-2-5 v: vvvvgv
-1-14 v: jvvvvvvvvvvvvmvvv
-5-6 r: rrrrrr
-2-3 b: bnvbbbtbjgxfchnkhcjb
-1-14 g: wjggxgggggggxgmrvcg
-1-6 x: bhvxhxxxx
-1-2 r: rprr
-6-7 c: cccccccqc
-4-8 b: bbgplbbcdtbbdbgbbhbz
-1-4 w: wjgw
-1-3 h: zhzzt
-2-11 j: sjjrtjkjhjj
-6-7 m: mlmrrmm




diff --git a/resources/input03.txt b/resources/input03.txt
deleted file mode 100644
index e1bd0f655fb0729445f15cd68aeb4a8e8cd5887c..0000000000000000000000000000000000000000
--- a/resources/input03.txt
+++ /dev/null
@@ -1,323 +0,0 @@
-.#.......#...........#.........
-..##.......#.#.#.....##...#....
-.......#..#.....#...#..........
-...#..........###...#........##
-#.#..#.#.##.#........#.#.....#.
-#..#....#..#....#..............
-#..#........#..................
-..#.#...#.#...#....#.#.#..#....
-..............#..#.............
-.##....#...................#...
-........#..........#......#...#
-.##..#..#...##..........#...#..
-.#...#....#.........#...#.....#
-.#........##............#.#....
-...........#..............##...
-.#..#......#..#..............#.
-..#.#.#...........#........#...
-..###..........#....#.#......#.
-.......#...##..........#.......
-........#...#..................
-....#....#..#.......#........#.
-.......##.#......#.....#...##..
-..#.#........................#.
-.#.....#.##..............#.#...
-..#.#...#.#..#....#....#.......
-.#....##.....#....#........#...
-..#...........#.##....#...#....
-..#.##...#....#.#.....##...#...
-.......#...####...#...#.......#
-.#...#.........................
-.......................#.......
-.....#.#.........#..........#.#
-#.........#............###..#..
-.....#.#.............###.......
-...#..#........#.#.......#.....
-...................#....#......
-...#..#...#............#..##...
-...#.....#....#.......##......#
-.....#....#...##..#..#...#...#.
-..........#...........#.#.#....
-..#.......#...#.....#......#...
-.........#.......##......#..#.#
-..#.....#..#.###...#.#......#..
-#....#...#..#...#.....#........
-..#......#..#.......#.#.....#..
-#......#...#......#.....##.#...
-........##.......#.......#.....
-.#.#...............#...........
-..............#...#.#....#.....
-....#......#.#..#......#.......
-...##....#....#...#............
-.#...............#...........#.
-.#.#...#.#.....#.....#...#.#...
-...##...........#.....#..#...#.
-.#.#...##.#.#......#......#....
-.##.....#.......##....#.#.#....
-.......#...........#....#....#.
-....#...........#......#.####..
-......#....#...#...##.......#..
-......................#.#####..
-..#...#.#...#..#..#......#.....
-....#........##.......##....#..
-#.#......##.........##.#..#...#
-.#.#....#...#..#...#...##....#.
-.....##...#....#....#.#........
-......#..#....#.#...#..........
-.........#...................#.
-............#.###....#.#.......
-...#.#.....#......#....#.#..#..
-..............#..#.#.#.#.......
-#..##...................##.....
-..#.......#..#.........##..#...
-.........##...#......#........#
-..#.........#........##.###.#..
-...........#.#....#.....###....
-..#....##.#..#.##....#.....##..
-..#.....#.##..................#
-#....#.........................
-..............#..#...#.#.......
-......#..#.#.##....#..........#
-..#.........#.####.....#.......
-......#..#.#..........#...#....
-......#.................#..#.#.
-.....#..........#..............
-....#.....#............#....##.
-.....#.....#........#..........
-............#.....#...#........
-........#....#.#...............
-#.....#.........#......#..#.#..
-...#..#......#......#.......#..
-.....#......#.#....#..#...#...#
-......................#..##....
-.............#.........###....#
-#..............#.#..........##.
-...#.#.................##......
-...........#.#.....#...........
-.........#.................#.#.
-........#........#...#..##...#.
-........#......##.......###....
-..............#.#.#............
-.#.....###...##.#......#.....#.
-.............#......#.#.#...#.#
-..#.........#.......#.....#....
-......#........#...##......#...
-.##..........##......#.#.....#.
-..#.##....#....#...............
-......#...#..#.....#.....#...#.
-.......##..##..#............##.
-..............#...##........#..
-#....#................#..#.....
-........#.......#.#.#...#......
-......#.......#..............#.
-#.#..#...#........#....#..####.
-..#........#...........#.....#.
-.##...........................#
-.............#...........#.....
-.#.....#.#...#.........#.......
-..........#...#....#....#......
-.#..#........##....#...........
-.......###......##...#.........
-..........#.#.#..#.#....#......
-........##..#.........#....#...
-........#.#......#.#...#.#..#..
-....#....................#.##..
-##....#..#...........#.....#.#.
-...#..............##...##..#.#.
-......#.##.#.......#..#...#....
-....#..#..##.....#.....#.#....#
-.......#....##.##..............
-#..##....#.....#.#.............
-..................#......#..#..
-..#......#...#..#.......#...#..
-...........#....#.#.....#......
-#..#...##.........###..#......#
-.......#......................#
-#.......#....................#.
-..#..#..........#..#..#....#...
-.##..#..#.....#.#..##..........
-#..###.......#..##..#...#..#.#.
-.....##......###.....#.#.##...#
-..............#...#....#.#.....
-#...........#..................
-..............#....#..##..#..#.
-.........#.............#.......
-.#.#....#....#...............##
-.##.##.#.....###.....#.........
-....#..............##......#...
-....#........##................
-....#.....#....#....##....##...
-.#........#......#......#......
-....#..........#...............
-##..........#......#.....#.....
-........#.#..#.#..#.....##.....
-..##......#.#.......#.#..#.....
-.#.......#......#...........#..
-..#.#..#.#..................#..
-...#...#...#...##......#.......
-.#...##....#...#...#...#.......
-.......#.#.......#.............
-.#.##.#.....#...........#.##.#.
-.#.##.#........#...##..........
-.#.....#.....#....#..#.........
-...##.............##...........
-.#........##.....#.......#...#.
-...........#..#..##........##..
-.....#..#......................
-..#.......#....................
-.....#......#....#....#.......#
-........#..#.#.....#......#....
-..........#..#.....#......#....
-..........#####.....#........#.
-........#..#...#.#....#......#.
-.........#...#....#.#..........
-......#....##..........#...#...
-#..............###.#.#.........
-.#.#............##......#.#..#.
-......#........................
-...#..#......#.......#....#...#
-.......#....##.....#.#......##.
-...........#..........#..#.....
-...........#..#.....###......#.
-.......#....#..##......#.......
-.........#.#.#.......#..#...#..
-.......#.......##.....##...#...
-..............#....#.....#.....
-...#....#.....#.#..........##..
-###.........#.............#....
-...##......#.#........#....#..#
-#....###.......#...#.#......##.
-....#...##.......#......#.....#
-.....#......#..................
-#........##....#....#.#........
-........#.......###...#........
-........#..#.......###.........
-..............#......#..#......
-#......#.....#....#.#..........
-.#......##.#.#.....#...#.#....#
-.##...........#..#.##.....#....
-.....#.....................#...
-.#..#...#...##.#...#...........
-.......#.......##..#.#..#......
-.......##.....#.....#..........
-.................#.............
-#........#..#.......##.........
-#...#..###.#..#....#.#.###.....
-..#.......#.......#.......#....
-..............#............##..
-.#...#..#...##.........#....#..
-#...........#...#..............
-.......#.....#......#..#.....#.
-..........#......#.............
-##.........###..##.#....#..#.#.
-..............###..............
-#..##.............##.....#.....
-....##...................#..#..
-....#.....#..............#..#.#
-........#........##...#.....##.
-#...........#.##..........##...
-#......##.....#...............#
-..##..#....#.................#.
-#.......##.....................
-...............#.##..##......#.
-..#.##..#.#....#.......##......
-......##....#............##....
-.#..#..##.....#.##....#........
-#.........#..........#...#....#
-...#.......#.............#.#.#.
-..##............#...##........#
-.......#.#.#........#..........
-.....#.............#.....#.....
-.........#.........#.........#.
-#.....#....#.......#...........
-.........#....#.............#.#
-.##..#.......#...#......#......
-....#....#....#........#....#..
-............#.......#..#......#
-.#............#.##........##...
-..#...##...#....#...#.#...#..#.
-#...#..........#..##.........#.
-..#.........................#.#
-...........#.........#..#.##...
-.#..................#..#.......
-......#......#...........#..#..
-...##.....#.....#..#.......#...
-.........#.#.......#......#....
-...........#................#..
-.....#...#..#............##....
-.#.......#..#....#..........#..
-#.....#..#.....#..##.......##..
-...#.......#...#....#...#.#..##
-...#...##......#....#....#.....
-.......###.#..#.......#......#.
-........#.#...#..#..#...#....#.
-....#.........##.#.....#.......
-....#.........#..##........#...
-..#...........#......#....#.##.
-.....................#.........
-...................##......#..#
-......#.#.....##..##..........#
-..#.##........#.#.#..........#.
-.#.......#...##.#....#....#....
-#.#......#..#..#.......#.......
-.............#........#.......#
-....#...#.....#........#...#...
-..#..............##..#.........
-..#.................#..#...##..
-....#..#...#...................
-......#.........##.#..#..#...##
-........#..#....#.......#.#.##.
-.#...#...........#..........#..
-##.....#...#............##...#.
-.##.....#...#..................
-.#.......####.#..##.##.#......#
-.............#...#..#..#.......
-...#.##.........#.#....#.......
-...........##...##....#....##..
-........#......#...#...........
-...........#..#...#....#.##....
-..##....#..........#....#...#..
-#....#.#.#.......#.#...........
-......#............##..........
-#.#.###..#....#.......#...#....
-.#......##..#..#.#.........#..#
-..#.........#........#....#....
-......##.#.......##....#..#..##
-.............#...#............#
-......#......#...#.#.#.##.#....
-#.#...#.##.....#..............#
-..........#.............##.##..
-#......#....#...#.#.#.#..#....#
-........#........#...#.#......#
-.....#...........#.............
-...........#....#..........#...
-....####...#..##....#.#........
-.#......#...#..#...........#...
-#......###..#.##.###...........
-..#...........#.........#....#.
-................#.#....#..#.##.
-...................#......#....
-....#.#.....#.......#...###.##.
-.#........#.#....#...#..#...#..
-....#..###.................#..#
-.....#.#..#........#......#..#.
-....#.....#...............#...#
-............##.#.........#..#..
-.......#..#..##.#.#...##.......
-..#..........##..#..#........#.
-..............#..#...#.........
-......#.#....#........##.......
-.#.....##....#..#...#.......##.
-..............#.##.............
-#..#..#...##....##.#.....##.#..
-..#...###..#.........##........
-........##......#.....#..###...
-.....#......##.###.............
-....#.....#.#..#.#..#..........
-....#..#.......#...........#...
-.#.............#..#......##....
-..#.#......#.#.................
-.......#.#.#............#..#...
-......###....##............#..#
-.........#....#......#.........
-..........#...............#..#.




diff --git a/resources/input04.txt b/resources/input04.txt
deleted file mode 100644
index cecabe26162287d74e0cfc706e175c7bc43bce1c..0000000000000000000000000000000000000000
--- a/resources/input04.txt
+++ /dev/null
@@ -1,1056 +0,0 @@
-iyr:2013 hcl:#ceb3a1
-hgt:151cm eyr:2030
-byr:1943 ecl:grn
-
-eyr:1988
-iyr:2015 ecl:gry
-hgt:153in pid:173cm
-hcl:0c6261 byr:1966
-
-hcl:#733820
-hgt:166cm eyr:2025 pid:79215921 byr:1952 iyr:2014 ecl:blu
-
-eyr:2022
-hgt:165cm hcl:#733820
-iyr:2013 pid:073015801 ecl:oth
-cid:101
-
-iyr:2013
-ecl:brn hcl:#623a2f
-cid:246 byr:1948 pid:122719649
-hgt:160cm
-eyr:2026
-
-eyr:2028
-pid:229371724 hgt:154cm hcl:#ceb3a1 byr:2000 ecl:hzl iyr:2017
-
-eyr:2029 ecl:amb
-byr:1980
-hgt:177cm pid:914628384 hcl:#623a2f iyr:2013
-
-iyr:2019
-eyr:2026 hcl:#efcc98 pid:475316185 byr:1945
-hgt:76in
-ecl:amb
-
-pid:371759305 iyr:2018 hcl:#623a2f eyr:2026 byr:1984 hgt:174cm
-
-iyr:2010 pid:184800910 ecl:amb cid:108 eyr:2028
-hcl:#cfa07d
-
-iyr:2012 hcl:#b6652a hgt:160cm pid:223041037
-eyr:2029 byr:1920 ecl:oth cid:212
-
-pid:775975903
-hgt:163cm byr:1966
-eyr:2023 ecl:amb iyr:2010
-
-pid:465404256 hcl:#7a54af ecl:blu hgt:180cm iyr:2018
-eyr:2024 byr:1933
-
-hcl:#18171d
-iyr:2018 hgt:185cm
-byr:1929 eyr:2024
-ecl:oth
-pid:#b0990a
-
-byr:2017
-hcl:#cfa07d pid:184cm hgt:187in ecl:#e97c0d iyr:2022 eyr:2013
-
-hgt:176cm iyr:2019 eyr:2024 ecl:brn byr:1943
-pid:532967054 hcl:007b47
-
-pid:171225044 hcl:#888785 byr:1992 ecl:amb iyr:2012 eyr:2030
-hgt:180cm
-
-byr:1969
-pid:689216275 iyr:1934 eyr:2031 ecl:#e5bc14 hcl:#fffffd
-
-pid:166619054 cid:125 hcl:#cfa07d hgt:164cm byr:1946
-ecl:brn iyr:2014 eyr:2023
-
-ecl:#c1ae72 pid:458692331 hcl:#b6652a eyr:1966 byr:1951 iyr:2023
-
-cid:253 pid:9096156879 hcl:9911e5
-byr:2007
-iyr:2019 eyr:2033 hgt:181cm
-ecl:blu
-
-ecl:oth pid:180428876 iyr:2019 byr:2001 eyr:2024 hgt:172cm hcl:#7d3b0c
-cid:81
-
-hgt:167cm
-byr:2007 eyr:2030
-iyr:1961 ecl:lzr hcl:#cfa07d
-pid:#e254d8
-
-pid:377737133 hgt:160cm byr:1958 hcl:#866857 ecl:oth iyr:2015 eyr:2022 cid:350
-
-hgt:188cm
-eyr:2025 ecl:brn hcl:#efcc98
-iyr:2015 pid:321192707
-byr:1996
-
-byr:1956 iyr:2018 hcl:#b6652a
-eyr:2024
-ecl:blu cid:343
-hgt:152cm pid:192659885
-
-hgt:163cm
-iyr:2012 byr:1952 eyr:2022 hcl:#efcc98 ecl:grn pid:337866006
-
-cid:134
-byr:1941 eyr:2027 ecl:oth
-iyr:2012 pid:303690324 hcl:#7d3b0c
-
-ecl:grn byr:1945 eyr:2028 hcl:#cfa07d iyr:2012 cid:108 pid:388941584 hgt:171cm
-
-pid:962215061 ecl:brn iyr:2019 eyr:2025 cid:163 hcl:#cfa07d byr:1958 hgt:187in
-
-ecl:amb
-byr:1989 pid:118257086 iyr:2019 cid:320 hgt:158cm eyr:2027 hcl:#733820
-
-pid:813286578
-iyr:2019 eyr:2031 hcl:#341e13 hgt:161cm byr:1950
-ecl:oth
-
-byr:1976 ecl:blu
-eyr:2024
-hcl:#fffffd
-hgt:153cm pid:552154655 iyr:2019
-
-eyr:2025 pid:109518209 iyr:2013 byr:1923
-hgt:162cm
-ecl:oth
-
-hgt:178cm byr:2007 hcl:#7f431f pid:7365694093 eyr:2037
-ecl:blu iyr:2018
-
-eyr:2021
-cid:105 iyr:2013 byr:1995 ecl:grn hgt:181cm
-pid:733189859 hcl:#b6652a
-
-hcl:#6b5442 eyr:2028 iyr:2013 byr:1958 hgt:169cm
-ecl:gry pid:651263830
-cid:51
-
-iyr:2018 cid:59 eyr:2027 ecl:blu
-hgt:174cm pid:269821917 byr:1971
-
-byr:1936 eyr:2025 ecl:hzl hcl:#b6652a
-iyr:2019
-pid:670202082
-hgt:186cm
-
-byr:1958
-ecl:gry hcl:#7d3b0c pid:000522430 eyr:2020
-hgt:168cm
-
-iyr:2015 eyr:2022
-pid:630105579 hcl:#7d3b0c byr:1935
-ecl:gry hgt:153cm
-
-ecl:gry hcl:#fffffd hgt:172cm byr:1944
-eyr:2021
-iyr:2013 cid:58 pid:554670072
-
-byr:1983
-eyr:2022
-iyr:2012 hgt:176cm
-ecl:brn pid:201965494 hcl:#dd8296
-
-cid:124 byr:1935 eyr:2020 ecl:blu
-hcl:#a97842 pid:666776663 iyr:2010
-hgt:68in
-
-byr:1943 pid:139343878 hgt:181cm hcl:#733820 cid:206 iyr:2018 ecl:brn
-eyr:2029
-
-pid:114742677
-ecl:amb hgt:160cm
-byr:1975 eyr:2030
-hcl:#866857
-
-iyr:2012 ecl:amb hgt:170cm pid:221200950 eyr:2028
-hcl:#733820 cid:274
-
-eyr:2020
-pid:167438086 iyr:2020 hcl:#fffffd hgt:178cm byr:1996
-ecl:blu
-
-iyr:2015 hcl:#b6652a
-pid:905439259
-byr:1962 cid:209 ecl:brn hgt:150cm eyr:2024
-
-iyr:2016 ecl:amb
-pid:855119486
-cid:77
-hgt:192cm byr:1947 eyr:2021 hcl:#888785
-
-hcl:#341e13
-iyr:2011 hgt:157cm eyr:2030
-pid:103806645 cid:90 ecl:grn byr:1976
-
-hcl:#fffffd byr:1957
-cid:284 eyr:2026
-pid:031705251 iyr:2019
-hgt:166cm
-
-eyr:2019 byr:2019 hgt:167in
-iyr:2014 ecl:gmt
-
-hcl:#18171d cid:93
-eyr:2027
-iyr:2013
-pid:821161144 ecl:brn byr:2002 hgt:170cm
-
-hgt:181cm
-byr:1972 iyr:2018 hcl:#fffffd
-pid:745667222 eyr:2023
-ecl:hzl
-
-hcl:#602927 byr:1996 ecl:blu pid:503245375
-hgt:166cm eyr:2028 iyr:2018
-
-hgt:59in byr:1966
-ecl:oth iyr:2016 eyr:2029 hcl:#866857
-
-cid:179 iyr:2012 hgt:182cm eyr:2024 pid:451186596 hcl:#6b5442 ecl:blu
-
-eyr:2023 iyr:2016
-hcl:#18171d hgt:173cm cid:182 pid:979409688 ecl:brn byr:1972
-
-iyr:2014 eyr:2027 byr:1977 ecl:brn hgt:171cm hcl:#b6652a pid:124307431
-
-byr:1929 pid:048990845 ecl:hzl hgt:193cm cid:159 hcl:#b6652a eyr:2028
-
-ecl:gry hgt:181cm iyr:1934 byr:1970
-eyr:2015 pid:5818817055 cid:98
-
-hgt:179cm
-iyr:2014
-eyr:2030
-pid:397317466 byr:1967
-hcl:#a97842
-ecl:grn
-
-pid:138485312 ecl:hzl
-hgt:151cm
-iyr:2010 hcl:#866857 byr:1936 cid:345 eyr:2021
-
-ecl:oth
-pid:687490850 eyr:2028 hcl:#9bd268 hgt:157cm iyr:2012 byr:1994
-
-byr:1933 pid:575158994 hgt:192cm iyr:2017 eyr:2022 hcl:#602927
-ecl:gry
-
-iyr:2012
-hcl:#7d3b0c
-ecl:oth
-eyr:2023 pid:615952261 byr:1959
-hgt:152cm
-
-byr:2010
-iyr:2011 hcl:z ecl:grn hgt:152cm pid:6079261766
-
-hcl:#18171d iyr:2012
-byr:1986 ecl:blu
-pid:836367740 hgt:191cm eyr:2024 cid:200
-
-ecl:blu pid:909247319 iyr:2019 eyr:2026 byr:1958
-hgt:170cm
-hcl:#b6652a cid:256
-
-eyr:2027 hcl:#efcc98 iyr:2010 hgt:191cm ecl:brn byr:1933
-
-byr:1921
-pid:414637667 hcl:#8d840f cid:291 iyr:2013 ecl:amb eyr:2029 hgt:172cm
-
-byr:1961 iyr:2020 eyr:2025 pid:675731511 hgt:71in
-ecl:blu hcl:#623a2f
-
-byr:1959 iyr:2002
-hcl:#ceb3a1 eyr:2027 ecl:#633ff4
-pid:815877728
-
-ecl:gry pid:812104470 byr:1938
-hgt:70cm
-eyr:2028 cid:285 iyr:2016 hcl:#b6652a
-
-cid:99 hgt:152cm byr:1971
-eyr:2020 hcl:#733820
-ecl:gry
-iyr:2012 pid:020521112
-
-pid:803066169 hgt:157cm iyr:2014 hcl:#b6652a eyr:2025 ecl:brn byr:1981
-
-hcl:fafcd9 eyr:2021
-hgt:76in
-pid:359286290 cid:207 iyr:2018 ecl:grt
-
-pid:179471060 byr:1966 ecl:amb hcl:#18171d eyr:2029 iyr:2015 hgt:190cm
-
-hcl:#efcc98 ecl:gry
-byr:1942
-eyr:2026 iyr:2011
-hgt:158cm pid:721512314
-
-ecl:oth eyr:2024 hcl:#8bc738
-hgt:167cm iyr:2014 pid:729168992
-
-hcl:#b6652a
-pid:179977662
-iyr:2018
-ecl:gry
-byr:1973
-hgt:155cm
-cid:126 eyr:2030
-
-byr:2012 eyr:1955 hcl:z iyr:1981 pid:#66167e hgt:175in ecl:grt
-
-hgt:154cm cid:301 iyr:2010 hcl:#7d3b0c pid:573851812 ecl:grn eyr:2030
-
-pid:601712917 ecl:hzl eyr:2001 cid:70 hgt:162cm hcl:#6b5442 iyr:2018
-byr:1959
-
-hgt:183cm byr:1996 eyr:2023 hcl:#866857 iyr:2018 pid:259910953 ecl:brn
-
-pid:751991211 hcl:z iyr:2015 eyr:2024 byr:1939 ecl:oth hgt:161cm
-
-eyr:2026 byr:1947
-ecl:grn iyr:2018 cid:248 hcl:#ef5900 hgt:66in
-
-iyr:2028 eyr:1994 pid:9211015765
-ecl:amb
-hcl:cd429d
-byr:2013
-hgt:176cm
-
-hgt:193cm ecl:amb eyr:2023
-iyr:2020 byr:1933
-cid:50
-hcl:#efcc98 pid:482745318
-
-byr:2014 pid:619629999
-ecl:oth hgt:159cm eyr:2027 iyr:2018 hcl:#b6652a
-
-hcl:#b6652a eyr:2028 byr:1921
-ecl:blu
-pid:866536313 hgt:185cm iyr:2020
-
-eyr:2027 pid:904225608 iyr:2010 cid:57 hgt:161cm hcl:#83ee3c ecl:gry byr:2001
-
-byr:1968 pid:120450875 iyr:2018 hgt:165cm ecl:grn eyr:2022 hcl:#7d3b0c
-
-hcl:#a97842 byr:1964
-eyr:2027 ecl:oth hgt:186cm iyr:2010
-cid:226 pid:632344779
-
-pid:135449714
-cid:348 iyr:2019
-hcl:#602927
-ecl:oth eyr:2029
-hgt:184cm byr:1992
-
-eyr:2027
-byr:1929 hgt:181cm hcl:#fffffd iyr:2019 pid:369478657
-ecl:blu
-
-hgt:177cm eyr:2021 iyr:2016 ecl:gry byr:1938 hcl:#602927 pid:034365656
-
-iyr:2020 hcl:#866857
-eyr:2028
-pid:183612456 ecl:#9e25d3 hgt:159cm byr:1934
-
-pid:664990234 hcl:#efcc98 cid:185 iyr:2018
-ecl:brn
-hgt:192cm
-byr:1942
-eyr:2029
-
-eyr:2027
-hgt:163cm pid:760854338 cid:228
-byr:1958 iyr:2014
-hcl:#efcc98 ecl:gry
-
-iyr:2014
-hcl:#18171d hgt:157cm ecl:amb eyr:2025 byr:1957 pid:347369874
-
-pid:013801431 byr:1999
-hgt:181cm eyr:2029
-ecl:amb iyr:2010
-hcl:#b6652a
-
-hgt:153 eyr:2030 byr:2022
-hcl:z cid:84 ecl:hzl iyr:2020
-
-cid:315 iyr:2011
-hgt:151cm hcl:#ffb5f9
-pid:427813663 byr:1999 ecl:brn eyr:2025
-
-eyr:2024
-cid:205 byr:2000 iyr:2020 hgt:173cm ecl:gry
-
-eyr:2026 byr:1996 iyr:2018 ecl:grn hgt:158cm pid:026432567 hcl:#602927
-
-iyr:2014
-ecl:hzl
-byr:1964 eyr:2020 hgt:184cm pid:031793197 hcl:#fffffd
-
-ecl:oth hgt:165cm byr:1982 pid:172329608 hcl:#733820
-iyr:2019
-eyr:2020 cid:347
-
-byr:2014 iyr:2011 hgt:179cm
-hcl:z eyr:2020 ecl:grt
-cid:134
-
-ecl:gry
-iyr:2011 hcl:#a97842
-byr:1942 pid:789953865 cid:172 hgt:180cm eyr:2027
-
-hgt:179cm pid:975853536
-iyr:2018 byr:1989 hcl:#602927
-eyr:2021 ecl:amb
-
-byr:2011
-iyr:2015
-ecl:oth
-hcl:85d233 cid:207 eyr:2020 hgt:138 pid:6169876
-
-ecl:hzl eyr:2029 hcl:#efcc98
-hgt:188cm iyr:2018 cid:143 byr:1973
-
-hcl:#ceb3a1 pid:762609805
-byr:1962
-hgt:150cm
-iyr:2016 eyr:2024 ecl:oth
-
-iyr:2012
-pid:181821528 byr:1922 ecl:gry hcl:#a97842 hgt:169cm eyr:2028
-
-eyr:2029 pid:776605704 byr:1964 hgt:175cm hcl:#623a2f ecl:grn
-iyr:2011
-
-byr:1989 iyr:2019
-ecl:gry pid:397990288
-hcl:#602927 hgt:67in eyr:2030
-cid:259
-
-hcl:#866857 iyr:2018 ecl:blu byr:1938 cid:227 eyr:2028 hgt:171cm
-pid:779192850
-
-byr:1974 hcl:#cfa07d eyr:2026 hgt:59in cid:51 iyr:2019
-ecl:oth pid:091591737
-
-byr:1952 cid:301 pid:804465935 hgt:152cm eyr:2025 hcl:#888785
-iyr:2013 ecl:hzl
-
-hcl:6a32f0 eyr:2027
-iyr:2014
-ecl:amb byr:1933 cid:185
-hgt:75cm
-
-byr:1945 hcl:#b6652a
-hgt:163cm ecl:brn eyr:2025 iyr:2015 pid:829875350
-
-byr:1940 hgt:174cm iyr:2014 pid:9989523268 ecl:gry eyr:2026
-hcl:#efcc98
-
-iyr:2011 ecl:lzr
-byr:1998 hgt:182cm
-eyr:2029 hcl:z
-
-pid:091142801
-hcl:#c0946f byr:1983 ecl:blu iyr:2017 hgt:183cm eyr:2027
-
-ecl:oth iyr:2011 hgt:158cm byr:1950 pid:902512428 hcl:#623a2f eyr:2028
-
-eyr:2020
-iyr:2020
-ecl:oth byr:1938 hcl:#d5eb7e
-pid:829945241 hgt:171cm
-
-byr:1971
-pid:998912876 eyr:2022
-iyr:2012 hcl:#cfa07d cid:338 ecl:brn
-hgt:183cm
-
-ecl:amb hcl:#7d3b0c pid:331124964 iyr:2013 byr:1945 hgt:189cm eyr:2028
-
-pid:012740434 iyr:2019
-byr:1998
-hgt:172cm eyr:2028
-cid:102 hcl:#866857
-ecl:amb
-
-hcl:#866857
-eyr:2027 hgt:181cm byr:1954 ecl:blu
-iyr:2010
-pid:211721858
-
-byr:1984 pid:876360762 hgt:72cm
-eyr:2040 hcl:a60c15 iyr:1948 ecl:lzr
-
-hgt:167cm byr:1930 ecl:oth pid:740024142 eyr:2024 hcl:#341e13
-iyr:2018
-
-byr:1968 hcl:#623a2f ecl:brn
-cid:210 hgt:155cm
-iyr:2017 pid:216618180 eyr:2024
-
-byr:1966 pid:131332466 hgt:174cm ecl:amb
-hcl:#733820
-iyr:2013 eyr:2023
-
-eyr:1985
-pid:#fde6c1
-hcl:z byr:2017 iyr:2027 hgt:163cm
-
-iyr:2016 ecl:hzl hgt:171cm
-hcl:#888785 pid:390140479 byr:1976
-
-cid:327 eyr:2023 byr:1954
-hgt:192cm iyr:2012
-pid:413357852 ecl:blu
-
-iyr:2014 ecl:hzl hgt:154cm byr:1962 pid:904474869 hcl:#6b5442 eyr:2023
-
-ecl:hzl iyr:2012 eyr:2027 pid:663644982 hgt:175cm cid:56
-byr:1980 hcl:#ceb3a1
-
-eyr:2020 iyr:2012 hgt:190cm byr:1993 hcl:#a97842
-ecl:amb pid:418635216
-
-pid:845398140
-byr:1933 iyr:2016 ecl:oth eyr:2024 hcl:#cfa07d hgt:169cm
-
-eyr:2040 hgt:161cm
-byr:2018 ecl:blu
-iyr:2022 hcl:#866857 cid:252
-pid:286344655
-
-hcl:#6b5442
-eyr:2027
-hgt:191cm iyr:2012
-pid:642929864 ecl:amb byr:1934
-
-iyr:2015 hcl:#cfa07d ecl:grn
-eyr:2029 pid:163012663 hgt:150cm
-
-eyr:2030 byr:1938 hgt:188cm iyr:2018
-pid:652645847 hcl:#b6652a ecl:grn
-
-pid:157056211 iyr:2010 hcl:#cfa07d ecl:gry
-eyr:2024 byr:1961 hgt:177cm
-
-eyr:2020 hcl:#60945e ecl:brn iyr:2011 pid:688090869 hgt:171cm
-byr:1941
-
-eyr:2023 hgt:188cm byr:1964 hcl:#7d3b0c ecl:gry iyr:2017
-
-byr:1996
-hcl:#733820 pid:142902538
-eyr:2023 iyr:2012 ecl:oth
-hgt:166cm
-
-hgt:62in cid:125 eyr:2022 hcl:#b6652a iyr:2011
-ecl:amb pid:220826562
-
-ecl:grn hgt:72in byr:1991 eyr:2020 pid:281076310 hcl:#6b5442
-
-iyr:2030 hgt:78 eyr:1966 byr:2008 cid:260 ecl:grt hcl:5d2e21
-
-iyr:2017 pid:388674097 byr:1950 ecl:grn cid:338
-hgt:159cm
-hcl:#6b5442
-eyr:2025
-
-hgt:92 eyr:2031 cid:52 pid:169cm hcl:2695be
-iyr:1987
-byr:2011
-
-pid:396358436 hcl:#ceb3a1
-byr:1976 eyr:2025
-iyr:2012 ecl:brn
-hgt:174cm
-
-pid:389292752
-eyr:2027 cid:335 hgt:65in byr:1974 hcl:#6b5442 ecl:oth iyr:2019
-
-ecl:amb iyr:2010 hcl:#602927 hgt:164cm byr:1966 pid:749383114 eyr:2026
-
-pid:656206688
-hgt:175cm
-hcl:#6b5442 byr:1961 eyr:2028
-ecl:amb iyr:2010
-
-hgt:179cm eyr:2028 byr:1958
-pid:095076581 ecl:gry
-hcl:#733820
-iyr:2017
-
-byr:1960
-cid:309 ecl:utc iyr:2012
-hgt:172cm pid:395100903
-eyr:2030 hcl:#cfa07d
-
-eyr:2021 cid:98 pid:387957353 byr:1941
-hgt:192cm
-hcl:#efcc98 ecl:brn
-
-pid:143359781
-hcl:#a97842
-byr:1996
-hgt:184cm eyr:2020 cid:319 ecl:blu iyr:2020
-
-eyr:2025 iyr:2013 hgt:154cm hcl:#b6652a ecl:oth byr:1979 pid:976151938
-
-iyr:2017
-hgt:118 ecl:#f0f31e
-eyr:2028
-hcl:z
-
-iyr:2016 hgt:153cm hcl:#6d55cd eyr:2026 ecl:hzl byr:1943 pid:257485710 cid:165
-
-hcl:#ceb3a1 ecl:blu byr:1937 hgt:152cm iyr:2020 eyr:2026 pid:032844291
-
-hcl:#fffffd byr:1937 pid:122104515 ecl:hzl
-iyr:2018
-eyr:2027 hgt:163cm
-
-byr:1987 pid:052848077 hcl:#341e13
-iyr:2015 hgt:172cm eyr:2022
-
-pid:897642631 iyr:2015 byr:1941 hcl:#733820 ecl:brn eyr:2020 hgt:179cm
-
-hcl:#7d3b0c ecl:grn eyr:2029 pid:232785519 cid:258 iyr:2013 byr:1999
-
-hgt:152cm ecl:gry hcl:#18171d eyr:2020 byr:1971 iyr:2020 pid:211826434
-
-hcl:#866857
-eyr:2022 pid:979633771 ecl:hzl iyr:2014 byr:1963
-
-cid:124
-ecl:utc hgt:77 hcl:#866857
-byr:1979 iyr:2013
-pid:92518200 eyr:1968
-
-hcl:#888785 eyr:2022 pid:233642738 byr:1959 hgt:191cm
-ecl:blu iyr:2010
-
-pid:#adbcd3 ecl:zzz eyr:2025 cid:129 byr:2028 hcl:z hgt:166cm iyr:2011
-
-cid:131 hgt:169cm
-iyr:2020
-byr:1994
-eyr:2021
-ecl:amb hcl:#c0946f
-pid:243158461
-
-hcl:#18171d byr:1980 ecl:oth hgt:153cm eyr:2028 iyr:2020 pid:629055498
-
-hcl:#b6652a
-hgt:152 ecl:blu pid:175cm iyr:2015 byr:1941 eyr:1961
-
-eyr:2025 hcl:#7d6ede byr:1988
-hgt:150cm
-ecl:hzl cid:267
-pid:794369607
-iyr:2012
-
-pid:538963835
-ecl:oth byr:1958
-hgt:173cm
-eyr:2027 cid:63
-iyr:2018 hcl:#602927
-
-hcl:#866857
-hgt:163cm byr:1925 iyr:2011
-ecl:oth
-eyr:2023 cid:163
-
-ecl:grn pid:411555227 byr:1974 eyr:2020 hgt:153cm iyr:2015 hcl:#a97842
-
-cid:111 pid:473064654 byr:1948
-ecl:brn iyr:2013
-hcl:#16fa7a
-eyr:2024 hgt:184cm
-
-iyr:2016 hgt:170cm byr:1993 pid:487807940 hcl:#efcc98 eyr:2024 ecl:gry
-
-hcl:#a97842 pid:891517350 iyr:2012
-byr:1937
-ecl:amb
-eyr:2030
-hgt:171cm
-
-cid:330 ecl:gry
-hgt:163cm eyr:2021
-hcl:#733820 byr:1991 pid:109734880
-
-ecl:brn iyr:1934 eyr:2021
-hgt:62
-hcl:z pid:720470429
-
-ecl:blu
-pid:669045673 iyr:2015
-hgt:164cm
-hcl:#866857
-
-hgt:158cm hcl:#623a2f byr:1950
-eyr:2020 ecl:gry pid:708073090
-iyr:2018
-
-hgt:158cm iyr:2017 eyr:2027
-ecl:brn pid:840573419 hcl:#18171d byr:1968
-
-ecl:oth cid:81 hcl:#ceb3a1 eyr:2021
-iyr:2020 byr:1959
-hgt:62in
-pid:634019849
-
-hgt:180cm pid:651174767 iyr:2013 byr:1948 eyr:2022 hcl:#efcc98 ecl:grn
-
-eyr:2021 ecl:grn
-cid:95 hcl:#733820 iyr:2016 hgt:174cm byr:1931
-
-hcl:90e96c eyr:1948 ecl:zzz
-byr:1984 pid:8325286529
-hgt:59in
-cid:180
-
-cid:293 hgt:193cm ecl:oth hcl:#602927
-eyr:2021 byr:1959 iyr:2016
-
-pid:425216058
-hcl:#7d3b0c hgt:67in ecl:blu eyr:2022
-iyr:2016 byr:1936 cid:182
-
-ecl:#c93c79 byr:2021 iyr:2021
-hgt:69cm pid:#fa092e eyr:2040
-
-hcl:#733820 iyr:1964
-hgt:190cm
-pid:121828083 byr:2028 ecl:blu eyr:2030
-
-byr:1986
-eyr:2023 ecl:hzl hcl:#c0946f hgt:152cm pid:750393977 cid:308 iyr:2015
-
-hgt:152cm byr:2004 hcl:z eyr:2038 ecl:#e92725 iyr:2023 pid:55783937
-
-ecl:grn eyr:2023 hcl:#7d3b0c byr:1940 iyr:2017 pid:312213917 hgt:166cm
-
-ecl:grn pid:293691668
-byr:1949 hgt:60in
-eyr:2021
-hcl:#efcc98 iyr:2017
-
-iyr:2018 hgt:156cm ecl:oth
-hcl:#ceb3a1
-pid:622764582 eyr:2020 cid:124
-
-eyr:2021
-pid:146888876 byr:1962 iyr:2010 cid:63 ecl:amb hgt:188cm hcl:#a97842
-
-pid:861542171 hcl:#866857
-ecl:brn
-iyr:2010 byr:1975
-eyr:2020
-
-hgt:157cm hcl:#18171d eyr:2022 byr:1936 iyr:2014 pid:478341738 ecl:amb
-
-ecl:brn
-eyr:2026
-pid:553753060 hgt:186cm
-iyr:2019
-hcl:#623a2f
-byr:1991
-
-iyr:2018 ecl:blu hcl:#cfa07d hgt:162cm byr:1924 pid:721804049 eyr:2023
-
-byr:1970 hgt:181cm eyr:2027 ecl:hzl pid:171cm iyr:2012 hcl:#5f4282
-
-cid:52
-ecl:blu iyr:2011
-pid:027908077 hcl:#b6652a hgt:158cm
-byr:1986
-
-pid:160cm hcl:91324c eyr:2034 iyr:2015
-byr:2021
-hgt:175in ecl:brn
-
-cid:164 iyr:2014 byr:1948 hgt:163cm pid:701930596 ecl:gry
-eyr:2020 hcl:#733820
-
-byr:1951 hcl:#fffffd pid:456803587 hgt:157cm ecl:blu iyr:2010 eyr:2020
-
-ecl:#663e48
-pid:9157891148 hgt:66cm iyr:1989
-byr:1932
-
-byr:1993
-hgt:167cm
-ecl:amb iyr:2010 hcl:#3da943 pid:340209998 eyr:2021
-
-byr:1968
-eyr:2021 pid:915482982 hcl:#84a907 iyr:2020 hgt:176cm ecl:grn
-
-hgt:190 ecl:oth hcl:#6b5442
-byr:2023
-pid:5211866539
-iyr:2028 cid:276
-
-hcl:#ceb3a1 hgt:177cm byr:1966
-pid:#9f5b93
-iyr:2002 eyr:1958
-ecl:oth
-
-hcl:#888785 eyr:2025 iyr:2017
-hgt:187cm pid:856993600 ecl:oth
-
-hgt:186
-hcl:z
-eyr:2025
-byr:2013 pid:6869591443 ecl:oth
-
-iyr:2015 pid:317156655 cid:144
-hgt:151cm hcl:#623a2f ecl:brn
-byr:1966 eyr:2021
-
-ecl:hzl pid:161653223 eyr:2026 iyr:2017 byr:1980
-hcl:#18171d
-
-iyr:2009
-pid:618443261
-byr:1989 hcl:#23ef8c eyr:2026 hgt:167cm ecl:grn
-
-ecl:oth
-hcl:#fffffd iyr:2018 eyr:2022 pid:953490888
-
-eyr:2026 hcl:#c0946f hgt:165cm iyr:2016 byr:1921
-ecl:blu pid:490419824
-
-hgt:150cm hcl:#b6652a ecl:brn byr:1937 iyr:2013 pid:824096447 eyr:2027
-
-ecl:amb
-hcl:#733820 byr:1997 iyr:2015 cid:269 hgt:96 eyr:2022 pid:475968048
-
-byr:1985 hgt:186cm eyr:2022 ecl:gry
-pid:050842095 iyr:2014
-
-ecl:hzl byr:1942 cid:294 hgt:191cm pid:768437232
-eyr:2024 hcl:#623a2f
-
-byr:1974 eyr:2022 hcl:#afb1a8 ecl:oth
-hgt:159cm
-cid:252
-pid:619988658 iyr:2018
-
-ecl:oth eyr:2029 hgt:175cm
-pid:548668762 byr:1982 iyr:2020 hcl:#c0946f
-
-ecl:gry hcl:#18171d
-hgt:166 pid:#3f6172 iyr:1978
-eyr:2031 byr:2021
-
-byr:1933 hcl:#c0946f ecl:gry eyr:2028
-pid:594772420
-hgt:167cm
-iyr:2020
-
-cid:332 hcl:#623a2f iyr:2018 pid:706055429 byr:1971 eyr:2022 ecl:gry
-
-hgt:187cm hcl:#888785
-pid:224041851 eyr:2029
-ecl:blu iyr:2012 byr:1991
-
-ecl:#9c38d0
-hgt:161in
-hcl:099d45 byr:2015 eyr:1994
-pid:2730108307
-iyr:2024 cid:229
-
-hgt:184cm ecl:grn byr:1938 pid:996091727
-cid:115
-hcl:#866857 iyr:2020 eyr:2020
-
-pid:883396674 iyr:2019
-eyr:2023 ecl:blu
-byr:1979 hcl:#733820 cid:125
-hgt:181cm
-
-hgt:190cm cid:325 hcl:#866857 eyr:2027 ecl:gry
-iyr:2013 pid:317703100 byr:1968
-
-hcl:#866857
-ecl:gry pid:652638412
-eyr:2025 iyr:2015 hgt:158cm byr:1953
-
-byr:1956
-hcl:#cfa07d eyr:2025
-pid:728272575 hgt:162cm
-cid:291 ecl:blu iyr:2020
-
-hgt:189cm byr:1980 hcl:#97fd64 ecl:grn iyr:2013
-pid:181599378 eyr:2029
-
-iyr:2018
-hcl:#007101 ecl:brn byr:1947 cid:265 hgt:159cm pid:288707610 eyr:2024
-
-hgt:62cm pid:2407695078
-eyr:2039 byr:2014
-iyr:1930 hcl:z
-ecl:grt
-
-hgt:65cm
-ecl:hzl
-byr:1994 eyr:2004 hcl:z cid:130 pid:863191800
-
-pid:125685599 byr:1995
-ecl:blu cid:57 hgt:172cm
-iyr:2020
-hcl:#b6652a
-eyr:2024
-
-ecl:gry byr:1961
-iyr:2010 eyr:2022 pid:591409441
-cid:314
-hcl:#341e13
-
-iyr:2020
-ecl:hzl hcl:#efcc98 byr:1983 hgt:174cm
-eyr:2028
-
-eyr:2029 byr:1924 iyr:2013 pid:662719101
-ecl:amb cid:77
-
-ecl:oth
-iyr:2013 byr:1947 pid:532607157 hcl:#7d3b0c eyr:2030 hgt:191cm
-
-pid:528940525 hcl:#18171d
-iyr:2014 eyr:2029 cid:181
-byr:1967
-ecl:gry hgt:64in
-
-hgt:71in iyr:2019 hcl:#cfa07d eyr:2029
-pid:785691813
-byr:1996 ecl:hzl cid:335
-
-byr:2015
-pid:174cm hgt:79 hcl:z iyr:1970 cid:66 eyr:1993 ecl:lzr
-
-hgt:188cm
-eyr:2025 cid:107 ecl:grn
-pid:286480470 hcl:#623a2f byr:1967
-iyr:2015
-
-eyr:2027 hcl:#7d3b0c cid:287
-pid:319840760 iyr:2017 hgt:179cm ecl:gry
-
-byr:1976 ecl:brn iyr:2020 eyr:2023 hgt:154cm pid:964286153
-
-iyr:2015 eyr:2027 hgt:173cm byr:1983 pid:500176757 ecl:amb hcl:#7d3b0c
-
-cid:282 pid:697942299 hgt:185cm
-eyr:2026 hcl:#7d3b0c iyr:2017 byr:2002 ecl:amb
-
-iyr:2014 hcl:#18171d pid:044482202
-ecl:oth
-hgt:163cm eyr:2021 byr:1982
-
-ecl:gry hcl:#7d3b0c
-iyr:2019 eyr:2020 hgt:187cm
-pid:617117265
-
-eyr:2035
-ecl:#5525a9 cid:123 byr:2009 pid:15381071 iyr:2028
-hcl:#b6652a
-
-eyr:2021 hgt:165cm cid:207
-iyr:2010 ecl:gry
-byr:1929 hcl:#733820 pid:442632632
-
-pid:69132960 cid:84 hgt:107 eyr:2023
-ecl:gmt iyr:2016
-hcl:z
-byr:2020
-
-eyr:2027 pid:281765118 hcl:#ceb3a1 hgt:193cm
-byr:1955 ecl:gry cid:321 iyr:2010
-
-ecl:brn hgt:71in
-cid:189 byr:1962 eyr:2023 iyr:2018 pid:780797141 hcl:#866857
-
-pid:984503466 ecl:amb hgt:192cm byr:1942 hcl:#dcc50d iyr:2020 eyr:2030 cid:250
-
-hcl:#7d3b0c eyr:2028
-hgt:178cm
-ecl:gry
-iyr:2011
-byr:1923
-pid:960277768
-
-byr:2000 ecl:amb cid:199 eyr:2027 iyr:2020 pid:785585164 hcl:#888785
-hgt:164cm
-
-iyr:2015 pid:619005249
-ecl:brn byr:1955 eyr:2028
-hgt:183cm
-hcl:#a97842
-
-ecl:grn
-byr:1970 cid:339
-iyr:2011 hcl:#a97842 pid:952307953 eyr:2027 hgt:159cm
-
-hcl:ff4451 iyr:2022
-byr:1972 ecl:#86cbc5 pid:29044223 eyr:1985
-hgt:62cm
-
-hcl:#623a2f iyr:2013 eyr:2023 hgt:164cm byr:1956
-ecl:oth
-
-eyr:2028 hcl:#733820 pid:767003752 byr:1935 hgt:167cm iyr:2016
-ecl:oth
-cid:215
-
-cid:125 ecl:amb
-iyr:2019 hcl:#18171d eyr:2022 hgt:163cm
-pid:239764055
-byr:1954
-
-ecl:gry
-iyr:2019 hcl:#cfa07d byr:1929 pid:221011852
-cid:274 eyr:2026 hgt:158cm
-
-hcl:#a97842 iyr:2016 hgt:159cm
-byr:1998 ecl:hzl eyr:2020 cid:207
-
-pid:051242790
-iyr:2024
-byr:1975 hcl:#602927
-ecl:grn hgt:160cm eyr:2014
-
-ecl:#0b3ea5 hcl:z pid:#122ff0
-byr:2007
-hgt:178 iyr:2013
-eyr:1950
-
-hgt:171cm hcl:#cfa07d pid:674448249
-ecl:hzl eyr:2026
-cid:297 byr:1928
-
-ecl:hzl eyr:2021 hcl:#b6652a pid:856617617
-byr:1949
-hgt:153cm iyr:2015
-
-hgt:164cm ecl:gry
-eyr:2025
-pid:147932207 iyr:2011 byr:1984 hcl:#fffffd
-
-eyr:2027 hcl:#7d3b0c
-pid:377701492 ecl:gry byr:1971 hgt:174cm
-iyr:2023
-
-byr:2001 hcl:#4784a2 hgt:161cm iyr:2014 eyr:2025 pid:955262336
-ecl:amb




diff --git a/resources/input05.txt b/resources/input05.txt
deleted file mode 100644
index 17dfa0b17f1390a7319a15ec730cdc959fa9700b..0000000000000000000000000000000000000000
--- a/resources/input05.txt
+++ /dev/null
@@ -1,859 +0,0 @@
-BBFFBFFRRR
-FBBFFBBLRR
-FFBFBFBRRR
-FFFBFBFRRR
-BBFFBBFLRR
-BFFBFBFLRL
-FBBBBBFRRR
-FFFFBFFLLR
-BFBFFBFLLR
-FFBBFFFLRR
-BFFFFFFLLL
-FBFFBFFRLL
-FFBFFBFRLR
-FBBBFBFRRR
-FBFFBBBRRL
-FBFFBFFLRL
-BFBBFFFLLL
-FBBFBFBRRL
-BFFBFFFLRR
-FFFFBFFRLR
-FFFBBBFRLR
-FBFFFBFLLL
-BFBFBBBLRR
-FBBBFFBRLR
-BBFFFFFLLL
-BFFFFBFRRL
-FBBBFBFRRL
-FFBBBFBRLR
-FFFFBBFLLL
-FBFBFBBRLL
-BFFFBFBRLL
-FFBFBFBRLR
-FBFFFBBRLR
-BBFFFBBLRR
-BFFBBFFRRL
-BFBBBFFRRR
-FFBFBFFRRL
-FBFBBFBLLR
-BFFBFBBRRR
-BFFFFBFLLR
-FFFBFFFRRR
-FBFFFBFRLR
-BFBFFBFRLR
-FBBBFFFLLR
-FBBFFBFLLL
-BFBBFBFLLR
-FFBFBBFLLL
-BFFFBFBLRL
-FBBFBBBLLL
-FFFBFFBLLR
-BFFFFFFRRR
-BFBBBBFRRL
-FFBFBBFRLL
-FBBBFBBLRL
-BFFBFBFLRR
-BBFFFBFRRL
-BFFBBFFLRR
-BFBFFFFLLR
-FBFBFFFLRR
-BFBBFBBLRL
-FBFBFFFRLR
-FFBBBFFRLR
-BBFBBFFRLR
-BFFFFBBRLL
-FFFBFBBLRR
-FFFFBFBRRL
-BFFBFBFRRL
-FBFFBBBRRR
-BFBBFFBLRL
-FFBBFFFLLL
-FBFBBFBRRR
-FBBBFFFLRL
-FBBFFBFLRR
-FBBBBBFRRL
-BFFFBBBLRL
-FFFBBFBRLL
-FFFFFBBLLR
-FFBFBBBRLL
-FFBBFBFLLR
-FBFBBFFLLL
-FFFBFFBRLL
-BFBBFBFRLR
-BFBFBBFRRL
-FFFBFFFLRL
-FBBFBBFRLR
-BFFBFFBRRL
-BBFFFBBRLR
-FBBBBBFRLL
-FFBBFFFRLL
-BBFBFBBRLR
-FFBBBFFLLR
-BFBBBBBLLL
-FFFBFBBLLL
-FBFFBFFRRL
-FBFBFFBLLL
-BFFBBBFRRL
-FBBBBBFLLL
-FBFBBFBLRR
-FFBBBBFLLR
-BBFFBFFRRL
-FBBBBBFLRR
-FBFFFFFRLR
-FBFFBBFLLR
-FFBBBFBLRR
-BFFFBBBRRL
-FBFBFBFRRL
-FFFBFBBRLL
-FFBFBFBLRL
-FBBBFBBLLL
-FBBBFBFLRL
-FBBBBFFLRL
-FBFBBBBRLR
-FBBFFBFLLR
-FBFFBBFLRR
-FBFFFBBLLL
-BBFFBBFRRR
-FBBFBBBRLL
-BFFBBBFLLR
-FBFFFFFLRR
-FBFFBBFRRL
-BFFBBFBLLL
-FBBBFBBLLR
-FBBBBFBLRL
-FBBBFFFRRR
-FFFFBBFRRR
-BFBFFFFRRR
-BFBFFBBLRL
-BFFFFFBLLR
-BFBBFFFRRR
-FBFFFBFRRL
-BFFBBFFLRL
-FFFBFFBRRL
-FFBFBFBLLL
-FFBFBFFLLL
-BBFFFBBRRR
-FFFFFBFLRL
-BFBFFFBLRL
-BFBFBFFLRR
-BFFBBBBRLL
-BFFFBFFRRR
-BBFBFFBRLL
-FBFFFBBRRL
-FFBBFBBRRL
-FFBFFFFLLR
-FFFBFFFLLL
-FBBFFBBLRL
-BFBFBBFLLR
-FBFBFFFRRL
-BBFFFFFLRR
-BBFFFBFLRL
-BBFFBBBLLL
-BFBBFBFLLL
-BFBFFBFRRL
-FBFFFFBRRL
-FBFFBBBRLR
-BFBBFBBRLL
-BFFBBFFLLR
-FBBBFFBLRL
-BFFFBFFRLR
-FFFBFFBRLR
-BFFBBBFLLL
-FBBBBFFRLL
-FFFFBBBRLR
-FBFFBFFLRR
-FBFBFBBRRL
-FFFFFFBRRR
-FFFBBBFLRL
-FBFFBFBLLR
-FFFBBBBLRL
-BBFBFFBLLL
-FBFFFFBLLR
-BBFBFBBRRR
-BFBFFFBRRR
-FBBFBFFRLL
-FBBBBFFRLR
-FFBBFBBLRL
-BBFBFFBLLR
-FBBBBBBLRL
-BFFFBBFLLL
-BBFBBFFLLR
-FBFFBFBLRL
-BFFFBBBLRR
-BBFFFFFRRR
-BFBFBBBRLR
-BBFFFBFLRR
-FBBFBBFLLR
-BBFBFFBLRR
-BFBBBFFLRR
-FBBFBFFRRL
-FBFBFBBLRR
-BFBBFFBRLL
-FFFBBFBRLR
-BFFBBBFRRR
-FBFFBFFRLR
-FFFBBBBRLL
-FFFFFBBRLR
-FBBFBFBLLR
-FBBFBBFLRR
-BBFFBBFLLR
-FFFBFBBLLR
-FFBFBFFLRR
-BFBBFBFRLL
-BFFFFBFRRR
-BBFBFFFLRL
-BFFFFBFLLL
-FBFBFBFLRL
-BFBBFBBLLR
-BFFBFFFRLL
-BBFBFFFRLR
-BBFFBFFRLL
-FFFBFBBRLR
-FBFBBBFLRL
-FFBFFBBRLR
-BBFFFBBLRL
-BFBBBBFLRR
-FFBFFFBLRL
-FFBBBFBRLL
-BBFFBFFLRR
-BBFFBFFRLR
-FFFFFBFRRR
-BBFBFBBLRL
-BFFBBBBLLL
-FBBBBFBRRR
-FFBBBBBLRL
-FBBFBBFRRR
-FFBBFFBRLL
-BFBFBFBLRR
-BBFBFFFRRR
-BFFFBBFRRR
-FBFBFFFLLL
-FBBFBFBRRR
-BBFFBFBLLR
-BBFBFBFLRR
-BFFFFBBLRL
-BFBBBFFLRL
-BBFBFFBLRL
-BFFBBFFRLL
-FBFFBFFLLR
-FBFBFBBLLL
-BBFBFBFLRL
-BBFFBBBLRL
-FFFFFBBRLL
-FFFBBBBRRR
-FFBBFFFRLR
-FFBFFFBRRR
-FBFBFFBLRR
-FFBFFBBLLL
-FBBFBBFLRL
-FBFFBBBLRL
-FBBBBFFRRR
-BFBBBBBLLR
-FFBFBBBLRR
-FFFFBFBLRR
-BFFFFFFRLL
-FBBFFFBLRR
-BFBBBBBRLL
-FFBBFFBLRL
-BFBBBFFRLR
-FFBFFBFLLL
-FFBBFBFRLR
-BFBFFBBLRR
-FFFFBFFLRR
-FFBFFBFLRL
-BBFFBBFRRL
-FFBFFFFLLL
-BBFBFFBRLR
-FBFBFBBRLR
-BBFFBBBRRR
-FBFFBBBRLL
-BFBFFBBRRR
-BBFFFBFRLL
-FBBFBBBLRL
-FBBFFFFLRR
-BBFFFBBLLL
-FFBFFFFLRL
-FBBFFBFLRL
-FBBBBFFLLR
-BFBBFBFRRR
-FBBFFFBLLL
-FFBFBFFRLL
-FFFBBBFLRR
-FFFBFFFLRR
-FBFFBFFRRR
-BFFFBFFLLR
-BFFFFFFRLR
-BFFFBFFLLL
-FBBBFBBRRL
-BFBFFFBLLL
-FBFBBBBRRR
-BFBBBFBRLR
-BBFFFFBRLR
-FBFFFFFRLL
-FBBFFBBRLR
-BBFBBFFLRR
-BBFFBFFLLR
-BBFFBBFRLL
-FBFFFFFRRL
-FFBFBBFRRR
-FFBFFFFRLL
-BFFFFBBLRR
-BFBFBFBLRL
-FBBFFFFRRR
-FFBBFBBRRR
-BFBBBBBRLR
-FBFFFBBLLR
-BBFFFBFRLR
-FBFFFBBRRR
-FBBFFBFRLR
-BFFFBFBRRR
-FFBBBBBLLL
-FFFFFBFLLR
-FBBFBFBRLL
-BFBFBFBRRL
-BBFFFFBRRL
-FFBFBBFLLR
-FFBBBFFRRL
-FBFFBFBRLR
-FBBFFFFRLL
-BFFBFFFLLR
-FBFFFBBLRR
-BFFBFFFLLL
-BFBFBBBRRR
-BFFFFBFLRL
-FFFFBFBLLL
-FFFBFFBLLL
-BFFFBBFRRL
-BFBFBBFRLL
-FFFBBBBLLL
-BFFBFBBRLR
-BFBBBBBLRR
-BFBBBFBRRL
-FFBFFFBRLR
-BFFBFFFLRL
-FFBFBBBLLL
-BFBFBBFRRR
-BFBFFBFRRR
-FFBFFFBRLL
-FBFFFFFLRL
-BBFFBBFLLL
-BFBFBBBRLL
-FFFBFFFRRL
-FBBBBBBLLR
-FFFBFBBLRL
-FBBFBBFRLL
-FFBFFFFRRR
-FFFBBBFLLR
-BFFBBFFRLR
-FFFFFBFLRR
-FFFBBBBLLR
-FBFFBFBRRL
-FBBFFFFLLL
-FFFFFBFRRL
-BFFBBBFRLL
-FFFBBFFRLL
-FFFBBFFLRR
-FFFFBBFRLL
-BFBBBBBRRR
-BFFBFBFLLL
-BBFBFBFLLR
-FFBBBBFRLR
-FFFBBBFRLL
-BFBBBBFRRR
-FBFBFFBRLR
-FFBFBBFRRL
-BBFFBBBRRL
-FFBFBBFRLR
-FFFFBFFRLL
-FBFFFBBRLL
-BBFFBFBRRL
-BFBFBFBLLR
-FBFBFBBLRL
-FBBFFFFRRL
-FFFBBFFRRR
-FFBBBBBLRR
-BBFBFBBLRR
-FFFFBBBLRR
-FFBBBBBRLL
-FFBFFFBRRL
-BFBBFFFRLL
-FBBBFBFRLL
-BBFFBFFLRL
-BBFFBFBRLR
-BFFBBBBRRR
-FBBBBBBRRL
-BBFBFFFRLL
-BFFBBFFRRR
-BFBBFFFRRL
-FFBFFBFLRR
-FBFBBFFRLL
-FBBFBBFRRL
-BBFBBFFRRR
-FFBBFBFRRL
-FFBBFBFLLL
-FBBFFFFLLR
-BFBFFBBRLR
-BFBBFFFLLR
-FBBBFFFLLL
-FFFBFFBLRR
-FFFBFBFRLR
-BFFBBBBRLR
-FBFFBBBLLR
-FFFFBBBRRR
-FFBBBBFLLL
-FBBBBFBLLR
-BFBFBFFRRL
-BBFFBBBLRR
-FBBFFBFRRL
-FFFBBBFLLL
-BFFFFBBLLL
-BBFBFBFRRR
-BFBBBFBLRR
-FBBFBBBLLR
-FFBBBBFLRL
-FFFBFFBLRL
-FBBBFFBRRL
-BFFBBFBRLL
-BFBFBFBRRR
-BBFBFBBRLL
-FBFFFBFRLL
-BFFFBFBLRR
-BFBFFFFLRL
-BBFFFFBLRR
-BFBBFFBRRL
-BBFBFBBLLR
-FFFBBBFRRL
-BFBBBFFRRL
-FFBFFBFLLR
-FFBBBFBLLL
-FBFBBBFLLL
-FFBBBBBRLR
-BBFFBBBRLL
-BFBFBBBRRL
-FFBBFBBRLL
-FBFBBFBLRL
-BBFFBFBLLL
-FBFBFFFLRL
-FFBFFBBLRL
-FFBFBBFLRL
-BBFBFBBLLL
-FFBBFBFRLL
-BBFBBFFLLL
-FBFFFFBLRL
-FBFBBBFRLR
-FFBFFBFRLL
-FBBFFFBRRR
-FBFBFFBLRL
-BFFFFBBLLR
-FBFBFBBRRR
-BBFFBBFLRL
-BFBBFFFRLR
-FBFFFFFLLR
-FBBFFBBLLL
-FFFFFBBRRL
-FFFBBFBRRL
-BFFBBBBRRL
-FBFFFBFLRL
-FFBBFFFLLR
-FBBBBBBLRR
-BFFFBBFRLL
-FFBFFFBLLR
-FBBBFFFRLL
-FFFFBBBLRL
-BBFFBFBLRR
-FFFFBBFLRR
-BFFBFBFRLR
-FFBFBBBLRL
-FBFBFBFLLR
-FFBBFBBRLR
-BFBFBFFRRR
-BBFFFFBRLL
-FFBFBFFRRR
-FFBFBBFLRR
-BFBBFBFLRR
-FFFFBBBLLR
-FFBBBBBRRL
-FBBFFBBRRR
-FFFBBBBRLR
-BFFBBBFLRL
-BFBBFFBRRR
-BBFFBBFRLR
-FBBBBBFLRL
-FFFBBFFLLL
-BFBBBFFRLL
-FBFFFFFLLL
-FBFBBFBLLL
-FFFBFFBRRR
-BFBFBFFLLL
-BFBFBFBLLL
-BFBBBFFLLL
-FFFFBBFRLR
-BFFBBFBRRL
-BFBBFBBLLL
-FBBFBFBRLR
-BFFFBFFLRL
-FBFBBFFLRL
-FFFFFBFLLL
-FBBFFBFRRR
-FBFBBBBLLL
-FBBBBBFRLR
-FBFFBBFRLL
-FFBFFBFRRR
-FFBFFFFRRL
-BFFBFBBLLR
-BFBBFBBRRR
-FFBBFBBLRR
-FBFFFFBRLR
-FFBBBBFRLL
-BBFFFBFRRR
-FFFBFBBRRR
-BFFFBFFRLL
-BFFBBBBLRR
-FBBBBFBLLL
-BFFFFFFLLR
-BFBFFFFLRR
-BFFBBBBLLR
-FFBBBFBRRR
-FBBFBFFRRR
-FBBFFFBRLR
-BFBFBBFRLR
-BFFBFFBRLL
-FBFBBFBRLR
-BFFFFFBLRR
-BFFBFFBRRR
-BFBFFBFLRL
-BBFFFBFLLL
-BBFBFBFLLL
-BFBFBFFLRL
-FBBFBFFLLL
-FBFFBFBLLL
-BFFFBFBRLR
-FFFBFFFRLL
-BBFBFFFLLL
-BFFFBBBRLR
-FBFBFBFLRR
-FFBBBBFRRR
-FBFBFBFRLR
-BBFFBFFLLL
-FBBBBFBLRR
-FBBBBBFLLR
-BFBFFFFRLL
-FBFFFBFLRR
-FFBFFFBLLL
-BFBFFBBLLR
-FFBBBFBLLR
-FBFFFBBLRL
-FFBBBFFRRR
-FBBBFBFLLR
-FBBBBFFLRR
-FBFFBBBLLL
-FFBFBFFLLR
-FFFFFBBLLL
-BFFFFFBLRL
-BBFFFFBRRR
-BFBFFFBRRL
-BBFFFFFRRL
-BFBBBBBLRL
-FBBBBFBRLL
-FFBFFFFLRR
-BFBBBFFLLR
-BFFFFBBRLR
-FFBBFFBRRL
-BFBFBFFRLR
-FFBBBBFLRR
-BFBFFBFLLL
-FBBFFBBRRL
-FFFBBFFLLR
-FFFFBFFRRR
-BFFBBBFRLR
-BFFFFFBRRR
-FFBFBFBLLR
-FFFBBBFRRR
-BBFBFBFRLR
-FFBBFFBLLR
-FBFBBBBLRL
-FFFBFBFLRL
-FFFFBBBRLL
-FBFFFFBRRR
-FFBBBFFRLL
-FBFBFFBRRL
-BFFBFFBLLL
-FFFFFBFRLL
-BBFFFBBRLL
-FBBFBFBLRL
-BFBFBFFLLR
-BFBBFBBRLR
-FFBFFFBLRR
-BBFBFFFLRR
-FBBFBBBLRR
-FBBBFFBLLR
-BFBBBBBRRL
-BFBBFFBLLR
-FBBBFBFLRR
-BFFBFBBLLL
-BFFBFFBLRL
-BFBFBFBRLR
-FBFFBBBLRR
-FBFBBBBRRL
-BFBFBBFLLL
-FBFBBBBLRR
-BFFBBFBRLR
-FFFBFBFRRL
-BFFFFBBRRR
-FBFFBBFRLR
-BFBBFBFLRL
-BFFFBBBLLL
-BFFFFFBRLR
-BBFFFFBLRL
-BFFBFFFRRR
-BFBBBBFRLL
-FBFBBFBRLL
-FBBFFFBLLR
-FFFBBFBRRR
-FBFBBBBLLR
-FFFFBFFLLL
-FFFFFBFRLR
-BFFFFBFRLR
-FBBFFFBLRL
-BFBFFBFLRR
-FFFFFFBRLL
-FFBBFFFLRL
-BBFFFFBLLL
-FFFBBFFRRL
-FBBFBBFLLL
-FBFFBFBLRR
-FFBBFBBLLL
-BFFFBBBRRR
-BFFFBBBLLR
-BBFBFBFRLL
-BFFFBBFRLR
-FFBFBBBRRL
-FBFBFFFRRR
-FBBBBBBRRR
-FFBBBFFLRL
-BFFBFBBRRL
-BFBFBFFRLL
-BFFFBFFRRL
-BBFFBBBRLR
-BBFFFFFRLL
-FFBBFFBRRR
-FBBFBFFLLR
-FBBBFBBRLR
-FFBFFBBRRL
-FBBBFFBLLL
-FBBFFFBRRL
-BFFBFFFRRL
-FBBFBFFRLR
-BFFBBBBLRL
-FFBFFBBRRR
-FBFBBBFLRR
-BFBBBBFRLR
-FFFBFBFLLL
-FBBBBBBRLL
-FFBFFBBLRR
-BBFFFFFLLR
-FFFFBBFRRL
-BBFFFFFRLR
-FBFBFFBRLL
-BBFFBFBRRR
-FBFFFBFLLR
-FFBBFBBLLR
-FBFBFFFRLL
-BFBBBFBRLL
-FFFFFFBRLR
-FFBBFFFRRL
-BBFBBFFRLL
-FBBFFFFRLR
-BBFBBFFLRL
-FBBFFBBLLR
-BFFFBBFLLR
-BBFBFBBRRL
-BFFBFFBLLR
-FFBBFBFRRR
-FBBBBFBRLR
-FFFBFBFLLR
-FFBBBFBRRL
-FFBBBFFLLL
-FFBFBBBRLR
-FBFBBFFLRR
-FFFBFBBRRL
-FFFFBFBRRR
-FFFFBBBLLL
-FFFBFBFLRR
-BFBBBFBLLR
-BFBFFFFRRL
-BFBBFFBLRR
-FFBFFBFRRL
-BFBBFBFRRL
-BFFFFFBRRL
-FBBBBFFLLL
-FFBFBBBLLR
-FBBBFBFRLR
-FFFBBFFRLR
-BBFFBFBRLL
-BBFBFBFRRL
-FFBBBBFRRL
-FBBBFBBLRR
-BFFBFFBRLR
-FFBBFFBRLR
-FFBFBFBLRR
-BFBFFFBLLR
-BFFFBBFLRL
-FBBBFBBRLL
-BBFFFBFLLR
-BBFFFBBRRL
-BFBFFFBRLL
-BFBFFFBLRR
-FFBFBFFRLR
-BFFFFFFRRL
-BFFFBFFLRR
-BFBBBBFLRL
-FFFBFFFLLR
-BFFFFFFLRR
-BBFBBFFRRL
-BFFFFFFLRL
-FFFFBFBRLL
-BFFBBFBLRR
-FFFFBFFLRL
-BBFFFFFLRL
-FBBFBFBLRR
-FBFBBFFRLR
-FFFFFBBRRR
-BFFFBFBRRL
-FBFFBFBRRR
-BBFFFBBLLR
-BFFBFBBLRR
-FFFBFBFRLL
-FBFBBFFRRR
-FFBFBBBRRR
-BFBFFFBRLR
-FBBFFFBRLL
-FFBFBFBRRL
-FFBBBFBLRL
-FBBFBBBRRL
-FBFFBFBRLL
-BFBFBBFLRL
-FFFBBBBLRR
-BFFBFBBRLL
-FFFBFFFRLR
-FBFBFFBLLR
-FBFFBBFLLL
-FBBBFBBRRR
-FBBFBBBRRR
-FBFBBBFRRL
-BFBBFBBRRL
-BFBFBBBLRL
-FBBFBBBRLR
-FFBBFFBLRR
-FBBFBFFLRL
-FBFBFFBRRR
-FFBBBBBLLR
-BFBBFFFLRR
-FFBBFBFLRR
-BFBBBBFLLR
-BFBFFBBRRL
-FBFBBFFRRL
-BFFFFFBLLL
-FBBBBFBRRL
-FBBBFFBRLL
-BBFBFFFLLR
-FFFBBFBLLL
-BFFFBBBRLL
-BFBFFBBLLL
-BFBFBBBLLR
-FBFFBBFLRL
-FFFFBBFLRL
-FBBFFFFLRL
-FBBBBFFRRL
-BFBBFBBLRR
-BFBFBFBRLL
-FBBBFBFLLL
-FBFBBBBRLL
-FBBBFFBLRR
-FFBBFBFLRL
-FFFFBFBLRL
-FFBBBFFLRR
-FFBBFFFRRR
-FFBFFBBRLL
-FFFFBFFRRL
-FBBFFBFRLL
-BFFFBBFLRR
-BFBFFBBRLL
-BFFBBFFLLL
-FBBBBBBLLL
-BFFBFBFRRR
-BFBFFFFRLR
-BFFBFBBLRL
-BFBBBFBLRL
-FBFBFBFRLL
-FBBFBFFLRR
-BFBBBFBLLL
-BFFBBBFLRR
-BFBBBBFLLL
-BFBBFFBRLR
-FFFBBFBLRR
-FFFFBBFLLR
-FFBFFBBLLR
-FBFBBBFLLR
-BFBBBFBRRR
-BFFFFFBRLL
-BBFBFFBRRL
-BFBBFFBLLL
-FFFBBBBRRL
-FBFBBBFRRR
-BFFBBFBLRL
-BFFBFFFRLR
-FFFFFBBLRR
-FBFBFFFLLR
-FFBFFFFRLR
-FBFFFBFRRR
-FBFBFBFRRR
-FFBFBFBRLL
-FFFFFFBRRL
-FFBBBBBRRR
-FFFBBFFLRL
-BFFFBFBLLL
-FBFFFFBLRR
-FBBBBBBRLR
-FBFBBFBRRL
-FFBBFFBLLL
-FBFFBBFRRR
-FBFFFFBLLL
-BBFBFFFRRL
-FFFFBFBLLR
-BFFBFBFLLR
-BBFBFFBRRR
-FBFFFFFRRR
-FFBFBFFLRL
-BFFBBFBLLR
-FBBBFFFRRL
-BFFBBFBRRR
-BFBFBBFLRR
-FBBBFFFRLR
-FBBFBFBLLL
-FBFBFBFLLL
-BFBBFFFLRL
-BBFFBBBLLR
-BFFFFBBRRL
-FFFBBFBLLR
-BFFFFBFRLL
-FFFFFBBLRL
-FBFBBBFRLL
-BFBFFBFRLL
-FBFFBFFLLL
-FBFBFBBLLR
-FFFFBFBRLR
-BFFFBFBLLR
-BFFBFFBLRR
-BFFFFBFLRR
-FBBFFBBRLL
-FFFFBBBRRL
-FBBBFFBRRR
-BFFBFBFRLL
-BBFFBFBLRL
-FFFBBFBLRL
-BBFFFFBLLR
-FBFFFFBRLL
-BFBFBBBLLL
-FBFBBFFLLR
-FBBBFFFLRR




diff --git a/resources/input06.txt b/resources/input06.txt
deleted file mode 100644
index 066f613981adda1259e599fc6b6b1df87167e742..0000000000000000000000000000000000000000
--- a/resources/input06.txt
+++ /dev/null
@@ -1,2042 +0,0 @@
-ybcgtxznorvjel
-brlyvoexnjtgcz
-lnbgtxvoiyecjrz
-
-lcajnyxgzqwim
-qznygxmlvwja
-gmjzynxaqwls
-
-cmljinrupeykatzdsfox
-ugwqhknvb
-
-gsdqbrnhotmfwivl
-prozsgfwnthvmiq
-
-vsjpurgokf
-dfxpqzabeulknwmjvcsr
-pfuvstryihjk
-
-islxfdrtvzwkyoguh
-ogylskzvuftqhirxbdw
-fkrtgsxudhioylznvw
-
-c
-c
-
-uvwigmrlpbqh
-qvgriwlbmhpz
-nhlsptgbvwimrq
-
-izhmeksc
-zarebypguktc
-fzxkveoc
-hzcneqkl
-
-wsaklcyumfjgxpe
-gjlueyimxawpkoscf
-tgpaeywujxkslmf
-
-uzxkhngrtem
-heumxtrkzgj
-kzxtqvehmfyurdgi
-xmhtzrukeg
-tkhgujzmxenr
-
-veaxitpwqlkmfcdgu
-tuylgfjb
-ftuglh
-
-uqnklfemcd
-fueknldq
-eqkfdhnmtl
-opyelgnqdfkxw
-qzkslfden
-
-q
-bu
-k
-q
-
-wqeaklcysthvrb
-srhcatklwbqyev
-ylrqbthswkceva
-tsbryhlavcwekq
-aketrswybhvlqc
-
-tyd
-ymt
-yvt
-
-hwvclzeby
-vywecbhl
-wecyqsohlvb
-cvlwheyb
-blyvewhgc
-
-wieapdrco
-edicwpa
-cpdwia
-hdwgyvpica
-
-jvy
-fjv
-vj
-vjf
-
-czdf
-dfzc
-dczf
-
-gpmrwtuoy
-tymroagbipw
-wombgpcyktr
-dtrlongqypmwhsjvfxz
-gmrwpyto
-
-ocnmpvjx
-pvjxcm
-bmyjrgvxpkc
-
-jeygorhmxiak
-hxifjagoemr
-
-ncjziqtmpawdufxye
-eubydnxpatfwjzkcm
-
-abmysdl
-cpqbifaynmdsl
-mjsbdyla
-mrdbvjswyal
-bvsladmy
-
-qafokiv
-oqhaik
-oqmkifa
-qaligznro
-
-aiblwmouqx
-mqwbaxolui
-oxuibwlmaq
-
-zvefqkjusco
-xuewoskj
-kuzfqjsoe
-puankilsjodbre
-kutoqsjefh
-
-celsgxhzpjrodmitfukvn
-ejkrmnpsgfxvoaihulcz
-zuimrfyohspkjvcxelgn
-
-lbrxfchematouyniw
-labiudxyoenh
-ikelubxgaoynhz
-jnahsdibeuxylov
-xovbhaiunlsey
-
-ipsrknazqblw
-dgxutyvejmfc
-
-sxizpwamjhn
-imhnzxawsjp
-ahnpswxmizj
-wmisxanjzhp
-
-gtbhymj
-zawfkbsiud
-
-gylpjarczexv
-zyajpvoecrlgx
-kzrlojeayxgvp
-veztfaypxqrljg
-
-xfivwhodjknmzauqcletpygb
-hypeczniafgkoqultxvbdwjm
-qxfhjptgnlkvycoudwmizaeb
-jizanpbfcyuetmqokhlwvxdg
-gjwtexvdfpuamiconybzhlqk
-
-tvy
-yv
-yiv
-yv
-yv
-
-whueklivtpca
-iplkuahwe
-tlsekhiuwap
-mizpgjwlbahuekr
-
-mdp
-mdp
-mpd
-pdm
-
-xjnhkvoewc
-osfjprwxhcieavkd
-hqjxwkvonec
-jlgxctoqhevwkn
-kzvjhyxweco
-
-yk
-yk
-
-hdnxtrvyeiwam
-asrwvdhmxeycint
-vwxptebdzyioagqmhr
-
-tfczy
-ctyfn
-tycf
-cwytf
-ytfc
-
-rmtbfezuojpa
-utbjepomarzf
-rbatejfumpzo
-frtuoepamzbj
-faejrztmbpuo
-
-afenbkzjyugowxcpvr
-wouafcenbpjvkygzxr
-gvneprcbujxzayokfw
-vzyparnkxcgbfwouej
-ubzxvkrcgnjeapfowy
-
-vwuqrecngfdlk
-lkrnvqgufwdc
-wrnldgkqvcfeu
-cuwnbgvqfdrkl
-
-xbh
-vacqro
-snxumhe
-
-gxlf
-fglx
-gxfl
-xlgf
-lfxg
-
-uzlryvkmdbweqjocatxnhi
-lzjedxqowyhmnabkiufvcrt
-ntkrmlwcqdbzaxejyuhvoi
-
-fbns
-nbf
-nabylt
-
-arsif
-qzorln
-apb
-gcvyuhxtkwe
-jm
-
-svu
-uvz
-pvuf
-ucv
-
-hpjfklnwizys
-pzrcfhyslkiqwn
-zskfylihnpow
-wgfbdkszlypeihn
-
-vkmcijegnxar
-bvknimxrejcga
-vegkjcxniram
-egkjvmxciran
-akgixcjrnemv
-
-ewixgnuavo
-unoeayxkgi
-yeiaucxnm
-ixaekznu
-ajulsenirbqtfhxpd
-
-frqlmnxdbgewzo
-rdtmqlzovkbuncj
-qmzxrndoeiyflb
-
-ukpnyzjiohf
-gjfpkinzuoy
-ygjozinfupk
-iyvjpeozkfnu
-kiupfhoyjngzs
-
-hrpwvsugjafeoyd
-djawruhovfezcb
-
-cepdjoqftlbanyzxgh
-cgnayjbfxzeophtdq
-
-xqg
-halqr
-qub
-qub
-
-po
-ldjb
-
-zxnqu
-zduxsbq
-nzuqxgf
-niqzxu
-zquxl
-
-qn
-ev
-cz
-bmwjfhlg
-
-kpfrostvwjqzd
-ukbsrjpdzfcowq
-
-yjtl
-jytl
-ltyjz
-yltj
-
-dwty
-djsct
-gtdj
-
-hoj
-jyho
-jhos
-ojh
-
-eupzntdmk
-pulhzta
-
-vdfuricnlkjq
-cdufvkijqrn
-fkdrpnjcuviq
-qnfvjudcirk
-drijcfkuqvn
-
-nvbldpqsx
-wbdzhqp
-iamjtyfg
-
-iwqexpmtoadjvryuzshk
-twzoyhjukxmqsreaipvd
-umryqtvxsdpziohaejkw
-eruvdmyzapthwqixjkos
-
-wtgkdqunxroablp
-uqmljdantokrpwxg
-nkoupqzlgxwdat
-
-vepioalcghjydn
-zutlfxvorkn
-qbvnlo
-
-lmie
-ebim
-ykmhei
-smie
-msbeic
-
-segdzmcnijfpy
-pmngjzisdcey
-daumgeznqikljcyp
-
-hocwkeizbmvgnsd
-jfirpydx
-itqjdyl
-
-dbwtrzqo
-bwdztr
-pwbdtzr
-wrtbdz
-
-tcl
-ctl
-
-izfnvwsygkjp
-nkfpvyzsgij
-ygjvfipksnz
-kvpgjysnfzi
-jxiboavkfnzgpsy
-
-gxulavdzi
-xeorucjdlym
-
-hfc
-cfh
-
-oaixdvhwf
-kuivdwfxzha
-
-jsxny
-ynsxj
-yjxsn
-nxsyj
-xysnj
-
-usnjaimqdl
-dnuxgy
-hdnpcugz
-
-ejofu
-ufe
-uef
-feu
-
-defovtzlc
-avocyzft
-zxwcvftb
-
-cbga
-vgb
-
-rac
-a
-jgzaxotn
-av
-
-ugnotpd
-ntugodpx
-pudgomt
-tdislogp
-
-filsprncvbdamgozwuh
-fzqucamrswpihvdlgob
-
-keaqcjtmzwipdyonvufsl
-voysnkmwlzqpfeguiacdtj
-ndacvykmeozbsuwpiftlq
-wodcqfputzknsyevilma
-
-aobpjhfwndq
-wnbjofqdpah
-fnwqdcgxphabj
-wadfqbhinjp
-
-dfegup
-pdgyu
-
-qmdthgnfsoacekpjr
-zwqjois
-
-cuqwdn
-cdnwi
-cwyvd
-tokwjdsxcr
-
-hlbrqytujx
-fdcxlwjquyznksv
-wyupmxqjfilsk
-
-hkrsp
-yhwpsrk
-krhsp
-gorspkh
-
-kdnsfavte
-snadektv
-namkstved
-etavlknds
-esdatkvn
-
-zbvuponkx
-zkjybcanxi
-xbunzkv
-
-sixh
-xbgha
-
-uxfay
-urqibka
-uao
-
-lsjkxqirzbcw
-sqkbzwjclixr
-qsclikrzhxwb
-
-ozldp
-dlpz
-dztglp
-
-rl
-lr
-lr
-
-xchdwlniyzjvfskqgu
-jczdgywxisl
-jxyspdclgizmw
-
-dblfawuprytvz
-mceiqnsxkgltp
-pmcxtohlg
-
-s
-s
-r
-zdkl
-
-xsftzi
-rhmvobe
-gitkn
-ucgzt
-
-zfboewhsdi
-sfozwbdhie
-
-iulc
-cilu
-iluc
-ucli
-
-orlegwpi
-polwidg
-pomlwiy
-
-wuzngeba
-bnazuce
-ubzane
-
-vywm
-ym
-
-nfmsueclkpqgwai
-utlevwmrcxosqkpd
-
-stkubmdgxnprayjvihocf
-jdnhiurkyopfsbmagxtezcv
-fokmgyscrpijnbhxtudav
-caogfvytximuhrjdpbnsk
-
-rsabjcmtdwynx
-bficzdrnlsjouhta
-
-mw
-wm
-mw
-
-iebmfugxoyqlrpcvjztkwdnh
-pelfsdutxqcymaozjhnr
-
-pebjavucfqyrdzgml
-cbzypflawgmjuvredq
-yzrujflgcqebvdapm
-gbfuqznldejsyvparmc
-jcaqeuwvplbfgdmryz
-
-hkg
-xelcms
-f
-
-lihonytfdumjsewrzabpc
-hlpcdubrwoazsfmiynetj
-owuibptxmdhzyrecsfan
-
-riosndbpujgcwethz
-hwfrzietbougpsdqjn
-drntjpzeguiowshb
-pwubneoztjsgdhri
-rezkbtghcjwdoinspu
-
-njsa
-u
-fb
-
-sfx
-s
-s
-
-ucqsmn
-istuq
-
-ingklxq
-cnoekp
-
-jlygxaiwrpdfnheouvc
-dvfaingtxwpkozjhylercu
-pigfacjweynhuovxlrd
-
-vpxbtozuemlny
-jkgymlvebinctudpxa
-byzxemqvtulpn
-ytvunxzwqblepm
-
-jfbkglhtpqudix
-grnicbtpqzdxv
-
-bfokwpmzhtlgquaiejr
-iawgbmqvzleoxrhtfpu
-zwompxutlbhaifseqrg
-xpbqhitclyzrunwodgfesma
-
-q
-qg
-q
-vq
-q
-
-ekipdozabfsxvugqltjwyrc
-dztsokinlyrfxceqjwuavpbg
-
-eqnkifs
-ifqknes
-
-laecqkp
-pugqayce
-elcxpraqoj
-pecqvfwa
-qcepljak
-
-arnb
-qnab
-nbaq
-dnbaomv
-
-cbormguajxfiplwvts
-dxifemjgwzrobtlpcqvua
-aofmcpilxjvbguwtr
-
-umvdxnwzfqapk
-pwuqfzadjmne
-uzqpmfyacdw
-
-mhaeksjiqb
-bfqjokusih
-jgklnsivbywdc
-sxpkfirjomqb
-
-nhzaplu
-ahkipmvo
-brtjwg
-
-mkjxlagycu
-uckjxlgma
-kjcuxmgal
-
-ve
-ve
-
-jvkobmcq
-gjmqkobc
-qjbomcwk
-cybojqmk
-mjbqocfk
-
-ducqha
-qdlhac
-
-wlfkid
-hipcfkwdlryb
-fwlkdi
-kdifwvl
-
-ezs
-sze
-esz
-zes
-esz
-
-hz
-utfzphv
-ahzgk
-shz
-
-jxclzr
-rwfjmu
-jro
-ojrlny
-
-topn
-wbcojtesg
-yrdlqhfz
-
-wktxsnufbhygzraijlcoed
-ciokuzgyrsenbaxhdwjft
-nszoywipjhrfxgqbdaeutc
-tcxzrysbfuieaovndhwj
-bkyouicwtfzlxshjaednr
-
-aoylnseditpgum
-ounmkyzedplaibqs
-
-fahocyurtgvbsq
-byufcgohqvatr
-guvoyqthcrbdfa
-cbfhayvqrugto
-
-dgil
-dig
-idg
-apdgi
-dig
-
-rfzmeoyuq
-remzyhbip
-xtvrykdsancjzmw
-pzryfugom
-eryomgzlh
-
-ro
-or
-ro
-doar
-rpo
-
-tbomqznewpgu
-zpwbegtquonm
-gbunzwtqpmeo
-pmnobqtewzgu
-
-tzkielrca
-pwgouhfjvdybsnqm
-
-bqxr
-om
-
-fkvlmqye
-bnqlyda
-yojczstxupq
-qiye
-
-wcdl
-wcld
-lwcd
-wdcl
-
-udx
-suhx
-
-ypmrvaj
-aphrjxowvyz
-jarvpmq
-vpcwarbj
-tugveaprjsn
-
-cubgyqflopxnj
-apnxvc
-
-c
-c
-c
-c
-c
-
-ykdeblvoijpqtns
-sbnoigt
-nbmitoxas
-ibosnxt
-
-klbdfgmo
-va
-ylcu
-
-sgdrutfcbwxleyvmqjoz
-hztjqbduiefkvxwcygmolr
-eymudvjwlqcxrzfgtob
-
-jcghosr
-jpagrmecsho
-
-xtlgomkfpciezyq
-ylrgtxmchkq
-dgtlkwymvxnqc
-cgxalbkydwsjmqt
-
-lvg
-vg
-vjgka
-
-xulzdqyef
-xuezfldyq
-zduyfqexl
-lqfezuydx
-
-afpboknehzmculswdyjqix
-winjabfuyedmzoshxlcqpk
-smnaybfjzkowdpleiuchqx
-bqsuknafemzvpljihwycdox
-
-huvrzdawnce
-irvodxzmnksq
-tvrdneazfcu
-nldygvuezr
-
-ifwousayrbjvxcpld
-ugrnfjhvbcoatspxk
-vsiobyrcpjdfzuaxq
-
-ubeisxaw
-klqn
-ok
-rmf
-n
-
-j
-grpy
-mnwf
-
-yrsnckxbuvhdtmgeqapj
-asjkxuymdbrlechvqotngp
-adrjpnbhmutgkxecyvqsi
-
-agtlryz
-pywxhgqu
-okyghqduj
-mbycgvhjq
-
-aihswznpod
-bdaezc
-
-grdiok
-dtkoxqrnl
-
-vqjpfiembrcyohxlgdts
-uhvgxiceoyafmtpqs
-gqpcfextaviomwhys
-voygtpxhmiqcfse
-
-alv
-xohjegy
-
-k
-z
-h
-
-wdoc
-dwco
-domcw
-
-pencwlstgb
-toapxnsye
-taehsxpjn
-
-unhav
-dbslritz
-eucw
-ekv
-eag
-
-fewghvcj
-hcejwfvg
-jgxwfvclheu
-ewjfzvghc
-ehfcgjwv
-
-moaclkpxythqvesdgzuwib
-nrvlkyaiuhwsxfjzeoqmdb
-
-hda
-dah
-dha
-dha
-dha
-
-kgu
-efntky
-liw
-zyh
-
-zqtohusn
-jmuhq
-lxqvkruhciwey
-mjqthzanbu
-
-ljtief
-lijeft
-jlteif
-fiejlbt
-fjtlie
-
-qdxygilu
-tldagovk
-npmdckoaltg
-
-i
-i
-i
-i
-i
-
-wk
-dal
-uzmbsen
-k
-
-cqlxwzvetfakbidmgoujhs
-afzghkswqibynljtoecvrx
-swzkjhatgqvblxfneoci
-
-h
-on
-h
-h
-
-fzvckrajbeso
-ejrcfnsxv
-tlupewdmcirygv
-vjqrec
-
-hadxcqevfmr
-hxdarvmfcqe
-chdvexqmfr
-vrhmxecq
-ehoxqnrcumv
-
-wkdtuyegzqichna
-uihqapcwdmteznykg
-tnjrqcydihfgvwzbseuak
-dagetcyqizhnuwk
-
-jie
-bei
-ei
-eji
-
-td
-t
-t
-t
-
-dbqvtxjeranwmofhigc
-mtgcdevirwahnxjoqbf
-cftanqvibjmhxgowyred
-
-iqgphzrawkevmjfds
-jhifptdmra
-jdxaobfypmnhirc
-xtdamplhrfibj
-
-majypozns
-pomjzusayn
-zmspayjon
-mjnzoaspy
-
-puvwane
-avwpnue
-ewvaun
-dauqnevw
-
-jsvcumahzqktyp
-obifedg
-wnolrxg
-
-ewgot
-odycnb
-tjgwo
-
-di
-id
-id
-di
-idcw
-
-itovydpksgxmblqhun
-ogxaiurvmhlsfwdbpzcy
-gdemlsyaijofbpuvxhz
-
-kwdqozmvuegtsrxi
-uyetkxigdwosq
-
-cw
-cw
-cw
-
-aoh
-ano
-
-rnywdtil
-dpvhtrf
-tgblnpd
-keactdx
-tgrdzos
-
-mfip
-impf
-fmpi
-impf
-imfp
-
-kqpvbyjnewx
-ywjxpknqzeb
-nqeukpjbwxy
-penxzqbjykw
-
-zpyjigfcuxdktarq
-yapfiqrtdkcgjx
-aepjcrbgyxftikdq
-jptaiqdcykxrgf
-
-ftwedcvib
-btcdfewl
-ivdfwbtce
-ftcdxeqbkwu
-bvfeitwcd
-
-uiqj
-qi
-
-oxghqnsd
-udygoh
-hdoxg
-rpafchvogd
-
-hpbytijfwx
-jywtpixhbsf
-pwhyfjbxiqt
-qtipwfjxbhy
-xqhfbptywij
-
-dfslmxhie
-smzwlfqehi
-
-kpr
-stcve
-
-irt
-rti
-irt
-rti
-
-bunl
-nlb
-lprhdby
-
-bo
-ob
-ob
-
-bowdlaegtqypmiz
-wonjglmdyapqhike
-
-akwfdicyteo
-kaoewyidtcf
-wyafoeitckd
-ctwaifokeyd
-
-usikpnl
-plunkis
-nliskuwp
-upisnkl
-alinspukr
-
-fmosyehatupnxcrbl
-zmtfcoghsperajnbylxu
-ltnfweypcbmarosxhu
-fuabtspeojcrhknlmyx
-pcmdlsoxrytevqfnbuahi
-
-tpjvhomdzurfsbqgxieynw
-deopwshxkgtibylnzqmrfujv
-bpxszafutyhgdenwvmqijro
-ixtjfrpbozsngqwmduhyve
-elfvxrhspguyinzjwtmbodq
-
-kvgqfjtzonx
-lptjicfezk
-tbxkfjmvz
-
-d
-q
-d
-rg
-
-gvnmslbrqduhipyx
-sygxvmblqrjhipau
-ufirbqgpvhsklxmy
-bhrpgqxmivyulzs
-
-mdfikeywgxsqlbn
-ilqgnfbdkexymsw
-mynqlfgeidbkxws
-kndefxlymisbgqw
-bmgfeiwxkndsqly
-
-firjqazycdmlpebwvkuh
-nyopgcvhsxlujedkmfrq
-
-ctmupagrjydizes
-hdqxglckzvabwi
-
-uogtnvfbwa
-qkgxofaeictuvnj
-ngfuolytshmvr
-
-bhgrcpltzvqjwfas
-tchsrqzwbpgvafj
-wgharjbsptqzfvc
-qftchjazrgspbvw
-
-sbzjewryqhpxcivnk
-expnzhsqykirbjcw
-oyagjndwhkpxlqbmcrizefs
-
-sfhpqjndwvb
-rjvbwnphsqfedm
-ndbphlfwjvqs
-
-whrefxbvuma
-hxmrubvfwea
-
-t
-t
-t
-
-favkeblzcnt
-ymcz
-xucgdszp
-cjzrh
-irpqwozc
-
-my
-m
-m
-
-alsknvxifqcpjymrz
-fpjcrqzmlyxvsaikn
-
-yaj
-ykanc
-atx
-
-ilupyjozc
-zcjbiolu
-czjioulsg
-cokzbjuil
-auvmjzohqrwilc
-
-wsxunpgv
-vgwsu
-ugswvq
-usafwhvg
-gfwuqsv
-
-s
-sw
-
-wvqdzfolabmirjc
-ljwarzcmbfqodiv
-aswzbmdjtnlfqovgxc
-
-znrmjsy
-nsjrymz
-ymrnzsj
-
-vpgac
-dgjvpcua
-vycgpfa
-pvcga
-rapvcg
-
-mb
-mb
-bmnt
-bm
-
-gsnjzuby
-wntqv
-nhld
-
-onzrkyudwapxf
-dkupywnraxof
-
-lmst
-slmt
-tldsmvp
-tsmol
-sltm
-
-s
-n
-
-qsagxhkyeinrvb
-kiyeqrnbgxvash
-syerxqghivnkab
-rqkasenivxghyb
-
-ncfrvqmgkahtpbozdjy
-fvdzwkoam
-lixodafekmzv
-dokuazvfm
-zdoakvfms
-
-vlhbq
-ouqvrxhls
-sfhqlvx
-
-qxorudp
-peduq
-qundp
-qdpu
-
-rhpyabj
-brycauhjp
-apbhrxyj
-
-ygk
-ktpy
-kvyn
-yvkn
-
-xkhagnmpdcv
-hjoakl
-
-dxcjugqvpleairsytkh
-rqndpilgchysvoeutxma
-
-njeikmhawblcdxoygufrpt
-gnrxuicweofdtpkjhslamby
-perifdanxhwtbzokgumyclj
-
-ghpdecujkxzltysfbv
-xftkvhudgcplyjzesb
-cbksuezftdjhwvxgipyl
-
-wxtz
-wztx
-
-bcva
-acvb
-avcb
-
-oydfhxunzaijlpgeqb
-qzeafxwrpiycndmogbj
-finjbylagzdqxoep
-pyqbjondvzgefixa
-aonbixfejqdpgzy
-
-edzm
-ejmz
-mgliz
-
-q
-qb
-yn
-glq
-fwu
-
-whbkfvgpmjzdl
-gzmvwpjdbltfh
-
-prkxeaoygt
-zfrewaysbtx
-
-hoytqlezuxdmcnw
-zqtyewudcfnomxh
-hrxinwocqtdemzu
-wzmjhquxdngcpoe
-
-pnwldbucofxq
-nlwbcoqfxpud
-icwpxnbodyqmluvf
-ozfwdhclupxbqn
-dcqonulbwpxf
-
-ywfjkqrgidnhbuea
-aeyidkwghubrjqf
-ihjrakdwbuefgqy
-irdjgbwfeqaukyh
-hyeujqrkiwdagfb
-
-jstapqk
-wmeujqts
-utzmwqjs
-zxqbmstj
-yrsthdignvqj
-
-yva
-actvy
-
-okqvf
-mfok
-akfno
-oakvf
-
-cdfugre
-gedfucr
-dfcerug
-
-ingczmjrfp
-pmcfrgnijz
-mepzjirfcgn
-zsnmhpfguwircjq
-
-dpw
-zlpwd
-pwd
-dpw
-
-wbzluvga
-yiupsdj
-yfu
-ncfou
-pfu
-
-fbxnrjdosah
-rnfdasxjbhoz
-nohdxufrjkabs
-
-dfgyeismzkr
-nhukvdazrwgqisl
-xbzkgsmderi
-ksditprgzb
-zkdsgir
-
-gjytlskbrhdcwfq
-ljirabqwtygcosuhd
-
-bk
-kbdi
-yjk
-ik
-
-ksquemnvtlxofj
-xeqoflmadtunsvjkc
-jtvnequxslfmok
-qvnkmtxosljeuf
-
-zxqlnj
-qzkjl
-jqlz
-jlqz
-qjzl
-
-jniylks
-jiyheksb
-jydtiaks
-
-o
-o
-h
-
-e
-e
-e
-e
-
-hrpgqasc
-grpschqa
-rzgcsjphq
-
-ecitkohxdb
-okteihdcxb
-xobijctedhk
-ktboecaixhd
-
-paubelofzrwmsvhg
-pagezysfb
-
-esgvqfzkijypan
-zeivfdksgqapyrjn
-
-wi
-i
-inkm
-i
-
-zcun
-uc
-uc
-okcug
-
-trogu
-oyrug
-ozgrfuqn
-
-raj
-oz
-pbr
-
-iwhxjelgd
-jiwhexldg
-hlgjxdwei
-jlwxhgeid
-xhldjzgwtmief
-
-kclge
-srlkec
-kelc
-
-eofisurvqxh
-ukvfrisqxoe
-uexrqifsvo
-
-okdimecwvfuhrljtpxgyanbzqs
-xacwijpeqlkbuvdsgofmtnzhyr
-
-amwgdsovpnryclfeit
-rcwyfevgotlidanspm
-vtneaoylpdifcrwgsm
-tonlrdacsfigpyvewm
-pisgdcmtovwfelnyra
-
-uetxnmzilhksb
-kminofleutjwdpz
-tmeculxqkzin
-kqlimryetnavzu
-
-cmnjsbqvde
-qmzdbnjsv
-vngjtmpsbqd
-dqnmspbvj
-dmsqvjbn
-
-kgxdn
-gxndf
-
-onpwxkus
-sgnpkw
-pwnrvks
-sknbpwta
-wopksn
-
-gfqylwtcvpjsk
-cwvplskgfxty
-lkgvywscptf
-ogwspvfylktc
-
-dgbcvjfieurw
-iknqeztowur
-
-fzsar
-fno
-
-jiaxdfroq
-rqhxjigaynd
-iudjaqrx
-qmxardfvji
-qxjcdira
-
-ghfosy
-yfgs
-hfspb
-fucaiq
-
-ynrbkleixc
-sezybviarnl
-
-ywcanufmveh
-vafuecjm
-
-qcrmvuihkboexdlftp
-kufohcswxpearvbyqd
-hrnzpkocxfdevqujbs
-qoxuhjpfvbckdre
-gkdfvpbheqocuxr
-
-wtk
-ktw
-
-xcadnijfkvqystgluz
-kznliathwoxsmvybrgeqf
-klzsivxayqnfgut
-
-clo
-lco
-ocl
-oacql
-lco
-
-iyzkvsdhpngo
-remlyvz
-
-uyzw
-zuv
-zu
-
-tq
-t
-
-oeicrl
-byxrsfdz
-rcjog
-cr
-irck
-
-pgistdzl
-y
-xmq
-m
-afn
-
-g
-dhg
-g
-vwg
-
-nfgtoy
-ugyft
-tygfo
-futyegr
-gstlwpkyf
-
-vn
-nmv
-vn
-nv
-nv
-
-ozivnfbaktuedlrcs
-oramfqlcbuswtvdzjni
-
-jxp
-xpj
-
-mc
-wabq
-lrgsuezypd
-wiv
-
-eofl
-snpkflyqmdzwb
-jehlirf
-cjflrh
-fljc
-
-ltubcvkymoajwxzsrhndpgf
-ogvibsazqtujrdewfxymph
-
-egdchpsvwjfaqybn
-zndqagubwpkscyjh
-
-wlbjgnopeayszicrmf
-nosbgiezpjaywqfmrlc
-jgilbrmwosyzcafnep
-agycorlqmzweibpjfsn
-zjlrpnfbeasidmcgyowt
-
-vijh
-ndsfcamyxz
-woujvp
-
-uhealmbgtyix
-zilxmb
-pvxlfqmwsidb
-
-fjmdnvrbg
-gdlvuqhkpb
-kbczdvgp
-
-lqkt
-tkjqi
-
-wcrmtpf
-bkqws
-
-ngzltjq
-nlkut
-iwlrytn
-xltsmnu
-ztlnacfj
-
-exfviczl
-iczhelxv
-zelivxc
-vfilzexcp
-xlzvfice
-
-ytgac
-tacyk
-qacy
-candymh
-
-yrqczhgfovwnisbu
-vhlgknps
-
-sbwugclexy
-wbzuhlgsc
-umvwiknljcdotbfgs
-rluhbcqgsaw
-
-vymaruskjc
-akvrsmjuyc
-vrcyuasmbjk
-pursajkvycm
-czpmyusvajrk
-
-ofwvqmlr
-vmq
-vmq
-
-ysnwieoauzq
-nuyqesaowz
-yoesanuwqz
-kuzgoswayqnle
-
-eomivztrgn
-ivmretong
-invkmrge
-vnmzegcri
-vyrmflsjgiuen
-
-eqrmyzpvkwfbgtjlxshdoin
-gzolfstrvybjeqnmxpikhd
-nroxitkevgzmypjdqbsfhl
-ofgmtrjilnbekxhsqyzdpv
-dhlqnvgsjiyzbkpotxrefm
-
-hozruskcedfwiaq
-coptzfyuvxldrm
-
-l
-l
-l
-
-dyslqoiw
-ymjqdi
-
-syxnhbi
-dpkvjr
-eukgwozaf
-ekjz
-
-yvwbgqcrotjlnpeha
-lhpoetrgabvnqjwy
-blgszmfkhyntepwoaixqrvj
-byrpjoenhagwtuvql
-
-z
-v
-tgy
-
-d
-d
-d
-d
-d
-
-dc
-dca
-dc
-cd
-dcz
-
-locsfetpwknxbzgvja
-jxgnvfzphceiskaotwl
-fotrsavxmjyhnwpgzelck
-sfvpqhxgyjeonazclmwkt
-choefxapjniztgwlvskq
-
-kbyxoztlp
-ilptzojgvnexw
-atxmzkolcp
-uqkszlopdxt
-
-zj
-ojpz
-
-khjzinxbsvytagfwrdpclm
-gkfnjmrsaxublcov
-nxlacsrmgkvbfju
-uagsxkrfmbvcjnl
-kexajvcfrnlsmgb
-
-jwstzrmqyg
-qiolxndue
-
-aljc
-onxjpaltygwvucz
-qacrjls
-ajcfhl
-ijqralc
-
-hinlgsoyjrwux
-onlujsyxgirwh
-
-l
-l
-l
-l
-l
-
-eoqhmwpjxdkib
-dpewgjm
-epjmdw
-edpnmjw
-pjdewm
-
-wvhaks
-vrgoah
-
-dvqanm
-ladgcypwnmhjz
-xsidnmae
-fidranekum
-datnmb
-
-vkashdfylrcigpz
-fzpsydgrvwcl
-kdpglscryfz
-sgzqcytfoplebudmxr
-ldzsywpjfrgc
-
-gtme
-mgfptwe
-tmge
-
-ameogqc
-ogqcema
-meocqag
-ecmaoqg
-oeamicgq
-
-jg
-hgij
-fjg
-
-dgypvjbrik
-zriqkvgpdbjaxy
-
-ezfbiwhrtgl
-ozfxebispgdtnv
-btegzjafui
-
-jiabmdnuftcsgqw
-kazroxypl
-
-mqoaxjcuzhngk
-jgswxaykfmehvuiqzon
-lbuakqzjhdmnxgo
-
-bacszqyketnvpguofhrwmx
-ptszqxamuewikbngyfhvdroc
-heqrcosaxtwgbplfnzuvykmj
-
-knxabluhoyviedjfpsmrqcw
-scqixedwvumkoanjbrfyhl
-tisjfuywcqnremhobldkaxv
-shvojgwydialxekbmcufnrq
-
-nyxmrhszik
-mapcikqstjfrzx
-
-gdlctrjzek
-hjsgkeyr
-
-qepm
-eqlpm
-eqmp
-mqxepn
-pqem
-
-bvgkrl
-vboc
-wcbvziu
-vqfpdabh
-
-gpn
-ngmpc
-
-twpvxflgjqoumydkbc
-uprelhcmqwdksixynzta
-
-h
-h
-
-jhnxwesqrpc
-vpsgmitbaoyfudjz
-
-yuwbhtsmjlcqefdv
-ebmutvlfcqdsjhy
-utswqzjlbvycpadefmh
-sejvrxgqdlmbtouyhnfc
-zijctvqmlyuahfbsdep
-
-dflwcg
-mrflgw
-wfduygl
-
-ytnlzrju
-uvztnjly
-zljbryutn
-zyjlnut
-tljuozyn
-
-hskjpotzxndciuveygqbf
-tovpizqhkfjyxucsgdbne
-zchinjfgpxuvqodbtseky
-ewpzdvhbgqnkcfujixsoyt
-
-hwogmrjsanyfkxcuzlqip
-zgefdbcrvawhsknxlup
-
-vpnoqlyctz
-lazbrndtc
-cbzlduthn
-ztnslmcwkegjx
-
-g
-g
-g
-mg
-
-scdpkxnwevjzuliaot
-ieltzxk
-etkilxz
-ekrxizlmt
-lztxefikb
-
-fojsglve
-
-mpdxfg
-kfdxma
-dkfxavtm
-wnbxdmcof
-
-lsoytwjgnxfpu
-jxnluyisgp
-jygpxslnmur
-npsjlguyx
-
-rdh
-rdh
-
-apbutxfrwydzin
-xrgnqelbdtoczafhjm
-drkuztfnxba
-
-bdmstxhqnrzeyj
-fubwrmohipenjclkgya
-
-usrxcktp
-srxotup
-rulpxit
-euxptrn
-
-pryjxzemofknaqwh
-owzqrhmknsjaedxyfb
-ahkijzwfrmqnxolscvey
-uqnxfkrwmatcsgeyohjz
-
-gq
-q
-q
-q
-
-hbkieng
-behdikgm
-dkbeygh
-ebgshk
-
-xcdliskjvqhazmgp
-zdilgjchpavusmxk
-jwxavzlkchdobmgyspi
-vijgcxakdhlpqszm
-
-qkoxgd
-zkuxdmbyqcglf
-
-hjxscnryl
-nsmahy
-snmhy
-ovthdys
-
-vbwhoizkgsncaqr
-waobkhsivcrznjqg
-wzsrcgnabkhoqiv
-oanbsyrhicgwvzkxq
-hurqnbcgovfkawzis
-
-zxvbs
-bdpn
-qb
-bv
-
-hdkixlmqovte
-ihtrouqdnxlk
-ltioudhqkx
-bxidhtklufoqw
-
-s
-scvai
-s
-sb
-ws
-
-uaxeycr
-aubsiqxrv
-aohrdkxu
-reaux
-
-trcfn
-txbgc
-tcp
-
-udrgmasezv
-zotwyimlkq
-
-o
-o
-tdo
-o
-
-ambertifpjuzvwk
-dcyhwogqfiaxnlzps
-
-smzcqpikr
-szmqcpkri
-cqokmsrpzi
-
-tzkopc
-pkcz
-pckz
-
-avioqkyrntbesulwzp
-oylhrtfzvainkuxbw
-
-hqieuv
-hiqcu
-ihwuq
-
-itfe
-wcied
-uvnigke
-ltieq
-
-jrbmngvx
-wousyqdiehcgk
-ztfplg
-
-zdhewmyr
-wjgqt
-ynwdcef
-kmvnwhfep
-wyco
-
-x
-x
-x
-x
-
-phkfsnxwce
-dztiaygqu
-jvrmltid
-
-ayhkqv
-havyqk
-vyhkaq
-vyajenhgqk
-vakhyq
-
-dxlepoksgznvuyjcihwqtf
-lyqaihgexkcozwdsjnbtmfu
-ysecldonhztfkruwxgjqi
-
-epo
-azoeq
-mfg
-tbujywxr
-eod
-
-myek
-kmey
-meky
-
-iwyngr
-vishbag
-kinsq
-lzxoeticmudfp
-nhjswiv
-
-fbtscavdzrkxeqyuhiw
-orafstylxkgphmed
-fehrsanktydx
-
-covl
-ypkqdc
-xzc
-ejwsgafcbh
-vcutm
-
-mlsfecori
-ehpsya
-
-dpvgtqzocn
-ngdvoqptzc
-toqcdgvnpz
-vdqptznocg
-ncgzqdotvp
-
-adsqywe
-msdeawq
-edwaqs
-vedwasnq
-qdaswe
-
-bqmpnhvtoakiyr
-roufkiapnqeym
-
-fydeiohqas
-sqoycfhad
-safyqhod
-ghadsxfyqomv
-
-qdxmrofjwb
-qwkidye
-lgqyziawd
-
-erqsduihwmjcz
-umericogzyjsqhn
-
-hsct
-hsct
-thcs
-ctsh
-
-vtnbqai
-qtianb
-
-tdwhrmbvyalqfojzicpxe
-cltemhoxwbpqyrijvzad
-wxjmpyzdqoeabichtrlv
-ogzwhbdmtqxecvryjipla
-
-wnkjevsuqrtbfygih
-jzagctiudpbqyfvhomkr
-qtfkshvgryibujn
-
-qowgkyzsfetprnd
-sgrdfepwnyzqtok
-pgnrwdkzofyesqjt
-wfcpkntezoyshgdlqr
-dfrongetpszqwyk
-
-fdmxzviro
-odcszimujfqaknx
-xmoivfhdwz
-yoidfzmvxbg
-
-nxmtopbehydczsrj
-hrtspxjyiwczdngfb
-uzjranxksdbltpyhv
-
-zoia
-zioa
-cazoi
-
-kwfnrcbjushlme
-wsnmelhrjcubk
-
-lhf
-hl
-hl
-
-qvtia
-vqal
-ovqa
-qva
-valqy
-
-jxfkt
-evhj
-kgjo
-puyasnjliz
-xkmj
-
-cbhxvorjpgzd
-dcbxgjhporzv
-pjdbxhrogzvc
-ogbrpjdvxzch
-
-ks
-skh
-sk




diff --git a/resources/input07.txt b/resources/input07.txt
deleted file mode 100644
index 1390fba3afd7a0e2d60044dd00340162bbda4356..0000000000000000000000000000000000000000
--- a/resources/input07.txt
+++ /dev/null
@@ -1,594 +0,0 @@
-mirrored gold bags contain 3 light teal bags.
-clear gold bags contain 5 light maroon bags, 4 pale tomato bags, 5 clear blue bags.
-dark olive bags contain 5 plaid black bags, 2 dim plum bags, 2 light cyan bags.
-bright white bags contain 2 pale violet bags, 5 mirrored orange bags, 3 faded beige bags.
-posh green bags contain 4 shiny gray bags.
-posh lime bags contain 3 muted lavender bags, 1 clear magenta bag, 5 muted orange bags, 3 mirrored cyan bags.
-striped turquoise bags contain 3 pale red bags, 4 wavy lime bags, 4 wavy aqua bags.
-pale fuchsia bags contain 1 striped purple bag.
-dark magenta bags contain 4 light indigo bags, 1 wavy lavender bag, 1 clear teal bag.
-drab teal bags contain 5 pale bronze bags.
-muted aqua bags contain 4 wavy bronze bags, 1 pale plum bag.
-vibrant brown bags contain 4 dull turquoise bags.
-vibrant green bags contain 5 dim violet bags, 2 dotted red bags, 2 dull indigo bags.
-wavy black bags contain 3 posh yellow bags, 5 wavy coral bags.
-light fuchsia bags contain 1 dull violet bag, 5 dim indigo bags, 4 plaid red bags, 5 dotted bronze bags.
-drab bronze bags contain 5 dim tan bags, 4 mirrored yellow bags, 5 dim indigo bags.
-plaid silver bags contain 4 pale orange bags.
-wavy red bags contain 3 muted chartreuse bags, 4 light silver bags.
-light aqua bags contain 4 dark cyan bags, 3 shiny aqua bags, 1 light olive bag, 3 wavy purple bags.
-wavy salmon bags contain 1 shiny blue bag, 2 bright green bags, 5 dark beige bags.
-vibrant indigo bags contain 4 drab lime bags, 5 plaid turquoise bags.
-striped violet bags contain 3 dim violet bags, 3 striped purple bags.
-dull salmon bags contain 5 vibrant turquoise bags, 5 muted black bags.
-dark lavender bags contain 5 pale gold bags, 5 pale silver bags.
-clear lavender bags contain 1 faded turquoise bag.
-striped crimson bags contain 2 dull turquoise bags, 1 dotted red bag, 5 striped yellow bags.
-posh chartreuse bags contain 2 wavy lavender bags, 2 striped black bags, 5 dim blue bags, 5 bright fuchsia bags.
-clear tomato bags contain 1 mirrored violet bag, 4 pale gold bags, 5 bright bronze bags.
-clear brown bags contain 3 plaid fuchsia bags.
-pale aqua bags contain 3 pale indigo bags, 1 dark lime bag, 4 dim magenta bags.
-bright maroon bags contain 4 wavy yellow bags, 4 bright tan bags, 2 posh indigo bags, 4 shiny white bags.
-wavy purple bags contain 1 faded beige bag, 2 drab salmon bags, 3 mirrored yellow bags.
-muted salmon bags contain 5 bright olive bags, 2 striped white bags, 3 dotted coral bags.
-dotted maroon bags contain 4 striped brown bags.
-wavy turquoise bags contain 1 dim indigo bag, 3 clear lavender bags.
-muted tomato bags contain 2 wavy turquoise bags, 4 pale crimson bags.
-faded teal bags contain 2 dotted yellow bags, 4 dull olive bags.
-dotted blue bags contain 4 striped plum bags, 4 striped cyan bags, 2 drab bronze bags.
-posh teal bags contain 2 vibrant purple bags, 4 plaid fuchsia bags, 2 light green bags, 3 light chartreuse bags.
-muted gold bags contain 1 muted green bag, 1 vibrant brown bag, 5 pale crimson bags.
-clear olive bags contain no other bags.
-dotted beige bags contain 4 posh beige bags, 2 pale silver bags.
-vibrant lavender bags contain 4 dark tomato bags, 5 dim black bags, 3 dim aqua bags.
-wavy maroon bags contain 1 drab turquoise bag, 1 shiny indigo bag.
-muted magenta bags contain 4 posh indigo bags, 4 faded brown bags.
-dull tomato bags contain 1 pale green bag, 1 plaid gold bag, 5 plaid yellow bags, 5 mirrored blue bags.
-mirrored black bags contain 5 drab crimson bags.
-dull green bags contain 4 shiny orange bags.
-dark cyan bags contain 3 pale gold bags.
-faded black bags contain 2 clear beige bags, 4 bright red bags, 1 striped black bag.
-wavy indigo bags contain 2 pale brown bags.
-dim white bags contain 3 clear violet bags, 3 vibrant indigo bags.
-muted green bags contain 1 bright white bag.
-posh coral bags contain 3 shiny purple bags, 2 light brown bags, 3 pale gray bags, 1 dull turquoise bag.
-dull white bags contain 5 bright plum bags, 5 light green bags, 3 plaid purple bags, 1 faded white bag.
-bright salmon bags contain 3 dull indigo bags, 3 muted plum bags, 3 muted bronze bags.
-dotted green bags contain 1 posh purple bag.
-posh salmon bags contain 1 shiny brown bag, 2 dark red bags, 3 drab gold bags.
-pale olive bags contain 4 shiny maroon bags, 3 shiny white bags, 2 dim lavender bags.
-dotted lime bags contain 4 mirrored plum bags, 2 dotted blue bags, 3 light salmon bags.
-dim blue bags contain 5 shiny lime bags, 5 wavy cyan bags, 3 dotted cyan bags, 5 vibrant turquoise bags.
-dim gold bags contain 3 wavy lavender bags, 4 dark silver bags, 4 striped green bags, 4 posh plum bags.
-drab lime bags contain 3 clear black bags.
-dim red bags contain 1 mirrored olive bag, 1 plaid violet bag.
-posh white bags contain 3 pale indigo bags, 1 pale black bag, 5 light green bags, 2 light maroon bags.
-dim brown bags contain 5 dotted black bags, 5 dotted red bags.
-drab gold bags contain 4 mirrored orange bags, 5 drab beige bags, 4 pale gold bags.
-shiny green bags contain 5 mirrored gray bags, 4 pale maroon bags, 1 striped coral bag.
-clear teal bags contain 3 vibrant crimson bags, 4 posh teal bags, 5 striped lime bags, 3 plaid green bags.
-wavy coral bags contain 3 drab beige bags, 2 drab magenta bags.
-plaid tan bags contain 4 faded yellow bags, 4 dull gray bags, 2 shiny lime bags.
-shiny blue bags contain 1 faded white bag, 5 dull turquoise bags.
-striped green bags contain 4 dull blue bags, 1 muted tan bag, 1 wavy lavender bag, 1 muted gray bag.
-wavy tan bags contain 4 wavy bronze bags, 2 pale plum bags, 2 plaid indigo bags, 2 light lavender bags.
-faded violet bags contain 5 dull turquoise bags, 4 bright orange bags, 5 drab lavender bags.
-striped magenta bags contain 5 dotted orange bags, 5 wavy red bags.
-drab beige bags contain 4 pale gold bags.
-shiny coral bags contain 3 mirrored bronze bags.
-faded indigo bags contain 5 clear violet bags, 5 vibrant fuchsia bags, 5 posh violet bags.
-muted maroon bags contain 4 wavy coral bags.
-pale violet bags contain 1 clear olive bag, 1 wavy fuchsia bag, 1 dull lime bag.
-wavy chartreuse bags contain 2 faded blue bags.
-faded purple bags contain 5 clear olive bags, 1 wavy orange bag, 2 posh beige bags, 1 mirrored salmon bag.
-dull fuchsia bags contain 2 dark tan bags.
-light gold bags contain 1 pale blue bag, 4 wavy cyan bags, 1 shiny chartreuse bag.
-bright tan bags contain 2 shiny brown bags, 4 drab gold bags.
-plaid fuchsia bags contain 4 shiny gold bags, 1 mirrored orange bag, 4 dark chartreuse bags, 1 faded tomato bag.
-striped indigo bags contain 4 clear brown bags, 3 wavy silver bags, 1 plaid teal bag, 3 pale maroon bags.
-drab salmon bags contain 1 wavy bronze bag, 2 pale violet bags, 5 plaid indigo bags.
-muted teal bags contain 1 wavy maroon bag, 2 pale purple bags, 4 clear blue bags, 2 bright salmon bags.
-clear violet bags contain 2 light chartreuse bags, 1 light silver bag, 4 dark brown bags.
-posh red bags contain 4 light lavender bags, 4 plaid brown bags.
-muted gray bags contain 1 pale olive bag.
-posh black bags contain 1 muted maroon bag.
-dotted silver bags contain 3 dull turquoise bags, 4 dotted black bags, 3 mirrored black bags.
-wavy olive bags contain 3 dotted coral bags, 5 dim silver bags.
-plaid olive bags contain 3 muted plum bags.
-dim lavender bags contain 2 pale gold bags, 5 mirrored turquoise bags, 1 dull lime bag, 1 dull beige bag.
-dark silver bags contain 4 light silver bags, 1 plaid fuchsia bag.
-shiny tomato bags contain 2 pale coral bags, 4 dim lavender bags, 1 dim purple bag, 3 wavy magenta bags.
-dull purple bags contain 1 shiny maroon bag.
-wavy orange bags contain 2 dim black bags, 1 wavy aqua bag, 4 dull turquoise bags, 3 wavy bronze bags.
-dim gray bags contain 2 faded bronze bags, 3 dull beige bags, 3 pale purple bags, 5 drab gold bags.
-muted yellow bags contain 4 wavy aqua bags.
-striped maroon bags contain 1 plaid plum bag, 5 dotted chartreuse bags, 3 dotted cyan bags, 2 bright plum bags.
-muted white bags contain 2 dark blue bags, 4 posh aqua bags, 5 mirrored violet bags, 5 posh lavender bags.
-wavy cyan bags contain 3 dim black bags, 2 striped lime bags.
-striped teal bags contain 2 bright blue bags, 1 vibrant black bag.
-posh olive bags contain 2 dim plum bags, 5 shiny turquoise bags, 1 vibrant tomato bag, 5 bright magenta bags.
-dotted crimson bags contain 2 clear gray bags.
-clear plum bags contain 4 vibrant teal bags.
-vibrant chartreuse bags contain 4 posh bronze bags, 5 light purple bags.
-vibrant teal bags contain 3 clear blue bags, 4 muted tan bags, 2 wavy fuchsia bags.
-striped beige bags contain 4 faded tomato bags.
-muted bronze bags contain 1 clear lavender bag, 4 mirrored gray bags.
-light lavender bags contain 2 plaid turquoise bags.
-dotted white bags contain 1 light yellow bag, 5 dull maroon bags, 5 posh brown bags, 2 clear olive bags.
-pale teal bags contain 4 dark aqua bags, 5 dull violet bags.
-wavy lime bags contain 2 drab red bags, 1 clear olive bag.
-vibrant black bags contain 3 dim tan bags.
-pale coral bags contain 5 dull gold bags.
-plaid maroon bags contain 2 light fuchsia bags.
-wavy aqua bags contain 5 dark coral bags, 5 mirrored orange bags, 3 muted aqua bags.
-bright blue bags contain 3 faded bronze bags, 1 bright red bag, 5 mirrored coral bags.
-wavy silver bags contain 1 posh olive bag, 1 shiny lime bag, 3 shiny beige bags.
-faded maroon bags contain 1 dull tan bag.
-light yellow bags contain 5 light lavender bags, 5 pale black bags, 1 plaid brown bag, 3 pale violet bags.
-wavy fuchsia bags contain no other bags.
-pale plum bags contain 4 light teal bags, 2 pale black bags, 1 pale green bag, 4 wavy bronze bags.
-drab white bags contain 3 dark tan bags, 5 muted orange bags, 5 dull violet bags, 1 mirrored fuchsia bag.
-pale salmon bags contain 5 faded violet bags, 1 clear cyan bag.
-clear crimson bags contain 4 pale lavender bags, 1 dull turquoise bag, 2 mirrored blue bags.
-posh gray bags contain 4 muted brown bags, 3 shiny teal bags.
-dark aqua bags contain 1 shiny maroon bag, 5 dim brown bags, 4 striped maroon bags, 5 dim blue bags.
-muted red bags contain 3 muted chartreuse bags, 4 wavy red bags, 1 drab tomato bag, 3 shiny yellow bags.
-mirrored purple bags contain 2 clear blue bags, 2 mirrored lavender bags, 1 pale gold bag, 3 bright silver bags.
-striped yellow bags contain 4 light silver bags, 2 dotted red bags, 3 mirrored black bags, 2 faded tomato bags.
-dotted teal bags contain 1 drab bronze bag, 3 muted red bags, 5 mirrored gray bags, 4 bright olive bags.
-clear turquoise bags contain 5 dim bronze bags, 3 faded silver bags, 1 dotted olive bag.
-dull lavender bags contain 5 clear olive bags, 1 mirrored orange bag.
-mirrored indigo bags contain 3 bright fuchsia bags, 3 dotted salmon bags.
-shiny salmon bags contain 2 bright turquoise bags, 1 light plum bag.
-plaid red bags contain 3 clear brown bags, 4 drab tomato bags, 2 plaid indigo bags.
-drab black bags contain 5 dull maroon bags, 2 dark silver bags, 5 bright red bags, 5 bright cyan bags.
-pale purple bags contain 5 light blue bags, 1 dull maroon bag.
-plaid crimson bags contain 2 dark turquoise bags, 5 mirrored bronze bags, 5 dull gold bags, 2 posh yellow bags.
-striped lime bags contain 2 wavy lime bags, 2 shiny teal bags.
-plaid yellow bags contain 5 muted chartreuse bags.
-dark violet bags contain 2 plaid fuchsia bags, 2 muted bronze bags, 3 posh green bags.
-bright red bags contain 4 faded plum bags, 3 dim lavender bags.
-striped purple bags contain 3 mirrored turquoise bags, 1 shiny yellow bag.
-shiny red bags contain 4 wavy coral bags, 3 vibrant salmon bags.
-striped cyan bags contain 2 dark yellow bags.
-posh magenta bags contain 3 vibrant indigo bags, 2 pale violet bags, 3 bright fuchsia bags, 1 shiny teal bag.
-drab cyan bags contain 3 plaid gold bags, 3 clear black bags, 5 striped green bags.
-dim chartreuse bags contain 2 wavy coral bags, 2 striped black bags, 4 dotted tomato bags, 1 muted maroon bag.
-faded beige bags contain 5 dim tomato bags, 3 plaid turquoise bags.
-mirrored teal bags contain 4 posh silver bags, 3 dotted brown bags.
-light turquoise bags contain 2 bright gray bags.
-drab fuchsia bags contain 4 shiny brown bags, 1 muted olive bag.
-mirrored bronze bags contain 3 dull turquoise bags, 3 mirrored turquoise bags, 2 drab red bags.
-shiny fuchsia bags contain 3 striped gray bags, 3 faded blue bags.
-dim beige bags contain 4 dark blue bags, 1 vibrant aqua bag, 2 shiny brown bags, 5 dull violet bags.
-drab gray bags contain 1 wavy maroon bag.
-drab orange bags contain 5 plaid brown bags, 1 vibrant yellow bag, 1 mirrored beige bag, 4 pale white bags.
-dull magenta bags contain 4 light purple bags, 3 dark brown bags.
-vibrant magenta bags contain 4 clear gray bags, 2 shiny aqua bags, 4 striped yellow bags, 3 shiny magenta bags.
-drab tomato bags contain 5 drab crimson bags, 2 dull gold bags, 4 light silver bags.
-wavy violet bags contain 3 faded plum bags.
-mirrored fuchsia bags contain 1 mirrored black bag.
-shiny white bags contain 4 light silver bags, 3 dotted fuchsia bags, 2 faded brown bags, 1 bright bronze bag.
-clear chartreuse bags contain 4 plaid cyan bags, 1 striped gold bag.
-muted turquoise bags contain 3 drab crimson bags, 3 drab olive bags.
-faded aqua bags contain 1 dotted teal bag.
-vibrant gold bags contain 2 light green bags, 1 dotted gold bag.
-drab plum bags contain 5 dim salmon bags, 3 dotted teal bags.
-dotted chartreuse bags contain 2 dull turquoise bags, 1 bright chartreuse bag, 4 faded tan bags, 1 mirrored lavender bag.
-dull silver bags contain 1 mirrored indigo bag.
-pale yellow bags contain 4 drab coral bags.
-clear black bags contain 3 dim coral bags.
-faded gold bags contain 3 faded chartreuse bags, 1 posh gray bag, 3 drab tomato bags.
-muted chartreuse bags contain 1 clear olive bag.
-shiny indigo bags contain 3 vibrant yellow bags, 2 plaid orange bags.
-dull indigo bags contain 5 bright fuchsia bags, 2 shiny yellow bags, 2 plaid indigo bags, 4 bright olive bags.
-faded silver bags contain 2 vibrant olive bags, 4 muted tomato bags.
-pale green bags contain 1 pale red bag, 5 dull lavender bags, 4 clear olive bags.
-dull violet bags contain 1 shiny black bag, 1 shiny fuchsia bag, 3 plaid indigo bags, 2 posh crimson bags.
-dotted lavender bags contain 2 striped lavender bags.
-clear orange bags contain 1 dotted cyan bag, 4 clear tomato bags.
-bright crimson bags contain 1 dull black bag, 2 dim tomato bags, 1 drab bronze bag, 4 wavy orange bags.
-dark orange bags contain 1 vibrant teal bag, 3 dull maroon bags, 4 light purple bags.
-bright teal bags contain 5 mirrored tomato bags, 4 dull lime bags, 4 shiny olive bags.
-vibrant beige bags contain 2 dark turquoise bags.
-dark yellow bags contain 5 dark orange bags, 4 pale red bags, 2 striped fuchsia bags, 5 faded turquoise bags.
-bright fuchsia bags contain 5 striped gray bags, 3 light teal bags, 5 mirrored orange bags.
-clear maroon bags contain 2 dotted yellow bags, 1 mirrored green bag, 4 dotted coral bags, 3 dull indigo bags.
-dim lime bags contain 3 dull fuchsia bags.
-striped olive bags contain 5 wavy fuchsia bags, 2 light purple bags.
-dull gray bags contain 4 dark beige bags, 1 mirrored white bag.
-dim orange bags contain 5 mirrored white bags.
-faded salmon bags contain 2 muted cyan bags.
-clear red bags contain 2 dim violet bags, 1 shiny purple bag, 3 faded salmon bags, 2 mirrored brown bags.
-plaid white bags contain 1 shiny aqua bag, 1 vibrant teal bag.
-shiny violet bags contain 3 striped lime bags, 5 mirrored chartreuse bags, 3 pale red bags, 1 muted orange bag.
-wavy green bags contain 2 dark tomato bags.
-pale lavender bags contain 3 pale orange bags.
-dark fuchsia bags contain 4 pale turquoise bags, 4 pale plum bags, 5 light purple bags, 3 dark beige bags.
-posh indigo bags contain 2 pale violet bags, 5 shiny coral bags, 1 faded chartreuse bag, 2 plaid indigo bags.
-light brown bags contain 1 posh black bag, 4 clear cyan bags.
-faded red bags contain 1 drab maroon bag.
-dark bronze bags contain 1 pale green bag, 4 shiny blue bags, 1 mirrored lime bag.
-pale orange bags contain 4 plaid violet bags, 5 dim silver bags, 1 dim cyan bag, 3 clear blue bags.
-dull brown bags contain 1 light tomato bag, 4 pale tomato bags.
-mirrored plum bags contain 1 shiny tan bag, 5 wavy brown bags.
-dull lime bags contain 4 mirrored orange bags.
-drab yellow bags contain 3 clear teal bags, 3 posh aqua bags, 4 posh fuchsia bags, 3 posh turquoise bags.
-bright cyan bags contain 5 muted lavender bags, 1 wavy purple bag.
-drab chartreuse bags contain 1 wavy tan bag.
-drab tan bags contain 5 drab bronze bags, 5 pale green bags, 1 wavy fuchsia bag.
-shiny tan bags contain 1 pale red bag, 5 clear aqua bags.
-dotted black bags contain 2 dim black bags.
-dull blue bags contain 3 clear blue bags, 5 bright gold bags, 4 pale tomato bags, 4 drab beige bags.
-light olive bags contain 2 mirrored salmon bags, 2 drab violet bags, 2 bright beige bags.
-mirrored magenta bags contain 4 drab tomato bags, 5 clear teal bags, 3 dark coral bags, 5 shiny white bags.
-bright silver bags contain 1 posh brown bag.
-vibrant blue bags contain 3 clear tan bags.
-dark indigo bags contain 3 dim aqua bags, 5 bright aqua bags.
-bright brown bags contain 3 muted purple bags, 1 muted blue bag, 1 light green bag, 1 dark red bag.
-dark salmon bags contain 3 dotted fuchsia bags, 2 dim tan bags.
-mirrored maroon bags contain 2 posh purple bags.
-faded crimson bags contain 1 posh white bag, 2 muted blue bags, 3 dark fuchsia bags, 3 light red bags.
-bright lavender bags contain 4 bright chartreuse bags, 5 muted purple bags, 4 dull aqua bags, 1 shiny blue bag.
-mirrored orange bags contain no other bags.
-wavy bronze bags contain no other bags.
-wavy yellow bags contain 2 mirrored yellow bags, 1 muted maroon bag, 2 striped purple bags, 4 pale silver bags.
-drab magenta bags contain 3 dim indigo bags, 2 wavy bronze bags, 5 shiny yellow bags.
-wavy blue bags contain 3 mirrored gold bags, 3 shiny lavender bags, 1 dim teal bag, 4 clear crimson bags.
-clear purple bags contain 2 dark beige bags.
-light cyan bags contain 1 dotted white bag, 5 muted yellow bags, 1 wavy lime bag.
-clear yellow bags contain 2 plaid olive bags, 1 muted red bag, 1 mirrored bronze bag, 5 striped violet bags.
-light plum bags contain 5 dotted fuchsia bags, 4 vibrant white bags, 5 muted red bags, 5 drab red bags.
-vibrant fuchsia bags contain 1 posh green bag.
-pale maroon bags contain 5 light purple bags, 5 shiny aqua bags, 3 clear teal bags, 2 clear green bags.
-dark teal bags contain 2 dark lavender bags, 4 striped black bags, 1 drab lime bag, 2 dim teal bags.
-clear fuchsia bags contain 2 shiny violet bags, 4 posh aqua bags, 4 bright red bags.
-dotted magenta bags contain 2 dull olive bags, 1 clear magenta bag, 5 light beige bags, 1 dark brown bag.
-muted black bags contain 2 clear blue bags, 2 muted red bags.
-dim magenta bags contain 4 plaid silver bags, 4 plaid olive bags.
-striped lavender bags contain 4 clear blue bags.
-dull beige bags contain no other bags.
-wavy lavender bags contain 2 shiny blue bags, 3 faded tomato bags, 5 dotted tan bags, 5 dull maroon bags.
-light maroon bags contain 5 dim violet bags, 3 wavy turquoise bags, 3 mirrored salmon bags.
-plaid green bags contain 1 dim teal bag, 5 pale brown bags, 2 striped chartreuse bags.
-shiny plum bags contain 1 posh lavender bag, 3 vibrant red bags, 5 dark maroon bags, 1 dotted bronze bag.
-plaid turquoise bags contain 4 light silver bags.
-dim cyan bags contain 1 shiny coral bag, 4 bright lime bags.
-shiny lime bags contain 3 wavy green bags, 5 posh white bags, 1 striped purple bag.
-dim maroon bags contain 1 muted crimson bag.
-dim aqua bags contain 1 dotted silver bag, 3 faded blue bags, 4 striped purple bags.
-muted blue bags contain 2 posh yellow bags, 3 bright tan bags, 1 vibrant salmon bag.
-vibrant olive bags contain 5 clear aqua bags.
-plaid black bags contain 3 striped orange bags.
-vibrant violet bags contain 2 pale gold bags.
-light bronze bags contain 1 shiny maroon bag, 3 light blue bags.
-pale magenta bags contain 5 pale tomato bags.
-vibrant yellow bags contain 4 striped gray bags, 4 dotted yellow bags, 1 wavy fuchsia bag, 3 wavy purple bags.
-shiny black bags contain 5 shiny yellow bags, 3 light purple bags, 1 pale olive bag, 1 clear blue bag.
-dim crimson bags contain 5 posh gray bags, 1 bright chartreuse bag.
-plaid salmon bags contain 2 wavy fuchsia bags, 1 posh olive bag, 2 dim tan bags.
-shiny cyan bags contain 5 light green bags, 1 clear olive bag, 5 pale olive bags.
-pale silver bags contain 3 mirrored orange bags, 1 light lavender bag, 2 faded tomato bags, 1 muted chartreuse bag.
-light red bags contain 4 shiny gray bags, 4 wavy salmon bags, 4 clear lime bags.
-dark turquoise bags contain 4 mirrored orange bags, 4 vibrant brown bags, 4 striped brown bags, 4 mirrored purple bags.
-dark gray bags contain 1 pale violet bag, 5 striped turquoise bags, 2 wavy red bags, 2 light bronze bags.
-pale gray bags contain 5 drab tan bags, 3 clear gray bags.
-striped gold bags contain 2 dotted beige bags.
-muted cyan bags contain 2 light bronze bags, 3 clear green bags.
-faded white bags contain 3 striped tomato bags, 4 shiny black bags, 2 drab tomato bags.
-clear lime bags contain 3 dotted fuchsia bags, 3 vibrant purple bags, 1 shiny bronze bag, 3 muted green bags.
-dull bronze bags contain 5 plaid turquoise bags, 4 dark crimson bags, 3 pale yellow bags, 3 posh chartreuse bags.
-mirrored cyan bags contain 4 clear olive bags, 2 vibrant purple bags, 4 dull olive bags.
-pale bronze bags contain 3 vibrant purple bags, 4 dotted silver bags, 2 mirrored black bags.
-pale blue bags contain 1 dark brown bag, 2 light brown bags, 2 drab lime bags.
-clear bronze bags contain 4 clear blue bags, 2 light chartreuse bags, 1 pale violet bag.
-clear aqua bags contain 2 clear cyan bags.
-plaid plum bags contain 3 faded plum bags.
-mirrored lime bags contain 4 posh brown bags.
-plaid lavender bags contain 1 bright beige bag, 5 bright lime bags, 4 faded aqua bags.
-drab crimson bags contain 2 shiny yellow bags, 1 posh brown bag.
-shiny beige bags contain 2 muted aqua bags, 1 vibrant purple bag, 4 pale black bags, 3 dark chartreuse bags.
-dim green bags contain 4 bright yellow bags, 1 shiny fuchsia bag, 1 wavy tomato bag, 4 shiny black bags.
-drab coral bags contain 5 dark coral bags.
-posh turquoise bags contain 1 dim violet bag, 2 faded turquoise bags.
-dotted plum bags contain 2 dull salmon bags, 5 light green bags, 3 pale red bags, 2 posh yellow bags.
-posh yellow bags contain 1 mirrored salmon bag, 1 drab tomato bag, 3 dark tomato bags, 2 dark chartreuse bags.
-faded orange bags contain 1 drab yellow bag.
-dull teal bags contain 2 plaid crimson bags, 5 shiny violet bags, 1 dull coral bag.
-faded brown bags contain 5 muted red bags.
-bright chartreuse bags contain 5 clear lime bags.
-mirrored tan bags contain 4 striped lavender bags, 4 light plum bags.
-clear indigo bags contain 5 plaid fuchsia bags, 2 plaid brown bags, 5 striped gray bags.
-light teal bags contain 1 dull beige bag, 1 mirrored turquoise bag, 1 mirrored orange bag, 5 wavy bronze bags.
-shiny gold bags contain 2 dark coral bags, 1 mirrored orange bag.
-striped white bags contain 5 dull fuchsia bags.
-wavy white bags contain 5 dull chartreuse bags, 5 wavy green bags.
-mirrored beige bags contain 4 bright white bags, 5 plaid magenta bags, 3 plaid crimson bags, 1 shiny teal bag.
-muted purple bags contain 5 pale black bags, 5 wavy aqua bags.
-vibrant crimson bags contain 5 dim bronze bags, 2 vibrant plum bags.
-striped aqua bags contain 3 plaid cyan bags, 3 light beige bags, 2 drab cyan bags.
-dull crimson bags contain 1 light white bag, 3 drab indigo bags, 1 clear fuchsia bag.
-clear magenta bags contain 4 light brown bags.
-posh maroon bags contain 1 faded plum bag, 3 light olive bags.
-bright violet bags contain 2 dotted bronze bags, 4 clear teal bags, 3 striped magenta bags, 3 muted indigo bags.
-faded coral bags contain 5 dark violet bags, 3 plaid teal bags.
-faded bronze bags contain 5 dotted fuchsia bags, 5 wavy bronze bags, 2 dotted purple bags, 5 dim black bags.
-light beige bags contain 2 shiny olive bags.
-mirrored white bags contain 1 dark indigo bag, 1 drab maroon bag, 3 shiny beige bags, 5 light blue bags.
-muted silver bags contain 4 wavy lime bags, 1 dark tomato bag, 1 bright fuchsia bag, 4 dotted olive bags.
-wavy gray bags contain 2 mirrored turquoise bags, 5 light lavender bags, 3 muted chartreuse bags.
-clear salmon bags contain 5 bright tomato bags, 2 wavy aqua bags.
-dull turquoise bags contain 1 pale tomato bag.
-shiny yellow bags contain 4 dull lime bags, 3 shiny maroon bags, 3 light silver bags.
-mirrored aqua bags contain 3 posh magenta bags, 4 drab tomato bags.
-dull orange bags contain 5 dim teal bags, 3 light olive bags, 2 light magenta bags, 2 plaid orange bags.
-plaid blue bags contain 3 pale purple bags, 1 shiny turquoise bag.
-dim olive bags contain 3 shiny tomato bags, 4 dim black bags, 1 light plum bag.
-dim fuchsia bags contain 1 dark chartreuse bag, 1 mirrored cyan bag, 3 plaid red bags.
-dark plum bags contain 1 light yellow bag, 1 mirrored lime bag, 2 bright salmon bags.
-faded tomato bags contain 2 muted chartreuse bags, 4 dark chartreuse bags.
-dotted aqua bags contain 2 dull lavender bags, 4 pale tomato bags.
-plaid lime bags contain 3 vibrant indigo bags, 1 muted red bag, 1 posh silver bag, 1 dim indigo bag.
-vibrant lime bags contain 5 drab turquoise bags, 2 vibrant chartreuse bags, 4 clear blue bags.
-posh brown bags contain 2 wavy red bags, 2 drab beige bags.
-bright beige bags contain 3 faded blue bags, 4 muted red bags, 5 mirrored lavender bags, 2 pale red bags.
-dotted yellow bags contain 5 striped gray bags, 3 pale gold bags, 2 clear olive bags, 5 mirrored yellow bags.
-dull gold bags contain 5 clear tomato bags, 5 drab beige bags, 4 bright silver bags, 4 drab crimson bags.
-dark maroon bags contain 2 wavy turquoise bags, 4 dark chartreuse bags.
-drab olive bags contain 4 faded bronze bags.
-posh plum bags contain 2 dull tan bags.
-light indigo bags contain 2 wavy yellow bags.
-vibrant tan bags contain 5 shiny teal bags.
-dim purple bags contain 5 light olive bags, 5 mirrored violet bags.
-vibrant gray bags contain 3 bright turquoise bags, 4 dim maroon bags, 4 vibrant chartreuse bags, 2 faded turquoise bags.
-pale tan bags contain 2 light salmon bags, 3 dotted silver bags, 5 clear lime bags, 1 shiny teal bag.
-dark tan bags contain 5 dim indigo bags, 3 shiny beige bags, 5 dim tan bags, 2 pale black bags.
-dotted tomato bags contain 3 shiny black bags, 3 pale crimson bags, 2 dim tan bags.
-posh violet bags contain 4 posh crimson bags, 1 muted fuchsia bag, 4 pale cyan bags, 3 mirrored gold bags.
-clear tan bags contain 2 bright tan bags, 5 faded beige bags.
-bright bronze bags contain no other bags.
-dotted brown bags contain 2 dotted black bags, 3 wavy coral bags.
-muted violet bags contain 3 faded magenta bags, 3 bright magenta bags.
-faded plum bags contain 2 dull lime bags, 4 dim coral bags, 5 shiny maroon bags, 3 pale red bags.
-dark lime bags contain 4 dim tomato bags.
-dull aqua bags contain 4 drab beige bags, 4 drab maroon bags.
-posh purple bags contain 2 vibrant purple bags, 5 shiny gold bags, 2 plaid turquoise bags.
-dull plum bags contain 5 dark brown bags, 4 muted black bags, 1 striped lavender bag.
-faded turquoise bags contain 3 shiny yellow bags, 4 faded plum bags, 5 pale violet bags, 4 dim lavender bags.
-striped bronze bags contain 1 muted bronze bag, 4 clear green bags, 4 shiny fuchsia bags, 5 pale red bags.
-mirrored blue bags contain 4 clear tomato bags, 5 shiny orange bags, 1 dull beige bag, 1 striped silver bag.
-shiny orange bags contain 2 light bronze bags, 4 dark tomato bags, 2 drab gold bags.
-shiny gray bags contain 1 dark maroon bag.
-drab red bags contain 5 wavy purple bags.
-posh fuchsia bags contain 3 mirrored chartreuse bags, 3 vibrant teal bags.
-light crimson bags contain 2 shiny aqua bags, 2 plaid chartreuse bags, 1 shiny gold bag, 1 wavy maroon bag.
-vibrant white bags contain 1 shiny brown bag, 5 light purple bags, 4 dull olive bags, 5 clear cyan bags.
-dark green bags contain 5 drab indigo bags, 1 striped coral bag.
-striped fuchsia bags contain 5 vibrant plum bags.
-bright turquoise bags contain 1 striped fuchsia bag, 3 posh purple bags, 5 dim aqua bags.
-striped tan bags contain 1 dotted cyan bag.
-shiny magenta bags contain 2 dark yellow bags, 1 faded silver bag, 4 muted orange bags, 3 bright fuchsia bags.
-dim violet bags contain 4 wavy bronze bags, 1 bright bronze bag.
-vibrant orange bags contain 2 faded chartreuse bags, 2 vibrant turquoise bags, 2 dull white bags.
-pale gold bags contain 5 light lavender bags, 4 mirrored orange bags, 4 muted chartreuse bags.
-pale red bags contain no other bags.
-plaid brown bags contain 3 mirrored orange bags.
-posh aqua bags contain 5 light blue bags, 1 dark indigo bag, 1 pale red bag, 2 vibrant turquoise bags.
-muted lime bags contain 1 dim chartreuse bag, 1 dotted olive bag, 4 pale violet bags, 3 muted fuchsia bags.
-dotted fuchsia bags contain 4 light teal bags, 1 muted chartreuse bag, 3 dark chartreuse bags, 4 dim lavender bags.
-dim turquoise bags contain 4 clear beige bags, 1 posh magenta bag, 3 faded brown bags.
-muted coral bags contain 4 dark salmon bags, 1 pale tomato bag, 2 shiny brown bags.
-dull chartreuse bags contain 3 shiny white bags, 4 shiny blue bags, 1 pale crimson bag.
-muted indigo bags contain 4 posh silver bags, 1 pale maroon bag, 1 dotted red bag, 1 drab coral bag.
-dim salmon bags contain 5 pale black bags, 3 dark salmon bags, 3 pale red bags, 5 dotted purple bags.
-dotted bronze bags contain 1 dim aqua bag, 2 mirrored maroon bags, 4 muted olive bags, 3 dull fuchsia bags.
-drab silver bags contain 2 dim coral bags, 3 dim salmon bags.
-striped salmon bags contain 2 dotted purple bags, 2 posh green bags, 3 plaid beige bags.
-mirrored tomato bags contain 5 faded tomato bags, 4 wavy red bags.
-dotted cyan bags contain 1 posh white bag, 3 striped lime bags, 4 dotted purple bags, 2 muted red bags.
-striped blue bags contain 4 dark silver bags, 4 pale silver bags.
-faded green bags contain 3 dotted violet bags, 3 pale turquoise bags.
-striped gray bags contain 2 pale tomato bags, 2 dark chartreuse bags, 5 muted red bags, 3 pale violet bags.
-pale lime bags contain 4 posh maroon bags, 2 drab plum bags, 3 drab coral bags.
-posh beige bags contain 4 wavy purple bags, 2 shiny gold bags, 1 dark tan bag.
-dotted tan bags contain 2 bright silver bags, 1 posh bronze bag, 2 dim coral bags, 2 dim tomato bags.
-shiny brown bags contain 4 dim violet bags, 5 bright silver bags.
-mirrored silver bags contain 1 striped blue bag, 2 shiny teal bags, 2 light coral bags, 1 dim beige bag.
-clear silver bags contain 4 mirrored fuchsia bags, 5 dull olive bags, 1 plaid crimson bag.
-dotted orange bags contain 1 mirrored turquoise bag, 3 wavy lime bags, 3 dotted yellow bags, 5 muted lavender bags.
-shiny purple bags contain 1 shiny beige bag, 3 plaid chartreuse bags.
-drab brown bags contain 2 dull indigo bags, 3 mirrored cyan bags, 1 dim crimson bag.
-vibrant tomato bags contain 5 faded plum bags.
-light tan bags contain 1 dark gold bag, 3 light salmon bags.
-vibrant cyan bags contain 4 shiny aqua bags.
-dotted purple bags contain 4 wavy coral bags.
-vibrant red bags contain 4 faded tan bags, 1 drab aqua bag, 4 striped black bags.
-faded lime bags contain 3 light olive bags, 3 striped yellow bags.
-posh gold bags contain 1 dull indigo bag, 1 mirrored chartreuse bag.
-shiny aqua bags contain 2 vibrant turquoise bags.
-light orange bags contain 3 vibrant violet bags, 2 dotted yellow bags, 1 dark gray bag, 5 striped chartreuse bags.
-pale black bags contain 1 plaid brown bag, 2 muted chartreuse bags.
-drab violet bags contain 5 clear cyan bags, 1 pale gold bag, 4 drab salmon bags, 2 posh orange bags.
-dim silver bags contain 5 clear cyan bags.
-muted beige bags contain 1 dim tomato bag, 3 light olive bags.
-drab turquoise bags contain 3 plaid orange bags, 1 light purple bag.
-dark red bags contain 2 vibrant yellow bags, 4 mirrored fuchsia bags, 5 posh bronze bags, 2 dark gold bags.
-vibrant maroon bags contain 5 drab beige bags, 1 dark beige bag, 1 dark brown bag, 4 pale maroon bags.
-wavy magenta bags contain 3 light tomato bags, 5 muted gold bags, 3 muted cyan bags.
-shiny chartreuse bags contain 5 pale yellow bags.
-dull cyan bags contain 4 bright maroon bags, 4 faded bronze bags.
-light black bags contain 4 shiny teal bags, 5 faded beige bags, 1 muted gold bag, 4 plaid silver bags.
-bright green bags contain 5 striped lime bags, 4 muted yellow bags, 4 light beige bags, 4 plaid violet bags.
-striped orange bags contain 1 mirrored orange bag, 2 bright salmon bags.
-muted plum bags contain 3 mirrored orange bags, 1 muted chartreuse bag, 2 dull olive bags, 4 dull brown bags.
-pale white bags contain 5 light silver bags.
-mirrored gray bags contain 1 mirrored violet bag, 5 striped gray bags, 5 dim aqua bags, 4 wavy fuchsia bags.
-wavy beige bags contain 2 shiny beige bags.
-dotted red bags contain 4 dotted purple bags, 3 muted aqua bags, 2 pale tomato bags, 4 pale bronze bags.
-posh lavender bags contain 2 dotted tomato bags, 3 dim lavender bags, 2 muted gray bags, 3 light plum bags.
-mirrored yellow bags contain 4 wavy gold bags.
-wavy brown bags contain 3 dim fuchsia bags, 4 dull turquoise bags.
-plaid chartreuse bags contain 5 plaid red bags.
-shiny turquoise bags contain 2 faded turquoise bags, 3 muted tan bags.
-mirrored brown bags contain 4 dotted fuchsia bags, 4 dim red bags, 2 dotted plum bags.
-dim tan bags contain 1 drab tomato bag, 3 wavy red bags, 1 plaid turquoise bag, 2 clear lavender bags.
-faded yellow bags contain 1 clear bronze bag, 3 clear olive bags.
-bright orange bags contain 5 mirrored blue bags, 3 shiny blue bags.
-striped red bags contain 5 bright green bags, 3 wavy yellow bags.
-bright indigo bags contain 2 light maroon bags, 5 shiny bronze bags, 2 bright white bags.
-light gray bags contain 2 dotted maroon bags.
-light silver bags contain no other bags.
-bright gold bags contain 2 striped fuchsia bags.
-drab purple bags contain 5 light silver bags, 2 dull yellow bags, 2 shiny teal bags.
-mirrored coral bags contain 4 dim plum bags.
-light coral bags contain 3 dim lavender bags, 5 wavy green bags, 2 light bronze bags.
-plaid indigo bags contain 3 mirrored orange bags, 5 pale gold bags.
-dark crimson bags contain 4 dark turquoise bags, 4 plaid green bags, 4 clear fuchsia bags.
-wavy teal bags contain 1 pale silver bag, 4 mirrored chartreuse bags, 4 shiny black bags.
-dull tan bags contain 4 muted magenta bags.
-light violet bags contain 4 faded yellow bags, 5 light maroon bags, 3 clear teal bags, 2 pale crimson bags.
-striped silver bags contain 3 plaid fuchsia bags.
-shiny crimson bags contain 5 muted yellow bags.
-mirrored salmon bags contain 1 dim tan bag.
-dotted coral bags contain 5 dark tan bags.
-wavy gold bags contain 2 wavy turquoise bags, 4 dim indigo bags, 3 wavy bronze bags.
-vibrant bronze bags contain 1 pale purple bag.
-posh silver bags contain 4 posh chartreuse bags, 3 bright salmon bags, 1 dotted bronze bag, 3 shiny coral bags.
-bright purple bags contain 5 clear beige bags, 3 pale yellow bags, 1 wavy tomato bag, 5 pale lavender bags.
-muted tan bags contain 4 bright white bags, 5 dotted silver bags, 2 clear blue bags, 4 mirrored turquoise bags.
-light white bags contain 2 shiny purple bags, 1 dull aqua bag, 2 vibrant blue bags.
-faded fuchsia bags contain 2 dark green bags, 3 shiny violet bags, 4 drab plum bags, 3 vibrant olive bags.
-clear gray bags contain 2 muted red bags.
-dark tomato bags contain 4 dotted purple bags, 3 faded turquoise bags.
-light magenta bags contain 1 dull fuchsia bag.
-light purple bags contain 3 drab magenta bags, 4 dark coral bags, 3 light silver bags.
-vibrant turquoise bags contain 4 dotted black bags.
-dim indigo bags contain 4 muted chartreuse bags.
-dim bronze bags contain 3 drab gold bags, 4 clear brown bags, 2 muted tan bags.
-clear green bags contain 2 plaid fuchsia bags, 1 wavy bronze bag.
-dull maroon bags contain 2 wavy yellow bags, 1 dotted fuchsia bag, 4 mirrored yellow bags.
-dotted gray bags contain 5 dotted white bags, 2 pale tomato bags, 5 bright tan bags, 3 plaid turquoise bags.
-plaid gray bags contain 5 wavy lime bags, 4 dull aqua bags.
-mirrored crimson bags contain 1 shiny lavender bag, 4 plaid purple bags.
-shiny silver bags contain 5 vibrant lavender bags, 3 light coral bags, 5 dark aqua bags.
-dotted salmon bags contain 3 pale tomato bags.
-muted crimson bags contain 4 clear olive bags, 3 dull plum bags, 1 dark gray bag, 1 wavy lime bag.
-muted lavender bags contain 1 bright chartreuse bag, 3 pale yellow bags, 3 pale crimson bags.
-posh tan bags contain 4 faded tomato bags, 3 dotted olive bags, 4 striped maroon bags.
-vibrant salmon bags contain 4 vibrant indigo bags, 1 plaid orange bag.
-faded chartreuse bags contain 2 mirrored orange bags, 1 pale crimson bag.
-striped tomato bags contain 3 dim tan bags, 2 wavy gold bags.
-dim yellow bags contain 1 clear purple bag, 1 wavy red bag, 1 drab bronze bag.
-wavy tomato bags contain 5 dotted tomato bags, 3 dim salmon bags, 5 light tan bags, 3 dull brown bags.
-bright lime bags contain 3 mirrored turquoise bags, 3 dotted tan bags, 3 posh black bags, 5 wavy gold bags.
-muted brown bags contain 4 shiny indigo bags, 4 muted tan bags, 3 wavy tan bags.
-pale cyan bags contain 1 dotted black bag.
-drab green bags contain 1 muted cyan bag.
-dim teal bags contain 4 faded lavender bags, 2 pale violet bags.
-drab lavender bags contain 1 pale gold bag, 5 vibrant brown bags, 4 posh indigo bags, 1 plaid olive bag.
-dotted turquoise bags contain 2 muted lime bags, 4 striped indigo bags.
-clear white bags contain 2 bright lime bags, 1 mirrored coral bag.
-dark purple bags contain 5 wavy crimson bags, 5 light olive bags.
-light tomato bags contain 4 posh black bags, 1 faded blue bag, 5 dim black bags, 3 dull lime bags.
-bright aqua bags contain 3 clear tomato bags.
-bright tomato bags contain 1 clear green bag, 3 bright gray bags, 3 mirrored cyan bags, 5 posh chartreuse bags.
-dull yellow bags contain 5 wavy purple bags, 3 light purple bags, 5 clear cyan bags, 2 wavy coral bags.
-striped coral bags contain 3 mirrored black bags, 5 wavy coral bags, 2 posh white bags.
-shiny bronze bags contain 2 dim tomato bags, 3 dull lime bags.
-vibrant aqua bags contain 4 dull olive bags, 4 mirrored turquoise bags, 1 vibrant teal bag.
-faded magenta bags contain 3 plaid chartreuse bags, 5 plaid white bags, 1 drab lime bag, 3 mirrored fuchsia bags.
-pale beige bags contain 3 wavy gray bags, 5 mirrored tomato bags, 1 bright beige bag.
-pale crimson bags contain 1 pale violet bag, 4 pale black bags, 5 dim tomato bags, 1 mirrored turquoise bag.
-dark blue bags contain 4 dark maroon bags, 1 faded brown bag, 2 wavy red bags.
-posh tomato bags contain 2 posh beige bags, 4 dark maroon bags.
-dim plum bags contain 2 muted crimson bags, 1 striped coral bag, 2 plaid yellow bags, 5 striped violet bags.
-dull black bags contain 3 posh tomato bags, 1 vibrant yellow bag, 4 mirrored salmon bags, 2 light green bags.
-wavy plum bags contain 4 wavy blue bags.
-bright coral bags contain 4 posh gold bags, 2 plaid lime bags, 3 shiny black bags, 5 dim magenta bags.
-posh blue bags contain 2 dotted turquoise bags, 2 bright olive bags, 2 plaid gold bags.
-vibrant purple bags contain 2 mirrored orange bags, 4 dull lavender bags, 2 pale red bags.
-dark white bags contain 4 drab lime bags.
-wavy crimson bags contain 2 dark salmon bags, 5 wavy yellow bags, 2 bright bronze bags, 2 drab crimson bags.
-clear coral bags contain 4 vibrant blue bags.
-muted olive bags contain 3 plaid brown bags, 1 dim fuchsia bag, 2 posh yellow bags.
-plaid violet bags contain 4 muted aqua bags.
-plaid teal bags contain 4 bright tan bags, 2 dark tomato bags.
-plaid purple bags contain 3 posh teal bags.
-pale turquoise bags contain 2 faded purple bags, 4 mirrored maroon bags, 1 mirrored salmon bag.
-muted fuchsia bags contain 5 bright bronze bags, 4 muted gold bags.
-bright olive bags contain 2 faded blue bags, 3 faded turquoise bags, 5 light bronze bags, 3 dim tan bags.
-bright gray bags contain 1 bright white bag, 2 muted orange bags.
-light blue bags contain 1 dotted purple bag, 3 dim black bags, 3 posh purple bags, 2 mirrored violet bags.
-posh bronze bags contain 3 plaid fuchsia bags, 1 drab gold bag, 4 mirrored orange bags, 4 light teal bags.
-faded olive bags contain 3 striped blue bags, 3 dim salmon bags, 4 pale red bags, 2 dull maroon bags.
-dull coral bags contain 2 wavy gold bags, 1 dark magenta bag.
-dull olive bags contain 3 plaid turquoise bags, 3 plaid fuchsia bags, 4 wavy lime bags, 1 dotted black bag.
-plaid orange bags contain 1 dark salmon bag, 1 striped turquoise bag.
-clear blue bags contain 3 dim tan bags, 3 muted red bags, 3 faded tomato bags.
-dark chartreuse bags contain 4 bright bronze bags, 1 dim indigo bag.
-plaid tomato bags contain 5 shiny turquoise bags, 4 clear tan bags, 2 dotted bronze bags, 5 muted magenta bags.
-mirrored green bags contain 2 light silver bags, 3 light brown bags, 4 vibrant purple bags, 2 posh green bags.
-drab blue bags contain 4 drab indigo bags.
-vibrant silver bags contain 3 striped violet bags, 1 striped white bag, 2 bright blue bags.
-shiny olive bags contain 3 drab tomato bags.
-dull red bags contain 4 dim cyan bags, 3 wavy lime bags.
-vibrant plum bags contain 3 wavy coral bags, 2 light lavender bags.
-faded cyan bags contain 1 dim brown bag, 5 posh indigo bags.
-dotted violet bags contain 1 pale tomato bag, 5 dim plum bags.
-striped brown bags contain 5 dim coral bags, 4 clear blue bags.
-dotted indigo bags contain 5 clear salmon bags, 4 dim bronze bags.
-posh cyan bags contain 2 vibrant magenta bags.
-clear beige bags contain 1 bright olive bag.
-dark black bags contain 4 dull crimson bags, 3 plaid green bags.
-mirrored lavender bags contain 5 dark silver bags.
-bright black bags contain 4 shiny brown bags, 1 vibrant crimson bag, 2 posh white bags, 3 wavy gold bags.
-pale indigo bags contain 5 shiny gold bags, 3 light bronze bags, 3 striped turquoise bags.
-plaid cyan bags contain 1 shiny tan bag, 4 dark tan bags, 1 dull yellow bag.
-bright plum bags contain 1 pale chartreuse bag, 3 plaid red bags, 1 faded beige bag, 1 posh gray bag.
-drab maroon bags contain 3 dull olive bags, 1 pale green bag, 2 mirrored turquoise bags.
-pale chartreuse bags contain 4 dim tomato bags.
-striped black bags contain 4 vibrant turquoise bags, 3 faded white bags, 4 light plum bags, 1 pale black bag.
-dotted gold bags contain 5 posh teal bags, 5 striped violet bags.
-posh orange bags contain 1 clear green bag.
-light green bags contain 5 wavy turquoise bags, 2 pale red bags, 3 dark tomato bags, 3 dull turquoise bags.
-plaid beige bags contain 4 light silver bags, 4 plaid turquoise bags, 5 drab purple bags, 4 clear lime bags.
-mirrored violet bags contain 2 wavy fuchsia bags, 5 bright bronze bags.
-striped plum bags contain 2 plaid indigo bags, 5 bright yellow bags, 1 wavy magenta bag.
-bright yellow bags contain 3 wavy yellow bags.
-drab aqua bags contain 5 dark red bags, 2 light gold bags.
-plaid bronze bags contain 1 drab magenta bag.
-faded tan bags contain 4 shiny aqua bags, 2 light chartreuse bags.
-drab indigo bags contain 5 dotted beige bags, 3 dull lime bags, 1 striped violet bag, 4 vibrant tan bags.
-dark gold bags contain 4 mirrored lime bags, 3 dark salmon bags.
-muted orange bags contain 1 dull yellow bag, 2 shiny brown bags.
-plaid gold bags contain 4 drab coral bags, 5 shiny cyan bags.
-posh crimson bags contain 3 light brown bags, 3 bright bronze bags, 3 shiny yellow bags.
-bright magenta bags contain 5 dim lavender bags.
-light chartreuse bags contain 2 drab bronze bags, 3 dim coral bags.
-dim tomato bags contain no other bags.
-dark beige bags contain 3 mirrored yellow bags, 2 dull olive bags, 5 striped brown bags.
-clear cyan bags contain 5 drab beige bags, 1 shiny yellow bag, 5 wavy purple bags, 5 dark chartreuse bags.
-dark coral bags contain 3 dim lavender bags, 3 pale green bags, 4 mirrored orange bags, 1 dim coral bag.
-light lime bags contain 5 mirrored brown bags.
-shiny lavender bags contain 5 drab tan bags.
-faded lavender bags contain 1 light salmon bag, 2 dotted purple bags, 5 pale gold bags, 3 muted gold bags.
-pale tomato bags contain 5 dim coral bags.
-plaid coral bags contain 3 dull blue bags, 1 posh white bag, 3 light orange bags.
-dim coral bags contain no other bags.
-dotted olive bags contain 5 mirrored green bags, 3 drab aqua bags, 2 dull beige bags, 3 dim indigo bags.
-dark brown bags contain 1 muted tan bag, 5 wavy lime bags.
-mirrored red bags contain 5 vibrant aqua bags, 3 bright gray bags, 4 striped gray bags, 2 light lavender bags.
-mirrored olive bags contain 5 dark chartreuse bags, 1 dim lavender bag, 5 faded plum bags.
-dim black bags contain 1 shiny yellow bag, 4 plaid indigo bags.
-shiny maroon bags contain 1 mirrored orange bag, 1 muted chartreuse bag, 5 wavy bronze bags, 1 dull lavender bag.
-pale brown bags contain 4 light teal bags, 1 light plum bag, 3 bright aqua bags.
-striped chartreuse bags contain 2 shiny maroon bags.
-mirrored chartreuse bags contain 4 dotted tan bags, 4 bright bronze bags.
-plaid magenta bags contain 1 vibrant yellow bag, 5 wavy aqua bags, 5 dull turquoise bags, 2 wavy fuchsia bags.
-light salmon bags contain 3 muted tan bags, 3 faded turquoise bags, 4 drab bronze bags, 3 bright bronze bags.
-faded blue bags contain 1 wavy red bag, 5 wavy fuchsia bags, 4 bright bronze bags, 3 faded turquoise bags.
-plaid aqua bags contain 1 pale tan bag, 3 light white bags.
-mirrored turquoise bags contain 5 drab beige bags, 1 faded plum bag, 4 mirrored orange bags.
-shiny teal bags contain 2 pale black bags, 4 dull indigo bags, 4 vibrant teal bags.
-vibrant coral bags contain 3 drab turquoise bags, 4 striped beige bags, 1 wavy turquoise bag, 4 light crimson bags.
-faded gray bags contain 3 striped purple bags.




diff --git a/resources/input08.txt b/resources/input08.txt
deleted file mode 100644
index 2aacf1d97e45e6bedf087c8d108304b404723bb1..0000000000000000000000000000000000000000
--- a/resources/input08.txt
+++ /dev/null
@@ -1,636 +0,0 @@
-jmp +1
-acc -15
-acc +14
-acc +18
-jmp +443
-jmp +286
-acc +27
-jmp +522
-jmp +1
-acc -19
-acc +22
-acc +37
-jmp +111
-acc +28
-acc +43
-acc +18
-nop +597
-jmp +479
-jmp +604
-jmp +499
-acc +0
-acc +22
-acc +13
-jmp +566
-acc -12
-acc +0
-nop +153
-jmp +173
-jmp +192
-jmp +292
-acc +36
-acc +7
-jmp +440
-acc -17
-acc +40
-acc +24
-acc -7
-jmp +519
-nop +16
-acc +15
-acc +42
-jmp +445
-jmp +350
-acc +42
-acc +12
-acc +2
-jmp +133
-acc +12
-acc +3
-acc +27
-jmp +186
-acc +25
-acc +46
-jmp +285
-acc +32
-acc -11
-acc -6
-jmp +565
-nop +215
-acc +1
-acc +35
-jmp +1
-jmp +502
-acc +27
-acc +19
-acc -8
-acc -8
-jmp +531
-jmp -21
-nop +292
-acc +8
-acc -13
-jmp +26
-acc +1
-acc +45
-nop -42
-jmp +323
-jmp +39
-jmp +336
-acc +19
-jmp -51
-acc +45
-acc +26
-jmp +278
-jmp +6
-acc +40
-nop +271
-acc -10
-nop -4
-jmp +272
-nop -61
-acc +4
-acc -14
-acc +27
-jmp -70
-acc -9
-acc +29
-jmp +416
-acc +25
-acc +45
-jmp +19
-jmp +39
-acc -19
-acc +7
-jmp +248
-acc +11
-acc +36
-jmp +515
-acc +45
-acc +49
-jmp +329
-acc +30
-acc +31
-acc +28
-acc +26
-jmp +8
-jmp +283
-acc +32
-jmp +127
-acc +4
-acc +20
-jmp +92
-jmp +50
-jmp +133
-acc +5
-acc +8
-jmp +313
-acc +38
-acc +34
-jmp +395
-acc +14
-acc +29
-jmp +392
-nop +246
-jmp +374
-nop +429
-nop +388
-acc +3
-acc +0
-jmp +432
-acc -1
-acc +35
-acc +35
-jmp +148
-acc +8
-acc +11
-acc +12
-acc -10
-jmp +434
-acc -19
-jmp +330
-nop +329
-acc +30
-jmp +239
-acc -6
-jmp -136
-jmp +418
-nop +385
-jmp +1
-acc +34
-acc +9
-jmp +410
-nop -13
-acc +31
-acc +15
-acc +37
-jmp -142
-jmp +109
-acc -16
-nop +405
-nop +343
-jmp +8
-acc +44
-acc -15
-acc +7
-acc +9
-jmp +185
-acc +6
-jmp +35
-nop -25
-jmp +93
-acc +22
-acc -17
-acc +15
-acc +39
-jmp +41
-nop -123
-acc +15
-acc +6
-jmp -35
-acc +48
-jmp +422
-acc -7
-nop +67
-nop +66
-acc +48
-jmp -29
-acc -11
-acc +16
-jmp +92
-acc +45
-jmp +92
-jmp +212
-acc -3
-acc -18
-nop -186
-nop +7
-jmp -28
-nop +292
-acc +7
-nop -120
-acc +46
-jmp +48
-acc -3
-acc -16
-acc +50
-jmp -44
-acc -2
-acc -11
-jmp +236
-jmp +344
-acc +33
-acc +44
-acc +39
-nop -45
-jmp -53
-acc -11
-nop +380
-acc +35
-jmp +113
-nop +203
-acc +40
-jmp +167
-acc +44
-jmp +394
-jmp +229
-jmp -167
-jmp -204
-acc +21
-acc +49
-jmp +25
-acc -19
-acc -17
-acc +44
-jmp -11
-acc +40
-acc +12
-jmp +253
-acc +21
-jmp +349
-jmp +285
-acc +0
-nop +261
-acc +15
-acc +38
-jmp +10
-acc +27
-jmp +1
-jmp +373
-jmp -151
-acc +6
-jmp -48
-acc +14
-acc -8
-jmp -61
-acc +8
-acc +20
-jmp +1
-jmp +1
-jmp +208
-acc -18
-acc +32
-jmp +94
-jmp +262
-acc +0
-jmp -156
-nop +188
-nop +312
-acc +21
-acc +6
-jmp -123
-acc +47
-jmp +316
-acc +25
-nop +290
-jmp +62
-acc -7
-acc +36
-nop +212
-acc +14
-jmp +332
-jmp +291
-jmp +226
-acc +30
-jmp -161
-acc +39
-acc +38
-jmp +203
-nop +63
-nop -6
-acc -15
-nop -56
-jmp +72
-acc +1
-acc +34
-acc +22
-acc +19
-jmp -135
-acc +27
-jmp -303
-acc +1
-acc +48
-acc -19
-jmp +142
-acc +50
-jmp +298
-acc +43
-acc +0
-acc +50
-acc +12
-jmp +137
-acc +41
-nop +252
-jmp -310
-acc +13
-acc +34
-acc -15
-acc +43
-jmp +236
-acc +5
-acc -8
-acc +25
-acc +45
-jmp +153
-acc -12
-acc +31
-acc -1
-jmp +120
-jmp +236
-acc +38
-nop -238
-jmp -328
-jmp +81
-acc +48
-acc +15
-acc -9
-jmp -73
-nop -49
-jmp -271
-acc -17
-acc -17
-jmp +106
-nop +212
-jmp -290
-acc +36
-nop +109
-jmp +186
-jmp -310
-acc +4
-acc +16
-jmp +117
-jmp +1
-acc +10
-jmp +20
-acc +12
-jmp -311
-acc +12
-acc +30
-nop +182
-jmp -315
-acc +25
-acc +12
-acc +30
-jmp +50
-acc -19
-jmp -333
-acc +30
-nop +87
-jmp -199
-acc +8
-jmp +112
-acc -8
-jmp -313
-acc +7
-acc +32
-jmp +1
-jmp +230
-acc +25
-acc +45
-acc +20
-acc +0
-jmp -307
-acc +30
-nop -253
-acc +7
-acc +39
-jmp -113
-acc -12
-jmp +209
-acc +42
-acc +17
-acc -19
-acc +24
-jmp -170
-acc +30
-acc +9
-acc -1
-jmp -328
-acc +19
-acc +45
-jmp +132
-nop -244
-nop +35
-jmp +34
-acc -10
-acc +26
-acc +35
-nop -238
-jmp +54
-acc +15
-nop -378
-acc +42
-jmp -43
-acc -9
-acc -5
-acc -11
-nop -307
-jmp -129
-nop -202
-acc -9
-nop -376
-acc +11
-jmp -75
-jmp +14
-acc -1
-acc +32
-acc -14
-acc +16
-jmp +39
-acc +42
-acc +32
-jmp -133
-acc +1
-acc +17
-nop +85
-acc +35
-jmp +83
-acc +27
-acc +0
-acc -12
-jmp -93
-acc +48
-acc +35
-nop +154
-jmp -287
-jmp -347
-jmp -348
-acc +18
-jmp -374
-acc -15
-jmp +36
-jmp -123
-acc -11
-jmp +55
-acc +19
-acc +23
-jmp -339
-nop +5
-acc +44
-acc +2
-jmp +1
-jmp -417
-acc +23
-jmp -253
-acc -9
-acc -3
-jmp -138
-jmp -227
-acc +12
-jmp -437
-acc +47
-acc +19
-acc -6
-jmp -245
-acc +2
-jmp -328
-acc -14
-acc +25
-acc +4
-acc -2
-jmp -411
-jmp -351
-jmp -459
-acc +3
-acc +48
-jmp -134
-nop +54
-acc -14
-jmp -298
-jmp -401
-acc -14
-acc +25
-nop -55
-acc -10
-jmp -312
-acc -7
-acc +45
-jmp -74
-acc +30
-jmp -462
-acc +5
-acc -8
-jmp -355
-acc +9
-acc +44
-acc +44
-jmp -150
-jmp -484
-acc +14
-acc +19
-acc -6
-jmp -474
-acc -18
-jmp -166
-jmp -264
-acc -15
-acc +17
-acc +29
-jmp -149
-nop -273
-acc +31
-acc +0
-acc -2
-jmp -410
-jmp -411
-acc +47
-acc -6
-nop -287
-jmp -436
-acc +4
-nop +88
-jmp -158
-acc +32
-jmp +1
-acc -15
-jmp -319
-acc -6
-acc -18
-acc +49
-jmp -256
-acc -18
-acc +31
-acc +27
-acc +27
-jmp -351
-jmp +58
-acc +12
-jmp +1
-acc +32
-nop -151
-jmp -411
-acc +19
-acc +7
-jmp -287
-acc +30
-jmp -496
-acc -11
-acc +5
-acc +42
-acc +25
-jmp -249
-acc -1
-jmp -243
-jmp -190
-acc +32
-acc +32
-acc +14
-jmp +12
-acc +5
-acc +30
-acc +34
-jmp -46
-acc -13
-acc +5
-acc +45
-jmp -271
-acc +29
-acc +37
-jmp -323
-nop -18
-acc -2
-acc +21
-acc -12
-jmp -453
-acc -14
-acc +19
-nop -173
-jmp -411
-acc +24
-acc -7
-nop -136
-acc +6
-jmp -357
-acc -1
-acc -1
-acc +32
-jmp -264
-acc +26
-jmp -175
-acc +10
-acc +35
-nop -361
-jmp -493
-acc +14
-jmp -206
-jmp -138
-acc -1
-jmp -156
-acc +3
-acc +11
-acc -2
-jmp -213
-acc +35
-acc -13
-acc +47
-acc +45
-jmp -376
-jmp -543
-jmp -479
-acc +29
-jmp -532
-acc +28
-acc +47
-acc -11
-acc -14
-jmp +1




diff --git a/resources/input09.txt b/resources/input09.txt
deleted file mode 100644
index 3102d884ecfd78e795cfe802218b37de5885672e..0000000000000000000000000000000000000000
--- a/resources/input09.txt
+++ /dev/null
@@ -1,1000 +0,0 @@
-24
-27
-31
-3
-26
-29
-14
-16
-25
-15
-32
-6
-41
-22
-2
-1
-12
-8
-7
-4
-48
-13
-47
-34
-5
-18
-33
-11
-45
-3
-9
-10
-14
-21
-16
-15
-17
-20
-19
-6
-22
-23
-12
-8
-7
-26
-24
-13
-25
-27
-29
-18
-28
-35
-42
-30
-31
-32
-14
-33
-21
-46
-36
-37
-15
-19
-40
-63
-20
-22
-38
-67
-34
-39
-43
-41
-53
-29
-44
-45
-76
-84
-50
-35
-55
-42
-56
-74
-48
-73
-49
-58
-88
-51
-63
-64
-69
-68
-70
-71
-77
-78
-86
-85
-95
-90
-114
-138
-83
-91
-136
-206
-153
-97
-121
-119
-109
-115
-120
-131
-139
-137
-141
-207
-181
-155
-163
-173
-176
-174
-210
-180
-305
-192
-212
-369
-303
-228
-206
-224
-234
-229
-317
-251
-280
-350
-278
-296
-318
-379
-328
-336
-382
-497
-354
-372
-386
-440
-398
-418
-524
-587
-479
-430
-453
-707
-696
-812
-697
-664
-596
-574
-771
-722
-682
-1175
-690
-758
-1140
-726
-826
-784
-816
-897
-992
-883
-1066
-909
-1112
-1179
-1170
-1296
-1318
-2088
-1238
-1380
-1300
-1995
-1372
-1466
-1416
-1448
-1896
-1510
-1542
-2112
-1986
-1725
-1780
-3008
-1949
-1975
-3412
-2282
-2721
-2408
-2734
-2828
-2864
-3018
-3459
-2672
-2788
-2820
-2882
-2958
-3228
-3322
-4231
-3267
-4670
-3505
-3674
-4957
-4257
-4683
-4383
-5522
-4690
-5129
-5080
-5406
-5460
-5492
-5554
-6247
-8175
-5608
-10162
-8195
-9663
-6495
-6589
-6772
-7888
-10278
-8803
-9763
-8640
-13803
-9073
-10928
-10182
-9770
-10540
-10486
-10866
-10952
-11046
-14411
-14422
-12103
-17541
-16981
-18573
-13084
-18918
-24897
-14660
-16528
-17876
-17443
-17713
-18843
-19255
-19559
-19952
-24908
-20310
-35824
-21352
-25363
-24036
-23149
-31188
-25187
-26763
-27744
-29612
-39565
-38870
-40023
-32103
-57441
-38795
-38814
-35156
-36968
-38098
-39207
-39511
-44501
-41662
-43459
-64233
-91977
-47185
-65558
-48336
-51950
-54799
-66614
-90745
-82970
-71310
-76912
-67259
-69071
-74667
-79760
-72124
-73254
-86696
-134559
-86163
-120357
-85121
-115595
-109017
-95521
-146374
-99135
-100286
-103135
-106749
-121413
-140513
-136330
-138569
-139383
-141195
-172859
-142325
-145378
-151884
-157245
-171817
-186982
-198656
-171284
-237704
-180642
-202270
-194656
-195807
-243648
-240330
-305405
-209884
-276843
-274899
-310386
-275713
-279764
-302623
-483245
-287703
-393312
-297262
-309129
-367091
-471520
-412154
-375298
-455541
-376449
-382912
-668211
-470706
-493069
-450214
-484783
-585285
-486727
-977852
-550612
-555477
-578336
-590326
-584965
-596832
-606391
-673711
-664353
-1135059
-957433
-788603
-942268
-973281
-1005691
-759361
-1021318
-920920
-934997
-1378929
-1476397
-971510
-1037339
-1042204
-1796700
-1963894
-1133813
-1163301
-1175291
-1344326
-1385435
-1280102
-1338064
-1423714
-1934652
-2482088
-1760113
-1730871
-2285793
-1680281
-1972336
-2306355
-2421133
-1906507
-2008849
-2013714
-3844847
-2171152
-2761778
-3586788
-2501365
-2297114
-2338592
-3330221
-2618166
-2665537
-3010973
-5061092
-3103995
-3411152
-3440394
-3490984
-4269450
-4310828
-3652617
-3878843
-4807720
-3915356
-3920221
-4022563
-6889816
-4468266
-8460337
-6088153
-6806858
-4635706
-4915280
-4956758
-6931378
-6270783
-8936320
-6114968
-6515147
-6544389
-6851546
-7093011
-7143601
-7675180
-7531460
-7572838
-7794199
-8383622
-7835577
-7942784
-8490829
-11275124
-9103972
-11150853
-9550986
-9592464
-9872038
-11227541
-11071726
-12385751
-12630115
-14768191
-13658748
-13944557
-13395935
-13995147
-15248018
-14818781
-15104298
-19658746
-20778527
-18696436
-16219199
-15778361
-23309610
-23546133
-18654958
-18976010
-20622712
-22502153
-26625262
-20943764
-31323497
-36048062
-25015866
-28477529
-27054683
-27340492
-27391082
-28214716
-29923079
-39319148
-30882659
-31997560
-39640200
-34433319
-34474797
-61865879
-37630968
-39277670
-45995450
-39598722
-39919774
-45959630
-43445917
-64397876
-47998447
-54445765
-53230582
-59097375
-62648035
-68134490
-60805738
-76950116
-58137795
-69563279
-62880219
-77550742
-73710989
-68908116
-106136242
-72105765
-76908638
-121018014
-79197444
-106093952
-79518496
-83365691
-145084606
-96676499
-115878617
-120785830
-107676347
-111368377
-151624261
-118943533
-136591208
-127045911
-134985984
-127701074
-154459380
-131788335
-141013881
-142619105
-148426612
-156427134
-149014403
-281505291
-158715940
-180042190
-189459643
-239295604
-191042038
-228464834
-236664447
-300828020
-219044724
-226619880
-298985723
-255534741
-245989444
-373035355
-290504275
-259489409
-268714955
-272802216
-280802738
-283632986
-291045717
-394416056
-305441537
-307730343
-371084228
-338758130
-599549062
-380501681
-573630236
-410086762
-501267050
-527168722
-519872744
-528204364
-517665597
-373803594
-586244275
-574156492
-532291625
-540292147
-578243753
-1028435772
-685943218
-856423727
-574678703
-596487254
-613171880
-644199667
-646488473
-709842358
-986975474
-1101325214
-906095219
-1106448117
-937255484
-914095741
-891469191
-1145463505
-1049957222
-947960086
-948482297
-1152400245
-1072583772
-1106970328
-1118535900
-1299115098
-1600147354
-1510582995
-1828724675
-1221167176
-1209659134
-1323014238
-2220425353
-1594970770
-2066495986
-1820190960
-1797564410
-1805564932
-1998439519
-1851351225
-1839429277
-2355122639
-2169649473
-3405079861
-2542930856
-2021066069
-2662983240
-2179554100
-2225506228
-2328195034
-3219606695
-2821314530
-2430826310
-2532673372
-3060596453
-2804629904
-4702322845
-3392535180
-3415161730
-3617755370
-3603129342
-6150428742
-3644994209
-4167624311
-3860495346
-4009078750
-4190715542
-4200620169
-5337303276
-5865226357
-5593269825
-7921464859
-4405060328
-7032917100
-5845988040
-5252140840
-4963499682
-5491422763
-6135802714
-9136416972
-6219791634
-9692042932
-7770753653
-7018291072
-7220884712
-7248123551
-7505489555
-7654072959
-11223632642
-7869574096
-8199794292
-8391335711
-8605680497
-10556769507
-12509713835
-13364023478
-10454922445
-9368560010
-11337410803
-10215640522
-10743563603
-11099302396
-11711214397
-12355594348
-13238082706
-13440676346
-14672364031
-26678759052
-14469008263
-14726374267
-18613137699
-15159562514
-19911008689
-16069368388
-22571234870
-21724154358
-16997016208
-17974240507
-19584200532
-19823482455
-20112123613
-21314942918
-20467862406
-27406779191
-23656316868
-21842865999
-22810516793
-28113040377
-25593677054
-27909684609
-28167050613
-36515230030
-29195382530
-35653568920
-34310574799
-41753874688
-31228930902
-48279174226
-48580902783
-44534671151
-65410191556
-48377547015
-37558441039
-40052062938
-77474556756
-40579986019
-50977567406
-42310728405
-44653382792
-70220413014
-47436543053
-67744160932
-53503361663
-54789059584
-56076735222
-84732292565
-60424313432
-63505957329
-65539505701
-93030929807
-68787371941
-71280993840
-77610503977
-78138427058
-79869169444
-80632048957
-82211823831
-82890714424
-155612983814
-162342796542
-117656956067
-175242753638
-105077696224
-92089925845
-107860856485
-242986914570
-108292421247
-119042867364
-150999195772
-154171708264
-330855737452
-143677932759
-129045463030
-136820499541
-140068365781
-238503698238
-148891497817
-165102538255
-162080993275
-160501218401
-162843872788
-270203653027
-201933581788
-225949377314
-197167622069
-199950782330
-224120563588
-200382347092
-211132793209
-285711997358
-227335288611
-291889335818
-616567734810
-265865962571
-283217171294
-269113828811
-272723395789
-276888865322
-493822917606
-472137234815
-324924866063
-309392716218
-432284646302
-322582211676
-323345091189
-360011494857
-397118404399
-467799544359
-400333129422
-397549969161
-411083575539
-424502910680
-411515140301
-546002694133
-493201251182
-496449117422
-608142037357
-669404211075
-595305607465
-541837224600
-549612261111
-582116112007
-600233956511
-632737807407
-648269957252
-682593706533
-631974927894
-720132180837
-645927302865
-893999086583
-1019657177658
-1093907121755
-868132673781
-1328274218194
-809065109462
-822598715840
-836018050981
-904716391483
-1078565229429
-1315437788302
-1038286342022
-1131728373118
-1091449485711
-1123953336607
-1214853919414
-1149846217622
-1264709818540
-1232208884405
-1264712735301
-1454573643734
-1536691319377
-1940793482580
-1529197290299
-1454992412327
-2151385550776
-2353724130324
-2397329964080
-1631663825302
-3808297774058
-1645083160443
-3851903607814
-2116851571451
-1943002733505
-2578945748934
-2129735827733
-2215402822318
-2223177858829
-2877292044848
-2273799554229
-2364700137036
-2719705147628
-2793910025600
-2496921619706
-3996363962338
-2984189702626
-2991683731704
-6843587339518
-3086656237629
-3606377963103
-3276746985745
-3761399653035
-3574666558807
-3588085893948
-3761934731894
-3774818988176
-4708681576667
-4836556719079
-4072738561238
-5855692734679
-5374213664554
-4438580681147
-4496977413058
-5550546539974
-4638499691265
-5481111322332
-5216626767334
-5290831645306
-6661322796436
-5975873434330
-6070845940255
-6363403223374
-6674742131577
-6693034200732
-8103355376161
-6851413544552
-7162752452755
-11601333133902
-8483500564843
-9243046054226
-7847557549414
-11266705079636
-9077080372412
-8569715974296
-11406239274653
-8935558094205
-9135477104323
-10614373125595
-9855126458599
-9929331336571
-14352103871657
-11654234868680
-17307407326327
-13526155676129
-12046719374585
-14174201316416
-13038145354951
-17646796346708
-13544447745284
-19098172512825
-14014165997307
-15010310002169
-25440906396052
-16331058114257
-16417273523710
-20731315241092
-17505274068501
-17705193078619
-18071035198528
-18790684552804
-18864889430776
-18990603562922
-38038722567419
-19784457795170
-23455487012700
-25084864729536
-23700954243265
-28554757747453
-25572875050714
-31109180553479
-31828829907755
-31191244091992
-39455072393359
-31719359075926
-29024475999476
-32515584070670
-31341368116426
-34036251192876
-32748331637967
-33922547592211
-35210467147120
-35576309267029
-63939575729959
-36861719751332




diff --git a/resources/input10.txt b/resources/input10.txt
deleted file mode 100644
index f0028b97b8543c4ebe00aa075668ea6f93769d18..0000000000000000000000000000000000000000
--- a/resources/input10.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-8
-40
-45
-93
-147
-64
-90
-125
-149
-145
-111
-126
-9
-146
-38
-97
-103
-6
-122
-34
-18
-35
-96
-86
-116
-29
-59
-118
-102
-26
-66
-17
-74
-94
-5
-114
-128
-1
-75
-47
-141
-58
-65
-100
-63
-12
-53
-25
-106
-136
-15
-82
-22
-117
-2
-80
-79
-139
-7
-81
-129
-19
-52
-87
-115
-132
-140
-88
-109
-62
-73
-46
-24
-69
-101
-110
-16
-95
-148
-76
-135
-142
-89
-50
-72
-41
-39
-42
-56
-51
-57
-127
-83
-121
-33
-32
-23




diff --git a/resources/input11.txt b/resources/input11.txt
deleted file mode 100644
index 85142c6dfa1d49b11cd3b35a2c3794e04fb2e248..0000000000000000000000000000000000000000
--- a/resources/input11.txt
+++ /dev/null
@@ -1,99 +0,0 @@
-LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.L.LLLLL.LLLL.LLLLLLLLL..LLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLL
-LLLLLLLLLL.L.LLLLLLL.LL.LLLLLLL.LLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
-LLLLLLLL.L.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
-.LLLLLLLLLLLLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LLL.LLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLL.LLLLL.LLLLLL
-LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLL.LLLLL.LL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
-LLL.LL..L..L.LL.L.L........L.............LLL....LL...L..L.L.....L..L.L.......L..L......LLLL.L.L
-LLLLLLLLLLLLLLLLL..LLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLLL.LLLLL
-LLLLLLLLLL.LLLL.LL.LLLL.LLLLLLLLLLLLLLLLLL.L.LLLLLLLLL.LLLL.L.L.LL.LLLLLLLLLLLLL.LL.LLLLLLLLLLL
-LLLLLLLLLLLLLLLLL.LLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LL.LLLLLLLLL.LLLLL.
-LLLLLLLLLLLLLLLLL..LLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
-LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLL.L..LLLLLLLL.LLLL.LLLLLL..LLLLLLLLLLLLLLL.LLLL.LLLLLL
-L.LLLLLLLL..LLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLL.LLLLLLLLL.LLLLL.LLLLLLL.LLLL.LLLLLL
-.LLLLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLL
-LL.L..LL...LL..L..L.L.L.....L..LL...L.LLL......L.L...L.LL...L.L.L.........L.LL....L.LL.LL...LL.
-LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.L.LLLLLLLLLLLLLL.LLL..LLLLLL
-LLLLL.LLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLL.L.LLL.LLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLLL
-LLL.LLLLLL.LLLLLLL.LLLL.LLL.LLL.LLLL.L.LL.LLLLLLLLLLLL.LLLL.LLL.LL.LLLLLLLLLLLLLLLLLLLLL.LL.LLL
-LLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
-...L...L..L.L...L..L......L.......L.L...L...L...L.....L...L...L....L...LL..L..L.............LL.
-LLL..LLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLLLLLLLL.LLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLL.LLLLL
-LLLLLLLLLL.LLL..LLLLLLL.L.LLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLL.LLLLLLLLLLLLLLLLLLLLLLLL
-LLLLLL.L.L.L.LLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLL.
-LLLLLL.LLL.LLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLL.LLLL.LLLLLLL.LLLL.LLLLL.
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LLL.LLLLL.L.LL.LLLLLL.LLLLLLLL..LLLLLLLLLLL.LLLLLL
-LLLLLL.LLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLL..LLLLLLLLL.LL.LLLLLL
-LLLLLLLLLLLLLLLLLLLLLL..LLLLLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLLLLLLLLL.LLLLL.L.LLLLLLLLLLLLL.LLLLLL
-LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LL.LLLL.LLLL.LLLLLL
-.L......L..L........LL..LLL...LL.L.....L..L.L..LLL..LLL..LL.LL...LLL.......L...LL...........LLL
-LLLLLLLLLL.LL.LLLL.LLLL.LLLLLLL.LLLLL.LLLLLL.LLLLLLLLL.LLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
-LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLL..LLLLLL.LLLLLLLLLLLLLLL.LL.L.L.LLLLLLLLLLLLL.LLLLLLL.LLL..LLLLLL
-LLLLLL.LLL.LLLLLLL.LLLLLLLLL.LL.LLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LLL.LLLL.LLLLLLL.LLLL.LLLLLL
-LLLLLLLLLLLLLLLL.L.LLLL.LLLLLL..LLLLLLLLLLLL.LLLLLLL.L.LLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLL..LLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLLL.LLLLLL.LL.LLLLL.LL.L.LL.LLLLLLLLLLL
-LLLLLL.LLL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLL.LLLLLLLLL.LLL.LLLLLLL.LLLLLLLLLLLLLLL..LLLL.LLLLLL
-LL.LLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLL.LLLLLLLL.LLLLLLLLLLLLLL.LLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLL.LLL.LLLLLL.LLLL..LLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLL.LLLL.LLLLLL
-........LL.L..LLLL..L..LLLL..LLL.........L.L......LL.LL..L........L...L..LL..LLLL.L.L.....L.LL.
-LL.LLLLLLL.LLLLLLL.LLLL.LLLL.LL.LLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLL..LLLLLLLLLLLLLLLL.LLLLL.L..LL
-LLLLLLLLL.LLLLLLLL.LLL..LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLL
-LL.LLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LLLLLLL..LLL.LLLLLLLLLL.LLLL
-LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLL.LLL..LLLLLLL.LLLL.LLLLLL
-LLL.LLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL..LLL.LLLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLL.LLLL.L
-LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLL.LLLLLL.LL.LLLL..LLLLLLLLLLLLLLLLLLL
-..LL..LLL.....LL......L..L.L.LLL........LL......LLL...L......L.LL..L.LL.LL.L.......LL....LL...L
-.LL.LLLLLLLLLLLLLL.L.LL.LLLLLLL.LLL.LL...L.L.LLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLL.LLLL.LLLLLL
-L.LLLLLLLLLLLL.LLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLLLL.LLL.LLLL.LLL.LLL.LLLL.LLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLL..L.LLLL.LLLLLLLL..LLL.LLLLLLL.LLLLLL
-.LLLLLLLLL.LLL.LLL.LLLL.LLL..LLLLLLLLLLLLLLLLLLLLLLLLLL.LLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
-L..L...LL...L.LL....L.LL.L..LL.L.........L.........LLLL..L.L..LL...L.L.L....LLL.....L..L.L...LL
-.LLLLLLLLL.LLLL.LL.LLLL.LLLLLLLLL.LLLL.LLLLL.LLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLL
-LLLLLLLLLL.L..LLLL.LLLL.LLLLLLL..LLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLL.LLLLL.LLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LL.LLLLL.LL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
-L.LLLLLLLL.LLLLLLLLLLLL.LLLL.LL..LLLLL.LLLL.LLLLLL.LLLLLLLL.LLL.LLLLLLLLLLLLLLLLL.L.LLLL.LLLLLL
-LLLLLLLLLL..LLLLLL.LLLLLLLLLLLL.L.LLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL..LL.LLLL.LLLLLLL.LLLL.LLLLLL
-LLL.LLLLLLLLLLLLLL.LLLLLLLLLLLL.LL.LLL.LLLLL.LLLLL.LLL.LLLL.LLLLLL.LL.LLLL..LLLLLLL.LLLLLLLLLLL
-LLLLLLLLLL.LLLLLLLLLLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLL..LLLL.LLLLLLLLLLLLLLL.LLLLL.LLLLLL.LLLLLL
-L.L...L...L..L..L....L...L..LLL..L....L..LL...LLL.LL.L...L.L..L.LLL..L....L.L...LL..L..L.L..L.L
-LLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
-LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLL.LLLLL.LLL.L
-LLLLLLLLLL.LLLLL.L.LLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLL
-L..LLLLLLLLL.LLLLL.L.LLLLLL.LLL.LLLLLL.LLLLLLLLLLLLLLL.LLLL.LLLLLL.LL.LLLLLLLLLLLLL.LLLLLLLLLLL
-LLLLL.LLLL.LLLL.LL.LLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLLLLL.LLLLLL.LL.L.LLL.LLLLLLLLL.LL.LLLL.LLLLLL
-....L....L..L.....L....L..LL....L.L..L..LL.LLL...L.....L.LLL.L.LL.....L....L.L........L.LLL....
-L.L.LL.LLL.LLLLL.L.LLLL.LLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLLLL.LLLLLLLLLLL.LL.LLLL.LLLLLL
-LLLLLLLLL.LLLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLL.LL.LLLLLL.LLLL.LLLLLL.LLLLLLL.LLLLLLLL.LLLL.LLLLLL
-LLLLLLLLL.LL.LLLLLLLLLL.LLLL.LLLL.LLLLLLLLLLLLLLLLLLLL..LLL.L..LLL.LLL.L.LL.LLLLLL..LLLL.LLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
-LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLLLLL.LLLL.LLLLLLLLLLLL.LL.LLLLLLL.LLLL.LLLLLL
-.....LL.LL.L.....LL.LL..L...L...LLLLL......L.L....LL...LLL...LLLLL..LL..L....L......L.......L.L
-LLLLLLLLLL.LLLL.LL.LLLL.L.LLLLL.LLLLLL.LL.LL.LLLLLLLLL.LLLL.LLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLL.LL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLL.L
-LLLL.LLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LLLLLLL.LLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
-LLLLLLLLL..LLLLLLL.L.LL..LLLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLL.LLL.LL.LLLLLLLL.LLLL.LLLLLLLLLLLLLL
-LLLLLLLLLLLLL.LLLLLLLLL.LLLLLL..LLLLLL.LLLLL.LLLLLLLLLLL.LLLLLLLLLL.LLLLLLL.LLLLLLL.LLLLLLLLLLL
-..LLL..L..L...L..L..L.L.....L............L.....L..L....L.LL......L.....L..LLL..L.L..L..........
-LLL.LLLLLL.LLLLLLLLLLLL.LL.LLLLLLLLLLL.LLLLLL.LLLLLLL..LLLL.LLLL.L.L.LLLL.LLLLLLLLLLLLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLL.LLLLLL.LL.LL.LLLLLLLLLL.LLL.LL.LLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL
-.LLLLLLLLL.LLLL.LLLLLLLLLLLLL...LL.L.LLLLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLLLLL.L.LLLLLL
-LLLL.LLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLLL.LLLLL.LLL.LLLL.LLLLLLLLLLLL.LLLLL.LLLLLLLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLLL.LLL.L.LLLLLLLL.LLLLLL..LLLLLLLLLLL
-.LLLLLLLLL.LLLLLLL.LLLL.LLLLLL..LLLLLL.LLLLL.LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL.LLLL.LLLLLL
-.L.....LL......L........L.L....LLL......L...L.LL...L...L..LL................L...L..L...........
-LLLLLLLLLL.LLLLLLL.LLLL.LLLL.LL.LLLLLL.LLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLL.LL.LLL.LLLLLLL
-LLLLLL.LLL.LLLLLL..LLL..LLLLLL..LLLLLL.LLLL..LLLLLLLLLLLLLLLLLLLLL.LLLLLLLL.LLLLLLL..LLLLLLLLLL
-LLLLLL..LL.LLLLLLL.LLLL.LLLL.LL.LLL.LL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLLLLLLLLLLLL.LL.L.LLLLLL.L.LLLLLL.LLLLLLLLLLLLLLLL.LL
-LLLLLLLLLL.LLLLLL.LLLLLLL.LLLLL.LLLLL.LLLLLL.L.LLLLLLL.LL.LLLLLLLLLLL.LLLLLLLLLLLLL.LLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.LLLLLLLLLLLLLL.LLLL..LLLLLLLLL.LLLLLLLLLLLLL.LLLLLL.LLLLLLL.LL.L.LLLLLL
-LLLLL.LLLL.LLLLLLL..LLLLLLLLLLL.LLLLLL.LLL.L.L.LLLLLLLLLLLL.LLLL.L.LLLLLLLL.LLLLLLL.LLLLLLLLLLL
-....LLL...LLL.....L.L...LL...L..L....LL...L.L.LLLLL....L......LLLL......L..LLLLL.L.LL...LL..LLL
-LLLLLLLLLLLLLLLLLLLLLLL.LLLLLLL.LL.LLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLL.LLLLLLLLLLLL.LLLLLL
-LLLLLLLLLLLLLLLLLL.LLLLLLLLLLLL.LLLLLL.LLLLL.LLLLLLLLL.LLLL.LLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
-.LLLLLLLLL.L..LLLLLLLLLLLLLLLLL.LLLLLL.LLLL..LLLLLLLLL.LLLLLLLLLLL.LLLLLLLLLLLLLLLL.LLLLLLLLLLL
-LLLLLLLLLL.LLLLLLL.LLLL.L.L.LLLLLLLLLL.LLLLLLLLLLLLLLLLLLLL.LLLLLL.LLLLLLLL.LLL.LLLL.LLL.LLLLLL
-LLLLLLLLLLLLLLLLLL.LLLL.LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL.LLLL.LLLLLL.LLLLLLLL..LLLLLL.LLLL.L.LLLL




diff --git a/resources/input12.txt b/resources/input12.txt
deleted file mode 100644
index 85892eab86ba12ad042e0b4cd9af1b93c915b941..0000000000000000000000000000000000000000
--- a/resources/input12.txt
+++ /dev/null
@@ -1,764 +0,0 @@
-R90
-W4
-L90
-N2
-E5
-N1
-N5
-R90
-E2
-L90
-F11
-L180
-W4
-L90
-S5
-L90
-F66
-W4
-F2
-E1
-S5
-W5
-F86
-E3
-R90
-N2
-F91
-F94
-R180
-W5
-F18
-R180
-F100
-W5
-F40
-W2
-R180
-F2
-E3
-N4
-W1
-L180
-N3
-E3
-S1
-L180
-W3
-R180
-E2
-F84
-L90
-W1
-N1
-F10
-N4
-R90
-E4
-F55
-S1
-W4
-S5
-W2
-R90
-S5
-E5
-F41
-S1
-W5
-F84
-E3
-F48
-F12
-L90
-F79
-N5
-E2
-F34
-E5
-N2
-F76
-S3
-F73
-W3
-S1
-R180
-W4
-L90
-F9
-E2
-F76
-N3
-F46
-N5
-F41
-S5
-L90
-N3
-L180
-F95
-E3
-R90
-F3
-E4
-F15
-S2
-W5
-R90
-N1
-F26
-F99
-S1
-F13
-F88
-W2
-L90
-W5
-R90
-F2
-E4
-R180
-N2
-F5
-N2
-R90
-S4
-E2
-L90
-F21
-N3
-R90
-E2
-E4
-S1
-W3
-F42
-N3
-E3
-N2
-E1
-L90
-S1
-L90
-F50
-S4
-F24
-S3
-F50
-L90
-F70
-L180
-F19
-N3
-L90
-F18
-L90
-F5
-F70
-R180
-N1
-L90
-E4
-S2
-W3
-N3
-F16
-W5
-F15
-S1
-L180
-S3
-F60
-R180
-F7
-R180
-W4
-R180
-S2
-N5
-W1
-F59
-R90
-S5
-W5
-F80
-L90
-R90
-F62
-R180
-S3
-R180
-W3
-L90
-N2
-F64
-E4
-R180
-S4
-R90
-E3
-F27
-W4
-R90
-F45
-L90
-N1
-E3
-F12
-L180
-F83
-S1
-W5
-L270
-E5
-F97
-F45
-N1
-F16
-F85
-E4
-S2
-N1
-E3
-F41
-N2
-R90
-S2
-R180
-E5
-L270
-F22
-W2
-R180
-N3
-R270
-E5
-L90
-S2
-W5
-F57
-L90
-L90
-F96
-E1
-S4
-W1
-L90
-W1
-F20
-N5
-E4
-R90
-W3
-S5
-R90
-W4
-R270
-F91
-E5
-L90
-F19
-L90
-S4
-R90
-S4
-F58
-R180
-F78
-R180
-F16
-W4
-R90
-F13
-S3
-E3
-F14
-N4
-E4
-R90
-W3
-S4
-W5
-F53
-R90
-S5
-F67
-L90
-W5
-F97
-R90
-W3
-F82
-N5
-F92
-E3
-R90
-F55
-W1
-F100
-E3
-F88
-S2
-E3
-N4
-E1
-F75
-F2
-L180
-E5
-L90
-F40
-N2
-R90
-F25
-N2
-L90
-E4
-F15
-L90
-S3
-W2
-R90
-E2
-R90
-S5
-L90
-F14
-W1
-L180
-F19
-R180
-W4
-S1
-L90
-F14
-N5
-N3
-L90
-N2
-F78
-L90
-N5
-E3
-N2
-F73
-S2
-F88
-N3
-F42
-S5
-F38
-S4
-F73
-R90
-F45
-R90
-F98
-L90
-W5
-S4
-L90
-E3
-L90
-F32
-N2
-F32
-W5
-S1
-R180
-F76
-W1
-L180
-W2
-S1
-R180
-S2
-F1
-S1
-E2
-R90
-N3
-E4
-L90
-S5
-L270
-N2
-F83
-L90
-F53
-L90
-F100
-W1
-L90
-E4
-R90
-S4
-F41
-W2
-R270
-E4
-F65
-R90
-F39
-E5
-R180
-F1
-W2
-R180
-E5
-L270
-E3
-R90
-W3
-R90
-W5
-F17
-E4
-F18
-S2
-N5
-E5
-L90
-W4
-F1
-S4
-E4
-L90
-S3
-E4
-F62
-R180
-F52
-S3
-F10
-S5
-L90
-F28
-R90
-F49
-W3
-F9
-N3
-W2
-N1
-L90
-L90
-E2
-S2
-W2
-F47
-R180
-E1
-R90
-F39
-E3
-N2
-W2
-F86
-F94
-R90
-S2
-R90
-E3
-F88
-N3
-E4
-L90
-S5
-F63
-W5
-L180
-N5
-N2
-F34
-R90
-F19
-N1
-F95
-L90
-E5
-L90
-F3
-R180
-S4
-L90
-F1
-N4
-R90
-E5
-N5
-R90
-E3
-F21
-R180
-S2
-R90
-N2
-L90
-N2
-W2
-E4
-S2
-E1
-N3
-R90
-W1
-L90
-F42
-W4
-F98
-W4
-L90
-F84
-S4
-F67
-W2
-S2
-L90
-S4
-E5
-L90
-F58
-E1
-S1
-W4
-N3
-W3
-R90
-E3
-F19
-S4
-L180
-N3
-R90
-N5
-F77
-N5
-W2
-S1
-L180
-F78
-W5
-S5
-E3
-N2
-F64
-L180
-F21
-R90
-W2
-F44
-N2
-L90
-F91
-S4
-R180
-N2
-W2
-F77
-S5
-F50
-R90
-F21
-W5
-L180
-S4
-F71
-E1
-N4
-R90
-F93
-W1
-N2
-F23
-E4
-L180
-F11
-E4
-F17
-R180
-N3
-R90
-F92
-R180
-F97
-S1
-E1
-F67
-E4
-R90
-F5
-F8
-L180
-L180
-L90
-N3
-N3
-R180
-E2
-F21
-L180
-N1
-S3
-L90
-W1
-L90
-E4
-R90
-F75
-R90
-W3
-F93
-L90
-S4
-F35
-F72
-S5
-E3
-F7
-S3
-R90
-W2
-R90
-F21
-W3
-N5
-F70
-W5
-N2
-L270
-F69
-L90
-S2
-F88
-W5
-S4
-R180
-E2
-F52
-N1
-F93
-N2
-E5
-S4
-L90
-N4
-R90
-F65
-S4
-L180
-S3
-F8
-E4
-R90
-F76
-E3
-F33
-R90
-N2
-F25
-N4
-E1
-S2
-L90
-N1
-L90
-N5
-R90
-E5
-F81
-N5
-F3
-W4
-S1
-F45
-W1
-F43
-E4
-N1
-F45
-E4
-S4
-E4
-N2
-E2
-F15
-W1
-L270
-F84
-R90
-N1
-F21
-N2
-F26
-W1
-N1
-W4
-S4
-F25
-R90
-N5
-R90
-S2
-R90
-E2
-L180
-N4
-R270
-S3
-F46
-S4
-S2
-L90
-N2
-F7
-W1
-S1
-L270
-E2
-R180
-S1
-W4
-N1
-F65
-L90
-E1
-N1
-R90
-N3
-W1
-F47
-R90
-F95
-S4
-L270
-F21
-W4
-S3
-F55
-E2
-N2
-F85
-N2
-R90
-E2
-F8
-S2
-W2
-R90
-W4
-F54
-E4
-F76
-N2
-F5
-F50
-N3
-R180
-W3
-S4
-E1
-L90
-S4
-W1
-F8




diff --git a/resources/input13.txt b/resources/input13.txt
deleted file mode 100644
index 78137a2f0556423c156c823ef0328e3bd353a303..0000000000000000000000000000000000000000
--- a/resources/input13.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-1005162
-19,x,x,x,x,x,x,x,x,41,x,x,x,x,x,x,x,x,x,823,x,x,x,x,x,x,x,23,x,x,x,x,x,x,x,x,17,x,x,x,x,x,x,x,x,x,x,x,29,x,443,x,x,x,x,x,37,x,x,x,x,x,x,13




diff --git a/src/aoc/core.clj b/src/aoc/core.clj
deleted file mode 100644
index 5ddabcb526200731ceb11d493d20e53c6dbc951d..0000000000000000000000000000000000000000
--- a/src/aoc/core.clj
+++ /dev/null
@@ -1,7 +0,0 @@
-(ns aoc.core
-  (:gen-class)
-  (:require [aoc.day13 :as day13]))
-
-(defn -main
-  [& args]
-  (day13/main))




diff --git a/src/aoc/day01.clj b/src/aoc/day01.clj
deleted file mode 100644
index 19290da98555f562ee0272f29c8aa9f01a45bc56..0000000000000000000000000000000000000000
--- a/src/aoc/day01.clj
+++ /dev/null
@@ -1,46 +0,0 @@
-(ns aoc.day01
-  (:require [clojure.java.io :as io]))
-
-(defn lines [s]
-  (clojure.string/split s #"\n"))
-
-;; ------------
-
-(defn read-input []
-  (->> "input01.txt"
-       io/resource
-       slurp
-       lines
-       (map read-string)))
-
-(defn produce-matches-1 [input]
-  (for [x input]
-    (for [y input]
-      (when (= 2020 (+ x y))
-        [x y]))))
-
-(defn compute-1 [input]
-  (->> (produce-matches-1 input)
-       flatten
-       (remove nil?)
-       (take 2)
-       (apply *)))
-
-(defn produce-matches-2 [input]
-  (for [x input]
-    (for [y input]
-      (for [z input]
-        (when (= 2020 (+ x y z))
-          [x y z])))))
-
-(defn compute-2 [input]
-  (->> (produce-matches-2 input)
-       flatten
-       (remove nil?)
-       (take 3)
-       (apply *)))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))




diff --git a/src/aoc/day02.clj b/src/aoc/day02.clj
deleted file mode 100644
index 578f6b5312cffbfe71335bda1d55f8565860d913..0000000000000000000000000000000000000000
--- a/src/aoc/day02.clj
+++ /dev/null
@@ -1,79 +0,0 @@
-(ns aoc.day02
-  (:require [clojure.java.io :as io]))
-
-(def example "1-3 a: abcde
-1-3 b: cdefg
-2-9 c: ccccccccc")
-
-;; https://gist.github.com/edbond/665401
-(defmacro xor
-  "Evaluates exprs one at a time, from left to right.  If only one form returns
-  a logical true value (neither nil nor false), returns true.  If more than one
-  value returns logical true or no value returns logical true, retuns a logical
-  false value.  As soon as two logically true forms are encountered, no
-  remaining expression is evaluated.  (xor) returns nil."
-  ([] nil)
-  ([f & r]
-     `(loop [t# false f# '[~f ~@r]]
-        (if-not (seq f#) t#
-                (let [fv# (eval (first f#))]
-                  (cond
-                   (and t# fv#) false
-                   (and (not t#) fv#) (recur true (rest f#))
-                   :else (recur t# (rest f#))))))))
-
-(defn parse-line [line]
-  (zipmap [:min :max :letter :password]
-          (rest
-            (re-find #"(\d+)-(\d+) (\w): (\w+)" line))))
-
-(defn string-to-char [s]
-  (first (char-array s)))
-
-(defn password-valid? [p]
-  (let [min          (read-string (:min p))
-        max          (read-string (:max p))
-        freqs        (frequencies (:password p))
-        letter       (string-to-char (:letter p))
-        letter-count (get freqs letter 0)]
-    (and
-     (>= letter-count min)
-     (<= letter-count max))))
-
-(defn password-valid-2? [p]
-  (let [pass (:password p)
-        idx-1 (get pass (dec (read-string (:min p))))
-        idx-2 (get pass (dec (read-string (:max p))))
-        letter (string-to-char (:letter p))]
-    (xor
-     (= idx-1 letter)
-     (= idx-2 letter))))
-
-(defn check-passwords [acc val]
-  (if (password-valid? val)
-    (inc acc)
-    acc))
-
-(defn check-passwords-2 [acc val]
-  (if (password-valid-2? val)
-    (inc acc)
-    acc))
-
-;; ----
-
-(defn read-input []
-  (->> (io/resource "input02.txt")
-       slurp
-       clojure.string/split-lines
-       (map parse-line)))
-
-(defn compute-1 [input]
-  (reduce check-passwords 0 input))
-
-(defn compute-2 [input]
-  (reduce check-passwords-2 0 input))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))




diff --git a/src/aoc/day03.clj b/src/aoc/day03.clj
deleted file mode 100644
index 9b3ee50ca76655faec3e48d657bfabffb1bd3ab3..0000000000000000000000000000000000000000
--- a/src/aoc/day03.clj
+++ /dev/null
@@ -1,73 +0,0 @@
-(ns aoc.day03
-  (:require [clojure.java.io :as io]))
-
-(def example
-  "..##.......
-#...#...#..
-.#....#..#.
-..#.#...#.#
-.#...##..#.
-..#.##.....
-.#.#.#....#
-.#........#
-#.##...#...
-#...##....#
-.#..#...#.#")
-
-(def paths
-  [[1 1]
-   [3 1]
-   [5 1]
-   [7 1]
-   [1 2]])
-
-(defn read-input []
-  (->> (slurp (io/resource "input03.txt"))
-       clojure.string/split-lines))
-
-(defn all-coordinates [[x y]]
-  (iterate (fn [[xx yy]]
-             [(+ x xx)
-              (+ y yy)])
-           [0 0]))
-
-(defn tree? [s]
-  (= s \#))
-
-(defn count-trees [lines]
-  (fn [acc [x y]]
-    (let [line (nth lines y)
-          spot (nth line x)]
-      (if (tree? spot)
-        (inc acc)
-        acc))))
-
-(defn compute [input coords]
-  (let [infinite-lines (map cycle input)
-        needed-coords (take-while #(< (second %)
-                                      (count input))
-                                  coords)]
-    (reduce (count-trees infinite-lines) 0 needed-coords)))
-
-;; ----------------------------------------------------------------------------
-
-(defn compute-1 [input]
-  (let [infinite-lines (map cycle input)
-        infinite-coords (all-coordinates [3 1])
-        needed-coords (take-while #(< (second %)
-                                      (count input)) infinite-coords)]
-    (reduce (count-trees infinite-lines) 0 needed-coords)))
-
-(defn compute-2 [input]
-  (let [c (partial compute input)
-        coords (map all-coordinates paths)]
-    (->> coords
-         (map c)
-         (apply *))))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)




diff --git a/src/aoc/day04.clj b/src/aoc/day04.clj
deleted file mode 100644
index d22a5faf793c23ae539143623b798b4679c29211..0000000000000000000000000000000000000000
--- a/src/aoc/day04.clj
+++ /dev/null
@@ -1,89 +0,0 @@
-(ns aoc.day04
-  (:require [clojure.java.io :as io]
-            [clojure.set]))
-
-(def fields #{:byr :iyr :eyr :hgt :hcl :ecl :pid :cid})
-
-(def height-pattern #"(\d+)(cm|in)")
-
-(def hcolor-pattern #"#[a-f0-9]{6}")
-
-(def eye-color-set #{"amb" "blu" "brn" "gry" "grn" "hzl" "oth"})
-
-(def pid-pattern #"\d{9}")
-
-(def validation
-  {:byr (fn [v]
-          (when (= 4 (count v))
-            (let [n (read-string v)]
-              (<= 1920 n 2002))))
-   :iyr (fn [v]
-          (when (= 4 (count v))
-            (let [n (read-string v)]
-              (<= 2010 n 2020))))
-   :eyr (fn [v]
-          (when (= 4 (count v))
-            (let [n (read-string v)]
-              (<= 2020 n 2030))))
-   :hgt (fn [v]
-          (when-let [[_ digits u] (re-find height-pattern v)]
-            (let [n (read-string digits)]
-              (case u
-                "cm" (<= 150 n 193)
-                "in" (<= 59 n 76)))))
-   :hcl (fn [v]
-          (re-matches hcolor-pattern v))
-   :ecl (fn [v]
-          (contains? eye-color-set v))
-   :pid (fn [v]
-          (re-matches pid-pattern v))
-   :cid (fn [v] true)})
-
-(def optional-fields (set [:cid]))
-
-(def required-fields
-  (clojure.set/difference fields optional-fields))
-
-(defn collect-pair [acc p]
-  (let [[k v] (clojure.string/split p #":")]
-    (assoc acc (keyword k )v)))
-
-(defn parse-passport [s]
-  (let [lines (clojure.string/split-lines s)
-        joined (clojure.string/join " " lines)
-        pairs (clojure.string/split joined #" ")]
-    (reduce collect-pair {} pairs)))
-
-(defn valid? [p]
-  (let [pfields (set (keys p))]
-    (=
-      (clojure.set/intersection required-fields pfields)
-      required-fields)))
-
-(defn valid-2? [p]
-  (when (valid? p)
-    (let [ok (map (fn [field]
-                       (let [f (get validation field (constantly true))
-                             v (get p field)]
-                         (f v)))
-                     required-fields)]
-       (every? identity ok))))
-
-;; -----------------------------------------------------------------------------
-
-(defn read-input []
-  (->> (clojure.string/split (slurp (io/resource "input04.txt")) #"\n\n")
-       (map parse-passport)))
-
-(defn compute-1 [input]
-  (count
-   (filter valid? input)))
-
-(defn compute-2 [input]
-  (count
-   (filter valid-2? input)))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))




diff --git a/src/aoc/day05.clj b/src/aoc/day05.clj
deleted file mode 100644
index 3e80f6789d380702945f82d149e973770e2782d5..0000000000000000000000000000000000000000
--- a/src/aoc/day05.clj
+++ /dev/null
@@ -1,65 +0,0 @@
-(ns aoc.day05
-  (:require [clojure.java.io :as io]))
-
-(def example "FBFBBFFRLR") ;; 44 5
-
-(defn reduce-range [lower upper]
-  (fn [coll direction]
-    (let [size (/ (count coll) 2)]
-    (condp = direction
-      lower (take size coll)
-      upper (drop size coll)))))
-
-(defn find-row [directions]
-  (first
-    (reduce
-      (reduce-range \F \B)
-      (range 0 128)
-      directions)))
-
-(defn find-column [directions]
-  (first
-    (reduce
-      (reduce-range \L \R)
-      (range 0 8)
-      directions)))
-
-(defn find-seat [boarding-pass]
-  {:row (find-row (take 7 boarding-pass))
-   :column (find-column (drop 7 boarding-pass))})
-
-(defn seat-id [{:keys [row column]}]
-  (+ (* row 8)
-     column))
-
-(defn read-input []
-  (->> (slurp (io/resource "input05.txt"))
-       (clojure.string/split-lines)))
-
-(defn compute-1 [input]
-  (->> input
-       (map find-seat)
-       (map seat-id)
-       sort
-       reverse
-       first))
-
-(defn all-seat-ids [input]
-  (->> input
-       (map find-seat)
-       (map seat-id)
-       sort))
-
-(defn compute-2 [input]
-  (let [seat-ids (all-seat-ids input)
-        coll (range (first seat-ids) (inc (last seat-ids)))]
-    (clojure.set/difference
-     (set coll)
-     (set seat-ids))))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)




diff --git a/src/aoc/day06.clj b/src/aoc/day06.clj
deleted file mode 100644
index 2b5fa69763a0bb472325cc7c86fb03467a275cde..0000000000000000000000000000000000000000
--- a/src/aoc/day06.clj
+++ /dev/null
@@ -1,52 +0,0 @@
-(ns aoc.day06
-  (:require [clojure.java.io :as io]))
-
-(def example "abc
-
-a
-b
-c
-
-ab
-ac
-
-a
-a
-a
-a
-
-b")
-
-(defn group-said-yes [group]
-  (apply clojure.set/union
-         (map set group)))
-
-(defn group-all-said-yes [group]
-  (apply clojure.set/intersection
-         (map set group)))
-
-;; ----
-
-(defn read-input []
-  (->> (clojure.string/split (slurp (io/resource "input06.txt")) #"\n\n")
-       (map clojure.string/split-lines)))
-
-(defn compute-1 [input]
-  (->> input
-       (map group-said-yes)
-       (map count)
-       (apply +))
-  )
-
-(defn compute-2 [input]
-  (->> input
-       (map group-all-said-yes)
-       (map count)
-       (apply +)))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)




diff --git a/src/aoc/day07.clj b/src/aoc/day07.clj
deleted file mode 100644
index 798e0a6e50fa7cbb062db0ea1c1b8d457732d961..0000000000000000000000000000000000000000
--- a/src/aoc/day07.clj
+++ /dev/null
@@ -1,98 +0,0 @@
-(ns aoc.day07
-  (:require [clojure.java.io :as io]))
-
-(def example
-  "light red bags contain 1 bright white bag, 2 muted yellow bags.
-dark orange bags contain 3 bright white bags, 4 muted yellow bags.
-bright white bags contain 1 shiny gold bag.
-muted yellow bags contain 2 shiny gold bags, 9 faded blue bags.
-shiny gold bags contain 1 dark olive bag, 2 vibrant plum bags.
-dark olive bags contain 3 faded blue bags, 4 dotted black bags.
-vibrant plum bags contain 5 faded blue bags, 6 dotted black bags.
-faded blue bags contain no other bags.
-dotted black bags contain no other bags.")
-
-(def rule-pattern #"(\d+) (\w+ \w+)")
-(def mine "shiny gold")
-
-(defn parse-sub [s]
-  (let [[_ number color] (re-find rule-pattern s)]
-    {:color color
-     :number (read-string number)}))
-
-(defn parse-contents [s]
-  (when-not (clojure.string/starts-with? s "no")
-    (let [rules (clojure.string/split s #", ")]
-      (map parse-sub rules))))
-
-(defn parse-rule [s]
-  (let [[bag contents] (clojure.string/split s #" contain ")
-        [shade color _] (clojure.string/split bag #" ")
-        contents (parse-contents contents)]
-    {:color (str shade " " color)
-     :contents contents}))
-
-(defn graph [rules]
-  (reduce (fn [acc {:keys [color contents]}]
-            (reduce (fn [acc content]
-                      (update acc (:color content) conj {:color color
-                                                         :number (:number content)}))
-                    acc contents))
-          {} rules))
-
-(defn graph2 [rules]
-  (reduce (fn [acc {:keys [color contents]}]
-            (reduce (fn [acc2 content]
-                      (update acc2 color conj content))
-                    acc contents))
-          {} rules))
-
-(defn get-parents [graph color]
-  (get graph color))
-
-(defn fold [g]
-  (loop [r (into #{} (->> (get-parents g mine)
-                          (map :color)))]
-    (let [r2 (reduce (fn [acc color]
-                        (into acc
-                              (->> 
-                                (get-parents g color)
-                                (map :color))))
-                      r r)]
-      (if (= r r2)
-        r
-        (recur r2)))))
-
-(defn count-contents [g c]
-  (let [contents (get-parents g c)]
-    (if (seq contents)
-      (reduce
-       (fn [acc {:keys [color number]}]
-         (+ acc (* number (count-contents g color))))
-       1
-       contents)
-      1)))
-
-;; ---
-
-(defn read-input []
-  (->> (slurp (io/resource "input07.txt"))
-       (clojure.string/split-lines)))
-
-(defn compute-1 [input]
-  (let [rules (map parse-rule input)
-        g (graph rules)]
-    (count (fold g))))
-
-(defn compute-2 [input]
-  (let [rules (map parse-rule input)
-        g (graph2 rules)]
-    (dec
-      (count-contents g mine))))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)




diff --git a/src/aoc/day08.clj b/src/aoc/day08.clj
deleted file mode 100644
index a969f09d5caf70362723efedd8a951a63e8986b2..0000000000000000000000000000000000000000
--- a/src/aoc/day08.clj
+++ /dev/null
@@ -1,96 +0,0 @@
-(ns aoc.day08
-  (:require [clojure.java.io :as io])
-
-(def example "nop +0
-acc +1
-jmp +4
-acc +3
-jmp -3
-acc -99
-acc +1
-jmp -4
-acc +6")
-
-(def example-terminating "nop +0
-acc +1
-jmp +4
-acc +3
-jmp -3
-acc -99
-acc +1
-nop -4
-acc +6")
-
-(defn parse-instruction [s]
-  (let [[op n] (clojure.string/split s #" ")]
-    (assoc {}
-           :op (keyword op)
-           :value (read-string n))))
-
-(defn accumulate [acc value]
-  (if (>= value 0)
-    (+ acc value)
-    (- acc value)))
-
-(defn step [acc index {:keys [op value]}]
-  (case op
-    :acc [(+ acc value) (inc index)]
-    :jmp [acc (+ index value)]
-    :nop [acc (inc index)]))
-
-(defn run-computer [coll]
-  (loop [index 0
-         acc 0
-         log #{}]
-    (if (contains? log index)
-      acc
-      (let [[new-acc new-index] (step acc index (nth coll index))]
-        (recur new-index new-acc (conj log index))))))
-
-(defn run-computer-2 [coll]
-  (loop [index 0
-         acc 0
-         log #{}]
-    (cond
-      (contains? log index) :infinite-loop
-      (= index (count coll)) acc
-      :else (let [[new-acc new-index] (step acc index (nth coll index))]
-              (recur new-index new-acc (conj log index))))))
-
-
-;; ----------------------------------------------------------------------------- 
-
-(defn read-input []
-  (->> (slurp (io/resource "input08.txt"))
-       clojure.string/split-lines
-       (map parse-instruction)))
-
-(defn compute-1 [input]
-  (run-computer input))
-
-(defn reverse-it [op]
-  ;; LOL
-  (get {:jmp :nop
-        :nop :jmp}
-       op))
-
-(defn compute-2 [input]
-  (let [input (vec input)
-        indexes (range (count input))
-        possibilities (map (fn [i]
-                          (let [{:keys [op]} (nth input i)]
-                            (if (contains? #{:jmp :nop} op)
-                              (assoc-in input [i :op] (reverse-it op))
-                              input)))
-                        indexes)]
-    (->> possibilities
-         (map run-computer-2)
-         (remove #(= :infinite-loop %))
-         first)))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)




diff --git a/src/aoc/day09.clj b/src/aoc/day09.clj
deleted file mode 100644
index ee3f16be045660e1b7da38f1c6ccc2e57a8ec4e0..0000000000000000000000000000000000000000
--- a/src/aoc/day09.clj
+++ /dev/null
@@ -1,82 +0,0 @@
-(ns aoc.day09
-  (:require [clojure.java.io :as io]))
-
-(def example
-  "35
-20
-15
-25
-47
-40
-62
-55
-65
-95
-102
-117
-150
-182
-127
-219
-299
-277
-309
-576")
-
-(defn valid? [n coll]
-  (seq (for [x coll
-          y coll
-          :when (not= x y)
-          :when (= n (+ x y))]
-      [x y])))
-
-(defn read-input []
-  (->> (io/resource "input09.txt")
-       io/reader
-       line-seq
-       (map read-string)))
-
-(defn read-example-input []
-  (->> example
-       clojure.string/split-lines
-       (map read-string)))
-
-(defn compute-1 [input size]
-  (loop [step 0]
-    (let [without-old (drop step input)
-          pool (take size without-old)
-          candidate (nth without-old size)]
-      (if-not (valid? candidate pool)
-        candidate
-        (recur (inc step))))))
-
-(defn adds-up? [coll n]
-  (loop [nums []
-         index 0]
-    (cond
-      (= (apply + nums) n) nums
-      (> (apply + nums) n) nil
-      :else (recur (conj nums (nth coll index))
-                   (inc index)))))
-
-(defn find-range [input n]
-  (loop [coll input]
-    (let [r (adds-up? coll n)]
-      (if-not (nil? r)
-        r
-        (recur (rest coll))))))
-
-(defn compute-2 [input n]
-  (let [result (find-range input n)]
-    (+ (apply min result)
-       (apply max result))))
-
-
-(defn main []
-  (let [input (read-input)
-        size 25
-        n (compute-1 input size)]
-    (println n)
-    (println (compute-2 input n))))
-
-(main)




diff --git a/src/aoc/day10.clj b/src/aoc/day10.clj
deleted file mode 100644
index 1fc7c1445bf345c02ee7480e937e6e293e616781..0000000000000000000000000000000000000000
--- a/src/aoc/day10.clj
+++ /dev/null
@@ -1,136 +0,0 @@
-(ns aoc.day10
-  (:require [clojure.java.io :as io])
-  (:gen-class))
-
-;; (defn read-input []
-;;   (line-seq
-;;     (io/reader
-;;       (io/resource "input10.txt"))))
-
-(def example "16
-10
-15
-5
-1
-11
-7
-19
-6
-12
-4")
-
-(def example2 "28
-33
-18
-42
-31
-14
-46
-20
-48
-47
-24
-23
-49
-45
-19
-38
-39
-11
-1
-32
-25
-35
-8
-17
-7
-9
-4
-2
-34
-10
-3")
-
-(defn read-input []
-  (->>
-       (io/resource "input10.txt")
-       io/reader
-       line-seq
-
-       ;; example2
-       ;; clojure.string/split-lines
-
-       (map read-string)))
-
-(defn builtin [ratings]
-  (->> (apply max ratings)
-       (+ 3)))
-
-(defn jolts [input]
-  (let [device (builtin input)
-        input (conj input device)
-        input (sort input)]
-    (reduce (fn [acc adap]
-              (let [prev (:i acc)
-                    diff (- adap prev)]
-                (if (= 3 diff)
-                  (assoc acc :i adap :j3 (inc (:j3 acc)))
-                  (assoc acc :i adap :j1 (inc (:j1 acc))))))
-            {:i 0 :j1 0 :j3 0}
-            input)))
-
-(defn next-coll [[n & coll]]
-  (filter #(and
-              (> % n)
-               (<= 1 (- % n) 3))
-          coll))
-
-(declare jp)
-
-(defn jolt-possibilities [coll]
-  (let [nexts (next-coll coll)]
-    (if-not (seq nexts)
-      coll
-      (mapcat (fn [next]
-                (jp
-                (filter #(>= % next) coll))) nexts))))
-
-(def jp (memoize jolt-possibilities))
-
-(defn jolt-possibilities-2 [coll]
-  (loop [acc #{}
-         current 0]
-    (let [nexts (next-coll coll)]
-      )))
-
-;; the recursive solution didn't work on the puzzle input because memory :(
-;; the `part-2` fn is someone else's
-
-(defn part-2 [adapters]
-  (let [device (+ (apply max adapters) 3)
-        ;; The number of routes to each adapter is the sum of the number of
-        ;; routes to each of the possible previous adapters (it's like a messy
-        ;; Pascal's triangle) so we can get the solution in one pass.
-        routes (reduce
-                 (fn [r a]
-                   (assoc r a
-                     (apply + (map #(get r % 0) (range (- a 3) a)))))
-                 {0 1}
-                 (sort (conj adapters device)))]
-    (get routes device)))
-
-(defn compute-1 [input]
-  (let [{:keys [j1 j3]} (jolts input)]
-    (* j1 j3)))
-
-(defn compute-2 [input]
-  (let [input (cons 0 input)
-        device (builtin input)
-        input (conj input device)
-        input (sort input)]
-    (count (jp input))))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (part-2 input))))




diff --git a/src/aoc/day11.clj b/src/aoc/day11.clj
deleted file mode 100644
index b382b3d13e0de31966ea5d029fbf936b40d451cd..0000000000000000000000000000000000000000
--- a/src/aoc/day11.clj
+++ /dev/null
@@ -1,118 +0,0 @@
-(ns aoc.day11
-  (:require [clojure.java.io :as io]))
-
-(def example "L.LL.LL.LL
-LLLLLLL.LL
-L.L.L..L..
-LLLL.LL.LL
-L.LL.LL.LL
-L.LLLLL.LL
-..L.L.....
-LLLLLLLLLL
-L.LLLLLL.L
-L.LLLLL.LL")
-
-(declare parse-floor)
-
-(defn read-input []
-  (->>
-   (io/resource "input11.txt")
-   slurp
-
-       ;; example
-   clojure.string/split-lines
-   parse-floor))
-
-(defn adjacent [m [sx sy]]
-  (for [x [-1 0 1]
-        y [-1 0 1]
-        :when (not= [x y] [0 0])]
-    (let [fx (+ x sx)
-          fy (+ y sy)]
-      [[fx fy] (get m [fx fy] :empty)])))
-
-(defn visible [m [sx sy]]
-  (for [x [-1 0 1]
-        y [-1 0 1]
-        :when (not= [x y] [0 0])]
-    (let [fx (+ x sx)
-          fy (+ y sy)]
-      (some (fn [[[x y] spot]]
-              (#{:taken :empty} spot))
-            (map (fn [[a b]]
-                   [[a b] (get m [a b] :empty)])
-                 (rest (iterate
-                        (fn [[xx yy]] [(+ xx x) (+ yy y)])
-                        [sx sy])))))))
-
-(defn taken-adjacent [m [sx sy]]
-  (filter #(= :taken (second %))
-          (adjacent m [sx sy])))
-
-(defn taken-visible [m [sx sy]]
-  (filter #(= :taken %)
-          (visible m [sx sy])))
-
-(defn parse-floor [input]
-  (into {}
-        (for [y (range (count input))
-              x (range (count (first input)))]
-          (let [spot (get-in input [y x])
-                tile (case spot
-                       \L :empty
-                       \# :taken
-                       \. :floor)]
-            [[x y] tile]))))
-
-(defn run [input]
-  (into {} (map (fn [[[x y] seat]]
-                  (let [taken-count (count (taken-adjacent input [x y]))]
-                    (case seat
-                      :empty [[x y] (if (zero? taken-count) :taken :empty)]
-                      :taken [[x y] (if (>= taken-count 4) :empty :taken)]
-                      [[x y] seat])))
-                input)))
-
-(defn run-2 [input]
-  (into {} (map (fn [[[x y] seat]]
-                  (let [taken-count (count (taken-visible input [x y]))]
-                    (case seat
-                      :empty [[x y] (if (zero? taken-count) :taken :empty)]
-                      :taken [[x y] (if (>= taken-count 5) :empty :taken)]
-                      [[x y] seat])))
-                input)))
-
-(defn reduce-1 [input]
-  (loop [input input]
-    (let [res (run input)]
-      (if (= input res)
-        res
-        (recur res)))))
-
-(defn reduce-2 [input]
-  (loop [input input]
-    (let [res (run-2 input)]
-      (if (= input res)
-        res
-        (recur res)))))
-
-(defn compute-1 [input]
-  (->> input
-       reduce-1
-       vals
-       frequencies
-       :taken))
-
-(defn compute-2 [input]
-  (->> input
-       reduce-2
-       vals
-       frequencies
-       :taken))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)




diff --git a/src/aoc/day12.clj b/src/aoc/day12.clj
deleted file mode 100644
index ebfcc64fc577217da6a45e57b6d8dac4a7834d51..0000000000000000000000000000000000000000
--- a/src/aoc/day12.clj
+++ /dev/null
@@ -1,155 +0,0 @@
-(ns aoc.day12
-  (:require [clojure.java.io :as io]))
-
-(def example "F10
-N3
-F7
-R90
-F11")
-
-(def start-pos {:facing :east
-                :north 0
-                :east 0})
-
-(def start-pos-2 {:wp {:north 1
-                       :east 10}
-                  :ship {:north 0
-                         :east 0}})
-
-(defn translate [direction [x y]]
-  (case direction
-      :right [y (- x)]
-      :left [(- y) x]))
-
-(defn translate-wp [pos direction]
-  (update-in pos [:wp] (fn [{:keys [north east]}]
-                         (let [[x y] (translate direction [east north])]
-                           {:north y :east x}))))
-
-(defn parse-inst [[h & body]]
-  {:direction (case h
-                \N :north
-                \E :east
-                \S :south
-                \W :west
-                \F :forward
-                \L :left
-                \R :right)
-   :value (read-string (clojure.string/join body))})
-
-(defn read-input []
-  (->> 
-       (io/resource "input12.txt")
-       slurp
-       ;; example
-       clojure.string/split-lines
-       (map parse-inst)
-       ))
-
-(defn move [direction value]
-  (fn [old]
-    (let [op (case direction
-               :north +
-               :south -
-               :east +
-               :west -)]
-      (if (nil? op)
-        old
-        (op old value)))))
-
-(def right-turns (cycle [:east :south :west :north]))
-(def left-turns (cycle [:east :north :west :south]))
-
-(defn turn-count [n]
-  (case n
-    90 1
-    180 2
-    270 3
-    0 0))
-
-(defn turn [pos {:keys [value direction]}]
-  (let [current-direction (:facing pos)
-        tc (turn-count value)
-        turns (case direction
-                :left left-turns
-                :right right-turns
-                [])
-        next-turns (drop-while #(not= current-direction %) turns)]
-    (nth next-turns tc)))
-
-(defn move-forward [pos {:keys [value direction]}]
-  (let [facing (:facing pos)
-        op (case facing
-             :north +
-             :east +
-             :south -
-             :west -)]
-    (if (contains? #{:north :south} facing)
-      (assoc pos :north (op (:north pos) value))
-      (assoc pos :east (op (:east pos) value)))))
-
-(defn navigate [pos {:keys [value direction]}]
-  (case direction
-    :north   (update pos :north (move direction value))
-    :south   (update pos :north (move direction value))
-    :east    (update pos :north (move direction value))
-    :west    (update pos :north (move direction value))
-    :left    (assoc  pos :facing (turn pos {:direction direction :value value}))
-    :right   (assoc  pos :facing (turn pos {:direction direction :value value}))
-    :forward (move-forward pos {:direction direction :value value})
-    pos))
-
-(defn should-move-wp? [direction]
-  (not= direction :forward))
-
-(defn should-move-ship? [direction]
-  (= direction :forward))
-
-(defn move-ship [pos {:keys [value]}]
-  (let [wx (get-in pos [:wp :east])
-        wy (get-in pos [:wp :north])
-        pos (update-in pos [:ship :east] #(+ % (* wx value)))
-        pos (update-in pos [:ship :north] #(+ % (* wy value)))]
-    pos))
-
-;; (move-ship {:wp {:east -1 :north -2} :ship {:east 1 :north 1}}
-;;            {:value 0})
-
-(defn rotate-wp [pos {:keys [value direction]}]
-  (let [tc (turn-count value)]
-    (reduce (fn [acc _]
-              (translate-wp acc direction))
-            pos
-            (range tc))))
-
-(defn move-wp [pos {:keys [value direction] :as i}]
-  (case direction
-    :north (update-in pos [:wp :north] #(+ % value))
-    :south (update-in pos [:wp :north] #(- % value))
-    :east  (update-in pos [:wp :east ] #(+ % value))
-    :west  (update-in pos [:wp :east ] #(- % value))
-    :right (rotate-wp pos i)
-    :left  (rotate-wp pos i)))
-
-(defn navigate-2 [pos {:keys [value direction] :as i}]
-  (cond
-    (should-move-wp? direction) (move-wp pos i)
-    (should-move-ship? direction) (move-ship pos i)
-    :else pos))
-
-(defn compute-1 [input]
-  (let [final (reduce navigate start-pos input)]
-    (+ (Math/abs (:north final))
-       (Math/abs (:east final)))))
-
-(defn compute-2 [input]
-  (let [final (reduce navigate-2 start-pos-2 input)]
-    (+ (Math/abs (get-in final [:ship :north]))
-       (Math/abs (get-in final [:ship :east])))))
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)




diff --git a/src/aoc/day13.clj b/src/aoc/day13.clj
deleted file mode 100644
index 0a69a9e96aef542fc05b26aeb6ba34d6e0d04e3c..0000000000000000000000000000000000000000
--- a/src/aoc/day13.clj
+++ /dev/null
@@ -1,121 +0,0 @@
-(ns aoc.day13
-  (:require [clojure.java.io :as io]))
-
-(def example "939
-7,13,x,x,59,x,31,19")
-
-(defn parse-input [[earliest timetable]]
-  {:earliest (read-string earliest)
-   :timetable (->> (clojure.string/split timetable #",")
-                   (remove #{"x"})
-                   (map read-string))})
-
-(defn parse-input-2 [[_ timetable]]
-   (->> (clojure.string/split timetable #",")
-        (map read-string)))
-
-(defn read-input []
-  (->>
-   ;; (io/resource "input13.txt")
-   ;; slurp
-
-       example
-       clojure.string/split-lines
-       parse-input
-   ))
-
-(defn short-example [s]
-  (->> (clojure.string/split s #",")
-       (map read-string)))
-
-(defn read-input-2 []
-  (->>
-   ;; (io/resource "input13.txt")
-   ;; slurp
-
-       example
-       clojure.string/split-lines
-       parse-input-2
-   ))
-
-(defn tt [earliest t]
-  (->> (iterate #(+ t %) 0)
-       (drop-while #(< % earliest))
-       first
-       (conj [t])
-       reverse
-       vec))
-
-(defn infinite-timetables-by-id [timetable]
-  (->> timetable
-       (remove symbol?)
-       (map (fn [t] [t (iterate #(+ t %) 0)]))
-       (into {})))
-
-(defn compute-1 [{:keys [earliest timetable]}]
-  (let [
-        tts (map (partial tt earliest) timetable)
-        tts (into {} tts)
-        departure (apply min (keys tts))
-        minutes (- departure earliest)
-        bus-id (tts departure)]
-    (* minutes bus-id)))
-
-(defn bus-valid [m t bus]
-  (cond
-    (nil? bus) :end
-    (= bus "x") true
-    (symbol? bus) true
-    (zero? t) true
-    :else
-    (let [i (get m bus)]
-      (->> (drop-while #(< % t) i)
-           first
-           (= t)))))
-
-(let [tts (infinite-timetables-by-id [6])
-      t 5]
-  (bus-valid tts t nil)
-  )
-
-
-(defn run-2 [tts timetable start-t]
-  (loop [t start-t
-         buses timetable]
-    (let [bus (first buses)
-          res (bus-valid tts t bus)]
-      (if (contains? #{:end false} res)
-          start-t
-          (recur (inc t) (rest buses))))))
-
-(defn compute-2 [timetable]
-  (let [tts (infinite-timetables-by-id timetable)]
-    (loop [t 100000000000000]
-      (println "computing" t)
-      (let [res (run-2 tts timetable t)]
-        (if (contains? #{:end} res)
-          t
-          (recur (inc t)))))))
-
-
-(defn compute-example [timetable t]
-  (= (run-2 (infinite-timetables-by-id timetable)
-            timetable
-            t)
-     t))
-
-(comment
-(compute-example (short-example "67,7,59,61") 754018)
-(compute-example (short-example "17,x,13,19") 3417)
-(compute-example (short-example "67,x,7,59,61") 779210)
-(compute-example (short-example "67,7,x,59,61") 1261476)
-(compute-example (short-example "1789,37,47,1889") 1202161486)
-  )
-
-(defn main []
-  (let [input (read-input)
-        input2 (read-input-2)]
-    (println (compute-1 input))
-    (println (compute-2 input2))))
-
-;; (main)




diff --git a/template.clj b/template.clj
deleted file mode 100644
index 8a08ac6011f4a4875f5e2f4d8deb8bddcfceedbe..0000000000000000000000000000000000000000
--- a/template.clj
+++ /dev/null
@@ -1,25 +0,0 @@
-(ns aoc.dayxx
-  (:require [clojure.java.io :as io]))
-
-(defn read-input []
-  (->>
-   (io/resource "inputxx.txt")
-   io/reader
-   line-seq
-
-       ;; example
-       ;; clojure.string/split-lines
-   ))
-
-(defn compute-1 [input]
-  input)
-
-(defn compute-2 [input]
-  input)
-
-(defn main []
-  (let [input (read-input)]
-    (println (compute-1 input))
-    (println (compute-2 input))))
-
-(main)