From 484e1bd787cd41b092d68f301ddc6e6ef72c09cb Mon Sep 17 00:00:00 2001 From: Greg Burri Date: Wed, 2 Dec 2020 13:56:51 +0100 Subject: [PATCH] Rename 'main.jl' + some code clean up. --- advent_of_code_2020.jl | 137 ++++ main.jl | 1347 ---------------------------------------- 2 files changed, 137 insertions(+), 1347 deletions(-) create mode 100644 advent_of_code_2020.jl delete mode 100644 main.jl diff --git a/advent_of_code_2020.jl b/advent_of_code_2020.jl new file mode 100644 index 0000000..df49843 --- /dev/null +++ b/advent_of_code_2020.jl @@ -0,0 +1,137 @@ +### A Pluto.jl notebook ### +# v0.12.15 + +using Markdown +using InteractiveUtils + +# ╔═╡ f0dd4400-3313-11eb-3295-af913c2212fb +md"# Advent Of Code 2020" + +# ╔═╡ 0b7b8920-3314-11eb-2cfb-7d20c0967e67 +md"## Day 1" + +# ╔═╡ 877b32e0-3315-11eb-0e96-650b19da693e +input_day1 = parse.(Int64, split(readline("data/day01.txt"))) |> sort + +# ╔═╡ 4adcf8d0-33a8-11eb-0220-696f06894ef3 +function day1_part1(input) + for n ∈ input + r = searchsorted(input_day1, 2020 - n) + if r.start ≤ r.stop + return n * input[r.start] + end + end +end + +# ╔═╡ 1e8e7230-33ae-11eb-0a77-035e6a4b9ba8 +function day1_part2(input) + l = length(input) + for i ∈ 1:l + for j ∈ i+1:l + v = 2020 - input[i] - input[j] + if v ≤ 0 + break + end + r = searchsorted(input_day1, v) + if r.start ≤ r.stop + return input[i] * input[j] * input[r.start] + end + end + end +end + +# ╔═╡ 7a037310-33ac-11eb-34fb-9bf552883937 +md"**Result for part 1:** $(day1_part1(input_day1))" + +# ╔═╡ c7dcdae0-33b1-11eb-2cab-fbc06c8ef76b +md"**Result for part 2:** $(day1_part2(input_day1))" + +# ╔═╡ 5d9712b0-3472-11eb-1423-719331dfe52f +md"## Day 2" + +# ╔═╡ b9144990-3473-11eb-0ba9-59f3fe6ddbc0 +struct Password + policy_range :: UnitRange + policy_char :: Char + p :: String +end + +# ╔═╡ 10f5ffa0-3474-11eb-2a36-d5c6f78f18c6 +function parse_day2(lines) + line_regexp = r"^(\d+)-(\d+) ([a-z]): ([a-z]+)$" + + function parse_line(line) + m = match(line_regexp, line) + Password( + UnitRange(parse(Int, m.captures[1]), parse(Int, m.captures[2])), + m.captures[3][1], + m.captures[4] + ) + end + + parse_line.(lines) +end + +# ╔═╡ 6695038e-3472-11eb-1846-3b1c041be59d +nb_of_valid_passwords_part1(passwords) = + count( + password -> + count(==(password.policy_char), password.p) ∈ password.policy_range, + passwords + ) + +# ╔═╡ bbda1c1e-347a-11eb-0e7a-756906c4c9f4 +nb_of_valid_passwords_part2(passwords) = + count( + password -> + (password.p[password.policy_range.start] == password.policy_char) ⊻ + (password.p[password.policy_range.stop] == password.policy_char), + passwords + ) + +# ╔═╡ a0cfb670-3474-11eb-1a05-c12914658a0a +let + test1_input = + split(""" + 1-3 a: abcde + 1-3 b: cdefg + 2-9 c: ccccccccc""", + '\n' + ) + + test1_part1_result = nb_of_valid_passwords_part1(parse_day2(test1_input)) + test1_part2_result = nb_of_valid_passwords_part2(parse_day2(test1_input)) + + md" +Test 1, part 1: $(test1_part1_result == 2) + +Test 1, part 2: $(test1_part2_result == 1) + " +end + +# ╔═╡ 4a629040-347a-11eb-2aae-6f37a4c89168 +input_day2 = parse_day2(readlines("data/day02.txt")) + +# ╔═╡ 5825aa50-347a-11eb-37ca-811e1b59d37a +md"**Result for part 1**: $(nb_of_valid_passwords_part1(input_day2))" + +# ╔═╡ de3c2f00-347b-11eb-0aec-8b776a855f6a +md"**Result for part 2**: $(nb_of_valid_passwords_part2(input_day2))" + +# ╔═╡ Cell order: +# ╟─f0dd4400-3313-11eb-3295-af913c2212fb +# ╟─0b7b8920-3314-11eb-2cfb-7d20c0967e67 +# ╠═877b32e0-3315-11eb-0e96-650b19da693e +# ╠═4adcf8d0-33a8-11eb-0220-696f06894ef3 +# ╠═1e8e7230-33ae-11eb-0a77-035e6a4b9ba8 +# ╟─7a037310-33ac-11eb-34fb-9bf552883937 +# ╟─c7dcdae0-33b1-11eb-2cab-fbc06c8ef76b +# ╟─5d9712b0-3472-11eb-1423-719331dfe52f +# ╠═b9144990-3473-11eb-0ba9-59f3fe6ddbc0 +# ╠═10f5ffa0-3474-11eb-2a36-d5c6f78f18c6 +# ╠═6695038e-3472-11eb-1846-3b1c041be59d +# ╠═bbda1c1e-347a-11eb-0e7a-756906c4c9f4 +# ╟─a0cfb670-3474-11eb-1a05-c12914658a0a +# ╟─4a629040-347a-11eb-2aae-6f37a4c89168 +# ╟─5825aa50-347a-11eb-37ca-811e1b59d37a +# ╟─de3c2f00-347b-11eb-0aec-8b776a855f6a diff --git a/main.jl b/main.jl deleted file mode 100644 index dd5e7f5..0000000 --- a/main.jl +++ /dev/null @@ -1,1347 +0,0 @@ -### A Pluto.jl notebook ### -# v0.12.15 - -using Markdown -using InteractiveUtils - -# ╔═╡ f0dd4400-3313-11eb-3295-af913c2212fb -md"# Advent Of Code 2020" - -# ╔═╡ 0b7b8920-3314-11eb-2cfb-7d20c0967e67 -md"## Day 1" - -# ╔═╡ 877b32e0-3315-11eb-0e96-650b19da693e -begin - input_day1_raw = "1254 - 1313 - 1456 - 1782 - 1742 - 1391 - 1273 - 1286 - 1373 - 1891 - 1188 - 1994 - 1887 - 1816 - 1984 - 961 - 1428 - 1105 - 1123 - 1699 - 1154 - 1953 - 1977 - 1450 - 1696 - 1068 - 1241 - 1926 - 1228 - 1591 - 1789 - 1966 - 1508 - 1193 - 1190 - 1654 - 444 - 1282 - 1169 - 1165 - 1778 - 1669 - 1570 - 1671 - 1845 - 1208 - 1728 - 1798 - 847 - 1300 - 1817 - 1200 - 1297 - 1658 - 1296 - 1571 - 1991 - 1305 - 1314 - 1903 - 1472 - 1359 - 1506 - 1999 - 1877 - 1168 - 1137 - 1288 - 1083 - 1656 - 413 - 1430 - 1408 - 1397 - 1846 - 1218 - 684 - 1234 - 2007 - 900 - 1604 - 1460 - 1848 - 1693 - 1324 - 1401 - 1968 - 1918 - 1975 - 1665 - 1413 - 1874 - 1852 - 1521 - 1753 - 1229 - 1940 - 1650 - 1976 - 1235 - 1130 - 1927 - 1365 - 1908 - 1441 - 1302 - 1986 - 1449 - 1692 - 1944 - 1277 - 1312 - 1826 - 1231 - 1289 - 1814 - 1170 - 1606 - 1608 - 1773 - 1883 - 1936 - 1626 - 1497 - 1860 - 1673 - 1295 - 2005 - 1481 - 1995 - 1734 - 1646 - 1557 - 1298 - 1174 - 1894 - 1309 - 1240 - 1982 - 1414 - 1799 - 1620 - 1863 - 1220 - 1642 - 508 - 1146 - 1187 - 1253 - 1284 - 1952 - 1527 - 1610 - 1333 - 1221 - 1362 - 1457 - 1721 - 1493 - 1330 - 156 - 1647 - 1841 - 1724 - 2000 - 1398 - 1745 - 1985 - 1269 - 1722 - 2001 - 1923 - 1395 - 1094 - 1140 - 1958 - 1239 - 1336 - 1588 - 1338 - 1750 - 1757 - 1444 - 1822 - 1335 - 1941 - 1865 - 1767 - 1881 - 1499 - 1157 - 1990 - 1210 - 1779 - 1201 - 1784 - 1961 - 1476 - 1861 - 1468" - input_day1 = parse.(Int64, split(input_day1_raw)) |> sort -end - -# ╔═╡ 4adcf8d0-33a8-11eb-0220-696f06894ef3 -function day1_part1(input) - for n ∈ input - r = searchsorted(input_day1, 2020 - n) - if r.start ≤ r.stop - return n * input[r.start] - end - end -end - -# ╔═╡ 1e8e7230-33ae-11eb-0a77-035e6a4b9ba8 -function day1_part2(input) - l = length(input) - for i ∈ 1:l - for j ∈ i+1:l - v = 2020 - input[i] - input[j] - if v ≤ 0 - break - end - r = searchsorted(input_day1, v) - if r.start ≤ r.stop - return input[i] * input[j] * input[r.start] - end - end - end -end - -# ╔═╡ 7a037310-33ac-11eb-34fb-9bf552883937 -md"**Result for part 1:** $(day1_part1(input_day1))" - -# ╔═╡ c7dcdae0-33b1-11eb-2cab-fbc06c8ef76b -md"**Result for part 2:** $(day1_part2(input_day1))" - -# ╔═╡ 5d9712b0-3472-11eb-1423-719331dfe52f -md"## Day 2" - -# ╔═╡ b9144990-3473-11eb-0ba9-59f3fe6ddbc0 -struct Password - policy_range :: UnitRange - policy_char :: Char - p :: String -end - -# ╔═╡ 10f5ffa0-3474-11eb-2a36-d5c6f78f18c6 -function parse_day2(input :: String) :: AbstractArray{Password} - line_regexp = r"^(\d+)-(\d+) ([a-z]): ([a-z]+)$" - result = Array{Password, 1}() - for line ∈ split(input, '\n') - m = match(line_regexp, line) - push!( - result, - Password( - UnitRange(parse(Int64, m.captures[1]), parse(Int64, m.captures[2])), - m.captures[3][1], - m.captures[4] - ) - ) - end - result -end - -# ╔═╡ 6695038e-3472-11eb-1846-3b1c041be59d -function nb_of_valid_passwords_part1(passwords :: AbstractArray{Password}) - sum( - function (password) - m = 0 - for c in password.p - m += c == password.policy_char - end - m ∈ password.policy_range - end, - passwords - ) -end - -# ╔═╡ bbda1c1e-347a-11eb-0e7a-756906c4c9f4 -function nb_of_valid_passwords_part2(passwords :: AbstractArray{Password}) - sum( - password -> - (password.p[password.policy_range.start] == password.policy_char) ⊻ - (password.p[password.policy_range.stop] == password.policy_char), - passwords - ) -end - -# ╔═╡ a0cfb670-3474-11eb-1a05-c12914658a0a -let - test1_input = "1-3 a: abcde -1-3 b: cdefg -2-9 c: ccccccccc" - - test1_part1_result = nb_of_valid_passwords_part1(parse_day2(test1_input)) - test1_part2_result = nb_of_valid_passwords_part2(parse_day2(test1_input)) - - md" -Test 1, part 1: $(test1_part1_result == 2) - -Test 1, part 2: $(test1_part2_result == 1) - " -end - -# ╔═╡ 2b112350-347a-11eb-1725-5f70e3623379 -input_day2_raw = "1-13 r: gqdrspndrpsrjfjx -5-16 j: jjjjkjjzjjjjjfjzjjj -14-16 r: rrrnrrrrrcnrgxrr -1-3 k: bkktwhgktv -3-5 q: dxqqqzmqvs -11-14 s: sssssssssssssv -1-3 d: cdzdq -13-16 q: scdqpdgpkvbwwqbv -9-10 d: ddrdddlddd -15-17 v: jvvvvvvgcvvvvrcvnv -2-3 s: xssx -8-15 j: jwjjjjkhjjjltjmjjjr -7-15 m: wqspfmtpjftmplwp -1-11 s: swdgzhgsxtssndzfm -3-4 b: bgjrg -1-12 x: jxgxxxpjwpsht -5-15 x: xxjxwshpxjxxxxsnxvz -4-11 r: bjnrpswfprrng -12-14 j: wjjzmwnmmvzsjhnnkj -3-4 d: dddv -2-4 b: bfxx -15-16 r: rrrrrrrrrrrlrrphrr -6-11 j: jsljjjjjjjj -6-7 m: mpttcmmmmng -6-7 g: gsggggg -2-10 b: nbtbqbbfpb -4-6 h: hhqhrzkcrhh -13-14 b: bbbbbbbbbbnbbbb -5-6 g: gggggg -5-6 x: rsxvxx -3-6 q: wxqzqqqtzsq -1-2 h: sjhj -6-18 t: jtptcwtbfgffpkdwthbf -5-9 w: wwwwcwwww -15-16 g: wqdwztbmrqdmgmvc -8-15 t: ttttgztvtttnttb -9-11 r: rrvrrrrnhrzr -8-9 l: lllllllqwl -10-11 h: hhhhhhhhhhd -3-5 g: gggrwqc -5-12 f: ffcdxfglcffsf -6-7 f: fffffzk -3-5 b: btbbbb -2-8 z: wblnvfzzwzzbchx -13-14 r: rrrrrfrrrrrrlf -2-9 r: wgbmfvksl -5-12 m: xrmmfhmqdhmmvhvrzmwq -3-4 j: jwpd -6-8 v: mvfwgskpxgvcsr -1-3 c: ctpr -2-8 d: dzdfsddd -10-14 c: ccccczcccccqlchvclcc -2-8 s: sscwcfssssssdt -2-11 l: xlsslrlclfls -7-8 r: rrrjrrrrtdcr -7-9 z: zzzzzzzpzz -12-14 r: rrrrrrrrrrrprrr -13-14 g: hdczwngvjtgmhn -1-7 q: qqdqqqqvq -5-6 q: qqqqql -11-16 p: wgwrzltpskwgxprm -4-12 d: dvddddddwddz -15-16 q: qqqqqqqqqqqqqqqqq -1-5 m: mmrjmmqsjkm -13-14 m: mlmxmmmdmgmmmw -4-5 q: qcqvmhqdq -2-3 m: brdzbfzj -3-4 s: snshj -5-9 k: kzpkkbkvqjktrk -12-13 t: fltttttttjtpstttt -7-8 c: kcccfccccxtcc -2-6 q: nnjqqd -2-9 n: msnvnrxgldqnxnngsn -2-4 c: scccwp -12-13 c: ccbccqdcccfcvdccc -6-7 f: fmdffffxcbbpffl -2-6 r: rbrrrvr -7-10 j: jzjtjjqfvjj -3-7 j: jjrjjjjj -2-13 m: mmmlmqddkmtmmm -19-20 l: drpwllkdlsjslmllsdrv -3-5 v: vxmrwwvh -5-13 z: zzzzkzzzzzzzkzzzf -5-6 g: gggggfg -4-6 c: crfvlc -14-18 x: xxxxxxxxxjxxxzxdqc -4-7 p: plzqjtp -2-4 v: nmdbhftxvbv -5-8 s: knfcsbbsxssssxd -2-13 p: mpwpnbrnlxmqvfbltcq -7-11 v: vbvvvkfvvvg -14-17 x: xxrxxxbxxwmhxxpxqxv -5-7 f: qffndfmqfsrv -7-8 v: vvvqvvbvv -9-10 j: jjjdjjjslljjjjjch -4-6 l: lllplgr -3-4 n: nnqn -4-5 c: ccccc -1-2 q: lwhqw -6-7 d: dddmddqd -6-7 g: gggggzxg -2-10 j: jsjjjjjjjsjj -13-15 b: dxbbbbbbbbbbbmbbbmbl -5-10 q: qqqqwqqqqxq -12-13 j: jjjjjzjjjjbjxjjb -5-10 t: ttfttphtttttmthttp -3-4 t: tttj -7-8 n: nnknnpphfwnn -9-10 x: xxxxxxxxcx -14-17 h: hhkhhzxhhhhhhjhhxhh -4-5 w: whxtwwftw -10-12 q: xqgqsqqvqqlqqqdqpqrq -1-3 l: jsvlzrm -8-16 z: sbzzqzxzzzskzzxgrzcz -7-10 k: kkkkjklkkt -9-11 f: ffffwfffwflnwf -1-8 c: cmccwcqzzhxccr -6-9 h: vnfxddhrhbdqkqr -8-9 t: tzttdtttvvtb -6-9 q: qqqqqqqqqqqqq -15-17 k: kkkkkkkkkkkkkklkqk -3-10 p: pprppppppfp -5-11 d: nhgkdjgvmdddt -7-9 d: rdddddddpd -1-3 r: rrwrr -5-16 t: gttwtrqqmwwljhfn -6-9 q: qqqswdzllqqf -7-13 b: mxpxbjgvsncqwv -7-8 d: dddddrddds -3-4 z: zzqzz -10-18 z: zzzqzzzzbzzwzzpzzzz -8-9 p: pppppppppp -13-16 f: fffffffffffffxtf -8-9 w: fwgwwwlsfpww -4-5 g: grgmcpdqggwckq -16-17 g: gggggwgggggggggln -3-13 j: jjmjjjjjjjjjbjjjjjj -9-13 x: xxxxxxxxxxxxx -5-12 b: bbrmbhbbsgbbbpbbz -14-18 z: zzzszzszzzzzzzzzzzh -1-13 k: pkkkkkhgfkfbtkkpkf -3-14 v: vvvpdlvvvvdfvvjvvsv -12-13 m: mmmmrmbmmmmmmrmmm -12-14 v: vvvvvvvvvcrlvkvv -18-19 p: mxpppgpwcphkzppktppk -4-10 x: xxxxxxxxxxxxx -4-5 k: kklkkk -11-13 m: mmmvmmwmzwmmmnvgmm -7-11 p: qdppjspwtcpppp -4-8 l: lllllllll -12-16 j: jjvjtjjsstfjjnjjk -15-17 h: phhhhhhhhhhrhhhhh -4-7 j: sqfjjjj -3-20 m: wzmqhwmjmclzmmmdlzqm -8-13 m: jpmmbmtgmnprgt -8-13 h: hhhhjjhchhbhqshh -15-20 b: mbbbgbbzmkbbkbbpffqb -2-3 t: tdlt -10-16 l: llllkgllrnllllll -2-4 p: phpf -3-5 d: ddddd -5-6 h: hhhhhhh -2-3 j: cjjrj -7-10 g: hgwtggfgbcpgd -3-4 d: dddk -4-6 t: mltdtf -8-9 h: zhljxshhh -2-3 p: vqjgbsp -6-7 x: gcxvjxp -15-17 s: sswgssdsgssjlssss -1-3 m: qvswmm -1-7 v: svbrvsjv -3-5 j: vjhjdq -15-16 b: bbbnbbbmbbbbbbbdbbmb -6-19 k: spkgcpkhlkkthkgkfzkj -1-2 c: dxqxnrrlfnnc -7-11 j: qjjjjjkdrjjjjj -5-11 g: ztdgvvgwhrlgnq -3-4 c: fcmqglp -4-5 q: qqqqqqq -6-7 c: cccccrc -7-11 n: nnnnbnnnnnn -9-13 x: xxxxxbdtqxdwxsx -9-15 j: ljjjjjjjjjjjjjz -2-11 j: pjjhzmtwlgjwpkjjdwq -5-6 k: kkkkkk -12-13 q: qqqqqqqqqqqmg -3-14 j: nwkjjlbbrnqvqm -3-4 h: hhhhshhhhhhmrh -2-4 l: djkxl -1-9 t: tttttfttl -9-10 g: ckggggtggggggv -3-12 l: cqlclvwhpxwlnzzsqgs -8-14 d: ddddddddnddfdh -1-5 v: vvvvxm -2-5 q: mqqqqlqk -3-4 j: tkjpj -13-16 w: wwwwwwwwwwwwwwxww -13-18 m: mmmmmmmmmmmmmzmmmmm -2-4 x: xxfxx -1-2 d: ddvddddkdddd -3-5 c: cctdc -2-10 q: tqjkqqpsctx -2-18 n: nlnnhnxnnnnnnnnnnln -3-7 k: rkkkbkk -3-4 n: ngnn -3-11 d: dqdbwtbghbdj -3-5 q: fqqqq -5-10 x: xxxxfgxxjbxbhxx -5-6 m: mmtmcn -4-6 x: xxxkxk -17-19 b: bbbbbbbbbbbbbmbbbjbb -5-6 k: kkkkhk -10-12 k: kkkkkkkkkpkgk -3-4 z: zzzz -18-19 p: plcppppksppcnptppvmp -3-6 t: tdtrltmn -3-4 q: qqqq -10-19 v: vvzrvvvvvvvvvvvvvvhv -11-16 d: kjdtddddkdvcdddpd -12-16 l: lllllllllllllllll -4-10 b: dbvbqfqlrb -10-11 k: kbkvkhlkqrv -1-9 x: sbqnkxdmxpc -5-10 l: ldlllkllrln -9-13 j: bpjjjjjjjkjzjnj -11-12 j: jjjjjjjjdjjj -2-8 l: jllzbhjlqlwcltllq -4-5 s: gsssd -2-4 s: kswn -1-18 p: bpppppppppppppppptp -9-11 v: vhvvvvvvvvvv -2-5 v: vvkvvv -8-11 p: plplqpjhdzlfpppppl -11-18 g: ggggglgvgcgggggggg -9-11 r: rrrrwrrrmrzp -3-12 g: tggggmggwnpzvgpnp -13-17 t: tnvvttxttttvtftptgt -5-16 c: cccqccccjvcccccccczc -2-4 f: tfbfrjftf -2-4 s: ssssx -3-9 v: vvspvvvjv -3-4 h: hhxh -15-17 l: lllllllllqllmlvwblll -4-9 j: rjljjjjfjjskdkwttbjt -9-10 m: jmmmmmvmhh -1-8 w: wwwlcwgwwwp -1-8 j: mllsjncl -3-4 b: tfbkbssb -1-7 g: qvdbrjkdgggb -1-3 l: wlbll -4-6 v: jvzqbvvvg -2-3 w: vjlwx -10-12 c: ccvcccrccjfhgccdw -10-18 b: bbtbbbbbggbbbbbbbvb -8-9 j: jjjjjjjjjpjg -5-15 c: ccbccccccccccvccc -16-17 t: ttttgtttttttttttthtx -13-15 t: tvsmjtjttktztrt -9-12 c: jzrpnzdncldmxqjmvccb -6-7 v: jjdvpdhv -4-5 c: ccccccccccccc -6-7 t: ttzttttt -10-11 q: qgxqqqqqqqqqq -14-15 h: hhhhhhhhhhhhhhh -3-8 b: bbbbmbbbbb -11-12 r: rhlrsrrrrjrr -2-6 v: vrvvvhv -4-5 n: nnnhn -3-5 p: pqhmnjp -7-13 h: qhhcwhhhhqhhfq -10-11 d: dddddddddxh -10-11 d: gdcdcdddcddtddsddd -1-5 f: bffspf -5-8 s: skssblsg -8-11 m: mmmcmmmwmzmmmvm -6-8 q: kqqkmqhqq -2-8 q: nqnqbdgm -6-11 b: bbbbmbbqbbb -5-14 q: qqqqpbqqqqqqqgqq -2-5 p: prprwh -13-14 k: kkkkkkkkkkkkkkkk -2-7 v: vnvvdlwvd -2-3 t: hpsqzxrltrwbttwgbz -1-5 n: srnlwnnkjnnwhnf -2-3 r: dtlcv -2-5 h: hhthhdcm -2-11 d: rdxfbdhqpbdjjlhf -1-4 b: bxbshbjr -4-10 s: sthspqlnsst -1-10 h: mhwpfrbhhbn -16-18 g: gggggggglgjgggqcgzgg -3-4 d: dddd -12-16 h: dhhhhhhhshhhmnlhhhh -15-19 q: qmqkqqzqtqdqnqqzqqz -14-15 p: kgjpqpppppqpdpph -4-6 z: zzlzzztbbzzr -11-14 l: blllwlqmhlllldllll -2-4 q: qqrqc -5-6 r: qrrvrrr -2-4 f: fffv -13-15 v: vkvvvpvvvvvvvhvvvv -3-8 k: kzqkkkkkk -4-10 w: wvkwwcwxkwv -2-6 t: tvtttttttt -3-4 t: tttt -11-12 p: pzpzppplplppppk -6-12 p: pppppdpppppgp -5-9 w: wwwwwwwzwwww -4-6 m: mmmmmhmmq -4-9 j: xsqjsllnjj -6-9 c: zmcdccgtfccbccfc -4-5 p: vwpzhpp -15-16 v: pjtmwtrxmjnjfkvgrv -9-10 p: pppppppspp -2-10 f: vffzxnfnxfcfcsmtrncz -5-7 v: blwvvvvfvvh -12-16 z: zzzzzzzzzzzzzzzr -5-6 z: zkvhpz -9-13 w: wwnwwwwwwwwww -5-6 p: wmlhpptppmfvngh -9-11 r: rrrrrgsrrdrmrrrr -2-5 b: bbbbzb -13-15 r: rcrrrrrlrrrrqgfrrnr -5-7 k: klkmkkk -3-4 f: zfffgdnfff -3-4 q: qjbjhzltvl -17-19 w: wwwwwwmwwwwwwwwwqwqw -7-9 l: nlrldrlvlnvllllvf -8-9 m: mmmmmpmmm -11-16 k: kkmkkkwkkkkbkkkkd -11-14 s: mvsdsnsncsssrs -6-17 j: jjjjjgzjjsjjjjjjjjd -19-20 p: ppppppppppppppppppkp -1-16 k: nkkkkkkktkkxkkxz -2-4 c: xkcccvvcv -3-4 v: vvvvvkn -11-13 q: qqqqqqqqqqsqj -10-13 g: gxggggggggggg -3-4 x: xxpx -4-7 d: dvbddcdhdd -17-18 g: gggggggggggggggglbgg -18-19 m: mmmmmmmmmmmmmmmmsmtm -4-6 g: xbtgrgbgggmgcrx -8-13 w: wtwcwnwwwcwssxwpbw -2-3 v: vcsv -4-5 g: gggpt -2-3 g: tggtpgkg -3-4 p: pglt -9-12 v: vvvvvvvvvvvvn -11-15 f: fhffffffffnfffq -2-5 s: snssk -2-3 m: mmmm -10-14 x: xxmjbxbxkbwjxxxxj -5-14 l: lmlmlczxfsllzpkljt -6-12 n: nnnxpjtbjjdnrnsvxnwt -5-9 s: ssssfsssb -3-11 f: bffrlbwzfpf -3-4 t: twtt -1-4 r: rkxrsrlrr -7-8 x: xxxxxxlf -9-15 d: nddbddddxdddrdntdd -16-18 v: vrxvwgbqtlkzprlvwvrk -9-10 l: lllllllllzlll -3-18 l: mfllwjggswwjjgrnrl -5-7 j: jjjtjxjvqjjltjj -5-14 n: nnnnnnnnnnnnnnqn -3-12 l: pllqlhpllpklcds -2-5 f: fsgfrpfflq -4-8 q: xqsfqqqrqhqjsqndz -1-5 c: hcttt -13-14 r: rrrrrrrrrrrrrgrr -4-6 d: dddddt -3-4 d: tdqgdk -14-15 s: snskdsjxpsgmbsssssf -3-5 m: mhlcxmmmw -2-12 c: ccmccchbrrscv -14-16 c: ccccccrccccccccmc -8-17 w: pwqmtwwwwrwxwtmmww -5-8 h: hhhhmhhmlb -10-12 b: bbbqwbbbbbbb -6-7 n: nxnnnnl -7-10 v: vcvgvtgvvkwvtlvcv -10-11 t: ttttttktttttttt -2-5 t: tzdtkpsf -4-5 r: rrrmhr -9-10 w: wcdwxgxrwwwk -1-6 g: jggggcg -1-7 v: vvvvvvvmv -12-15 q: rqqqqkqqqjqqbqqqqqrq -3-10 w: vwwgwwwzwwwwxwwxsw -3-4 c: mmhfccccjclccrdccc -1-5 m: mmmmm -4-5 h: vhhxh -13-14 z: zzbzzzzzzzzzbcz -9-11 k: bkkskkkkkkk -1-6 j: jxvjrm -4-6 f: ffffff -3-5 m: mmmmmm -1-3 x: xxxxxxxxxxx -16-17 f: fffffffffffvfffrxf -3-4 f: fwff -2-11 j: zvbdwnthjfh -9-10 f: gffffffffff -1-3 z: zmrnxvs -5-16 k: llkdkrkvkkhkktkktlkd -9-13 z: mvjzzzkhzvzxzqmf -4-5 d: flgsdd -2-6 p: mftwthqkqqkp -2-4 f: vfff -7-12 w: swwwwwwwfwwwwqwfvw -10-13 c: csdkvcctnccncczc -12-15 q: qqqqqqhvqqqmqqcfqq -2-8 v: gvkfgbzvvmfmg -3-14 m: txwnzwhmcrnnltc -8-13 v: zsvmsddwnkvrkgmx -12-13 f: fffffffffffff -1-16 g: trrkggqglgbbgljx -13-14 c: ccxcccccccmccd -9-12 x: xxxxxxxxcxxlxx -10-14 q: qqqfcqwqqpqqqs -11-16 l: xllllllllllllbll -12-13 v: vvvvvvvvvvvvvv -17-18 g: gggggxggggggggggpcg -1-5 x: xxrxxklxgw -4-5 f: fffqt -10-11 l: llllbklllsgxllr -6-9 r: crfmrsjhpf -4-8 h: hhhchhhx -6-12 v: cvlvvvtbqcsvvzvlztv -2-3 x: bsgfvxdl -2-5 j: njzjjj -13-14 s: ssssssssssssfw -8-11 l: jllfllllllmlllll -2-11 p: pxppppppphq -6-9 f: crtfxvfmwwdvt -3-5 n: nnnnnn -3-4 h: hhhh -3-5 d: kldhd -18-19 x: xxxxxxxxxxxxxxfxxbs -4-5 k: kkkct -9-12 n: nxlnnpnnwnnb -2-4 g: gqggz -15-16 z: zzzzzzzzzzzzzzzz -8-10 p: kpcppjbrzqpfcpgppp -5-6 g: qggggrg -7-8 c: cccfncccccc -2-8 k: hgnsbkckkkqktkstks -3-14 x: xxlxjxxxxxxxxvxfbx -1-8 l: lllllllll -1-2 p: ptbmvp -10-15 k: jkkkkktkkkkkkkkkknzg -6-11 k: kkkkdgkkkkk -7-8 m: mmmmmmmm -13-19 z: zzzzzzzkzzzzkzzzvzxz -2-4 g: tghm -3-8 b: bbbbbvdb -6-8 d: dddddrvxdddfdd -5-10 m: mnmnsmmmmxmd -1-8 r: cgcnqrvfb -16-17 l: mhjqbmhszwllqqllr -2-4 s: csssts -7-10 j: jjjjjjzjqt -1-12 x: xmxtxxxxxtxxzdxx -5-6 w: wwnwmwrw -10-11 p: lpjpgpqpkpprdpppp -8-9 k: zhkkbkfkk -1-2 j: klhz -6-13 d: dmstddpddtddddddd -1-8 h: khvcwhhhhlj -8-11 s: bsssbzsfdrsssss -1-18 s: xsssssssssssssssstss -8-15 l: xjllsmjtlllmsxll -1-5 m: mmmmmm -17-18 k: kkkkkkkkwkkkkkkkbmk -1-7 t: tttttgtdclpkx -4-14 k: tgvzgdwkgtcdrd -2-3 z: tzprzcdzhnnll -2-4 j: rntmnjxbwq -5-6 r: rrnjnr -5-9 g: lrggvfggp -4-5 s: sssdl -4-18 h: hhhhhghphbshhhhhhhhh -4-6 s: sfpjvsk -1-10 m: fwgstfsjmtp -4-8 w: wpwwwwwmwsh -2-19 l: lnllllllllllllllllwl -4-15 v: vmwhvvwvvvvsvtdvvkv -5-6 p: lpppslppjppp -5-7 p: ppzppcmdppt -14-18 f: mffxfftfwffdffffffff -4-7 v: kvvdvjvvkmh -1-7 p: rdkzpkfdpzrxq -2-3 h: cdhhngnnjslfjbh -3-6 q: qqzqqwqt -5-10 s: kpcsszfcwsh -11-12 g: gggggggggggw -14-15 w: wwwwwwwwwwwwwsp -6-10 h: bhkzhhhsbhhh -3-4 l: fcnvfxtln -2-7 j: jzsjfrjjjmxqjxjjss -6-9 s: nvdhnsbhsdwxhlj -1-2 v: vvrp -2-5 h: qhnbhfbsdhs -3-4 x: xqvzps -3-4 m: mcmm -9-11 l: srdlflnwlrl -1-8 x: cxjgmlgwvqdpnbzn -3-4 q: qqqk -4-5 r: wsdlmbdv -1-3 d: tbtdddp -3-8 g: gsggsggvgggpgrgx -5-7 t: ktzrvktqpllxwzt -1-2 s: spss -6-19 d: dtjdmqdldddbdcnzkqpd -9-11 f: fffffffffzf -1-12 g: wggnvsgcrgmx -5-7 f: qfpzfmkfmfjc -14-15 j: jhjjjjjjxqjdvvfj -6-7 v: vvtvvqs -4-11 q: qqqxqcqjqqmqqgt -1-3 l: gbkhxlzld -1-4 s: pssz -13-16 x: xxxxxxxxxxxxfsxpp -3-6 p: mlptcpvcrppn -13-15 x: xxxxxxxxxxxxxxxxx -13-14 f: ffffffffffffff -2-5 j: jjpwj -2-7 r: xrrzrvrkjr -8-9 m: mmhlmhmmmpzpmmhgmvz -3-4 g: zgggdwgggdl -6-9 t: tttttxjzttttr -1-4 h: njzthhch -3-14 x: xprxtxbpxxxxlg -9-15 q: qqqqqjqqqqqqhqqqqq -4-6 w: wwfwwwrb -6-8 w: wwwwwwww -10-11 k: kkkkkkkkksl -3-4 n: nnqfvfn -11-13 c: ccccccccccccc -5-9 n: vnvnmnnnqfnq -13-14 f: ffpzrfflffffffqffff -17-18 p: ppppppppppthpppppzp -3-8 m: hsmzgwdmm -4-7 z: zlzhtzcnzzzz -6-13 b: bvbbbhbbbbbbgbb -11-16 x: lpxtdgxvzbxpcwxc -10-14 d: dddddddddrddddddd -2-5 j: lhjnv -2-3 p: pdkp -3-10 l: lnllqjpgqfl -1-4 t: ttttttt -4-8 q: qxzqqqfczksrwmmzx -1-4 l: lllll -5-19 z: ttzhzcbczmjxzrjzpwz -4-7 s: sgssssjs -12-13 s: sssssssssssbq -9-12 h: hhhlchhhvhwb -5-13 n: fncqnnnnwkhnn -10-13 g: ggggjggggrgcqgg -8-12 q: qqxqvqqmqrpdrxqq -5-6 l: ldwlvnllwq -12-15 v: cvvvkvvvvvvvvrvvvl -6-11 x: kxmthvnkgxq -6-9 n: nfdfnkmnln -3-5 x: nqcxt -2-7 p: tpgkbpwxhpzldtmrqd -8-9 r: rrrsrrzrrmrr -3-10 x: fmmjlxbqlz -1-10 g: cngggggqghf -10-11 r: frrrrrrrrgj -2-5 q: sqgqq -7-8 x: cxxxwxsvjgxx -8-16 t: ttttttgpttqttttt -4-8 n: ndznlllnqwpmnnfwvxb -4-15 j: jjbszvrjjjjfjjjwjjcj -4-5 c: ccvrlc -17-19 f: ffffkpfffjxffwffcff -3-4 z: qfzzz -7-9 s: szssssjsm -13-18 q: lngqqpvqqdjvcqdqvlq -7-8 b: bbbbbbbb -2-4 n: lnqr -11-13 k: kkkkkgkkkqxkhfk -2-4 g: tggqzdxp -3-5 t: ttvtft -2-4 v: pzbbr -1-4 h: thhhh -2-5 m: mqxdt -8-9 k: kkkkkkkkk -2-6 w: jqfwlhv -17-18 x: xhxxxkxxxxxxxxxxxbxx -9-10 p: ppwppdpxvvjzpp -10-16 h: hmhjpxmhvnhqhjfmb -11-15 k: kkxkkkkkkgckkkcs -5-9 b: cwcbjsqbdwmbw -10-11 z: zzzzzzzzzzz -14-16 w: wptvwbwdwwwwwwww -8-10 c: xccclcchcrvtqc -7-12 r: rhnrrrrrrrkqrrtm -3-5 h: hhrhph -7-10 c: wblrcccpctnhvdc -15-17 n: nnnnnnnnnnnnnnnnn -5-13 s: ssssssssrssmslsssv -8-19 k: pvqbhlzkwpnkcgkvkwk -4-5 s: pkrxgskxsswbqwlfxsvw -5-10 d: ddsbdcdsdd -12-13 q: hwrkqrhqrrxmw -5-15 b: blcbfqbgbnghjbnglbbb -1-3 z: zzczzz -3-14 s: jsxssskvsssptw -8-13 n: nnnnknnnnnnnnnn -3-11 c: ccccccccccbccccc -1-6 n: nnnlbn -9-12 k: qkkkkkkkkxwkkk -19-20 w: wwwwwwwrwwwwwwwwwwww -10-15 n: nnnnnnndnnndfnnnn -8-14 c: cvndjxlcsccwxl -1-3 v: vrvwv -8-10 s: rshsssjssss -2-10 n: nnjnnnnnnhnkm -1-2 c: ccbcflcp -3-6 v: jtntcsvvvhp -3-5 q: qqqql -17-19 p: ppppppppppppppppmpg -10-11 k: kkkkkkkkktrk -2-4 f: tgprtftkfx -8-9 x: xxxxxxxld -4-6 l: lhzllllzhv -8-9 g: bhgkfgsggxg -5-9 d: dkdddddmdwd -2-13 s: sdffzhrpbnvtswxsbrcs -7-8 q: qjqpdqvwqqdtxpq -5-8 n: lncnfnzxtsn -8-9 p: khtrxgvhtqwrfpqrd -2-4 s: zhln -5-6 q: bqqqddp -7-13 g: gggjggggggggg -10-12 w: wwwwwwwwwkww -1-4 b: bwbbdbhbl -9-18 j: jjjjjjjjjjjjjjjjjjj -10-18 j: jjjvjjjtjjqjjjjfbjd -11-13 m: mmdmmmmmdmmmqm -6-9 n: nnnndtnvfnn -2-3 q: qckq -16-17 x: xcxxxxxxxxxxxxxpxx -14-17 k: kkkkkkkkqkkkkkkck -3-8 l: llkllllvl -8-13 p: nkptlpntkcknppwpdhb -6-12 s: ssssssssssss -8-14 c: ccccccccccccccccsc -6-9 p: cpppdnppztxbpp -8-12 w: vshmsmbckwjmw -1-10 g: qqtfmmxnbg -1-6 m: mmkmmmfmw -5-8 v: vvvwxvvdqv -7-8 f: ffffffff -2-10 k: kkkkkkkkkk -1-4 g: wjhxhq -3-4 w: znpwwmwcwjgs -5-9 d: ddddrdddwl -6-8 j: kjjhvzrbrwcjjm -2-5 j: jhjjxjjsj -2-6 t: ccwdcm -4-12 q: qlqrsgqqhqqf -13-16 w: mwwwwwhwwwwwwwwwww -9-10 g: ggggggggggmtgwj -1-3 x: xxxx -1-3 n: jxtqjbhpkgrcrdrptvd -14-15 w: wwhwwwwwwwwwwww -7-10 d: wddddzvdddkdm -1-4 p: lzph -6-9 w: wwwzwswwr -17-18 t: kjtktrtfgkhpzthvsjt -12-13 j: jjjjjjjjjjjxs -8-9 r: srrzrmrxnhrrr -1-5 s: spzsshkzfmkdss -1-7 z: zzsmzzhzzxzzzzz -1-2 d: ddvx -2-9 h: hhhhhhhhhhh -6-8 p: ppppppppx -4-8 v: bqvvxmvtvhfvv -3-4 z: zzzz -2-4 r: rrrrrrr -4-5 r: mhrrrrrrq -5-6 b: nkhgfjrzqldbbbbmpx -7-8 n: nnnsnwnncdnn -13-15 p: pppntwcpppppppv -5-11 r: tmkrdcmrpcrrkrl -3-4 v: vvgf -4-5 j: jjvtcj -3-5 p: ppppp -1-3 r: mrrr -13-14 v: vvvvvsvvnvvvhxvvv -10-14 z: ltwsklmfdpvxmxgq -16-17 b: bbbbbbbbbbbbbbbqqbbb -3-8 q: qbpqpvqll -9-10 x: xxxxqtxxzxxxx -8-12 d: pdddnddcbcdx -2-3 m: fmmmsfmvcmkc -9-10 x: slxtnxxtjnnxjnq -5-13 h: hhshhhhvhffhhn -6-14 t: wwwmqttttkpmqtrt -1-5 b: mbbbb -10-12 k: kfkkpkrkkkkkkkh -5-6 m: mnlmbvmm -5-6 x: xxxxvl -5-7 b: dbbbpbc -2-19 t: qhdtkxjzdcwjqjkglpzr -1-4 h: hhgqhnhhhhfhhh -1-10 b: bqbbbbzbbbbbbwb -2-3 b: dbbkgnxmbtpg -3-8 r: rrrjrgrrwq -4-7 s: ssrfwfgvskmssws -13-14 m: smdmmmmmgmfmmjs -13-15 h: hhhshhwhjhhhhhhhh -12-13 n: nnnnnnnnnnnnnn -6-14 n: ndnnpqwrlgfrmn -3-16 m: rldkmmmkhmsmbnqbmgs -2-3 m: rmmmmm -5-9 x: xxxxfxxstxxs -4-8 b: bgbbbbgbbbb -9-11 c: kwcclccccscxp -10-17 v: vvvvvvvvvvvvvvvvvv -13-18 n: nrnnnnnnnnnnfnnnnpn -3-4 c: hbcc -13-14 w: wwgwwwwwwwwwwc -4-6 z: fwmzzzz -12-15 h: vhhfhhhhhwhrhhlkmhhh -1-5 v: jqvvhvvbt -4-5 n: vnnscn -5-6 n: qnrvnnndnffnkknfrdt -6-7 w: wwwwwvznwwwwww -6-12 h: hvhhhdhhhhhr -4-5 m: vtmmmmdmp -8-9 f: ffffffffffffffffdf -5-11 z: zzzzjzhzgjwzzhlz -8-10 d: mdnnfwswns -4-15 c: rptccckzhgcvlccbh -4-5 r: brrrgtd -4-15 x: rxsfxqhhzxdsxqxgw -8-9 c: ccccclcccccccc -2-9 l: mwltgglzztlpllgf -12-13 g: nnjgzggjkgzgd -4-6 j: jjfjjnj -11-14 m: mmfqpmkmmmmmmmrm -6-7 c: cccccqccmccccc -6-9 f: ffzgcfcpfwztjk -6-9 r: sjgrxnrvnqmmlxdrsp -3-11 c: cchwcfcckcn -7-10 p: jpzdflzgkxnbhj -5-6 b: bblblp -7-8 p: ppppppllppp -10-13 b: bbbbbvbbggbbb -5-6 p: pppptp -2-6 t: qttttjtt -3-6 n: vwlhczrnwpnvrnl -8-9 r: jrrdrrrjwrrrrrs -3-4 n: nnwqn -4-8 b: mbscbwxn -10-12 v: tqbvxmlqvvvv -1-9 l: qcllllncllcllllrn -6-10 b: gbbxfblbbx -11-13 g: gggqgggtgggtgrgsg -2-3 f: fjkz -5-11 t: tttttttttttt -5-18 j: zjdxgjjpshjjkjbtjvg -9-11 k: kjkfkwkkrkgk -1-8 w: hwhcwwbffvcdwzwbww -7-16 l: rrljlvlmmlssllkllqj -1-4 d: hddldvddddf -7-9 b: bgbbbrmblb -2-5 v: ltvvvv -5-6 r: rgrrdvrrrrrrr -8-9 n: wnnnnnnnn -1-8 q: sfmbjqqwvqqq -2-11 b: wblbmlrcwffl -4-5 n: cfmnn -15-16 g: gggggggggggggggq -6-10 x: xxxxxxxxltxxx -5-9 g: gggbgxgggpgn -8-10 z: zzztjzzzqzp -4-5 x: xxxfl -6-10 v: vvvhvvvvvv -6-8 v: tdrvsnvpvzxbwvv -8-11 q: qqqqqqqqqqjqqq -12-13 z: zjzzzvzjkzzzz -1-8 b: bsqqmbnbcwhkphfh -1-5 z: zdjzzrm -3-4 m: vlmmtbmmxcdkmdmfb -7-14 k: kkwpcjfkkkrknzkk -1-3 f: cfbljmpfghhgxdbg -6-7 n: mrnhnxn -16-17 g: gggggggggggggggmr -7-8 q: qqqkqhqqwkpzshq -9-15 j: jjjjjjjjjjpjjjj -5-6 t: tttttl -4-15 h: hhhhhbsbphhhlzgh -4-6 h: qhhlhh -2-6 f: wfwdff -1-7 c: rczccfx -3-8 b: jkznbbbqlk -8-14 r: srtchmrjxmzznm -4-8 s: ssgskspsdsmclrmxzp -9-12 j: kjjjfcjjljjqjj -3-5 l: lllvllll -15-16 s: sssssssssssssszs -5-6 z: zzzzmfjz -13-14 v: vnvvgvvvvwvvfrvspv -7-8 t: ttttttkst -17-18 f: ffffffffffffffffhx -8-11 b: bbbkbswbbpbnbbbbx -7-14 s: ssjfssssssjsdp -6-8 s: sssssqsps -5-8 h: hhdhphhmhhhh -8-9 r: prrmrpsrrrvrzrrrsrn -4-17 t: ttttjttjttthtktttt -7-9 v: tvvwvpvrbnvvvv -8-12 j: plfsgrjjgjrjwcgc -2-7 r: krqzzprxrldwg -4-11 k: sfpkkkcwkwk -2-3 z: zzhp -6-9 h: xkjwshvmhbjhfjvkwcmh -4-8 d: dvndvmdzn -3-6 r: wrrrrr -6-8 g: kggdgfgzz -3-5 j: jjjjj -2-9 x: qkksvkxxvxbxx -12-17 b: kjpbpbmddcnwbbbxb -2-10 w: rwpbpbwrbmwgwwvghvg -1-12 f: fbfqmffffftf -1-8 z: qvbjgplznjztjvqjhv -1-5 b: bbbbbbbbb -7-11 p: kddppkdtqpjcfpp -14-20 z: zzzzzmzzzzzzzzzzzzzz -7-8 p: sjspdphq -11-12 w: wpwwwwwwwwwd -7-12 d: sdddddkdjddd -6-8 g: gggfzzhglgxqpgbnbgbx -10-13 c: hcccctjcccccccn -14-16 k: kkkkkvkkkkkkkkpxk -16-18 c: ccccccccclcccccccjc -2-4 r: llrh -11-13 g: ggggggggggggm -1-4 z: zfwzzz -4-6 s: ssssfs -5-12 t: tttttntttttt -2-6 n: gnghnp -1-3 q: qqgq -10-11 f: rdzfzffhtfffffff -4-9 k: kpfhvkkkk -3-10 t: twlkttptttt -4-10 d: dkdvgkdddwd -5-12 t: ttttnttghtthtvtt -4-5 c: ctczwcccc -17-18 l: llllllllllllllllmx -2-8 t: knmttnttdjbtttvtkt -1-2 j: jdjjjj -12-16 j: wmqlfjlnxnvlrjkmj -13-17 s: snsdsssssssssssss -8-14 h: hhhhhfhhhwhphhscphd -9-10 b: bbbgbbbbqcb -15-16 z: fjjcjrwjtrcnltzz -6-8 s: ssssxjshd -2-4 k: kkkw -3-6 s: xsfgbpss -13-15 x: xxpxxxxdxxxgjxgxxx -4-5 l: llqlllsl -10-15 g: jggxgsggggggjtgg -2-6 b: prpbjbkbbkcb -7-9 h: hhhhhkfhh -8-11 f: fzhftffvffwffnl -11-15 x: xxxcxxxxxngxxxcxx -11-12 k: skkkkkkkkkxhn -5-15 n: cnnnnqqbnnnncznnp -1-3 v: vqvxlfwpjvxtpkvlhxjv -3-8 b: gfbbbsfbb -3-4 z: qzzzbczk -8-17 t: cpttttttpttttttttt -11-17 l: lprllfllllnlllllnll -7-8 f: ffffffrd -2-6 z: hghjzzwpwz -6-13 m: thzmtmcsmtctf -2-4 c: dctc -10-17 s: sssssssspzssssssl -6-10 j: jjjjljljjjjjzj -5-7 b: bbxbvsxphgrmnqgzbbx -1-11 l: rlnlllllllvlllll -13-16 b: bbbbfbnbbbbbzgbwbb -5-11 p: bpjpnpqpppjpmppphrk -1-3 l: llll -11-15 l: llgllllcllllllllfll -2-7 x: kxsnzzx -18-19 g: gglgggvqkjzgkgggzgg -3-5 j: fqvjjcjjhb -6-7 c: fccccccct -13-16 m: mzmtcgmcmmmkdmlk -5-9 w: wwsjwwwww -1-2 m: jzmj -16-18 m: mmmmmmvmmmmmmmmqwn -11-12 w: wwwbrwcwwxwwmwwrdww -3-4 v: nsvddwnvvvm -5-8 m: mjmrbpmh -2-3 t: xdrtzgdl -2-6 n: fnwwgnnzwsp -7-9 p: jpppppvppsqt -1-8 k: gkkkkkkkk -2-9 q: jqqqwfzxhqqqqsxqm -2-4 t: jtwt -6-20 d: hqdkcmkdndjrftmgjgqc -2-9 r: crgmrqpwrrr -9-15 p: pwmjlrgnrppwphg -3-4 t: ttqttttnttttt -1-5 v: hvvvv -1-2 x: ggxxxxt -17-18 m: mmmmmmmmmmmmmmmmcl -4-10 d: dxtmsjvhczfjd -8-10 x: xpbxsxpxgxqxxqxxk -6-9 f: ffffmffdwkfrlffx -8-10 m: ldmmgxxmbmnqftt -12-13 p: ppxpxhppgppqqpvppp -4-12 k: kkkkkkkgklkkjkkqvkk -3-4 x: xxcp -7-8 k: kkkkkkkr -11-14 d: dddkpddvdddddg -3-8 l: lsgmlqll -12-13 z: znzzzzzzzzzzrz -3-5 h: hhdphh -3-4 h: hqhhh -4-6 f: wfsfrffzf -8-12 k: ktkdmhvkxktkhr -2-6 d: dpdwdddd -7-12 n: nnnnnnpnnnnxn -1-3 v: vvvv -3-11 q: gmqqqqmqshpq -3-4 j: jjjjkjhjf -2-4 b: glbxb -13-14 s: ssssssssssrssds -16-18 d: dddddddddddddddddd -3-9 g: fgggzttsg -11-12 r: grrrrrrqrrrrrrr -2-5 q: cdqqv -6-11 l: lfclllslllxllll -2-3 d: dzdddg -2-4 n: tkwm -4-5 r: kdccjnrfrzrhplrz -4-16 j: tfxsmxlrjptjjrxw -16-17 p: stpsgsgwvqrzpblpsx -8-12 r: rrdrgrrgrrhrwqjmp -5-8 j: jjqjjkjjjjnv -2-7 n: wzgnnnnnn -1-3 v: vvvv -4-5 l: hlgnx -8-15 c: ccccpccczvcsccc -3-15 f: ffnfffffffffffv -4-5 w: wwjgww -10-15 d: ddddbcrddmddddld -7-11 w: wwwwwwwwwwz -3-4 h: hhhh -4-9 v: vvpgvvnvtv -8-11 q: qqqqvqqqxqcqnmq -2-5 s: lsnpdqqqsj -8-9 g: ggsgggggz -6-10 s: sssssbsbbtss -12-16 z: zhzzzszzzzznnzbwz -9-10 p: ppnpdpgldl -10-11 r: rrrrrrrlrtfrr -1-13 h: xhhrhhhhhhhhchhhhcp -5-14 m: mmmmmmmmmmmmmqm -8-9 h: hhhhchhhhhkt -3-4 f: fflf -7-13 s: ssssssssscsssjs -2-3 t: twlcfmbmbxtt -4-6 v: vdvhvf -1-7 c: bccccccccccc -13-14 r: wrrvrvrtrrrrrrrrrrr -1-3 b: sjvfpdrbcnwr -1-7 z: xzzzzwjz -6-14 j: jfrxjjjrqcqjwmbfjjjm -11-14 f: ffffffffffqffzqf -6-8 z: zzzzzrzw -1-5 j: jjjnjjjjj -9-10 g: ggggggxggg -7-9 r: rrrvrrbrdr -9-18 j: jjjjjjjjnjjjjjjjjfjj -14-18 q: kjtxqqqqltlpgqshdx -8-12 k: kkkkkkwjkkkfkkk -2-4 s: ssvs -3-5 z: zzfjk -9-10 m: rmmlmsmfmbj -14-15 z: nlzzzzzzzzzdzzzzzz -8-12 r: zrrrrprrxrrrrkrhk -1-2 z: qlfzd -1-6 j: kqjpjzpsgjjqz -1-5 s: qfssks -2-5 r: nrrzrr -4-6 g: kggggg -6-7 c: cccccdqcc -2-6 x: vjkxbrfwnj -16-18 s: kssssssswssssssssssb" - -# ╔═╡ 4a629040-347a-11eb-2aae-6f37a4c89168 -input_day2 = parse_day2(input_day2_raw) - -# ╔═╡ 5825aa50-347a-11eb-37ca-811e1b59d37a -md"**Result for part 1**: $(nb_of_valid_passwords_part1(input_day2))" - -# ╔═╡ de3c2f00-347b-11eb-0aec-8b776a855f6a -md"**Result for part 2**: $(nb_of_valid_passwords_part2(input_day2))" - -# ╔═╡ Cell order: -# ╟─f0dd4400-3313-11eb-3295-af913c2212fb -# ╟─0b7b8920-3314-11eb-2cfb-7d20c0967e67 -# ╟─877b32e0-3315-11eb-0e96-650b19da693e -# ╠═4adcf8d0-33a8-11eb-0220-696f06894ef3 -# ╠═1e8e7230-33ae-11eb-0a77-035e6a4b9ba8 -# ╟─7a037310-33ac-11eb-34fb-9bf552883937 -# ╟─c7dcdae0-33b1-11eb-2cab-fbc06c8ef76b -# ╟─5d9712b0-3472-11eb-1423-719331dfe52f -# ╠═b9144990-3473-11eb-0ba9-59f3fe6ddbc0 -# ╟─10f5ffa0-3474-11eb-2a36-d5c6f78f18c6 -# ╠═6695038e-3472-11eb-1846-3b1c041be59d -# ╠═bbda1c1e-347a-11eb-0e7a-756906c4c9f4 -# ╟─a0cfb670-3474-11eb-1a05-c12914658a0a -# ╟─2b112350-347a-11eb-1725-5f70e3623379 -# ╟─4a629040-347a-11eb-2aae-6f37a4c89168 -# ╟─5825aa50-347a-11eb-37ca-811e1b59d37a -# ╟─de3c2f00-347b-11eb-0aec-8b776a855f6a -- 2.45.2