diff --git a/.drone.yml b/.drone.yml
new file mode 100644
index 0000000..5a8b11e
--- /dev/null
+++ b/.drone.yml
@@ -0,0 +1,36 @@
+kind: pipeline
+type: docker
+name: AdventOfCode
+
+steps:
+- name: init
+ image: busybox
+ commands:
+ - echo 'Starting build pipeline for AdventOfCode'
+
+- name: test
+ image: mcr.microsoft.com/dotnet/sdk:5.0
+ commands:
+ - dotnet build AdventOfCode.Tests
+ - cp -a AdventOfCode.Tests/Data/. /drone/src/AdventOfCode.Tests/bin/Debug/net5.0/
+ - dotnet test AdventOfCode.Tests --logger "console;verbosity=detailed"
+
+- name: build-advent-of-code
+ image: plugins/docker
+ settings:
+ username:
+ from_secret: gitlab_username
+ password:
+ from_secret: gitlab_password
+ registry: registry.gitlab.com/sig14
+ repo: registry.gitlab.com/sig14/advent-of-code
+ dockerfile: AdventOfCode/Dockerfile
+ depends_on:
+ - test
+
+- name: finish
+ image: busybox
+ commands:
+ - echo 'Finished container registry push for Advent of Code'
+ depends_on:
+ - build-advent-of-code
\ No newline at end of file
diff --git a/AdventOfCode.InputFetcher/AdventOfCode.InputFetcher.csproj b/AdventOfCode.InputFetcher/AdventOfCode.InputFetcher.csproj
new file mode 100644
index 0000000..c2ac163
--- /dev/null
+++ b/AdventOfCode.InputFetcher/AdventOfCode.InputFetcher.csproj
@@ -0,0 +1,9 @@
+
+
+
+ Exe
+ net5.0
+ true
+
+
+
diff --git a/AdventOfCode.InputFetcher/Program.cs b/AdventOfCode.InputFetcher/Program.cs
new file mode 100644
index 0000000..066d6a1
--- /dev/null
+++ b/AdventOfCode.InputFetcher/Program.cs
@@ -0,0 +1,97 @@
+using System;
+using System.IO;
+using System.Net.Http;
+using System.Linq;
+
+namespace AdventOfCode.InputFetcher
+{
+ class Program
+ {
+ private static readonly string AdventOfCodeEndpoint = "https://adventofcode.com/{YEAR}/day";
+ private static HttpClient _client;
+ static void Main(string[] args)
+ {
+ Console.WriteLine("Please select your year! Default: 2022");
+ var year = SanitizeInput(Console.ReadLine(), "2022");
+ Console.WriteLine("Please enter your session key for advent of code:");
+ var sessionKey = Console.ReadLine();
+ Console.WriteLine("Please input the target directory for the input files! Default: Current working directory");
+ var targetDir = SanitizeInput(Console.ReadLine(), Directory.GetCurrentDirectory());
+ Console.WriteLine("File Name Format? Default: \"{YEAR}_{TYPE}_Day_{DAY}{PART}.txt\" => 2022_Input_Day_1.txt or 2022_Answer_Day_1-PartB");
+ var format = SanitizeInput(Console.ReadLine(), "{YEAR}_{TYPE}_Day_{DAY}{PART}.txt");
+ Console.WriteLine("Pull Answers? (Y/N) Default: Y");
+ var answer = SanitizeInput(Console.ReadLine(), "Y");
+ Console.WriteLine("Overwrite? (Y/N) Default: N");
+ var overwrite = SanitizeInput(Console.ReadLine(), "N");
+
+ _client = new HttpClient();
+ _client.DefaultRequestHeaders.Add("Cookie", $"session={sessionKey}");
+
+ var filesOnDisk = new DirectoryInfo(targetDir);
+ for (int day = 1; day <= 25; day++)
+ {
+ var dataFileName = format.Replace("{DAY}", day.ToString()).Replace("{TYPE}", "Input").Replace("{PART}", "").Replace("{YEAR}", year);
+ var answerFileNameA = format.Replace("{DAY}", day.ToString()).Replace("{TYPE}", "Answer").Replace("{PART}", "A").Replace("{YEAR}", year);
+ var answerFileNameB = format.Replace("{DAY}", day.ToString()).Replace("{TYPE}", "Answer").Replace("{PART}", "B").Replace("{YEAR}", year);
+ bool dataFileExistsOnDisk = filesOnDisk.EnumerateFiles().Any(x => x.Name == dataFileName);
+ if (!dataFileExistsOnDisk || (overwrite.ToUpper() == "Y"))
+ {
+ File.WriteAllText(targetDir + Path.DirectorySeparatorChar + dataFileName, PullDataForDay(year, day));
+ }
+
+
+ if (answer.ToUpper() == "Y")
+ {
+ bool answerFileAExistsOnDisk = filesOnDisk.EnumerateFiles().Any(x => x.Name == answerFileNameA);
+ bool answerFileBExistsOnDisk = filesOnDisk.EnumerateFiles().Any(x => x.Name == answerFileNameB);
+ if ((!answerFileBExistsOnDisk && !answerFileBExistsOnDisk) || (overwrite.ToUpper() == "Y"))
+ {
+ var answers = PullAnswerForDay(year, day);
+ if (!string.IsNullOrWhiteSpace(answers.Item1))
+ File.WriteAllText(targetDir + Path.DirectorySeparatorChar + answerFileNameA, answers.Item1);
+ if (!string.IsNullOrWhiteSpace(answers.Item2))
+ File.WriteAllText(targetDir + Path.DirectorySeparatorChar + answerFileNameB, answers.Item2);
+ }
+ }
+
+ }
+
+ }
+
+ private static string PullDataForDay(string year, int day)
+ {
+ return ExecuteWebRequest(string.Format("{0}/{1}/input", AdventOfCodeEndpoint.Replace("{YEAR}", year), day));
+ }
+
+ private static readonly string SearchString = "Your puzzle answer was";
+ private static Tuple PullAnswerForDay(string year, int day)
+ {
+ var html = ExecuteWebRequest(string.Format("{0}/{1}", AdventOfCodeEndpoint.Replace("{YEAR}", year), day));
+ var answerStart = html.IndexOf(SearchString);
+ if (answerStart < 0) return Tuple.Create("", "");
+ var startingIndex = html.IndexOf("", answerStart) + "".Length;
+ var endIndex = html.IndexOf("
", answerStart);
+ var partA = startingIndex < 0 || endIndex < 0 ? "No Answer Found yet." : html.Substring(startingIndex, (endIndex-startingIndex));
+
+ html = html.Substring(endIndex + 1);
+ answerStart = html.IndexOf(SearchString);
+ startingIndex = html.IndexOf("", answerStart) + "".Length;
+ endIndex = html.IndexOf("
", answerStart);
+ var partB = startingIndex < 0 || endIndex < 0 ? "No Answer Found yet." : html.Substring(startingIndex, (endIndex - startingIndex));
+
+ return Tuple.Create(partA, partB);
+ }
+
+ private static string ExecuteWebRequest(string url)
+ {
+ var resp = _client.GetAsync(url).Result;
+ return resp.Content.ReadAsStringAsync().Result;
+ }
+
+ private static string SanitizeInput(string input, string defaultText)
+ {
+ if (string.IsNullOrWhiteSpace(input)) return defaultText;
+ return input;
+ }
+ }
+}
diff --git a/AdventOfCode.Tests/AdventOfCode.Tests.csproj b/AdventOfCode.Tests/AdventOfCode.Tests.csproj
new file mode 100644
index 0000000..97e3a87
--- /dev/null
+++ b/AdventOfCode.Tests/AdventOfCode.Tests.csproj
@@ -0,0 +1,162 @@
+
+
+
+ net5.0
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+
+
diff --git a/AdventOfCode.Tests/AdventOfCodeTests.cs b/AdventOfCode.Tests/AdventOfCodeTests.cs
new file mode 100644
index 0000000..a08a664
--- /dev/null
+++ b/AdventOfCode.Tests/AdventOfCodeTests.cs
@@ -0,0 +1,115 @@
+using AdventOfCode.Common;
+using AdventOfCode.Models;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+namespace AdventOfCode.Tests
+{
+ [TestClass]
+ public class AdventOfCodeTests
+ {
+ [TestMethod]
+ public void TestAllDays()
+ {
+ var directoryInfo = new DirectoryInfo(Directory.GetCurrentDirectory());
+ var validDays = GetValidDays(directoryInfo.EnumerateFiles().Where(x => x.Name.EndsWith(".tst.data")));
+
+ var error = false;
+ foreach (var validDay in validDays)
+ {
+ try
+ {
+ var year = Convert.ToInt32(validDay.Split("_")[0]);
+ var day = Convert.ToInt32(validDay.Split("_")[1]);
+ var part = validDay.Split("_")[2];
+ Console.WriteLine($"Testing {year} Day {day} Part {part}");
+ var input = $"{year}_Input_Day_{day}.tst.data";
+ var answerData = $"{year}_Answer_Day_{day}{part}.tst.data";
+ var aocDay = GetAOCDay(year, day);
+ var version = (AOCVersion)Enum.Parse(typeof(AOCVersion), part.ToUpper());
+ if (ShouldSkipAnswerCheck(aocDay, version))
+ {
+ Console.WriteLine("Answer is marked to be skipped and not compared (visual answer).\n");
+ continue;
+ }
+ var resp = aocDay.ExecuteDay(new AOCRequest()
+ {
+ Version = version,
+ IgnoreLogMessages = true,
+ Input = File.ReadAllText(Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + input)
+ });
+ var actualAnswer = File.ReadAllText(Directory.GetCurrentDirectory() + Path.DirectorySeparatorChar + answerData);
+ Console.WriteLine($"Asserting that (Answer) [{actualAnswer}] == [{resp.Answer}] (Tested)\n");
+ Assert.AreEqual(resp.Answer.ToString(), actualAnswer);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine($"Failed {validDay} with " + e.Message + " _ " + e.StackTrace);
+ error = true;
+ }
+ }
+ if (error) Assert.IsNotNull(null);
+ }
+
+ private bool ShouldSkipAnswerCheck(AOCDay day, AOCVersion version)
+ {
+ var ignoreAttribute = (IgnoreTestAnswerAttribute) Attribute.GetCustomAttribute(day.GetType(), typeof(IgnoreTestAnswerAttribute));
+ if (ignoreAttribute != null)
+ {
+ return ignoreAttribute.ShouldIgnoreAnswer(version);
+ }
+ return false;
+ }
+
+ private string[] GetValidDays(IEnumerable files)
+ {
+ var validDays = new List();
+ for (int year = 2022; year < 2025; year++)
+ {
+ for (int i = 1; i <= 25; i++)
+ {
+ var inputName = $"{year}_Input_Day_{i}.tst.data";
+ var partAAnswer = $"{year}_Answer_Day_{i}A.tst.data";
+ var partBAnswer = $"{year}_Answer_Day_{i}B.tst.data";
+ if (!files.Any(x => x.Name == inputName)) continue;
+
+ if (files.Any(x => x.Name == partAAnswer))
+ {
+ validDays.Add($"{year}_{i}_A");
+ }
+
+ if (files.Any(x => x.Name == partBAnswer))
+ {
+ validDays.Add($"{year}_{i}_B");
+ }
+
+ }
+ }
+ return validDays.ToArray();
+ }
+
+ private AOCDay GetAOCDay(int year, int day)
+ {
+ AOCDay aocDay = null;
+ var type = typeof(AOCDay);
+ var types = AppDomain.CurrentDomain.GetAssemblies()
+ .SelectMany(s => s.GetTypes())
+ .Where(p => type.IsAssignableFrom(p) && !p.IsInterface && !p.IsAbstract);
+ foreach (var x in types)
+ {
+ var aocAttribute = (AOCAttribute)Attribute.GetCustomAttribute(x, typeof(AOCAttribute));
+ if (aocAttribute != null)
+ {
+ if (aocAttribute.Year == year && aocAttribute.Day == day)
+ {
+ aocDay = (AOCDay)(IAOCService)Activator.CreateInstance(x);
+ }
+ }
+ }
+ return aocDay;
+ }
+ }
+}
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_10A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_10A.tst.data
new file mode 100644
index 0000000..4c215c0
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_10A.tst.data
@@ -0,0 +1 @@
+14560
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_10B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_10B.tst.data
new file mode 100644
index 0000000..6df139e
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_10B.tst.data
@@ -0,0 +1 @@
+EKRHEPUZ
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_1A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_1A.tst.data
new file mode 100644
index 0000000..a1731fe
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_1A.tst.data
@@ -0,0 +1 @@
+69310
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_1B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_1B.tst.data
new file mode 100644
index 0000000..20248d8
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_1B.tst.data
@@ -0,0 +1 @@
+206104
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_2A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_2A.tst.data
new file mode 100644
index 0000000..2e5a3d6
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_2A.tst.data
@@ -0,0 +1 @@
+12645
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_2B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_2B.tst.data
new file mode 100644
index 0000000..ae1a18f
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_2B.tst.data
@@ -0,0 +1 @@
+11756
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_3A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_3A.tst.data
new file mode 100644
index 0000000..86c2e0e
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_3A.tst.data
@@ -0,0 +1 @@
+8394
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_3B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_3B.tst.data
new file mode 100644
index 0000000..2ca7f5f
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_3B.tst.data
@@ -0,0 +1 @@
+2413
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_4A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_4A.tst.data
new file mode 100644
index 0000000..f520b6e
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_4A.tst.data
@@ -0,0 +1 @@
+530
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_4B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_4B.tst.data
new file mode 100644
index 0000000..c1f4de8
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_4B.tst.data
@@ -0,0 +1 @@
+903
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_5A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_5A.tst.data
new file mode 100644
index 0000000..e3c9d1e
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_5A.tst.data
@@ -0,0 +1 @@
+FJSRQCFTN
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_5B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_5B.tst.data
new file mode 100644
index 0000000..c8463d2
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_5B.tst.data
@@ -0,0 +1 @@
+CJVLJQPHS
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_6A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_6A.tst.data
new file mode 100644
index 0000000..89a8d9e
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_6A.tst.data
@@ -0,0 +1 @@
+1623
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_6B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_6B.tst.data
new file mode 100644
index 0000000..689d11a
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_6B.tst.data
@@ -0,0 +1 @@
+3774
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_7A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_7A.tst.data
new file mode 100644
index 0000000..fb61987
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_7A.tst.data
@@ -0,0 +1 @@
+1778099
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_7B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_7B.tst.data
new file mode 100644
index 0000000..fa01dc1
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_7B.tst.data
@@ -0,0 +1 @@
+1623571
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_8A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_8A.tst.data
new file mode 100644
index 0000000..d47857c
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_8A.tst.data
@@ -0,0 +1 @@
+1805
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_8B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_8B.tst.data
new file mode 100644
index 0000000..909df2a
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_8B.tst.data
@@ -0,0 +1 @@
+444528
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_9A.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_9A.tst.data
new file mode 100644
index 0000000..fd53be7
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_9A.tst.data
@@ -0,0 +1 @@
+6367
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Answer_Day_9B.tst.data b/AdventOfCode.Tests/Data/2022_Answer_Day_9B.tst.data
new file mode 100644
index 0000000..c223971
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Answer_Day_9B.tst.data
@@ -0,0 +1 @@
+2536
\ No newline at end of file
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_1.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_1.tst.data
new file mode 100644
index 0000000..98e0ab4
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_1.tst.data
@@ -0,0 +1,2255 @@
+3344
+8938
+7923
+3979
+2753
+5730
+4225
+
+24216
+7432
+18284
+
+3475
+9177
+6769
+11335
+8061
+9302
+8132
+
+25796
+
+20937
+
+2039
+4989
+5932
+5434
+5088
+7185
+1271
+8359
+5489
+8646
+
+7796
+1233
+3529
+4118
+7093
+7090
+8757
+2283
+5562
+3789
+
+2296
+2105
+1978
+2981
+5682
+1627
+2285
+5654
+5596
+2022
+2733
+3078
+3176
+4158
+
+6294
+3789
+1863
+5121
+6122
+7309
+7063
+4233
+1717
+6755
+5505
+2713
+
+4988
+5133
+4933
+6407
+2897
+2682
+5328
+4268
+1518
+4631
+2736
+1432
+3812
+1031
+
+4553
+1109
+7214
+2744
+8389
+3180
+7464
+5584
+7689
+6452
+
+5645
+6207
+2497
+1114
+5747
+2620
+2621
+1866
+2334
+1324
+5879
+6322
+4954
+
+8723
+24316
+4375
+
+4051
+6866
+7417
+4650
+6035
+6580
+3881
+3041
+1443
+6659
+2951
+2387
+
+5606
+1862
+3300
+6106
+5944
+2306
+1935
+5717
+6204
+1882
+2455
+4790
+4534
+4144
+
+3278
+5536
+4686
+4331
+1750
+1742
+2103
+6754
+5417
+2242
+2374
+5133
+2315
+
+34403
+
+5574
+2129
+2846
+5790
+1428
+1220
+1523
+5768
+2226
+1442
+1139
+3295
+3831
+
+3231
+3998
+5904
+6878
+3082
+2159
+2806
+2388
+1878
+1393
+6929
+6812
+
+18094
+
+4972
+4575
+5522
+5582
+2776
+3971
+3595
+1959
+4161
+4550
+1987
+4519
+4551
+3546
+3562
+
+4913
+5328
+2726
+5349
+6670
+7650
+7799
+3818
+5536
+2765
+
+1674
+3454
+5921
+6170
+3474
+1401
+5993
+5098
+3269
+5671
+5385
+5418
+
+4381
+35451
+
+1970
+6227
+6781
+3622
+2921
+2360
+5673
+2344
+5503
+5006
+6866
+1804
+2559
+
+12473
+1374
+23850
+
+7943
+1442
+3091
+2907
+1538
+6027
+1389
+4851
+3301
+1324
+6017
+
+13712
+11949
+4399
+1093
+2546
+6876
+
+5429
+1453
+7989
+9605
+2344
+10505
+4563
+3537
+
+6061
+1428
+3435
+5752
+1097
+3313
+2318
+1656
+2206
+6922
+6612
+2805
+3123
+
+2613
+6493
+3283
+5206
+4118
+3058
+1377
+4453
+6195
+3371
+5520
+6197
+5121
+1622
+
+8199
+5761
+6985
+6058
+8277
+9247
+8937
+4739
+5107
+
+11764
+13344
+5462
+
+4453
+10616
+8770
+6014
+6991
+7898
+
+5873
+12987
+16138
+
+9294
+8381
+3175
+1945
+8195
+2851
+1780
+6140
+
+3655
+3450
+6771
+4950
+3491
+6883
+4408
+4505
+2513
+6768
+4868
+3883
+4458
+
+39217
+
+15599
+1459
+19930
+6992
+
+9392
+6380
+4470
+5228
+8009
+7680
+1815
+4365
+5529
+
+8677
+6381
+10150
+2299
+2071
+9364
+5633
+
+1778
+5304
+1883
+2215
+4288
+4214
+7602
+2987
+7011
+1652
+5977
+
+2093
+20240
+18383
+
+4600
+2704
+3915
+3853
+5659
+2905
+3480
+3546
+4647
+6062
+3613
+6095
+4079
+
+6352
+4362
+5767
+7708
+2318
+10738
+1956
+
+5581
+6478
+5624
+3850
+5025
+3754
+2559
+4730
+1299
+1187
+3771
+1432
+1590
+5108
+
+3412
+10022
+1478
+3654
+4938
+3611
+
+3455
+5118
+6647
+7160
+7244
+2902
+6305
+1204
+2124
+5595
+7040
+5145
+
+1502
+8426
+6808
+9175
+3902
+5516
+5310
+4122
+7357
+
+8679
+14080
+
+23992
+17036
+
+1880
+
+2799
+3910
+3661
+3680
+4159
+5746
+6249
+2614
+2012
+7433
+5092
+3067
+
+35016
+24321
+
+9575
+2970
+17157
+
+3129
+2954
+2520
+5998
+2854
+5823
+2469
+3786
+2683
+3300
+3360
+5413
+3959
+
+28905
+4100
+
+24304
+7180
+23566
+
+5990
+1740
+1955
+5498
+1754
+3458
+4856
+4499
+3560
+3275
+1443
+1815
+1511
+1106
+
+1466
+
+10351
+8066
+5699
+
+4995
+7451
+7189
+2348
+3600
+3320
+3351
+5857
+6388
+3787
+1923
+6228
+
+6125
+1302
+6779
+3279
+13428
+7624
+
+41865
+
+2353
+11924
+6498
+10636
+1592
+3990
+2269
+
+7281
+4294
+3083
+10444
+4489
+4468
+1400
+4482
+
+63998
+
+2373
+2091
+6067
+3372
+1996
+6542
+1423
+5041
+6251
+4682
+5574
+2506
+6784
+
+1243
+1014
+1653
+2960
+1459
+4820
+4623
+5541
+3455
+3260
+1161
+1395
+3963
+
+3299
+1686
+4068
+7455
+3737
+6857
+7771
+7383
+7769
+4641
+3105
+
+8109
+1367
+5553
+8315
+8042
+4244
+6974
+1062
+
+50228
+
+6657
+22682
+
+4093
+5296
+8752
+9532
+11488
+3792
+11225
+
+2753
+16207
+10646
+11950
+
+1505
+4569
+6688
+4674
+7154
+7342
+4675
+8434
+5637
+3789
+
+5625
+3177
+2820
+1075
+3657
+4862
+3879
+1954
+3185
+4563
+1413
+5323
+6048
+3166
+
+4933
+1874
+5953
+6528
+6915
+3449
+6867
+6892
+6105
+3012
+2055
+5516
+3026
+
+14676
+25751
+4615
+
+3163
+5888
+4144
+3845
+6817
+6989
+6211
+1620
+7624
+1390
+5321
+
+8348
+2441
+12492
+12656
+13889
+
+6433
+1032
+2005
+5844
+3864
+2370
+6664
+5540
+2943
+5135
+3375
+2236
+4305
+
+6269
+3979
+1844
+3799
+3947
+5858
+1338
+2761
+2285
+5192
+1358
+1810
+5009
+1346
+
+4183
+3118
+4232
+5655
+4391
+4210
+5644
+3865
+4049
+1951
+2839
+5212
+1862
+5991
+4452
+
+4299
+1037
+3491
+3002
+6062
+2026
+1007
+7398
+1697
+5797
+5922
+5352
+
+53946
+
+7483
+3663
+1134
+4279
+5315
+2756
+1280
+5807
+1892
+3701
+2848
+
+21603
+4098
+21937
+
+1914
+1812
+6990
+2754
+2459
+5984
+3895
+7411
+5240
+1022
+4323
+4382
+
+3803
+1698
+5774
+1680
+2122
+2865
+6470
+2921
+7619
+4584
+1788
+
+28678
+10385
+
+12207
+12265
+3932
+13284
+12672
+
+5559
+5610
+1230
+5547
+3945
+1566
+2589
+1948
+2313
+4243
+2472
+1343
+1317
+5152
+1953
+
+1082
+6063
+1974
+2054
+2931
+5433
+4410
+4584
+4896
+2825
+3945
+5849
+3615
+2464
+1560
+
+6494
+7717
+4697
+3012
+4515
+3802
+8621
+6041
+6939
+3059
+
+1747
+8291
+4058
+2884
+1775
+8465
+5889
+4807
+
+6263
+7346
+8014
+8081
+5361
+4950
+2721
+5656
+3858
+7486
+
+11877
+5145
+10149
+2148
+
+8389
+4492
+5074
+9457
+5132
+4355
+3254
+9607
+4059
+
+5858
+7062
+9260
+6672
+2291
+1448
+7436
+
+8943
+6577
+8042
+2056
+9801
+9060
+10243
+10758
+
+11606
+
+6340
+4468
+4225
+6861
+5648
+2951
+2556
+5794
+2657
+1450
+5888
+4363
+
+1294
+3826
+3132
+2798
+5133
+2118
+4319
+1681
+5402
+4255
+4831
+1300
+
+4233
+6221
+6336
+5287
+5566
+2796
+3047
+5486
+1849
+3572
+3709
+7014
+
+2418
+7218
+1153
+8036
+2015
+1385
+5385
+2775
+
+5788
+17132
+1734
+6843
+
+17843
+2755
+4097
+1314
+
+7448
+3025
+3255
+6379
+1817
+7363
+4086
+3106
+7192
+3632
+2748
+6634
+
+11495
+6431
+6756
+7335
+
+3090
+2890
+6300
+5939
+4045
+1781
+5080
+6123
+2589
+5990
+4438
+2903
+2789
+4761
+
+2633
+5069
+6129
+1870
+2148
+2688
+4932
+5756
+5281
+3209
+2040
+5708
+2292
+2027
+
+68293
+
+4087
+4630
+5781
+5165
+3022
+1847
+4922
+2792
+4629
+6178
+3427
+4536
+4802
+1733
+
+11367
+12689
+13239
+
+7698
+7879
+2401
+7045
+9018
+2767
+8286
+5754
+7154
+
+43194
+
+4845
+3694
+1107
+3687
+7597
+7787
+8056
+8010
+
+3598
+4505
+3676
+5174
+4271
+1290
+1116
+5257
+1343
+2660
+6227
+1303
+1217
+
+31264
+17846
+
+3026
+3533
+4579
+4017
+3465
+5489
+3720
+3146
+1755
+6197
+2181
+6449
+4893
+1766
+
+1225
+2725
+5173
+3401
+4172
+2673
+6005
+8950
+8838
+
+7416
+1467
+4741
+2043
+3032
+2290
+4182
+4493
+4860
+4543
+6791
+
+9989
+23051
+12756
+
+2995
+1859
+2029
+1520
+1287
+5281
+2299
+2794
+6913
+1477
+3639
+5475
+1198
+
+4513
+5732
+6462
+1327
+1149
+6276
+5925
+5654
+5283
+1177
+1802
+2093
+4928
+1355
+
+8874
+2550
+10268
+8362
+9158
+6929
+10674
+
+5052
+2678
+6754
+6411
+1197
+7463
+3835
+5308
+8160
+
+9428
+1308
+1957
+6146
+7962
+9350
+3699
+6982
+7111
+
+5388
+3451
+3865
+4881
+5709
+6812
+3177
+2124
+3329
+8718
+
+16156
+14022
+16031
+7972
+2381
+
+3696
+12103
+9136
+9793
+11491
+6030
+
+10542
+9283
+
+1040
+3593
+1510
+2450
+5138
+5137
+1935
+3159
+2562
+1604
+5280
+1282
+1059
+3784
+2287
+
+2464
+4363
+6262
+1136
+7072
+2328
+1517
+7229
+5730
+2456
+1681
+7213
+
+4983
+4935
+6580
+1118
+5291
+4664
+4778
+6818
+5331
+6254
+5525
+1214
+1659
+
+4535
+4602
+1741
+2803
+2795
+1195
+2041
+1147
+5091
+4244
+6115
+4765
+2074
+4711
+2985
+
+1487
+5322
+2729
+5893
+4743
+5788
+5701
+5954
+1570
+2214
+7415
+2549
+
+7483
+12474
+7468
+5340
+
+1699
+1294
+4841
+3882
+1746
+5642
+5753
+4051
+2750
+4079
+5881
+4307
+2535
+
+36712
+25729
+
+1493
+9804
+6491
+3737
+5900
+8810
+2677
+
+32912
+35589
+
+15457
+17689
+15413
+
+9642
+12851
+7416
+5456
+
+10946
+9357
+
+34589
+
+11079
+18789
+
+1029
+13280
+1556
+6080
+14840
+
+2352
+7024
+1303
+
+6432
+4312
+3800
+1713
+4580
+2574
+6955
+6129
+1054
+4104
+4150
+3146
+1777
+
+8253
+6799
+1492
+8292
+6260
+4014
+7500
+3738
+1349
+7391
+
+9308
+8918
+4943
+1408
+6212
+7375
+8604
+6907
+
+3994
+10181
+7867
+4339
+8321
+3496
+6332
+8291
+
+5058
+6311
+8770
+10517
+8510
+1807
+10295
+2060
+
+11864
+12981
+10287
+10881
+
+17316
+9524
+16372
+
+4423
+5322
+4954
+11336
+8543
+8031
+
+1576
+9103
+8531
+11398
+4900
+1621
+
+5162
+1057
+12960
+16173
+8403
+
+2436
+4121
+5143
+3486
+5542
+2598
+6157
+5536
+6005
+1953
+2645
+1790
+
+1211
+5673
+7658
+6331
+6354
+5775
+2821
+5983
+5338
+6135
+7436
+
+3891
+4230
+6457
+5382
+8435
+8484
+6872
+1750
+6127
+
+8997
+7290
+6789
+13725
+3285
+13318
+
+7602
+6264
+6286
+5290
+4403
+3829
+5456
+2632
+2556
+5225
+1189
+
+9054
+11332
+1990
+6952
+3916
+10222
+1268
+
+3599
+4346
+2535
+2775
+1140
+5020
+1050
+1119
+1373
+6191
+6996
+7381
+
+15115
+5092
+
+5201
+4358
+6447
+3800
+5425
+2062
+6314
+3184
+5203
+5626
+6024
+1408
+2543
+5400
+
+4602
+8699
+3729
+3608
+3425
+6182
+1210
+4268
+8660
+
+5167
+3056
+2162
+5024
+5586
+7900
+4688
+2166
+7268
+2577
+
+2871
+4288
+3167
+7065
+7042
+6419
+2788
+6489
+1584
+3162
+5541
+
+8083
+9590
+8100
+2032
+6749
+4610
+4924
+2628
+2110
+
+2103
+5752
+2489
+2898
+5077
+4422
+1491
+5660
+2916
+6302
+5032
+1998
+5007
+3953
+
+7090
+2458
+15291
+7943
+4677
+
+3938
+6524
+3715
+1700
+3637
+3124
+6519
+5349
+1768
+5571
+1725
+1038
+4694
+
+19691
+
+6409
+2963
+4723
+3601
+6292
+1298
+4875
+4930
+5750
+6376
+4620
+5066
+6434
+5973
+
+7194
+10283
+4302
+6346
+6744
+4990
+9302
+3257
+
+5500
+4929
+4011
+3026
+1247
+5017
+2477
+2815
+3206
+3386
+5563
+3704
+2510
+5969
+
+3588
+4251
+1214
+4568
+4747
+4950
+4670
+3810
+4616
+1599
+5738
+2651
+5971
+
+7252
+4958
+7736
+7267
+1115
+1936
+3503
+8340
+3581
+
+19911
+9923
+5937
+11827
+
+16111
+1929
+1567
+2584
+
+4411
+6070
+5904
+5425
+1684
+2343
+1569
+4476
+3774
+5901
+2230
+4560
+4894
+3532
+3679
+
+19875
+3275
+1303
+
+1111
+2927
+1812
+2341
+5611
+1602
+1876
+2430
+2810
+5400
+1909
+1341
+2605
+1860
+
+1387
+4755
+1827
+3107
+5734
+3912
+7449
+5100
+
+12046
+4731
+10977
+8509
+15801
+
+9891
+19111
+15136
+6515
+
+5839
+2497
+4195
+2027
+5340
+6432
+7256
+2774
+4934
+6521
+4715
+
+5351
+6545
+5531
+10516
+10280
+10482
+6863
+
+54895
+
+3515
+3873
+1035
+9079
+10474
+8983
+6396
+
+1564
+5340
+2239
+2539
+2464
+1083
+3777
+2981
+4247
+4471
+1687
+1693
+3053
+5160
+3384
+
+4827
+3949
+3489
+5192
+3342
+4695
+4461
+6165
+1891
+5060
+5961
+1543
+2959
+6262
+
+18480
+2939
+10591
+
+3496
+14216
+4695
+
+2178
+5400
+5298
+6806
+2108
+3793
+5762
+4787
+3032
+3819
+1834
+2905
+5070
+
+8889
+1553
+11822
+11140
+1604
+11187
+3094
+
+3950
+3808
+6643
+1323
+4637
+1465
+5416
+6504
+5400
+6691
+6056
+4358
+5209
+
+5821
+4259
+2389
+7085
+6813
+2094
+2901
+7089
+6160
+6301
+4980
+4239
+
+5431
+5016
+9948
+1158
+3133
+4783
+
+2650
+6541
+6230
+6789
+6499
+2613
+2358
+3241
+3777
+5018
+4522
+4057
+5587
+
+3428
+5879
+2228
+2436
+5905
+4346
+6072
+3843
+2432
+1342
+1339
+4727
+6823
+
+15873
+19800
+13068
+
+1866
+12061
+11047
+15922
+
+19221
+9883
+5634
+
+1072
+13511
+18294
+
+64548
+
+5313
+13972
+2829
+16260
+
+2945
+2469
+1966
+2968
+4563
+3434
+3095
+5102
+5678
+2491
+3625
+5366
+2994
+
+4920
+3123
+4726
+5313
+3148
+3510
+5397
+2081
+5252
+1949
+4929
+6472
+5292
+
+6040
+3246
+6110
+4395
+2589
+6227
+4105
+3881
+5992
+4294
+
+6363
+3364
+7225
+7105
+1912
+7460
+1929
+2680
+6231
+3061
+7856
+
+5043
+1059
+4183
+4697
+3634
+3572
+1636
+2635
+2733
+5600
+4000
+6300
+1367
+
+2560
+1074
+1473
+6555
+6887
+5044
+6544
+5101
+3041
+3100
+2924
+5388
+6025
+
+8736
+
+2235
+19236
+12524
+
+3968
+2552
+11328
+10347
+5092
+4822
+
+3051
+6914
+7082
+4322
+4701
+5313
+1889
+5562
+7529
+7673
+3085
+
+1518
+10390
+1706
+5313
+7800
+8948
+
+6670
+6555
+1881
+6658
+5687
+1338
+1547
+6876
+4657
+2061
+3742
+2958
+6836
+
+9112
+2305
+9461
+10472
+8796
+8858
+5303
+3259
+
+4281
+1131
+2165
+10304
+9662
+9627
+10574
+
+8949
+12010
+13033
+5232
+3433
+8212
+
+8478
+9908
+9043
+4869
+11600
+12466
+
+2444
+8308
+9337
+3539
+6796
+7175
+4099
+9456
+6075
+
+2503
+1993
+3162
+9282
+3378
+
+4406
+1417
+10195
+6361
+3735
+10131
+4131
+2617
+
+28770
+
+11378
+13601
+14324
+
+9222
+1090
+2246
+3436
+4692
+2317
+6684
+5515
+3608
+
+8442
+8781
+6388
+6511
+5283
+3505
+7294
+3703
+2752
+2541
+
+2160
+5683
+8706
+7818
+1283
+3659
+1465
+7255
+2556
+7496
+
+4351
+2585
+3091
+6105
+2960
+6796
+6028
+1223
+3791
+2543
+2221
+1342
+1228
+
+2678
+5749
+8275
+6535
+4567
+2629
+5222
+8406
+3528
+7274
+
+11561
+8495
+11196
+6072
+4726
+6342
+4271
+
+3035
+4638
+6716
+4871
+5516
+2387
+1828
+3695
+5199
+4602
+2372
+5376
+6229
+
+5904
+7241
+1735
+4137
+5267
+7228
+6840
+2122
+5707
+3875
+5913
+6192
+
+3372
+6579
+6596
+4463
+2498
+3147
+1505
+1879
+5437
+6317
+2129
+3425
+1569
+
+7582
+4017
+9553
+5929
+
+2721
+1439
+5723
+1790
+10437
+10251
+6175
+
+3037
+2342
+
+4409
+7389
+6107
+1920
+5975
+3859
+5681
+7411
+2409
+5083
+2678
+3001
+
+6304
+6453
+8158
+1532
+2956
+1314
+4902
+5140
+
+1964
+6243
+8353
+3374
+7134
+1951
+2425
+6063
+2765
+
+7148
+12369
+7870
+3802
+10446
+10955
+
+1377
+2579
+4886
+4537
+5929
+2946
+3894
+5212
+3825
+1003
+1884
+5017
+4114
+1895
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_10.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_10.tst.data
new file mode 100644
index 0000000..bbc6bcd
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_10.tst.data
@@ -0,0 +1,140 @@
+addx 1
+addx 4
+addx 21
+addx -20
+addx 4
+noop
+noop
+addx 5
+addx 3
+noop
+addx 2
+addx 1
+noop
+noop
+addx 4
+noop
+noop
+noop
+addx 3
+addx 5
+addx 2
+addx 1
+noop
+addx -37
+addx 22
+addx -4
+addx -14
+addx 2
+addx 5
+addx 3
+addx -2
+addx 2
+addx 5
+addx 2
+addx -15
+addx 32
+addx -14
+addx 5
+addx 2
+addx 3
+noop
+addx -13
+addx -2
+addx 18
+addx -36
+noop
+addx 11
+addx -7
+noop
+noop
+addx 6
+addx 22
+addx -21
+addx 3
+addx 2
+addx 4
+noop
+noop
+noop
+addx 5
+addx -16
+addx 17
+addx 2
+addx 5
+addx -11
+addx 15
+addx -15
+addx -24
+noop
+noop
+addx 7
+addx 2
+addx -6
+addx 9
+noop
+addx 5
+noop
+addx -3
+addx 4
+addx 2
+noop
+noop
+addx 7
+noop
+noop
+noop
+addx 5
+addx -28
+addx 29
+noop
+addx 3
+addx -7
+addx -29
+noop
+addx 7
+addx -2
+addx 2
+addx 5
+addx 2
+addx -3
+addx 4
+addx 5
+addx 2
+addx 8
+addx -30
+addx 25
+addx 7
+noop
+noop
+addx 3
+addx -2
+addx 2
+addx -10
+addx -24
+addx 2
+noop
+noop
+addx 2
+noop
+addx 3
+addx 2
+noop
+addx 3
+addx 2
+addx 5
+addx 2
+noop
+addx 1
+noop
+addx 2
+addx 8
+noop
+noop
+addx -1
+addx -9
+addx 14
+noop
+addx 1
+noop
+noop
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_11.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_11.tst.data
new file mode 100644
index 0000000..dd12745
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_11.tst.data
@@ -0,0 +1,55 @@
+Monkey 0:
+ Starting items: 61
+ Operation: new = old * 11
+ Test: divisible by 5
+ If true: throw to monkey 7
+ If false: throw to monkey 4
+
+Monkey 1:
+ Starting items: 76, 92, 53, 93, 79, 86, 81
+ Operation: new = old + 4
+ Test: divisible by 2
+ If true: throw to monkey 2
+ If false: throw to monkey 6
+
+Monkey 2:
+ Starting items: 91, 99
+ Operation: new = old * 19
+ Test: divisible by 13
+ If true: throw to monkey 5
+ If false: throw to monkey 0
+
+Monkey 3:
+ Starting items: 58, 67, 66
+ Operation: new = old * old
+ Test: divisible by 7
+ If true: throw to monkey 6
+ If false: throw to monkey 1
+
+Monkey 4:
+ Starting items: 94, 54, 62, 73
+ Operation: new = old + 1
+ Test: divisible by 19
+ If true: throw to monkey 3
+ If false: throw to monkey 7
+
+Monkey 5:
+ Starting items: 59, 95, 51, 58, 58
+ Operation: new = old + 3
+ Test: divisible by 11
+ If true: throw to monkey 0
+ If false: throw to monkey 4
+
+Monkey 6:
+ Starting items: 87, 69, 92, 56, 91, 93, 88, 73
+ Operation: new = old + 8
+ Test: divisible by 3
+ If true: throw to monkey 5
+ If false: throw to monkey 2
+
+Monkey 7:
+ Starting items: 71, 57, 86, 67, 96, 95
+ Operation: new = old + 7
+ Test: divisible by 17
+ If true: throw to monkey 3
+ If false: throw to monkey 1
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_12.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_12.tst.data
new file mode 100644
index 0000000..2e02b7c
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_12.tst.data
@@ -0,0 +1,41 @@
+abcccccaaaccccaacaaccaaaaaaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccaaaaaa
+abcccccaaaacccaaaaaccaaaaaaaaaaaaaaaaaaaaacccccccccccccccccccccccccccccccccccaaaa
+abcccccaaaaccaaaaaccccaaaccaaaaaacccacaaaaccccccccccccccccaaaccccccccccccccccaaaa
+abcccccaaacccaaaaaaccccccccaaaaaacccccaaccccccccccccccccccaaaccccccccccccccccaaaa
+abcccccccccccccaaaacccccccaaaaaaaaccccccccccccccccccccccccaaacccccccccccccccaaaaa
+abccccccaacccccaacccccccccaaaaaaaaccccccccccccccccccccccccaaaaccaaacccccccccccccc
+abccccccaacccccccccccccccaaacccaaaacccaacaaccccccccccacaccaaacaajaacccccccccccccc
+abcccaaaaaaaaccccacccccccaaaccccaaacccaaaaaccccccccccaaaaaaajjjjkkkccccccaacccccc
+abcccaaaaaaaacaaaacccccccccccccccccccaaaaaccccccccciiiijjjjjjjjjkkkkcaaaaaacccccc
+abcccccaaaacccaaaaaacccccccccccccccccaaaaaacccccciiiiiijjjjjjjrrrkkkkaaaaaaaacccc
+abcccccaaaaacccaaaacccccccccaacccccccccaaaaccccciiiiiiiijjjjrrrrrsskkaaaaaaaacccc
+abccccaaaaaaccaaaaacccccccccaaaacccccccaccccccciiiiqqqqrrrrrrrrrssskkkaaaaaaacccc
+abaaccaaccaaccaacaacccccccaaaaaaccccccccccccccciiiqqqqqrrrrrrruussskkkaaaaacccccc
+abaaaacccccccccccccccccccccaaaaccccccccaaaccccciiqqqqqttrrrruuuuussskkaaaaacccccc
+abaaaacccccccccccccccccccccaaaaaccccccccaaaaccchiqqqtttttuuuuuuuussskkcccaacccccc
+abaaacccccaaaccacccccccccccaacaaccccccaaaaaaccchhqqqtttttuuuuxxuussslllcccccccccc
+abaaaaccccaaaaaacaaccccccaccccccccccccaaaaacccchhqqqttxxxxuuxxyyusssllllccccccccc
+abacaaccccaaaaaacaaaaaaaaaaccccccccccccaaaaaccchhqqqttxxxxxxxxyuusssslllccccccccc
+abcccccccaaaaaaacaaaaaaaaaccccaacccccccaaccaccchhhqqtttxxxxxxyyvvvsssslllcccccccc
+abcccccccaaaaaaaaaaaaaaaaaccccaaaaccccccccccccchhhppqttxxxxxyyyvvvvsqqqlllccccccc
+SbcccaaccaaaaaaaaaaaaaaaaaacaaaaaacccccccccccchhhhpptttxxxEzzyyyyvvvqqqqlllcccccc
+abcccaaccccaaacaaaaaaaaaaaaacaaaaccccccccccccchhhppptttxxxyyyyyyyyvvvqqqlllcccccc
+abaaaaaaaacaaacaaaaaaaaaaaaacaaaaacaaccccccccchhpppsssxxyyyyyyyyvvvvvqqqlllcccccc
+abaaaaaaaaccccccccaaacaaaccccaacaaaaaccccccaagggpppsswwwwwwyyyvvvvvvqqqmmmmcccccc
+abccaaaaccccaacaacaaacaaacccccccccaaacaaaccaagggppssswwwwwwyyywvvqqqqqqmmmccccccc
+abcaaaaaccccaaaaacaaccaaccaaaccaaaaaaaaaaaaaagggppsssswwwswwyywvrqqqqmmmmcccccccc
+abcaaaaaaccaaaaacccccccccaaaaccaaaaaaaaaacaaagggpppssssssswwwwwwrrqmmmmmccccccccc
+abcaacaaaccaaaaaaccccccccaaaaccccaaaaaacccaaagggppppssssssrwwwwrrrmmmmmdccccccccc
+abccccaaaccaaaaaaccccccccaaaaccccaaaaaacccaacggggpooooooosrrwwwrrnmmmddddcacccccc
+abccccaaaaaaaacccccccccccccccccccaaaaaaaccccccggggoooooooorrrrrrrnnmdddddaaaacccc
+abcccccaaaaaaccccccccccccccccccccaaacaaacccccccggggfffooooorrrrrrnnddddaaaaaacccc
+abccaaaaaaaacccccccccccccccccccccaccccccccccccccggffffffooonrrrrnnndddaaaaaaacccc
+abccaaaaaaaaaccccaacccccccccccccccccccccccccccccccfffffffoonnnnnnndddcaaaaacccccc
+abccaaaaaaaaaacccaaccccccccccccccaccccccccccccccccccccffffnnnnnnnedddaaaaaacccccc
+abcccccaaaaaaaaaaaacccccccaccccaaacccccccccccccccccccccfffeennnneeedcccccaacccccc
+abcccccaaacccaaaaaaaaccccaaacccaaaccacccccccccccccccccccafeeeeeeeeecccccccccccccc
+abcccccaaccccaaaaaaaaacccaaaaaaaaaaaaccccccaaaccccccccccaaeeeeeeeeeccccccccccccca
+abaccccccccccaaaaaaaaacccaaaaaaaaaaacccccccaaaaacccccccaaaaceeeeecccccccccccaccca
+abaccccccccccaaaaaaaaccaaaaaaaaaaaaaacccccaaaaaccccccccaaaccccaaacccccccccccaaaaa
+abaccccccccccaaaaaaacccaaaaaaaaaaaaaacccccaaaaacccccccccccccccccccccccccccccaaaaa
+abaccccccccccaccaaaacccaaaaaaaaaaaaaaccccccaaaaaccccccccccccccccccccccccccccaaaaa
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_13.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_13.tst.data
new file mode 100644
index 0000000..3a9b06a
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_13.tst.data
@@ -0,0 +1,449 @@
+[[[],[],8,3],[10]]
+[[[[7],[0,4,6,1]],[[2,1,5,3,6],[]],[3,[10,9,1],2,[10,6,10],7],2,7],[5,[3],7,10,[8,[4,7,1,7,8],[],1,[8,6]]],[5,7,[[5,5,7,2,10],[8,7,10,4,7],[9,4,9,9,1]],[[8],8,5,[7,3,4,6,1],1]]]
+
+[[[5,5,[0,7,6,6,0]],[],0,9],[[[0,7,3,10,5],5],7],[10,[],1,[],5]]
+[[4],[2,[10,[5,7,8,7,0]],[4,8,[1,2],[5]],3,9],[[[3,3,3,5,4],5,[],7,[7,3,10,4,0]],9,[3]],[2,0,6,[9,5],8],[[4,[9,8,6],[],5],3,[7,7,[3,3,6],7,[9,4,0,10,6]],10,[]]]
+
+[[2],[3,[[],[1]],[],[0,[10,7]]],[[]],[7,[6],8,[9,0],[2]]]
+[[[[],7,8]]]
+
+[[],[[],8,5],[4,9,[[8,4,7,6,9],[4]],3,[[0,3,4,3,1]]],[3,5,[[0,6,4],5,[1,5,6],6,[8,7,1,7]]],[1]]
+[[8]]
+
+[[],[[3,3,[7,0,9],1],3],[[[10,7,6],8,0,0],10],[[3,4],[0,10,[1,6,1,5,1],[]]],[[[10,10],[9,7,3]],2]]
+[[10,0,4,[1,1,[4,10,5,7],10]],[[],[3,5,[5,5],[],[1,0,4,9]],0],[[]]]
+
+[[[[10,7,1],0],[7,[4,9,3],[0],[]],[],8],[[[6,3,2],[4,6,0]],[4,2,[0,2]]],[[],1,6,2,[2,[10,10,4,9],0,[7,1,0,7,6]]],[9,3]]
+[[[[4,4,2,2],[5,0]]],[5]]
+
+[[],[[5,6,[],[7]]],[7]]
+[[10,6,9],[[9,4],[5,4,4,[2,2,8],5],10,[[]],9],[]]
+
+[[[],[2,6,[],[4],[0,5,6,7,4]],4,9,3],[],[[[6],7,9],[],9],[[[1,5,0,4],4,[2,9,3,3,7]],1],[10,2,2,[[0,6,8,4],[9,3,8,5],3,5,3]]]
+[[],[3],[[[],[],[10,1,2],[],[1]],0,9,[]]]
+
+[[0,[6,[10,0,0,4],[6,6]],[],7,[8,[2,6,8,6,10],5,7,0]]]
+[[[6,[7,6,9]],8,[4,1,[4,7,2]]],[[],8],[[2,[0],0,8],1,8,[6,4,1,[3,3],6],[[9,8,4,1],[5,7],9]],[[[3],5],2,5],[9,[[8],3]]]
+
+[[],[2,[4,[6,2,10,7,7],[]]],[7,[7,[1,7]],[[9,2,8,10,8]]],[5,[[0,10,10]],[1],1,[[],10,0,[]]]]
+[[[[1],[7,10]],5,9,[[],[1,8,7],0,[2],6]],[],[[7,[],6,[],6],[[1],8,0],[[3,0],[0,7],[2,0,3,6],[9,6,0]],[[0,1,7]]],[0,[7,[1],1],4,10]]
+
+[[7,7,[[],[7]],1,[0,10]],[10,4,8,6,5],[7],[[[2,4,8,7]],[[10,1,6],[6],[5,5,6,8],7,[0,5,2,3,4]]]]
+[[[8],[[4,7],[8,10,0,10,8]],0,8,3],[[9],[8],[[1,2],5,0,[7,0],[1,3,10,8]],[0,4,[3,10,0]],[10,[],[]]]]
+
+[[],[8,[9],9,3,7]]
+[[6,8,[5,4,[],[8],3]],[],[8,[4,[9,3,7,1],[7,1,9,5,7],[7,4,5],2],[9]]]
+
+[[[[0,7],1,2,[7],10]],[6,7,6,[[3,7,2,7],[10]],[2,[9,9,5,7],[0,4,4],[5,8,2]]],[2,2,8,2],[[]]]
+[[],[10,[[0,10,1],7,0,9],6],[[4,6,[1,7,9],7,[5,3]]],[2,[[10,10],[8,0,3,8,2],[6]],2,7],[[6,3,4,1,[4,7,7,2]],0,[[1,3]],[[0,9,3,6],0,[5,6,6,0],10]]]
+
+[[[3],0],[1,1,4]]
+[[6,[8,[2,5,2],[6],2],[1,8]],[3,3,7,[[2,10,1,5],[]],1],[[9,[8,6,7,3],[9,9,6]]],[[[],[9],9,6,2],1,[8,10,2],[],3]]
+
+[[[[1],[3],7,[8,0,7],6],3],[],[8]]
+[[6,7,[4,[8,2,1,5],8]]]
+
+[[8,[[],9,[4,6]]],[9,[10,[8,7,4,1,2],[3,3,2,10,7]]],[4,[[4,5,2],8,3,[3,4,10,5]],10,10,[[1,10,4,10]]],[[8],[[5],[6,1,0],2,10,2],3]]
+[[[10,5],[[0],[7,9,3],[2,7,5,2]],[7,10,[8],6],[[6,6,4,5,9],[3],4]]]
+
+[[3,6],[1,[],3,9,[]]]
+[[9,[],6,[],[[3,8],[6],7]],[[],[0,9,5,[9,1,9]]],[[9,10,[8,3,7]]]]
+
+[[],[1]]
+[[0,[],[5,[],5],[[]],2],[5,7,9],[1]]
+
+[[[[9,9,2,9],[0,6,4,5,2],[8,2,2]],[0,7,4]],[5,9,[0]],[[10,[9,5,10,4],5,0]]]
+[[[[9,6]],[],[[9],10,7,4,[9,0]],5]]
+
+[[[[7,2,1,6,6],9,[1,7,8],8],[5,[3,8,8]],[[5,0],[2,1],[3,0],5,[7,7]],[[],[4,6],[4,6,5,4]]]]
+[[7,7]]
+
+[[9,1,[[5,10,6,7],[4,6,5,10,1]],[[4,7,9],5,[6]]],[4,[2,[2,2,5,3]]],[[3,[4]],[],2]]
+[[7,[0,8,0,[10,8,10]],[1],5]]
+
+[[3,6,6,5],[8,[[4,5,6],5,[8,3,0,1],[10,5,2],[5,0,7]],[],4,[[0],[]]],[2,[4,[6,5,6,9,0],[],[3,0,2,9,8],[10,4,9,5,1]],7],[[[7,3,5,2,7],[2,2,5,6,9],[6],0],[8,8,7,[2,1,3,9]]]]
+[[[8,7,[7,4,8]],[]],[],[],[],[2,[[1,8,5,0]]]]
+
+[3,3,5,9]
+[3,3,5,9,6]
+
+[[],[[[],[3,4,0],9,[],1],0,2,[0,[5,2,6,8],[9,4,8,8]]],[[[10,6],[5,6,4,3],[],5,[4]]],[0],[]]
+[[[5,9,7],2,[[2,0,7],[2]],10],[[[9,6],[3],4,[],[9]],0,[[9,5]]],[1,[[10,4,6,9],5,3],1,[10,[9,7,0],[8]]],[[0,[9,7,5,10,4]],0,0,2],[[[]],7,2]]
+
+[[[1,6,2,5,4],7,[8,8,9,9,[6]],[[],7,[],[10]]],[[[1,0,0,5,5],8,5],[[],1]]]
+[[5],[],[[[7,4,8],9,8],2],[10]]
+
+[[10,1],[[[0]],[]],[[5,[9,1,0],[],8,4],1]]
+[[[[10,0],6,[8,6,7],1,2]],[[[7,3,8],[],[],3,[4,0,6]],[10,[6],9],[[9,1],[],[5,1,3],[],2]],[[1,[2,8,6,6],[6,9],[3,8],[4,10,8]]]]
+
+[[[4,10,8,6],5],[8,[[3,4],[2,0,1,10,9],6,[4,10,10,8]],[9,[2,9,7]],[7,[0,9,6,1,0],6,5]],[]]
+[[3,[[1,10,1,1,8],8,[7,6,0],[6,10,5,3],[2,3,2,2,6]]],[]]
+
+[[[],[[1,6,3,8,9],[7,0,2,4,3],[4,5,3,6],3,[2,2,10,9,0]],3]]
+[[],[[[8,8,10],[10,2,7,8],[1,0,7,4],[2,8,8,2],9],8,10,10,1],[[[3,2,6],[0,2,9,9,10]],[6,[],4,0,[5,4]],[[4,1],0,[],3,5],7,2],[]]
+
+[[[0,[7,1,6,4],[2,3,4]],[],[]],[[1,[8,4,2,9],8,9],6,[8,10]],[5,[[3,10]],5,[]]]
+[[0,10,[],1],[],[4,8],[],[]]
+
+[[[5,3,[0,10,1,1],[],[]]],[6,8,[]],[4,2,[2,0,[1],1]],[],[[[4,8,0],[0,7,9,8,6]],[[0,0],[9,10,3]],[[2,4,2],0,2,10],6,[5,[4],[4,2],[2,4,4,0,10]]]]
+[[[[1,9],[10,2,9,2,3],[8,7,4,8,4]],2,[7],[[0,1,5,2],5,5,10,10]],[[1,10,4]],[5,[],[[3,1,3,6],[7,1,9,1],[0,3,8],6,3]]]
+
+[[2,[]],[[[9,0],[3,9,6,10,9],3,3,5]]]
+[[[0,1,[3,9],9]],[[7,[1,10,3,3,3],2,5],2,8],[10,10,[[0,3,8,0],10,[2,4,0,4],3],[[2,6,4,3,1],4,[8,9],[]],[[],[1,5]]]]
+
+[[[],9]]
+[[],[0,5],[[4,8,[10],3,[8,9,4,4,4]]]]
+
+[[[6,[3,1,1,4]]],[0,[9,[9],6],[[],9,[],0,[6]]],[8,[0,9],[2,10],9],[[8,[1,10],[9,0],[6],9],[4,[],[10,10]],[[4,2,8,8,10]]],[[7,[4],[3,8,0,3,0]],1,[8,[2,8,5,2],[0]],[10,[2,0,2,4,6],2],[1]]]
+[[[7,[],5,[8,8,10]],4,[1]],[[7,10,0],3,[7,[3,10],[3,8,5,0,7]]],[6,[[2,5],8,10,[2,8,5,1],[4,7,2,4,0]],2]]
+
+[[4,0,10,1,[[1,6],2,9,10]],[[[3],[3,0,8,9,7],[5,6]],[[4,2,10,8],[1,9,10,6],6],6,[[5],4,[],[],1]]]
+[[4,[],[8,3],9],[[],[0,8,[6,9,6],[10,6]],4]]
+
+[[5,9],[1,5,6]]
+[[3,[8,[0,5,7,4,2],[4,4],[7,10,3,1]],0,4],[[7,[0,8,6]],[[3],[7,9],[],[3,6,4]],2,4]]
+
+[[10,[]]]
+[[],[7,[[0],[10,4,0,1]],3,[[7,0],[1,3],8,[6,0,3,1],1],[10,5,10,9,[]]],[3,6,4,5,3]]
+
+[[],[[[2,8,1,9,8],[7,0,1,10],[9,0,4,7,6],5],4,[]],[]]
+[[0,5,5],[2],[[]],[7,[[1,0],[4,9],5]]]
+
+[[10,5],[],[4,[],3,0],[3,3,9,[]],[]]
+[[],[[[8],[1],7],4,2,[1]],[1,10,5,[2,3]],[[8],[[5,6,6,3,0],[2,1]],3],[2,7,[10,[],[0]]]]
+
+[[[3,5,[5],[8,8,3,7],9]],[],[0,[],0,3,7],[1]]
+[[2],[[[9,9],[0,7],8,[]],5]]
+
+[[4,8,6],[[5,10],[[2],8,[],4],[[10,7,6,5,10],[3,8,7],[3,1,0,2],[8,8,7,1,5],8]],[6,8,0,[[8],4,[1,0,0],2],[[2,7,6,10,1]]],[1,[0,5]],[2,[],[],4,[[4,5,9],[5],4,[1,1,9]]]]
+[[[4,8,4,[5,0,8],10],0,[[10,2]],4,0],[[5],4,5,[[2],[5,6],[1,2],5,6]],[[[3,5,2,8],[7]],[3,[6],[1,4,6,5],[3,0,6,8,2]],9,2,7]]
+
+[[],[],[7,2],[[]]]
+[[6,[[8,6,4,9,0]]],[[5,[9,6,2,4],[],2],5,7,[[1],10,[0],[8,5,4]]]]
+
+[[],[[[7,8,4,9]],[2,[10,5]]]]
+[[0,2,2],[[[8,6,0,9],[],6,8,[6,1,5]],4,4]]
+
+[[7,7,[4,[2,7,6,8,4],[5,9],8,[6]],[1,1,0,2],1]]
+[[[6,1],[],[]],[[5,9,[0]],[[2,7,6],4,[5,10,1,5],[],7]],[[2,[9,0,9,10]]],[6]]
+
+[[3,[3,3,6,[8,0],[6,4]],2,0,[[5,0,4,1],1,[0,7,6,6,7]]]]
+[[],[5]]
+
+[[[[1,10,1,5],[2,1,0,4,10],[4]],[[0,6,3],[4,1,6],9,7],[[7],[5,6,8],5,4,[10]],1,[0,[9,4],9]]]
+[[],[3,[],5],[]]
+
+[[],[[],[3,5,0,7],[1],2,10],[3,[],0,[[9,0],[0,0,2,5,9],[1,6,2,6]]]]
+[[5,[7,7,[1]],[[],3,[2,8,7],[3,9,6]]],[0,[[7,10,1,3,8],5,[5,4,3,1,9],[2]],2,[[5,10]]]]
+
+[[[[10,3,8],8,3,2,[7]],2,[[5,5,2,4],7],6],[7,0,[6,[4,9,9,5],[3,1,6,2,6],5],[1,4,2,9],[8,8,[10,4,10,9],[3],[2]]],[]]
+[[],[[4,6,[7,6]],[],[]],[[[],0,2,[7,4,0,9],[4]],[],0],[]]
+
+[[5,6,[10,[8,10],[],10,[10,0]],[1,[8,4,6,2]]],[],[[[8,10,10,1]],[],[4,[10,9,7],10]],[[],[[1,10,4,0],[]],[6,9,[4,2,4],7,0],[7,[4],[8,0,7,8,4],[3,5,5,3]]]]
+[[[],[[10,0,3,2]],7]]
+
+[[[[],1,[8,5,9]],2,[[1],[9,3,1,2,2],5,2,[]],9,[3,[],[2,1,7],8,[0,1]]],[[[1,6,1,6,5],[2,10,2,1,7],[0,6,0,4,2]],[],3],[8,10],[[[10,2,7],2,7,[]],5],[[6,1],[8,[],[3],[4]],6,8]]
+[[[],10,6,7,[4,9,[9],6]],[[]],[[],[6],8,0],[[[10],[8,8,3,8],8],[7,[]],[]]]
+
+[[[[10,0,8,1],[7,6,6],[6,9,9,0,10],[7,4,3]],[[9,10,3,4]]],[[1,[0,3]]],[5,1,2,[9,[],[0,4,10,10]],9],[[9]],[7,6,8,0]]
+[[[[4],3,2,[]],[9,[],4,6,[5,1]],2,[]],[[6,[6,10],[],[],[6,6,10]],7,[5,7],[[9],4,[6,10,0,3],[]]],[[2,[1,8]],3,[9,[0,6,10]],[],3]]
+
+[[7],[7,[[7,8],[0,7,1,4]]],[10],[10]]
+[[],[],[[[9,3,4,2],[4,5],1,[8,0,7,8,4]],6]]
+
+[[[4,[],[0,0,3,6],2],9,[],7,0],[[],9,[],[],[0,0,1,1,[5,5]]],[3,10,[8],2,[5,[],5,[2,3],5]],[[[10,4,9],[10,9,10,0],[4,7],[10,2]],3,[0,2],10,1]]
+[[[],6,[],[2,5]],[[[7],[6,6],0,5],[4,4,[8],2,[0]],8,[4],1],[],[8,1,9,[10,[9,7,2,0]],[]],[10]]
+
+[[8,[],2],[[[3,9,5,9,2],[2,3,10,6]],[5,[6,5,10,1],[7,9],[2,10,3,7,10],[4,0,9]],9,0],[1,[[7,6,1,4]],10,9],[],[[[3,8,7,7,6],[2,9,4,5],[10,1,5]],3,[6,8]]]
+[[5]]
+
+[[8,0,3],[[[],[2,5,7],3,7,[5,10]],[8,5],0],[7,[[3],[9],0,9],[],[[],8]]]
+[[8,[4,[2,6],2]],[],[[[5,3,7,8,6],[2,9],2,[],[9,4,8]],5],[9,[[7,10,3,10,1]],10,9,0],[[3,7,[0,5],3,3],0]]
+
+[[],[],[1]]
+[[[2,[9,8,0,1,7]],[9,10]],[10,[[],[9,5],10],7,2,1]]
+
+[[4,[7,8,7,[5,5,1,1],0]],[[1,[9],[0,3,0,8],[5,2],1],1],[[[4,5,3],[3,10,3]],5,5,[[8,0]]],[[[],5,[0],3,7]],[[2,[5,4,1,3],[0,7,4,10,2],1,7]]]
+[[0,[[4,0,8,0]],[[2,2,9,4,2],[],[5,4,3,1],6]],[],[8,8,10,10,3],[[2]],[[9,4,10]]]
+
+[[5,[2,0],10],[9,7,[[],8,[8,1,2]]],[[],[[5,10,7,4],[3,1],[7]],7],[7,8,10,2],[[],[]]]
+[[[7,2],10,2]]
+
+[[1],[[5,2],[[10,3,3,8,7],[],2,5]],[],[[[7,4,8],0,[1],8,6]]]
+[[7,10,[9,[0,5],0,[8],0],4,[[6],0]],[],[],[[0,2,[7,4,9]],[3,6,8,[1]],10]]
+
+[[[6,3],[[7],[1,6,3,5],3,[]],[[10,1,1,5],3,[]]],[[[3,4,6,0],[1],[1,10,4]],[],5]]
+[[],[[],[5],[[]],3,6]]
+
+[[4,[1,0],[[10,2],4,[6,1,0],[4,4,3]],[[10,9,4],4,4,[1,9],[7,0,0]],[]],[[8,3,[8,10],4]],[[1,[],0,9,4],3,5,[]]]
+[[[[7,10,0],8],5,[4]],[],[[6,[10],[6,10,7,5,9],7]],[]]
+
+[[],[2,7,[5,[5,7],[3,8,4,3,7],[]]]]
+[[],[7,9]]
+
+[[3,[],[[5,9,7,2,3]],3,3],[[],9,[4,[7,6,9,5,8],7],9,2],[],[[7,[8,9,7,5],3,[5,2,5,9,1],[7,4,3,10]]]]
+[[[[8,5,6,0,0],[9,7],9],[[1],3,1,4,0]]]
+
+[[2],[0,1,0,4,[10,[1,8,7,5],[2,9,3],5]],[0]]
+[[],[[[9,2,9,0,0],[2,9,1,9],[8,4,4]],[[6,5,8],0,[0]],[10,8,[9,9,4,6],8]]]
+
+[[[4]],[5,[9,[6],[0,2],[],0],[[3,4],[3,6],[7,3]],[[9,7,4,7,6],[8,4,1],[8]],[]],[],[6,2,[[5],9,10],8,0]]
+[[7],[5]]
+
+[[5],[[[8,4,7,2,8],[8,7,3],6,[],6],1,[5,[6,5]],7,7],[[10],[],7,[8],[0]]]
+[[[]],[6],[[],8,7,[3],[4]]]
+
+[]
+[[],[[[6,8,0,8],[],8],[[5,1],7,8],1,10,[8]],[3,5,[[9,6,3]]],[[2],3,[[4,9],3,6,2,[1,0,8,5,4]],7]]
+
+[[[8,[7,9,7,4],4],3,[7]],[[[10,2]],4,4,[4,[7,4],[4],1],5]]
+[[[],[[8,3,5,2,7]],[[],5],[],[9,2]],[5,[5,5,[5]],[]],[0,9,9,[]],[[5,4]],[]]
+
+[[0,1,[1],10,4],[[[10,1,8]],9,0],[3,[0,2],0],[9,0,10],[]]
+[[[[2,1,0,0,4],[],0]],[],[0]]
+
+[[7,7,10,[]],[3,[],[[6,10,7,4],0,9,[0]],[[10,2,7,6],[9],8,4,[3,5,6,0]]]]
+[[],[4,[9,6,6,[0,3,1]]]]
+
+[[0,4,[[0,8,6,4],4,7,10],[8,[10],2,8],2],[6,[[6,3,6]],4,10],[2,6],[],[[],[[2,7,1,1],[10,4,7,1],[6,10,4,0]],6]]
+[[[2]],[[[9,4,5,2],5,7,[],[]]],[10,8],[3,8,[6,[0,10,10,0,2]],[[5,6,6,10],7]]]
+
+[[8,[[7,6],[8,1,7]],[],5,2]]
+[[6,7,[2,7,[7,1,8,5,1],1,5],9]]
+
+[[1,[],1],[],[7,[[2,10],8,[8],[10,1,9,4,10],[1,9,5]],[[9,4,9],[2,2,1,3,4],0,[8,3]],7]]
+[[[4,[10,9,9,2],3,9,4],[1,10,4,8,4],6,4],[7,1,[3,3,9]]]
+
+[[[[2],[6,7,4,1],[9,3],1,[5,0,9,4]]],[[[2,5,0,0,1],[3,3],[9,1],9,1],9]]
+[[],[[1,[3,6,7,4,10],[7,2,6,0,6],[7],6],5,5],[[[5]],2],[[[3,9,4,9,4]]]]
+
+[[[3,[3,0,9],9],[[10,9,1,8]],[6,8,[6,7,5,10,4]]],[[[],2,[],[9,3,8],8],[5,0,2,[],[0,9,4,3]],[[],1,8,1,0],[]],[[[4,7,8,6,2],6,9,[1]]],[4]]
+[[[[],8,10,[6,6]],0,0,[10,[],[0,2,8,3,7],[7,5]],[[0,4,0],3,10,2]],[4,[],0,[],6],[[[7,8,0],[7,5,7],[10,4,3],[1,5,2],9]]]
+
+[[],[[[6,10],7,1,0,[]],[[9],[8,9,9,10,8],0,8],2]]
+[[10,0,4,[[0,2,10],[9,2,4,7,7],[5],[9]],[[3,2],[2,9,10],[3]]],[2,1],[10,[5,[2,8,2,4],6,4],4]]
+
+[[8,[[4],[2,9,10,6],0,4,6],[[7,5,3,0],[9],4,[7,5,10,10]],[]],[]]
+[[[[]],1,[[],[10,7,2,1],[6]],6]]
+
+[[[[1,6,7,3],3],[1,[7,0,6],7,4,[7]],[2,5],0],[[],[[4,5,3,4],5],[7]]]
+[[5],[[],[],5,[[8,3,3]],[[],3,8,9]],[[0,[0,2,9],[2]],[[8],4],[[0,3]],[[6,4,4,3,2]],[[0],[],[0,9,10,1],8,8]],[2,[[],[7,7,0]],[[5,7],[8,2,8,1,5]],[[9,2,6],[1,5,9,1]]],[[[2],[]],[8,7,5,[2]],[[2,1,8,1],5,4,6,[0,5,6]]]]
+
+[[],[1,6,10,1],[[8,9,[3,8]],10,7,[[0,8,6,7,10],[7],[1,0],2],9],[[[4,1,0,10],1,4,[8]],0,[4,10,9]],[8]]
+[[[[4,8,9,3],6],5,[],5],[]]
+
+[[[10]],[[],8],[[[6],7,9,[6,6],10],[8,4]]]
+[[8,5,3,[],2],[8,[8,[0,0],5]]]
+
+[[[1,0,[],[8,8,3,2],0],2,2,[10,[7],[2],7]],[10]]
+[[1],[0,[[6,7],[1,10,7,6],[1,8,7,4],10,5],5],[[4,0,[7,0],[8,3,8,6]],[[2,4,10,8,6],3],8,[]],[[4,[9],[7,4,10],[4]],[3,[6,6],[],5],9,[]],[[[6],[2,1,1,3,5],[2,9,3]],6,[[1],[5,7,5]],[[4,3],[8,2,6,4,6],0,5,[5,8]]]]
+
+[[],[[6,[1,0,0,9],1,6],[[4,9],0,1,7,[2,2,10,7,3]],1]]
+[[],[[[4],1,10],[],4,[[9,4],0],[[9],[10,1,10],10,2]],[8,7]]
+
+[[[],7,[[8,4,9,2],[2],4,9]],[[[0],5,[],10,[]],[3,[1,9,9,2],[9,10,0,0]],[7,9,[8,7],2],[9]],[9,[[9,4,6,8,10],8]],[[[0],5],10]]
+[[7],[0,6,[[6],[],3,[3,8,6,2,8],6]],[9,6,0]]
+
+[[[[4,4,7],[6,7,2,2],[]],1,[[],7,0]],[[5],[2,2,[3]],[6,2,4,[]],[[3,8],1,[8,6,0,10,5],[8,10,6,1]],3],[8]]
+[[0],[[10,[],[10,4,7,3,10]],[[5,9],7,5,8],9],[9,0,5,1],[]]
+
+[[0,0,[[6,10,1,5],[8,0,4],10,[10,9,1,5]]],[[4,[2,1,1,5,4],[5],[]]],[3,7,0,[],10]]
+[[3],[4,5],[6,[4,5,[]],5,4]]
+
+[[[[6],6],10],[]]
+[[[],7,[[4,3],[7,3],1],[4,[7,6,6,3,9],[2,2,0,8],2]],[1,5,[[5]],[[0,2,5,2]]],[[[4,8,10,0,3],[6,1,8,1,4]]],[],[1,[[],[],2]]]
+
+[[9,[]],[7,[[3,0,2],[],10,6,[10,7,8,4,6]]]]
+[[7,6]]
+
+[[8],[2],[6,1],[6,[4],[],[4,8,[5,2],5]]]
+[[],[[[1,9,0,1]],3,5,[6,[3,4,3],5,[6,3,7],[2]]],[5,[[3],0],5,[],5],[7,[[9],10],4,9],[]]
+
+[[[9,[8,5,4,8]]],[3,[7,[6],3],2,[5]],[[[1,8],[6,6,5]],6]]
+[[2,[[2]]],[10,6,3],[[[10,4],0],[],[5],[],[0,[10],[1],[1,2,7]]]]
+
+[[[[],[],6,[10]],[],7],[3,[10,9,2,[]]],[5,[[10,10,2,7,0],6,[]],[8,[0,7]],[[0],1,[9,10],4,2],[]],[]]
+[[[9,[5,4,6,9,5],[10]],[[5,9],0,6,5,10],[5,[2],[4,9,4,9,0],[5,4],[0,1,3,6]],3,[[3,9,7],[6,10,0,0]]],[[7,8,10]]]
+
+[[[3,[4,0,0,9,8]],2,0,[6,[5,7]]],[[9],[],4,0],[6,2,[9],[10,[5,4,9,10],6,4]],[9],[6,6,[[7],[6]],[[8,0],5,10]]]
+[[],[8,1,0],[5],[9,5,[6,[6,10,6]]],[]]
+
+[[8,7,[5,1,[4,1,3],[8,1,0,8,2]],3,0],[[[0,1,3,1,1],[9,7,2,4],4,6,4]],[10,5,7,4]]
+[[7,[]]]
+
+[[0,7],[],[],[0,2],[0,2,[5,5,[4,6,3,10,0],0],[[5,1],[8,0],[5,7,5,0],2,4],[8,[],[10,2,3,4,8]]]]
+[[[8],[2,10,6],9,2,[5,[],5,[6,0,4,5,7],5]],[7,1]]
+
+[[[],[[9,7,1,3],[6,3,2,7,6]],[7,[6,9,5,0,9],3],5,[]],[],[[[3],[0,7,1,7]],[0,[10,6,2,10,4],[5,8,0,6,7],0,[]],6,9],[[[4,6,0,0,2],7,[9,7,7,7,0],8],6,[[],[0,3]],8],[[9,[1,10],2],4,[[0,4,10],[4,7,8]],[[2,0,0,9,8],[4,2,9],[5,10],1,[8,4]],3]]
+[[]]
+
+[[[[6]],4,8,[],6]]
+[[],[1,9,[[],9,[10,7,10,9,9],6,[0,10,1,4]]],[3,[8],2,9],[5,[4,7],[4,[8]],5,6],[[0],[10],[]]]
+
+[[[[5,1,10,5],[2,10,6],1,0,1],[[1],3,[],2,7],4,4,6]]
+[[3,[[7,3,0,6],7,[1,4,5]],[[4,7],[0,6,10,2,9],[],[4,2,1,9,7]],[9,10,[10],1,9],[]],[8,[],[3]],[[[3,2,6,1,0],4,[4,9],[3,1],3],[],[[0,4],[4,2]]]]
+
+[[7,5,1,10],[2],[]]
+[[],[[],7,[],9,[[0,9,4],[8,0]]]]
+
+[[3,9,0],[[[9,0,7,4],[1,6],9],10,[3],9,[0,[4,7,4]]]]
+[[5,3,[1,[8],0,9],1],[[[8],8,8,8,[6,7]],4,0,[4,0,9,[3,8,8,8],10]],[[[],7,[8,8,1,5]],8,3,4]]
+
+[[[9,[8],[10,3,10],7],4,3,6,[8]],[[]],[8,[10,10,[]],[4,[6,9,3,10,6],8,10,2]]]
+[[[[3],[5,0,9],[],2,[4,1]],[7,8,3],[10,[1,4]],[[0,7],[6,4],7,[10,0,0,1]]],[[[5,2],1,[10],10,[3,5,6]],[[],[0,6,2],[0,10,0,1,3]],[[],[1,7]],[1]],[],[],[9,[7],2,[[4,5,4,0],[8,1,1]]]]
+
+[[[],3],[3,[],4],[5,4,6,[]]]
+[[2,[8,2,[4]],5,[5,[9,1],[10,6,10]],9],[10,[5,8,[],[5],[]]],[[],1,[1,[7,6,5,0,4],[6],[5,5,10,5,2]],0]]
+
+[3,9,10,6,3]
+[3,9,10,6]
+
+[[1]]
+[[[[],[],[10,8,6]]]]
+
+[[[5],[10,[3,10,4,1],7],5,[3],[]]]
+[[],[[7],[[7,8,5],[6,10,4],9,[0,10,6]]],[[[8]],[5,[],[2],[6,5,0]],[[10,1],10,[],[9,1]],[5,4,[4],[],10],[5,[7],[10],[2,10]]]]
+
+[[2,9,[[9,7],[],[4,6,3],[0,6,10,2,10]],[[6,1,1,1,4]]],[10,4]]
+[[[],[6,8,1]],[[[7]],5,6,[0,2,2,6],[]],[3],[[4],4,5],[1,[[9,10],[1,5],4,[6,7]],0,6]]
+
+[[[7,9],5],[2,[5,9,7,[7,2,9]],[9,[8,7]]],[3,[[],10,4,[7],3]],[1,[[],5,0],5],[[],[[],5,0,4],2]]
+[[[[4,3,0,10,3],[6,1,10],4,8],[8,[],[8,0],10,[]]],[],[1,9,4],[10,8,[5,[9,8]],3]]
+
+[[6,8,[[1,4,10],0,7,[10,5,10]],[[10,8,9]]],[9,[9]],[9,[3,1,[],[1,1],8],7]]
+[[],[5,8],[7,[7],[[3,6,2],6,0,[2,7],[6]],[10,[2,10,8,6],[2],[],[8,10,10,3,4]],[[8,5,8,8,10],7,1,[10,10,8],[3,5,4,3,3]]],[[[],5,10,[1]],4]]
+
+[[4],[10,6]]
+[[0,10,4,[9,10]],[],[1,8],[9,7,[2,[5,4],[10],[7,1]],0]]
+
+[[[],[5,[4,10,2],4,[10,8,10]],[]],[],[4,[4,6]],[[],[2]]]
+[[1,5,[[4,2,5],[],[1,9,4,7],[10,6,2,3]],[[9,2,0]],0]]
+
+[[2,[8,7,[9,0,0,9],[0,8]]],[],[[3,6],[[1,8,0,5,6],5,2],0,6]]
+[[[3],[[1,6,1,10,0],[7],[9,2,0,5,9],[1,10,5,8],[8,6,2,6,5]],5,1],[]]
+
+[[[1],8,3,7,10]]
+[[[[1],[9,2,0,6],6,[5,4,7],[1,9,4]],7,0,[]],[2,4],[[9,9,[10,5,5],6],3,0,[[1,8],[],10,0],10]]
+
+[[10,4,[8,[3,6,1,1],7,10],[],[[2,6,6]]]]
+[[2,4],[[[2,0,8],[2,0,6,8,3]]],[[[5,1],9,[0,4,6,4,4],8,1],[1],9,[],5],[6,4,[[1,5,7],3],[[9]]],[]]
+
+[[],[[[],4,[9,2,9]],[[4,6,3,6]],[1,8,2],7],[[[3,1,5,5],[]],9,6],[0,4,1,6,0]]
+[[[[0,10,1],[2]],2]]
+
+[[[3],[[],4],1,8,2],[[2,[6,10,1,8,0]],0,[8,[],[10,9,7],[]],2],[[[4,4,2,6],[],7],3,8,10,3],[]]
+[[1,[6,3,[8,6,4,4],7],[7,8,[3]],1,2]]
+
+[[2,[0,8],9],[[[0,3,0,4,8],[2],[10,4,1,4]],[],[5],8,5],[0,[6],10,2,[1]]]
+[[9,10,2,[[0,7,5,0],2,[2,10,9,8]],[[6]]]]
+
+[[[4,3]]]
+[[[[8,9,3,3],[],[10,1,3,1,8],8,7]]]
+
+[[[9,[0,1,7,3,4],9,9],[],[8]],[[0,[9],[3,6,3,0],7],[9,4,0,[8,1,2,8],8],[2,8,[4,5]],[8,0,[9,9,7]]],[[0,[8,6,7,7,4],2],[7,[1,2,7],[7]],9,[[4,3,4,2],[1,7,3,1],9],[7,[5],[9,5,10]]],[]]
+[[8,[0,[3,0],4],6,[[8,6,5,3],[4,7],0]],[[3,[7,0,7,2,6]],[[0,0],[],[0,5,0,9,8]]],[]]
+
+[[4,7,[7],6,[8,[]]],[]]
+[[],[[9,[10]],[10]],[9,1,5,[0,7],[9,6,[6,0,4],[10]]],[[[4],[1,0],1],9,3],[[[9],1,[],[7,0],2],3,[[5,10,9],0,3,[7,9,10,5,0],6],[6,3,[],6,[3,3,6]],[[9],[2,1,7]]]]
+
+[[[[0,5,8,5],[5,5,6,3,6],[]]],[5,4,[],[],[[6,4,3,4]]],[[[9,3],[]]],[]]
+[[[7,[3,6,3,8,2]],6,7,9],[6]]
+
+[[5,[[1],[7,4,10,4],4,[8,3,0,2],[]],5,[9,[8,2,10,4,3],5,6,3],6],[[],[3,7,[5,1,2,1]]],[[[2,3,8,5],[0,4,4],10],2,[[1,4,2],5,8,2,3]]]
+[[[[8,6,8,2],[1,8,4,4],7,[5,4,10,7,4]],[[7,2,5]]],[3,10,[6,[1],[]]],[6,[],3],[[[7,0,0],9,4,3]],[0,[1,[],8],7,3]]
+
+[[[1,6,[7,1,3]],[[8],[8,8,9,1,1]],[[6,6,1,3],[2]]],[[],8,[],3],[],[6],[6]]
+[[[[],[],7],[[9,8,7],3],4]]
+
+[[],[9]]
+[[10,[[10,9,9,1,9]],[[5,5,7,0,4]],9,1],[],[[],5,[6,[3],[1],[1,8],[6,3,3,6]],2],[[[3,1,4,3,2]]],[3,[2,[10]]]]
+
+[[1],[[[0,0,10],[9,1,1,1,4],[7,0,5,3],[2,2],8],[[0,4,6,9,5],8],[6,[6,8],7,[],[8,0,6]],[],[[],7]]]
+[[],[[[6,1,9,8,5]],[[1,0,1,4],2,[],3]],[0,2,0,[[8,5,7,4,6],[5],4,[6,5,6,2,0]],10],[6,7]]
+
+[[[],3,6,[4,1,[5,0,5,3],[3,0],5],[1,1,2]],[3,2,[[1,3,7,9],[5]],6],[6,[],5,2],[3]]
+[[[[0,4,5,0],9,3,10,3],[[4,3,4,9,10],[6,1],[8,10,10,4,3],0]]]
+
+[[3,6,4,7],[5,8,0,[[0,6]]],[],[]]
+[[[[],[3,1,0,7,2],3,[10,3,0,2,8]],3],[0,9,0],[[[8,8,0,9,0],[6,0,5]],[[3,4,9],7]],[],[0]]
+
+[[],[[0,1,[4,1,4,2],[6,5,3],[]],1,[9,3,[10,4,5,0,4]],[[5,7],2],[[8,7]]],[8,4,9]]
+[[8,[7,[10],[2,8,10,9,3],[6,5],3]],[5,5,[[3],[]],6,[1,0,7,8]],[7,[6,5]],[],[10,5,4,[2,0,4,[6,10,4,4],[3,3]],8]]
+
+[[[6],[10,[0,2,5,10,9],2],[[],[0],9,[1,0,5,8]]],[3,[[4],[3],3,[1,4,2,0,0],[]],[[8,3,6,10,7],1],[2,2,5,[6],[0,7]]]]
+[[7],[1,3,[1,2,2],2,3],[5]]
+
+[[[[]],0,[[4,6,4]],0],[],[3,[],[1],[10]],[[1,[2,5]],[[7],[6,10,6,6,6],6],[[0,8,5],[4,0,9]]]]
+[[5,8,2,[0,3]],[6,[[6,4],[7,10,9,10,3],2],2,6],[1,[9,[6,4,1,2],8,[10,2,5,9,8],[]],[]],[],[[[8,2,3],9,[5,6,3,3],4,[4,10]],7]]
+
+[[8,[2,0],[10],2,3],[[3]],[[9,[10,9,9,5,7],2],[[],9,[6,8,5]],[10],8,[]]]
+[[7,10,[2,[0,6,4,0,5]],[4]],[[],[],4],[7,[5,10,2,[0,7,3,9,7]],[[7,2,1,3,5],[7,5,3,1,6],3]],[[[1],6]]]
+
+[[],[[7,[],[5,7]],1,7]]
+[[7,5,4,9],[[5],[[8,2],[1,5],3,4,1],[7,10,4,[],0]]]
+
+[[[8,6,[6,3]]],[9,[],[[5,6,0]],[2,[1,10,10,6]]]]
+[[0,0,[[1,1,10,1,3],2,[7,0,6],3]],[],[0,2],[[3],3,5]]
+
+[[[4,7,[10]],[1,4]],[[2,[4,1,6,0,4]],2,[[],[]],9],[6],[[],[9],7,5],[9,10,[7,[6,0,5,1,3]],2,[]]]
+[[4,[],[[5,4],[6,2,3,4],8,[4,3],7],[9,3,3,0],[[],1,6,2,9]]]
+
+[[5],[6,[]],[]]
+[[],[[1,5,[7,0],[2,7,6,1],10]],[]]
+
+[[5,10,3]]
+[[[7,1],[1,[7,5,9,7]],[0,[7,1,7,9,1],[9,2,9,9,1],5,[9]],[[]],[]],[0,[[9,0,3],[3],1,[1],1],9,[10,6,[],[10,9,1,10,10],[2,2,8]]],[[1,7,4],6]]
+
+[[],[]]
+[[[[6,3,9],[5,5,8,10,4],[7,4,9,1,3]],1,6],[[[8,2,4,5],[],[1,7,7]],0]]
+
+[[0,10,[[4,0],4]],[9,[],[4,9,[10,5,8]],7],[10,[]]]
+[[],[[],7]]
+
+[[[6,5],2,8,7,[[6,2,10,1],1,[2,5,10,7],1,[2,10,7,5]]],[6,9,8],[4,[],[[1,8]],1,[7,[1,0,6,8],[8]]],[[],6,1,[7,[],0,[6,7,8,10,5]]],[[],[],[7,9,[5,10,6,3],[2,10,3],8],7,[9,[0,10],[8,2,6,0,1],[10,1]]]]
+[[[9,[0,9,10,7,4]],6,[6,[8,5,9,6,8],[4,10,6],4,[]],[4,9,7,2,7]],[4],[[],[[4,2,5]],[4,[7],[9,5,8,7,7],[],[10,9,6]]],[10,[],10,[4]],[6,1,3,[[2,1],[1,9,7,3],5,[2,3,5,4,9],6],1]]
+
+[[6],[8,5,[4,[1,10]]]]
+[[1,7,5,9],[],[],[0,9,1],[0,[2,6,10,[10,7,3,5,3]]]]
+
+[[3],[1],[]]
+[[0],[8,[[6,7,6],3,7,[4,5,6,10,1],0]],[[[4],[6,0],0,[8],[8,1]],[[1],4,8]],[8]]
+
+[[[[2,3],5],[[4,2,4,10,3],[4,0,9,4,2],4],[2,[1,5,2,6,7],8,[0,5,1,4,8]],[[3,6,7,10],[6,7,4,7],[9,4,10]],[[9],[4,2]]],[]]
+[[[7,8,[8,2,10,2],[],[2]],3,9,0,1],[[[5]],0,7,[[7],2]],[[2,[],[8,5,4,1],9],5,6,[[1,2,8,0],4],[]],[2,[9,[],[10,10],8,[]],1]]
+
+[[],[],[[[5],[9],5,7],5,[]],[[3,[1,2,6,3],9,[3,2,7],0]],[[[5,9],5,[8,1,7]],[1,1,[7,7,8,10]]]]
+[[[[10,0],[0,7,2]],3,[0,3,2,[7,1,9]],[[10],0,[5]],[[2,8,0,5],[7,3],4,10]],[9,[[]],[[],[1,4,4],7,[0,1,6,7,2],[6,9,0,4,4]],[9,[9]],[6,[4,5,0,8],1,[8,3,1,10],[9]]],[7,[[]],[5,[1,9,6]]]]
+
+[[4]]
+[[5],[[2,[10,7,10,9,10],0]]]
+
+[[[],[[1,8,6,1,6],[3,2,1],2,[10,3,7,1,4],0],3,[3]],[9]]
+[[],[],[[8],[[],5,[1,8,7],9,1],[[7,1,2,4,3],7,[5,7,1,6,6],8,2],10],[4,[6,[8,8,6,7]],1,[[],[5,10,3,2,7]]],[1,[],[1,[0],7,[9,0]]]]
+
+[[8],[2,[[9,2,9,9,10],[3,5,3,4]]],[10,[[10,7,10,0]],10,[[2,6],[4,9,6],[3,4,5,0,2],[]],7]]
+[[4],[3],[],[10]]
+
+[[[[0],7,[1,1,10,2,0]],2,[[10,5,10]]],[[[6],[4,4,6]],[3,[]],9,[[8,3,3],[6],[9,5,7,7],8],10],[]]
+[[6],[[[3,10]],[]],[8,10,[],9]]
+
+[[5,5,[],9]]
+[[[[5,6,6,3]],2,[[4],0,7,2]],[[],[[10,5],[],[5],[8,1,0,3,2],3],[[7,3,0],5,0,4,[9,1]]]]
+
+[[],[[2],7,4],[2,9,10],[[[],[7,4,4,7,3]],[]]]
+[[9],[]]
+
+[[[10,5,4,1,8],7,[5],[8]]]
+[[0,10,[]],[],[0,6,[7,[4],[],[9]]],[4]]
+
+[[[8],[10],9,9]]
+[[3,[[1,0,5,1,5]]]]
+
+[[[4,5,10],[7,[10,3,1],[2,6],10],[[6,0,8,9,6],4,[]],[]],[9,[],10]]
+[[],[7],[10,10,[6]],[[[2,4],[6,2,2],0],6],[[[2,3,0,0,2],[6,5,7,2],2,4],6,6]]
+
+[[1],[[]],[[[9,1,9,5],[6],[9,3,5,2,6],9,[]],6,[],[[2],9,[8,3,1,3,1],[3,10,6]],[[0,9,1,8,2]]]]
+[[[8],[[7],[7],5],5,5],[4,[[5,9,10],[]],[[4,7,5,1]],[[10,1,7]],4],[5,[[4,8,4],7,0],[2],[],[8,0,[5,8],[8,5,7,2,8],4]]]
+
+[[[0,[3,3,10],[],[0,9],5]],[[4,[],[7,2,5],[0,7],[0,10]]],[],[[[1,8]],[[9,7]],5,[[9,1,0,1],5,5,5,[10]],[[9,4,6,6],4,4,[2,6,9,4,7]]],[4]]
+[[[[10,8,4,0],[9,10,1]],[],[],[[9,8,4,6],2,9],4],[[2,[6,7,8],10,[],[10,4,3,9]],[5,[9]],5,[6,[10],[7,3,6]],[]],[],[[[5,7],[9,7,7,6,9],[9,10,5],8],[[],3,[0,5,0]],3,6,6],[9,[7]]]
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_14.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_14.tst.data
new file mode 100644
index 0000000..c693f8f
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_14.tst.data
@@ -0,0 +1,164 @@
+514,127 -> 518,127
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+518,47 -> 525,47 -> 525,46
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+503,157 -> 507,157
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+517,129 -> 521,129
+525,86 -> 529,86
+522,84 -> 526,84
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+530,111 -> 535,111
+537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94
+520,131 -> 524,131
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+528,84 -> 532,84
+511,129 -> 515,129
+520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+539,90 -> 539,91 -> 552,91 -> 552,90
+520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+508,127 -> 512,127
+507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26
+537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+539,90 -> 539,91 -> 552,91 -> 552,90
+511,125 -> 515,125
+514,131 -> 518,131
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26
+511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36
+526,109 -> 531,109
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+497,157 -> 501,157
+539,90 -> 539,91 -> 552,91 -> 552,90
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+498,134 -> 498,135 -> 509,135 -> 509,134
+503,151 -> 507,151
+531,86 -> 535,86
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+498,134 -> 498,135 -> 509,135 -> 509,134
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26
+528,80 -> 532,80
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+540,109 -> 545,109
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+536,107 -> 541,107
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94
+534,84 -> 538,84
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+525,82 -> 529,82
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+520,114 -> 520,117 -> 514,117 -> 514,122 -> 533,122 -> 533,117 -> 525,117 -> 525,114
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+506,154 -> 510,154
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+519,86 -> 523,86
+537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+537,86 -> 541,86
+511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36
+508,131 -> 512,131
+507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+518,47 -> 525,47 -> 525,46
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+509,157 -> 513,157
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36
+537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94
+533,109 -> 538,109
+505,129 -> 509,129
+518,76 -> 518,77 -> 529,77 -> 529,76
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+498,134 -> 498,135 -> 509,135 -> 509,134
+537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94
+537,94 -> 537,98 -> 536,98 -> 536,102 -> 542,102 -> 542,98 -> 539,98 -> 539,94
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36
+529,107 -> 534,107
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+532,105 -> 537,105
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+500,154 -> 504,154
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+523,111 -> 528,111
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36
+544,111 -> 549,111
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+518,76 -> 518,77 -> 529,77 -> 529,76
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+537,111 -> 542,111
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26
+523,73 -> 523,68 -> 523,73 -> 525,73 -> 525,72 -> 525,73 -> 527,73 -> 527,69 -> 527,73
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+518,76 -> 518,77 -> 529,77 -> 529,76
+531,82 -> 535,82
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
+507,26 -> 507,28 -> 504,28 -> 504,33 -> 511,33 -> 511,28 -> 510,28 -> 510,26
+511,36 -> 511,40 -> 503,40 -> 503,43 -> 519,43 -> 519,40 -> 515,40 -> 515,36
+502,131 -> 506,131
+508,60 -> 508,58 -> 508,60 -> 510,60 -> 510,55 -> 510,60 -> 512,60 -> 512,51 -> 512,60 -> 514,60 -> 514,59 -> 514,60 -> 516,60 -> 516,58 -> 516,60 -> 518,60 -> 518,50 -> 518,60 -> 520,60 -> 520,58 -> 520,60 -> 522,60 -> 522,52 -> 522,60 -> 524,60 -> 524,54 -> 524,60
+488,148 -> 488,144 -> 488,148 -> 490,148 -> 490,141 -> 490,148 -> 492,148 -> 492,144 -> 492,148 -> 494,148 -> 494,145 -> 494,148 -> 496,148 -> 496,139 -> 496,148 -> 498,148 -> 498,145 -> 498,148 -> 500,148 -> 500,141 -> 500,148 -> 502,148 -> 502,143 -> 502,148 -> 504,148 -> 504,145 -> 504,148
+490,23 -> 490,17 -> 490,23 -> 492,23 -> 492,22 -> 492,23 -> 494,23 -> 494,16 -> 494,23 -> 496,23 -> 496,17 -> 496,23 -> 498,23 -> 498,18 -> 498,23 -> 500,23 -> 500,13 -> 500,23 -> 502,23 -> 502,13 -> 502,23 -> 504,23 -> 504,13 -> 504,23 -> 506,23 -> 506,15 -> 506,23 -> 508,23 -> 508,22 -> 508,23
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_15.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_15.tst.data
new file mode 100644
index 0000000..b9ee877
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_15.tst.data
@@ -0,0 +1,38 @@
+Sensor at x=3889276, y=3176133: closest beacon is at x=3738780, y=3090050
+Sensor at x=3545888, y=1389980: closest beacon is at x=3687798, y=2823020
+Sensor at x=2887269, y=2488344: closest beacon is at x=2809378, y=2513386
+Sensor at x=3990278, y=43134: closest beacon is at x=2307159, y=135337
+Sensor at x=3746631, y=2990632: closest beacon is at x=3738780, y=3090050
+Sensor at x=7523, y=59064: closest beacon is at x=278652, y=-182407
+Sensor at x=2662631, y=3349709: closest beacon is at x=2294322, y=3429562
+Sensor at x=3999326, y=3030235: closest beacon is at x=3738780, y=3090050
+Sensor at x=2788203, y=3722031: closest beacon is at x=3009520, y=4176552
+Sensor at x=1872146, y=1228203: closest beacon is at x=1213036, y=1428271
+Sensor at x=231045, y=2977983: closest beacon is at x=-362535, y=2000000
+Sensor at x=2233881, y=421153: closest beacon is at x=2307159, y=135337
+Sensor at x=3915820, y=2609677: closest beacon is at x=3687798, y=2823020
+Sensor at x=2959514, y=2529069: closest beacon is at x=2809378, y=2513386
+Sensor at x=1829825, y=2614275: closest beacon is at x=2809378, y=2513386
+Sensor at x=1031015, y=2036184: closest beacon is at x=1213036, y=1428271
+Sensor at x=3894267, y=3758546: closest beacon is at x=3738780, y=3090050
+Sensor at x=2653530, y=445121: closest beacon is at x=2307159, y=135337
+Sensor at x=1528274, y=1670020: closest beacon is at x=1213036, y=1428271
+Sensor at x=3839068, y=2974837: closest beacon is at x=3738780, y=3090050
+Sensor at x=254225, y=9603: closest beacon is at x=278652, y=-182407
+Sensor at x=2214848, y=3333326: closest beacon is at x=2294322, y=3429562
+Sensor at x=1008775, y=292264: closest beacon is at x=278652, y=-182407
+Sensor at x=2072077, y=6712: closest beacon is at x=2307159, y=135337
+Sensor at x=3344028, y=3459786: closest beacon is at x=3738780, y=3090050
+Sensor at x=984627, y=3991112: closest beacon is at x=2294322, y=3429562
+Sensor at x=198206, y=2034713: closest beacon is at x=-362535, y=2000000
+Sensor at x=460965, y=1150404: closest beacon is at x=1213036, y=1428271
+Sensor at x=2198999, y=3584784: closest beacon is at x=2294322, y=3429562
+Sensor at x=3212614, y=2899682: closest beacon is at x=3687798, y=2823020
+Sensor at x=3797078, y=2864795: closest beacon is at x=3687798, y=2823020
+Sensor at x=2465051, y=2871666: closest beacon is at x=2809378, y=2513386
+Sensor at x=2356218, y=3981953: closest beacon is at x=2294322, y=3429562
+Sensor at x=2389861, y=1856461: closest beacon is at x=2809378, y=2513386
+Sensor at x=2852352, y=2506253: closest beacon is at x=2809378, y=2513386
+Sensor at x=2275278, y=742411: closest beacon is at x=2307159, y=135337
+Sensor at x=1562183, y=3626443: closest beacon is at x=2294322, y=3429562
+Sensor at x=44398, y=534916: closest beacon is at x=278652, y=-182407
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_16.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_16.tst.data
new file mode 100644
index 0000000..ca73ce3
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_16.tst.data
@@ -0,0 +1,57 @@
+Valve ED has flow rate=0; tunnels lead to valves PS, AW
+Valve SI has flow rate=0; tunnels lead to valves AA, HX
+Valve LX has flow rate=22; tunnels lead to valves DY, YH
+Valve CR has flow rate=0; tunnels lead to valves BE, HX
+Valve BI has flow rate=0; tunnels lead to valves GC, AY
+Valve PB has flow rate=4; tunnels lead to valves IX, YG, RI, KR, BV
+Valve YY has flow rate=0; tunnels lead to valves PH, GJ
+Valve PH has flow rate=11; tunnels lead to valves YY, VE, ZG, MM
+Valve DY has flow rate=0; tunnels lead to valves LX, AW
+Valve SD has flow rate=0; tunnels lead to valves AY, EC
+Valve SV has flow rate=24; tunnels lead to valves CC, GF
+Valve RL has flow rate=0; tunnels lead to valves OW, IN
+Valve GF has flow rate=0; tunnels lead to valves RQ, SV
+Valve BE has flow rate=5; tunnels lead to valves CR, JC, MF, IT
+Valve PR has flow rate=0; tunnels lead to valves BV, GJ
+Valve AW has flow rate=21; tunnels lead to valves VE, DY, TR, ED
+Valve FY has flow rate=17; tunnels lead to valves GG, KJ
+Valve GC has flow rate=0; tunnels lead to valves BI, GJ
+Valve RI has flow rate=0; tunnels lead to valves PB, AY
+Valve RQ has flow rate=0; tunnels lead to valves HH, GF
+Valve IT has flow rate=0; tunnels lead to valves MZ, BE
+Valve XG has flow rate=0; tunnels lead to valves BL, AA
+Valve MK has flow rate=0; tunnels lead to valves HX, DV
+Valve IX has flow rate=0; tunnels lead to valves PB, JC
+Valve BV has flow rate=0; tunnels lead to valves PR, PB
+Valve TR has flow rate=0; tunnels lead to valves CD, AW
+Valve PS has flow rate=0; tunnels lead to valves ED, AY
+Valve HH has flow rate=12; tunnels lead to valves RQ, NL, ZQ
+Valve AA has flow rate=0; tunnels lead to valves KR, SI, XG, EC, ZG
+Valve FT has flow rate=0; tunnels lead to valves IN, YH
+Valve YG has flow rate=0; tunnels lead to valves PB, HX
+Valve HX has flow rate=14; tunnels lead to valves MK, ZQ, YG, SI, CR
+Valve DV has flow rate=0; tunnels lead to valves MK, QR
+Valve GJ has flow rate=3; tunnels lead to valves PR, CD, YY, GC, BL
+Valve BL has flow rate=0; tunnels lead to valves GJ, XG
+Valve CD has flow rate=0; tunnels lead to valves TR, GJ
+Valve GG has flow rate=0; tunnels lead to valves FY, NL
+Valve JC has flow rate=0; tunnels lead to valves IX, BE
+Valve JN has flow rate=0; tunnels lead to valves OW, QR
+Valve RM has flow rate=18; tunnel leads to valve KJ
+Valve NL has flow rate=0; tunnels lead to valves GG, HH
+Valve QR has flow rate=20; tunnels lead to valves CC, DV, PN, JN
+Valve ZG has flow rate=0; tunnels lead to valves AA, PH
+Valve AY has flow rate=6; tunnels lead to valves RI, PS, SD, BI, MM
+Valve VE has flow rate=0; tunnels lead to valves PH, AW
+Valve OW has flow rate=25; tunnels lead to valves MZ, RL, JN
+Valve MM has flow rate=0; tunnels lead to valves AY, PH
+Valve KJ has flow rate=0; tunnels lead to valves RM, FY
+Valve MF has flow rate=0; tunnels lead to valves BE, PN
+Valve YH has flow rate=0; tunnels lead to valves LX, FT
+Valve ZQ has flow rate=0; tunnels lead to valves HX, HH
+Valve KR has flow rate=0; tunnels lead to valves AA, PB
+Valve PN has flow rate=0; tunnels lead to valves MF, QR
+Valve CC has flow rate=0; tunnels lead to valves SV, QR
+Valve MZ has flow rate=0; tunnels lead to valves OW, IT
+Valve EC has flow rate=0; tunnels lead to valves SD, AA
+Valve IN has flow rate=16; tunnels lead to valves RL, FT
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_17.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_17.tst.data
new file mode 100644
index 0000000..bda564e
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_17.tst.data
@@ -0,0 +1 @@
+>>>><<>><<>>><>>>><<<<>>>><<<<>>><<<>><<<<>><<<<>><<<>><>>><<<>><<<<>>><<>><<<>>>><<<<>>><<<>><<<>><<>><<<<>>><<<<><<><<<>>><<<<><<>>>><<>>>><<<<><<<<><<<<>>><<<>><<>>><><<<>>>><<>><<>><<<<>><<>><<><<>>>><<>>><<>>>><<<<>>><>>>><<<>>><<<<>>><>>><<>>>><<<<>><<<><<<<>>>><>><<<<>><<<><>><><<<><>><<<<>>>><<>>>><<>><<<>>>><<<>><<>><<>>>><>>><<<>><<>>><>>>><<><>>>><<<>>><>>>><>>><<<<><<<<><>>>><><<>>>><<<<><<<<><<>><<<>>><<<><<>>><<<><<<>>>><>>>><<<<>>>><>><<>>>><<<>><<<>>><><<<>><<>>>><<<<>>>><<><<><<>>><><<>>><>>>><<><<<><<<>>><<<>><<<>>>><<>>><<<><>>>><<<>>>><<<>><<<<>><>>>><<<<><<><<<<>>><>>>><>><<<<>><<>>>><<<<>>><<<><<<<>>>><<<><<<<>>><><<>>>><<<<>>><<>><><<>>>><<<>>>><<<><>>><<<><<<<>><<<<><<<<>><<<<>>><<>>><<>>>><<<<>><<<<><>>>><<<<>><<<>><<<><<><<<<>>>><<<<>>><><<<>>><><<<>>>><<<>><<<>>>><<<>><><>><<<>><>>>><>>><<><<>><<>>><<<<>><<<>>>><<<>>><<<<>>><>>><><>>>><<<>>>><<<>>>><<<>>>><<<>>>><<><<>>>><<<>><>>>><<<>>>><<>>><<>>><>>>><<>><<<>><<<>>>><><<<<><>>><<><<<>>>><<>>>><><<><<>>><<<<><<<<>><>>>><><<<>>>><<<>>>><><<><<>><><<>>>><<<<>>><>>>><<<><<>><>><<>>><<<<>>><>>>><<<<>><<><<<<>><<>>><<<>><<><>>><<<<>>>><<>>>><<<<>>><<<>>><>><<<<><<>>><>>>><<<<><<<>>>><<<>>>><<>>><>><<<<>><<<<>>>><<<>><<<<><><<<<><<<><<<<>><>>><<<<>><<>>>><<>><<<><<<<>><<><<>>><<<<>>><<<>>>><<>>><>><<<>><<<<>>>><<>>><<>>>><<>><><<>><<<>>>><<<>>>><<>><<<><<<>>>><<<<>><<<>>>><<<>>>><>><<<>><<>>><<><<<<>>>><<<>>>><<<<>><>>>><<>>><<<<><>>>><<<<><>>>><<<>>><<<><>><<<<>>><<<>>><<><<<><<>><<<<>>>><<<<><<<><<<<>><<<<>><><<><<<<>><>><>>><<<<>>>><<><<<>>><<>>>><<>>>><<<<><<>>>><<>>><>>><>>>><<<>>><>>>><<<<><<<<>>>><<<<>>><<>>><<<<><<<><<>>><<><<>><<<>><<<>><<<><<<<>>><<>>>><<<>>>><<>>>><>>>><<<<>>>><<>>>><<<<>><<>>>><<>><><<>>>><>>>><<>>><<>>>><<>>><<><<<>><<>><<<><<<><><>>>><><>>><<<>>><<>><<>><>>><>><>><<>>>><<<<>><><>>><<<<>>><>><<>>><<<>><<>>>><<<<>>><<<><<>>><>>>><<<><<<>><><<<>>><<<>>><>><<<<>>><<<<>><>><><>>><<>><><<>>><><><>>>><>>>><<>><<<><<<>><<<<>><>>><<<<>><<<>><>>>><<<<>>><<<<><<><>><<<><<<>>>><<<<>>><>>>><>>>><<<<><<><>>><<<<>><<<>><>><<<>>>><<<<>>>><<<>>>><<>><<<>><>>><<><<<<>><<<<><>>>><<>><<<>>>><<<<>>>><<><><><><<<<>><<<>>>><<>>>><<>>>><>>>><>>><>>><<<<>><<<>><>>><><>><<<<>>>><<<><<<<>><><<><><<<>>><<<>><<<>>><><<<<>><<<<><>><><<<><<<>>><><<><<<<><<>><<<>>><<<>><<>>><<<<>>>><>>><<<>><<><>>><<<>>>><<<<>><<<>>><<<<>>>><<>>><<<>>><<><<<<>>>><>>>><<>><<<>><<<<><<<>>>><<>>>><<>><<>><<<>>><><<<<>>>><<<<>>>><><<>><<>>><<<<>>><<><<><<><>>><<>>><<<>>><<<>>>><>>><>><<>>>><>>><>><<><<<<>><<<><<<>>>><<>>><<>>><><<<>><<<>>><>><<><<>>><<<>><<>>><><><<><<<>>><<<<>>>><>>>><<<<>><>>>><<<>>><<>>>><<>>>><>>><<<<>><<<<>><<<<>>>><<<<>>>><<<<>><<<<>><<<>>>><><<<>>><<>>><<<>>><<<<>>><<<<>>><<<<><<>>>><<>>><><<<><<<><><>><>><<>>>><<<<>>><>><<<>><<<<>>><<<><<<>><<<<>>>><<<<>><<<<><<<>><<><>>><<<>>><><<>>>><<>><<<>>>><<<>>>><<>>>><<<>>>><<<<>><<><<<<>>><<<<>>>><<<>>>><>>><<<<>>>><<<<>>><<>>>><<<>>>><>>><<><<<<>>>><<><<<>>><<>><<<><<><<<<>>>><<<<><<<>><>><<<>>><>>>><<<<>>><<><<<>>><<>>>><>>><<>>>><>><>><<<<>>>><<<<>>><<<><<<><<<<>>>><<><<<<>>>><<<><<>><<<<>>>><<<<><<<<>><<>>>><<<>><<><<<>><<<>><<<><>><<>><<<>>>><<>>><>>>><<<<>>>><<>>><<<>>><<<<><<>>>><<<<>>>><>><<>><<><<<>>><<>>>><<<><<<<>><<<>>>><<<<>><><<>>><<><<><>>><<<><<>><<<>>><<>>><<<>>>><>>><<<><>>>><>>>><<<>><>>>><<<<><<<>><<>>>><<<>>>><>><<><<<<>>><<<>><<<>><><<>><<><<<<>><>><<<<>>>><<>>>><<<<>>><<<>><>>>><>>><<<<>>><<<>><<<<>><<>>><<<<><<<<><>>><>>>><>><<>><<<>>>><<<<>><<<<><<<<>>>><>>><<>><>><<<<>>><<<>>><<<><>>>><<<><<<><<>><<<<>>>><<<<><<<<>>><><<<<>><<<<>>><<<<><<><<<><>>><<<<>>>><<<>>><<<<>>>><<<<>><<<>><<<<>><<<><<<<>>>><<<<><<><<<<>>>><<>>><<>><<><>>>><<<>>><>><<<><<<<>>>><>>>><<<>>><<<<>>>><>>>><<<<>>>><<<<>><<<<><<><<><><<<<>>><<<<>>>><<<<>><<<>>><>>><<<>>>><<<<>><<<<>>>><<<<><<>>><><<<<>><<><<<>>>><><<<<>><<<<>>><<<>><<>>>><<<><<<<>>><<>>><<>>><>><<>>>><<>>><<<>>><<<<>>><<<<><<>>><<<><<<>>>><<>><<<>>><<<<>>>><<<>>><<<>>><<<><<<<><>>>><>>><<>>><>>>><<<<><<<><<<<>>>><<<<>>><>>>><>><<<<>>><<<<>><<<>><<>><<<<>>><<<<>>><<<<>><<><><<>><<<<>><<<><>>>><>><<>>><><<>><>>>><><<<>>><<<><<<<>>><<><<<>>><<><>>><<<<>><<<>>>><<<>>>><<<>>><<<<>><<<<>>><<<<><<<><<>><>>><<<><>>><>>>><><<>>><>>>><<<<>>><<<<>>><<<>><>><<<>>>><<<><<<>>>><<<<>>><<><<>>><<>>>><>>>><<<<>>><<>>>><<>><<<<>>><<<<><<<><><<<>>><<<<><<<<>>><<<>><<><>>><<<>><<><<<>>>><<<<><<<>>>><<<>>><<><>>>><>><<<>><<<<>>><<<<><<<<>>><<>>>><<><>>><<<>>>><><><<<<>>><<<>>><>>><<<><<<>>><<<><><<<<>>>><>><>>><<<<>><><<>>>><<<>><<<>>>><<<<>><<<><<>>>><>>>><<<>><<<<>><<<<>><>><<<>>>><><<><<><<<><>>><>><<><<>><<<><<<<><<<<>>>><>>>><<<<>>>><<<>><<<>><<>>>><<<>>><<>><<<>>><<>>><<>>>><<<>><<<>>><<<<><<>><>><>><<>>><<><>><<<>>>><<><<>>><<<<><<><<<>>><<<>>><<<>><<<>>>><<>>>><<<<><<>><<<>>><>>><<>><<<><<<><<>>>><>>><<<>><<<<><>><<<<>>>><<<>><<>><<><<>>><><<><>><<<<>>><<>>>><>>><<<>><>><<<><<><<<<>><<<<>><<>>>><<<>>><<<<>>><<<>>><<<><<<<><<<<><<<<>>>><<>>>><<<<>><>>><<<>>><<<<>>><>><<<<>>><<<<>>><><<<<>>>><<<><<<>><<>><>><<><>>>><<<>>>><<<<>><<<>>>><<>>>><<<<><<><<>><<<<>>>><<<<>>>><<<<>>><<<<><<<><>>>><<<<>>>><><<<<>>>><><<<><<>>>><>>><<<<>><>>>><>>>><<<<>>>><<<>><<<>>><<>>>><<<>><>>><<<>><<<<>>>><<<><<>>><<<>>><<>>>><>>><>>>><<<<>>><>><><>>>><><>>>><<>>><><<<<>>>><>><<>>><<<>><<>>>><>><<>><<<>><<<<>>><<<<>>><<<<>>><><<<<>><<><<>><>><<<<>><<><>>><<<>>>><>><<<><<<>><<<<><>>><<<>>><<<<>><<><<<<>>><>>><>>><<>>><<<<>>><<<><<<>>><<<><<<>>>><>>>><<>>>><><<>>>><<>>>><<<<>>>><>>><<<<>><<>>><<><<<<><<<>>><>>>><<<>><<><>><<<>>>><>>>><<<><<>>>><<<<>><<>>>><>>>><<<>>><<<<><<<><<<<><<<<><<<<>><<<>>><<<>><<>>><>>><>>>><<<<>>><<<<>><<<<>><<>><>><<<<><><<><<<>>>><<<><>><<<<>><<<<>>>><<<<>>>><<>>>><<<<>>>><<<<><<<<>><<<>>><<>>>><>>><<<>>><<<>>><<>>>><<>>>><<>><<<>><<>><<<>><<>>><<>>>><>><>><<<<>>><<>><>><<>>>><>>>><<>><<<<>><<<><<>><<<<>>><<<<><<<>>>><<<<><<<>>>><<<>>><<<<>><<<><<<<><<<<>>>><>>>><<>>>><<<>>>><<<<><<><>>>><>><>>><<<>><>>>><>><><<>>><><<>><><<<>><<<>>>><<<>><<<>>>><<<>>>><>><>><<<>>>><><<<<>><<><>><<>>>><<<>>><<<<><<>>><<<<>>>><<>>>><>>>><<>>>><<<>>>><>>>><>><<<<>>><<<<>>><<<<>><<<<>><<<>>><<<>>>><>><>>><<<>><>>><<<><<>>><<>><><<<<>>><><<>>><<><>>><>>><<<<>><<><>>>><<>>><<>>><<<>><<<<>><<>>><<<>>>><<<<>>>><<>>><<>><<<<><<<>>>><<>>><>>><<<>>>><<<>><<<><>>><>>><<<><<>>>><<<<>>><<<><<<>>><<<<><<<>>><<<<>>><<<<>><<<<>><<>>><<<>>>><<<<>>>><<>><<<<>><>><<>><<<>>>><<><><<>><>><<><<>>>><<<><<<<>>><<<><>><<>>><<<<>><<<>><<<<>>><>><><<<>>><><<<<>>>><<<><<<<>>><<<<>><<<><><<<<>>><<>><>>>><<>>><<<<><<>><>><<>>><<><<<<>>>><<><<<>>><<>>>><<<>>>><>>><<<>>><<>><<<<>><>>><<><<<><>>>><>>>><<<<>>>><<<>><<<<>>><<<>>>><<<<><<>>><<<<>><<<><><>>>><<><<>>>><>>>><<><<<>>><<<<><<<<>>><>>><<<>><<>>><>>><<<>>><<<<>>>><<<><>><<<>>><<>>>><>>>><>>>><<<<>>><>><<>>>><>>><<<>>>><><<>>>><<<><<<<>><><<<<>>><><<>><>>>><<>><<<<>>><>><>><>>><<>>><<>>>><><>><<>>>><<<><<<>>><>>><<<<>><<>>>><<<<>>>><<<<>><<<<>>><<>><<>>>><>>>><>>>><><<<><<<<>>><><<><>>>><<<<>><<>><<<>><<<<>>>><<<><<<<>>>><<<>>><<<<>>><>>>><<<<>><<>>><>>><<>>>><<<<>><<<><<<>>>><><<<><<>><<<>>>><<>><<<<>>>><>><<<<>>><<>>><><>>><>><<<>><>><>>>><<<<>><<<>>><<<><<<<>>><<<>>>><<>>>><<><<<<>>><<<<><<<<>><>><<>>><<<<>>><<<>>><<<>>>><<<<>>>><<<>>><<<><<<<><<<>>>><<<<>>>><<<<>>><>>><<<>>><<<<>><<>><<<>><<<>>><<<<>>><<><<<>><<<>>>><<<<>>>><<<<>><<>>>><<<<>>><<>>>><<<<>>><<<<>>>><>>><<<<>>>><<<>>>><<><<<>><<>>><><>>><<><>>>><<<<><<><<<<>>>><<>>>><>>>><<<<><<>>>><<<<><<<<>>><<<>>>><<>>>><>>><><<<<><<<<>>>><>>>><<><<<><>>>><><><<>>>><>>>><>>>><><<<>><<<>>>><<>><<>>>><<><<><<<>>><<<>>>><<>><<<>>>><>>><<<><<<<>>><>>><<<<>>><<><<>>>><<<>><<><<<>>>><<<<>><<<<>>>><<><<><<<>>>><>><<<>><<>>>><<<<>>><<<>>><<<>>><>>><><<<>>><<<>>><<<>><<<<>>>><><<<>>>><<>>><<>>>><>>>><>><>>><>>>><<<><<<<>>><<>><<><<<>>>><<<>>><<><<<>>><<>>>><>><><<>>>><><>><>>>><<>><<<<>><<>>>><>>>><><>>>><<<<>>>><<<<>>>><<>>><<<>><<<<>>><>>><<<<>><<>>><<<<><<<>><<<<>>><<<>>><>><>>><<<<>>>><<<<>><<<>>>><>>><<>>><>>>><<<>><<<>>>><><<<>>>><<<>>>><<<<>>>><<><<><<<>><>>><<<<>>>><<<<>>>><<>>>><<<><<>><>>>><<<<>>><>>>><<<<>><<<>><<>>><<>>>><<>>><><<<<>>><<>>>><<<><<><<>><>><<<>>>><>><<<>>><><>>>><>>><>>>><<<<><<<<>>>><<<<><<<<><<<>>><<<<><<<<>>><<<<>>><<<>>>><<<<>>>><<>>><<>>><<<><<>>><<<<>>><>><<<>>>><<<>><<<<>><<>>><>>><<<>><<<>>>><><<<><<><<>><>>>><<<>><<<><<>>><<<>>>><><<<>><<<>>><<>>><>>><<<<><<<><>>><<<>>>><>><<<<>>>><>>>><><<>>><>><>><<<<><<<>>><<<><<<>>><<<>>><<<<><<>>><<<><<<><<<<><>>><<>>>><<>>>><<>>><<<>>>><<><>><<<><<<<><<>>>><<<<>>>><>>>><<<>><>>>><<<><<>><><<<<><><<<<><>>><<>>>><<<>><>>>><<><><<<<>><<<>>>><<>>>><<<<>><<<<>><<<>><<<><<<<><<><<<>>><>>><<>><<<>><<<>>><>>>><><><<<<>><<><>><<<<>>>><<<<><<<<>>><>>><<<>>><<<><<<><<>><>><<<>><<><<<<>>>><<<>>>><<<>>>><<>>><<><>>><><>>><<<<><<<><<<>>>><<<<>>>><<<<>>>><>><<<><><><<<>>><<<><<<>><<>>>><<<><<<<>>><><<<>>>><>><<<<>>><<<<>>><>>>><<<>>><<<<>><<>><<<<>><<<><>>><<<<>><>><<<><<>><<<>>><<<<>>>><<>><<<>>>><<>><<<><<<<>>><<>>>><><>>>><<>>>><<<<>><>><<>>><<>>><<><<>>>><<<><<<>><><<<>>><<<>>>><<>><>>>><<>><<<<>>><<<><<<><<<><<<>>><<<>><<<>><><><>><<>>>><<<<>>>><<>><<>><<<><<<<>>>><<<<><>><>><>><<<><<<>>>><>><>>>><><<<<><><<<<><<>><<>>>><<<<>>><<<>>><<<<>><<<<><>>>><<>>><<<>>>><>>><<>>><<<>>><<<>><<>>>><<<><<<<>><>><><<<<>>><<>>><<>>><<><<<><<<<>><>><<>><><<<><<><<<<>>><<<<>><<<><<<><<>>>><<><>>><<>>><>>><<>><<>><<<<>>><<<<>>>><>>><>><<<<>>>><<<>><<<<>><<<><<><<<<><<><<<<><>>><<<>>>><<<<><<<>>><>>>><<<<>>>><<<<><<<><><>>>><><<<<>>>><>><>>><>>>><>>><<>><<>>>><<<>>>><<>><><<<><<<><<<><>>>><<<>>>><<<<>>>><>>>><>>>><<>>><<<>>>><<<><<<<>><<<<>>>><<<>>>><<<>><<<><<<><<>>>><<<<><><<<>><<<><>>><<<>><>><<<<>>>><>><<>><<><>><<<>>>><>>><<<>>><<<<>>>><>>>><<>><>>>><>>>><<<>><>>><>>><<>>><<<<><<>>><<<<><<<<><<><<<<>>>><>>>><<<<>>>><<<>>>><<<<>>>><>>>><<<>>>><<<>>><>>>><<<<><<<<>><<<><<>>><<<<><<>>><<>>>><<<>>><<<>>><<>>><>>><<>><<>>>><<<<><<<<>>>><<<>><<<<>>>><>>><<<>>><>>><<>>>><<<>>><<<>><<>><<<>>>><>><<><<>>><>><>>><<<<>>>><<<<>><>><<>><>>><<<<>>><<<<>>>><><<<>>>><<<<>>><<<<>><>>><<>><>><>><<>>><<>>><<<>>>><><<<<>>>><<<>><<<<>>><<<<><><<<<><<>><<<<>><>><<<<>><<>><>>><<>><<>>>><<<>><<<>>>><<<>>><<<>>><<>>><<<<><<>>><<>><<<<>>>><<<<>>>><<<<>>>><<
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_18.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_18.tst.data
new file mode 100644
index 0000000..ff3599f
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_18.tst.data
@@ -0,0 +1,2150 @@
+13,2,10
+3,6,9
+11,17,9
+7,2,11
+14,6,5
+13,16,8
+9,7,2
+3,9,14
+8,3,5
+3,12,9
+7,3,7
+13,2,13
+4,6,5
+13,4,9
+4,8,10
+15,5,8
+17,14,11
+13,17,11
+13,7,2
+11,14,4
+8,9,17
+14,7,15
+4,10,4
+9,12,2
+8,5,13
+14,15,6
+15,14,11
+8,16,10
+2,13,10
+8,18,8
+14,14,5
+3,5,7
+18,8,10
+13,14,11
+6,8,17
+14,10,16
+15,6,6
+16,13,10
+14,4,7
+5,3,5
+10,14,2
+4,13,5
+12,10,1
+6,7,15
+5,10,3
+6,15,13
+14,13,3
+13,14,16
+9,6,16
+10,14,16
+13,16,10
+4,3,10
+2,11,6
+9,12,16
+8,1,8
+9,2,7
+16,10,16
+5,10,15
+16,5,12
+5,11,13
+7,15,8
+5,14,14
+3,8,8
+5,16,6
+5,12,16
+11,16,4
+3,6,10
+8,12,2
+9,10,2
+4,12,8
+9,13,17
+7,12,16
+5,16,13
+12,11,18
+4,10,17
+5,14,6
+5,13,13
+3,7,5
+6,16,11
+3,11,5
+15,11,15
+4,6,14
+5,2,8
+5,13,12
+14,6,16
+3,5,8
+15,15,14
+15,8,15
+16,7,4
+10,4,3
+17,12,7
+7,16,7
+6,10,17
+9,2,9
+10,18,9
+15,7,8
+16,16,12
+3,4,11
+16,15,11
+13,16,5
+13,4,6
+13,3,13
+15,12,11
+14,3,11
+9,16,11
+3,13,8
+13,6,15
+6,14,6
+12,2,11
+3,5,12
+7,17,8
+5,15,5
+8,11,2
+14,3,10
+11,16,8
+4,12,4
+10,11,3
+16,7,12
+5,5,14
+2,7,10
+13,7,17
+16,5,11
+15,6,13
+8,8,18
+3,10,5
+2,6,11
+10,4,5
+12,7,17
+3,9,6
+17,7,11
+10,5,16
+17,6,11
+10,2,12
+7,10,18
+8,16,11
+11,15,15
+16,10,5
+10,16,4
+4,16,6
+15,4,11
+2,9,9
+3,7,6
+5,3,6
+10,16,5
+13,15,11
+3,4,9
+3,8,12
+6,5,4
+2,9,8
+2,7,7
+16,14,14
+15,10,15
+16,10,13
+9,14,4
+2,7,6
+13,3,11
+17,13,10
+12,2,10
+8,16,13
+16,11,11
+12,10,17
+6,15,11
+10,17,13
+6,10,4
+8,12,4
+3,11,14
+9,5,4
+15,6,14
+6,6,4
+14,5,5
+17,10,9
+18,11,11
+5,4,5
+15,5,15
+12,5,13
+3,8,7
+13,3,14
+13,8,3
+3,5,10
+10,17,7
+15,15,13
+14,13,15
+5,14,12
+12,3,11
+14,13,5
+13,17,9
+5,8,17
+8,2,11
+10,11,2
+9,5,1
+11,3,9
+14,4,10
+11,12,2
+10,14,17
+17,11,11
+11,16,11
+9,11,1
+5,4,13
+17,9,10
+2,11,12
+10,9,17
+12,16,7
+16,12,8
+11,7,1
+12,8,17
+18,7,11
+10,4,17
+5,5,3
+2,10,13
+8,5,14
+3,9,10
+6,5,14
+7,7,2
+8,2,7
+15,9,16
+10,14,4
+5,15,7
+14,13,12
+17,14,8
+16,11,8
+15,6,15
+3,11,15
+10,6,2
+11,14,16
+10,5,14
+2,8,11
+12,4,16
+9,17,12
+4,4,11
+12,16,6
+2,9,6
+15,7,10
+7,8,2
+11,2,11
+5,6,3
+11,18,8
+4,10,10
+12,4,15
+2,14,10
+7,11,2
+13,11,16
+2,9,11
+4,14,6
+12,8,18
+4,7,15
+8,12,17
+3,15,7
+15,16,8
+3,7,15
+10,2,13
+12,16,11
+15,4,13
+14,10,2
+12,15,15
+5,12,15
+12,15,4
+9,10,18
+9,8,2
+14,15,12
+3,13,11
+13,17,10
+2,10,12
+6,17,7
+15,14,7
+8,2,6
+11,5,5
+7,8,3
+4,7,8
+9,3,11
+13,4,3
+14,3,8
+13,4,4
+14,15,5
+4,6,7
+6,14,7
+6,2,7
+6,5,5
+11,3,6
+10,15,5
+6,3,13
+13,14,6
+13,14,15
+3,9,7
+14,3,7
+8,9,18
+14,8,12
+13,3,8
+15,15,9
+7,16,4
+6,18,9
+10,15,3
+6,16,12
+9,14,2
+12,3,8
+9,11,15
+4,15,9
+8,2,9
+8,11,1
+14,11,15
+11,11,1
+1,11,9
+14,7,13
+6,10,16
+15,12,5
+12,3,7
+15,11,7
+12,13,14
+12,10,3
+5,4,7
+12,13,17
+6,9,17
+14,8,3
+2,9,10
+17,9,6
+4,15,5
+4,13,6
+10,12,16
+3,8,4
+11,1,9
+2,6,13
+2,12,4
+11,10,17
+13,15,16
+9,2,6
+6,11,3
+3,7,13
+8,15,13
+15,7,7
+3,12,12
+17,9,11
+13,13,15
+12,2,7
+5,9,15
+7,15,13
+9,4,16
+9,14,14
+11,10,2
+16,8,12
+10,3,5
+11,18,9
+11,13,15
+3,14,9
+8,18,13
+8,10,17
+6,13,3
+5,13,14
+7,4,5
+15,14,8
+8,18,10
+4,5,10
+16,6,11
+15,13,10
+12,16,9
+9,5,16
+4,14,10
+11,17,11
+12,17,10
+17,8,8
+15,3,12
+14,11,17
+16,5,9
+11,8,1
+5,12,3
+9,3,7
+14,7,3
+16,11,14
+15,9,7
+14,11,6
+11,1,7
+2,12,10
+6,3,8
+3,5,9
+10,10,2
+4,6,11
+4,10,8
+6,12,17
+13,3,10
+8,9,1
+4,5,12
+3,13,7
+14,5,4
+10,2,6
+3,14,10
+17,6,8
+15,13,7
+9,5,15
+10,5,4
+11,14,15
+16,5,8
+8,3,11
+4,15,6
+16,15,8
+16,8,6
+13,15,13
+2,6,12
+3,14,15
+16,7,14
+5,14,5
+10,16,14
+17,7,9
+14,15,7
+4,7,5
+14,14,4
+6,7,17
+0,10,7
+6,16,8
+17,15,9
+4,8,14
+14,14,6
+5,5,8
+13,13,4
+3,12,5
+7,17,11
+13,14,14
+15,8,3
+3,10,14
+8,6,1
+7,3,8
+6,12,16
+17,10,8
+11,8,17
+17,8,6
+14,5,6
+7,2,7
+12,16,15
+14,3,14
+17,9,7
+12,18,6
+3,14,12
+15,12,15
+14,5,13
+17,11,6
+7,13,2
+3,6,7
+17,8,5
+14,15,9
+13,11,3
+16,14,11
+8,17,11
+13,6,2
+10,17,14
+12,12,15
+5,7,16
+7,14,4
+7,2,9
+5,6,4
+15,14,5
+16,3,7
+14,4,4
+4,13,9
+9,16,15
+8,17,8
+15,6,11
+11,12,16
+14,17,7
+5,15,6
+16,11,12
+5,16,10
+12,4,6
+3,13,10
+1,8,9
+7,2,10
+7,13,17
+19,9,11
+6,11,16
+9,18,10
+16,11,4
+13,7,16
+10,3,7
+15,13,13
+8,11,4
+5,15,12
+17,10,6
+14,12,15
+17,13,8
+6,13,15
+7,7,16
+10,2,8
+4,13,13
+9,15,14
+9,4,3
+6,4,8
+5,10,16
+4,7,16
+13,10,16
+5,6,15
+8,10,16
+7,16,6
+7,7,17
+3,11,12
+12,7,1
+16,12,15
+6,16,6
+10,17,11
+7,5,13
+10,14,13
+16,7,5
+11,13,17
+7,7,4
+6,5,13
+9,16,6
+4,9,4
+13,16,13
+5,11,5
+5,3,8
+11,4,9
+17,9,9
+6,4,7
+15,9,6
+8,5,16
+3,12,14
+12,17,9
+3,8,9
+6,2,8
+15,9,14
+2,6,10
+18,11,7
+4,3,8
+12,11,16
+17,13,7
+2,10,6
+1,13,7
+16,6,6
+6,14,14
+12,10,2
+3,5,5
+15,9,15
+15,5,6
+3,6,14
+9,5,3
+11,3,11
+7,5,15
+13,11,4
+7,5,5
+13,8,16
+15,13,6
+2,7,8
+16,14,10
+6,6,15
+15,16,9
+10,17,10
+8,4,6
+6,16,13
+17,4,10
+5,9,3
+9,13,2
+6,17,9
+9,13,16
+7,9,18
+9,17,10
+11,2,9
+17,7,7
+7,2,12
+8,13,17
+16,11,5
+18,7,9
+12,13,2
+9,15,9
+9,2,11
+13,3,15
+1,10,12
+3,12,10
+14,4,8
+13,15,5
+7,13,16
+3,15,9
+15,12,16
+12,4,13
+10,6,17
+11,10,18
+6,17,10
+14,6,10
+12,5,15
+7,9,1
+7,5,17
+5,3,9
+13,15,7
+4,4,8
+7,8,17
+3,12,13
+17,8,13
+9,3,12
+1,14,9
+4,14,12
+9,16,16
+10,10,17
+5,8,16
+6,16,15
+11,15,3
+12,9,2
+2,8,6
+6,11,17
+7,8,16
+6,6,3
+3,6,6
+6,2,10
+7,15,12
+9,4,2
+11,3,14
+16,15,13
+13,14,13
+16,15,7
+14,9,7
+6,3,7
+15,16,11
+5,15,13
+2,10,4
+5,11,14
+15,14,14
+7,3,10
+12,15,14
+7,5,4
+14,11,3
+7,1,11
+13,2,12
+5,2,9
+10,4,16
+9,17,6
+6,8,4
+15,5,5
+12,2,6
+3,8,6
+7,12,17
+12,16,10
+16,13,8
+15,3,8
+17,9,8
+10,2,9
+12,8,5
+16,7,13
+14,16,8
+4,12,16
+8,3,6
+7,18,6
+12,5,5
+10,2,14
+17,6,12
+7,9,17
+5,3,10
+15,4,14
+14,2,10
+12,6,4
+7,16,12
+6,17,8
+15,9,4
+15,7,13
+7,9,4
+6,3,6
+2,13,7
+3,12,8
+3,8,15
+8,3,8
+7,16,5
+12,6,2
+3,12,4
+6,10,2
+17,8,10
+11,2,10
+6,16,9
+8,15,4
+9,9,18
+17,13,9
+3,9,13
+9,15,12
+12,11,3
+18,7,8
+12,4,5
+9,5,6
+10,7,2
+2,8,7
+2,8,13
+10,6,16
+9,3,15
+3,7,4
+1,9,9
+13,16,12
+11,5,15
+4,8,16
+14,4,9
+5,6,14
+11,7,18
+12,12,3
+17,6,7
+16,6,13
+14,15,14
+11,11,17
+15,5,11
+7,15,14
+10,3,16
+15,15,5
+2,11,7
+13,13,16
+5,5,4
+7,5,3
+12,3,15
+14,14,7
+8,16,14
+4,10,13
+5,8,13
+17,14,10
+16,12,5
+5,17,12
+2,10,11
+10,1,10
+16,11,6
+11,3,5
+18,9,12
+16,13,12
+15,10,3
+13,2,8
+2,12,7
+8,7,16
+6,15,14
+15,7,3
+16,6,10
+12,15,12
+9,15,4
+10,12,3
+3,13,9
+8,6,4
+8,5,15
+5,3,13
+16,14,5
+4,12,5
+18,12,9
+16,6,9
+16,14,8
+8,5,4
+10,7,3
+13,4,5
+6,14,4
+8,10,2
+12,16,13
+12,11,17
+10,6,5
+4,5,7
+18,8,9
+17,6,9
+9,16,9
+17,8,7
+6,9,2
+10,8,2
+4,16,8
+8,17,14
+8,15,15
+14,12,13
+16,10,9
+8,16,6
+2,9,13
+2,8,14
+5,10,14
+7,15,3
+10,4,15
+5,8,15
+4,10,15
+14,7,6
+15,6,12
+9,16,4
+13,16,11
+5,5,13
+12,3,14
+10,15,2
+8,2,13
+13,12,15
+3,3,9
+4,4,6
+14,7,4
+6,14,12
+14,7,17
+5,9,4
+13,4,13
+8,12,16
+8,2,14
+3,13,12
+10,18,6
+17,11,5
+13,9,3
+14,16,12
+2,13,12
+11,14,17
+8,17,12
+4,14,13
+14,8,2
+11,2,6
+8,13,3
+9,4,15
+10,2,15
+12,11,4
+2,14,9
+4,14,5
+15,4,9
+7,2,13
+9,16,10
+9,12,17
+13,5,4
+16,4,12
+11,16,13
+7,3,14
+7,13,3
+12,7,16
+14,12,16
+9,16,7
+11,12,4
+11,3,12
+13,18,7
+16,9,14
+16,14,6
+1,7,7
+16,12,10
+16,8,14
+14,10,4
+15,10,14
+14,14,15
+15,15,6
+12,14,4
+11,6,3
+16,9,6
+17,12,11
+5,6,5
+8,17,9
+17,8,4
+5,4,14
+17,12,10
+6,4,5
+4,4,10
+15,6,5
+18,6,9
+4,12,9
+12,7,3
+8,10,18
+16,12,13
+9,5,5
+5,13,15
+14,4,12
+4,7,6
+10,9,2
+1,12,10
+12,2,8
+7,14,3
+8,9,2
+3,6,11
+17,9,12
+6,3,9
+4,8,4
+16,7,6
+4,10,16
+5,14,13
+5,15,9
+12,16,4
+6,7,2
+12,2,13
+8,5,3
+9,9,2
+10,6,3
+12,4,11
+11,2,7
+9,10,4
+11,16,5
+13,12,3
+11,8,2
+1,10,8
+9,15,17
+7,11,16
+5,5,11
+11,14,3
+11,17,8
+12,16,8
+4,4,5
+10,3,15
+8,4,5
+1,7,8
+4,2,7
+3,7,14
+11,6,2
+13,17,7
+15,11,3
+13,15,12
+6,5,15
+1,6,10
+4,13,4
+6,2,13
+8,3,13
+5,4,6
+15,12,4
+9,7,17
+14,7,16
+8,11,18
+14,12,4
+7,16,10
+13,2,11
+12,9,18
+10,1,9
+18,9,11
+14,12,5
+9,17,7
+17,7,12
+5,14,9
+13,9,1
+10,5,15
+16,11,16
+4,3,11
+3,4,12
+4,5,5
+14,12,3
+10,6,4
+12,15,7
+2,9,12
+8,6,15
+3,14,11
+9,16,5
+17,11,9
+7,17,7
+3,7,3
+13,10,17
+2,12,13
+7,3,11
+13,7,3
+3,5,6
+11,17,6
+16,10,11
+13,4,14
+6,7,3
+11,7,16
+3,6,13
+9,16,12
+13,16,7
+9,2,10
+9,15,15
+6,12,2
+11,15,5
+5,11,6
+5,13,5
+16,4,9
+13,3,9
+16,8,15
+13,11,2
+9,3,5
+8,16,5
+14,3,12
+4,11,3
+9,2,12
+2,10,8
+3,8,14
+5,11,4
+6,14,11
+16,10,12
+9,17,8
+4,7,7
+7,16,11
+10,9,1
+6,5,12
+12,4,7
+15,14,9
+8,12,18
+14,6,14
+8,7,3
+8,8,17
+8,4,14
+2,8,9
+14,5,14
+4,4,14
+13,3,6
+2,12,11
+6,10,15
+14,8,15
+16,5,13
+11,13,4
+16,13,6
+1,10,6
+17,6,10
+5,7,2
+8,6,17
+11,4,4
+15,4,7
+13,3,5
+13,17,5
+13,4,8
+13,5,14
+8,3,4
+8,3,10
+10,13,2
+8,8,2
+17,11,10
+14,14,14
+11,4,5
+14,16,7
+3,14,8
+8,3,14
+9,3,16
+15,14,12
+12,11,2
+15,4,6
+7,10,17
+5,7,5
+5,5,5
+16,14,9
+11,12,17
+8,7,18
+9,10,1
+11,11,3
+11,2,13
+9,16,14
+6,15,15
+11,2,8
+9,12,18
+3,7,7
+14,15,8
+4,6,8
+4,11,4
+7,4,6
+13,9,15
+6,7,5
+7,15,16
+12,9,1
+10,12,2
+2,11,9
+13,3,12
+3,4,10
+3,8,3
+16,10,4
+10,13,3
+4,4,7
+3,10,12
+9,9,17
+7,14,16
+6,17,12
+6,8,3
+7,18,10
+2,12,9
+8,9,3
+2,5,10
+9,1,8
+17,6,13
+12,3,6
+2,11,8
+2,7,9
+8,4,15
+17,14,9
+16,8,4
+17,12,13
+12,3,5
+10,3,13
+2,10,14
+7,16,8
+5,10,2
+14,5,8
+9,14,16
+11,6,4
+17,5,11
+16,6,7
+16,11,9
+13,16,6
+7,4,14
+5,7,6
+10,5,3
+3,6,12
+14,5,15
+3,10,15
+12,4,3
+8,6,2
+9,8,17
+6,16,7
+12,11,1
+4,12,6
+7,6,3
+12,4,12
+8,14,4
+2,11,11
+14,17,13
+8,16,12
+13,15,4
+6,12,3
+9,16,8
+10,9,0
+7,10,2
+15,10,4
+16,5,6
+12,6,16
+16,9,5
+17,11,15
+5,15,10
+3,12,11
+15,6,9
+6,11,4
+13,10,4
+14,16,11
+12,18,8
+13,10,3
+15,12,7
+11,16,10
+4,7,4
+13,15,6
+10,5,2
+11,7,15
+7,2,8
+17,7,10
+10,17,8
+14,10,3
+15,9,17
+18,11,9
+6,6,16
+13,6,4
+6,4,13
+8,7,17
+7,3,4
+2,13,8
+12,1,6
+5,9,16
+13,5,6
+10,17,12
+13,11,17
+7,12,3
+14,9,15
+11,13,16
+14,9,14
+14,8,4
+12,14,3
+16,13,4
+11,9,2
+2,6,9
+4,9,7
+16,11,10
+17,11,8
+3,4,8
+5,14,11
+3,5,11
+4,14,11
+14,17,12
+3,7,9
+5,11,3
+11,11,2
+11,16,16
+9,16,13
+5,13,4
+15,11,4
+13,15,14
+14,11,14
+10,8,4
+11,7,3
+6,15,5
+11,5,3
+15,15,7
+11,16,15
+16,4,7
+7,16,13
+6,12,15
+3,9,15
+9,15,5
+9,1,10
+10,19,11
+14,4,6
+6,13,2
+18,12,11
+3,15,11
+12,13,16
+9,17,13
+16,10,14
+8,15,5
+6,3,15
+9,11,17
+14,9,17
+12,6,6
+4,9,15
+7,18,8
+9,1,12
+1,10,9
+11,5,17
+17,11,12
+12,18,11
+11,9,4
+14,9,16
+2,12,5
+5,4,9
+17,7,8
+3,10,3
+14,16,13
+6,7,4
+17,12,9
+8,17,5
+10,3,6
+13,3,7
+7,3,9
+8,9,16
+4,14,8
+10,11,16
+10,3,14
+5,17,11
+1,7,11
+0,9,10
+4,7,14
+4,13,14
+8,5,17
+17,13,12
+4,13,15
+17,7,5
+8,10,3
+6,6,6
+7,15,15
+6,12,18
+11,4,15
+4,2,6
+19,10,12
+11,1,12
+4,15,8
+13,10,14
+15,4,12
+15,13,4
+8,14,16
+11,15,6
+4,14,15
+16,6,4
+17,9,14
+12,2,5
+12,14,15
+11,10,16
+4,3,12
+12,16,12
+16,13,11
+10,7,18
+12,3,12
+5,6,13
+13,6,1
+13,4,10
+5,16,8
+15,12,14
+13,16,14
+10,16,13
+16,8,11
+7,14,17
+9,8,1
+15,14,15
+7,4,12
+15,8,4
+11,4,3
+11,18,7
+4,4,9
+5,4,12
+8,3,12
+6,16,10
+1,7,9
+4,11,15
+4,17,11
+4,12,14
+13,17,8
+2,10,10
+12,7,15
+18,9,9
+8,2,12
+14,6,2
+3,7,8
+9,8,3
+5,16,7
+13,9,2
+0,10,8
+13,7,4
+18,11,6
+5,11,17
+3,7,11
+8,17,10
+10,3,10
+1,10,7
+7,9,2
+12,13,4
+15,11,16
+9,18,13
+13,4,7
+11,9,17
+10,15,14
+16,10,15
+7,4,13
+12,9,17
+4,8,12
+10,10,1
+5,7,13
+14,17,9
+14,14,12
+15,12,13
+5,6,16
+18,9,7
+18,11,12
+12,8,3
+4,5,8
+6,7,16
+11,12,18
+16,12,14
+9,2,14
+12,8,16
+2,6,8
+6,5,16
+7,17,6
+8,1,10
+1,13,10
+10,16,15
+2,13,13
+9,3,13
+14,13,14
+14,5,9
+15,10,16
+14,9,4
+5,14,8
+6,6,17
+18,10,13
+15,15,12
+3,10,7
+11,16,9
+10,2,7
+8,18,7
+14,4,5
+8,13,4
+7,12,2
+7,4,7
+16,15,9
+10,9,18
+14,6,15
+11,7,17
+17,10,14
+14,11,4
+14,13,16
+10,8,19
+4,13,3
+11,13,14
+2,7,11
+13,17,13
+14,7,5
+10,1,8
+5,17,9
+3,9,5
+9,8,18
+7,18,9
+11,10,3
+2,8,12
+14,9,3
+10,18,8
+1,9,8
+15,8,5
+4,9,12
+4,6,4
+11,3,13
+15,10,5
+1,9,12
+3,11,7
+8,7,2
+17,9,13
+9,12,1
+3,11,11
+7,2,6
+4,11,16
+5,11,15
+12,6,3
+7,14,5
+15,13,14
+5,17,10
+12,12,17
+3,12,6
+13,11,1
+8,3,15
+10,7,16
+3,9,8
+3,7,10
+12,7,2
+5,12,5
+4,11,13
+11,9,16
+6,2,12
+11,6,6
+10,17,9
+6,12,4
+9,6,3
+3,13,13
+3,5,13
+7,17,12
+11,13,3
+3,10,11
+16,15,10
+2,9,7
+11,11,18
+2,15,9
+17,6,4
+3,6,5
+12,6,15
+14,8,14
+2,8,10
+10,8,1
+10,2,11
+5,3,7
+5,13,2
+12,10,15
+9,2,5
+4,12,15
+2,12,8
+16,13,14
+6,3,11
+16,8,8
+16,13,5
+4,12,3
+15,7,15
+5,5,15
+17,8,15
+10,13,16
+8,1,7
+7,9,3
+9,13,3
+13,13,3
+5,2,12
+13,14,4
+13,5,15
+9,10,17
+11,4,13
+9,3,14
+7,15,4
+13,6,16
+3,5,14
+11,17,13
+2,13,6
+7,6,17
+11,5,16
+2,12,12
+16,11,15
+16,10,10
+4,16,12
+16,9,4
+8,14,7
+7,13,15
+11,17,5
+10,2,5
+16,7,10
+13,5,9
+15,12,6
+12,2,12
+4,13,10
+6,14,16
+9,9,16
+12,15,13
+2,7,5
+10,1,7
+12,1,12
+7,3,5
+13,14,5
+7,14,15
+16,9,10
+16,12,7
+2,10,7
+4,7,12
+4,6,12
+3,15,13
+5,14,10
+7,7,1
+12,16,16
+18,10,8
+4,10,14
+2,12,6
+12,5,16
+5,12,4
+11,15,16
+17,10,13
+11,2,14
+3,13,5
+17,8,9
+13,8,15
+10,3,11
+1,8,11
+3,9,12
+4,8,13
+4,11,9
+4,15,10
+7,11,3
+15,7,6
+14,5,11
+8,11,17
+15,8,13
+10,12,1
+16,9,16
+10,2,4
+17,5,9
+14,11,16
+5,10,4
+17,10,7
+10,8,17
+15,5,7
+15,12,12
+11,17,12
+16,7,7
+14,6,3
+8,4,16
+8,14,3
+4,8,15
+10,15,4
+15,5,9
+18,9,8
+15,14,13
+7,4,11
+12,2,15
+6,9,4
+15,7,16
+10,6,1
+16,9,3
+14,15,10
+8,2,10
+6,4,11
+12,14,17
+10,5,6
+10,3,12
+16,15,6
+14,16,6
+5,3,11
+16,8,13
+9,15,16
+12,5,3
+10,15,17
+12,12,16
+9,6,2
+8,6,18
+12,7,4
+15,10,2
+1,6,11
+5,4,8
+15,14,6
+6,4,16
+10,9,3
+4,4,12
+16,8,10
+11,14,11
+8,4,4
+12,13,3
+15,10,13
+6,15,4
+17,11,7
+1,10,10
+14,4,13
+7,11,1
+11,5,13
+10,11,1
+1,9,10
+5,5,7
+2,8,5
+9,3,8
+10,1,11
+15,5,4
+11,16,6
+6,15,16
+12,5,14
+8,7,1
+9,1,11
+14,11,2
+8,4,3
+13,10,15
+14,2,11
+5,13,3
+5,8,4
+12,16,5
+6,8,2
+17,8,11
+6,2,9
+1,11,8
+13,14,12
+13,5,13
+8,11,3
+6,4,15
+4,10,5
+13,13,14
+7,12,14
+3,13,4
+8,5,8
+4,17,9
+10,16,6
+17,7,6
+7,4,4
+9,5,13
+6,8,14
+10,16,12
+15,3,11
+17,5,12
+4,15,13
+9,7,18
+11,9,15
+18,9,10
+4,5,11
+15,3,6
+15,5,12
+3,14,5
+13,6,3
+9,11,2
+6,11,15
+10,15,15
+14,16,10
+3,11,6
+4,12,13
+14,14,10
+7,16,9
+10,17,5
+8,6,3
+6,9,18
+1,9,11
+11,11,15
+16,8,5
+2,11,10
+13,8,17
+6,1,9
+5,2,11
+0,8,9
+11,1,11
+6,16,5
+17,11,13
+12,3,13
+4,12,17
+18,13,8
+6,15,6
+2,8,8
+14,5,7
+6,14,5
+13,13,5
+1,10,11
+12,1,9
+15,5,13
+11,2,12
+4,15,7
+10,15,16
+13,12,4
+16,8,7
+5,6,10
+14,8,16
+9,13,6
+10,4,14
+14,4,14
+9,8,16
+12,15,16
+14,2,9
+15,5,10
+10,4,4
+7,17,13
+8,17,4
+11,15,14
+7,3,13
+14,7,14
+10,2,10
+2,11,13
+15,14,10
+10,16,7
+9,8,4
+8,16,15
+4,5,4
+5,12,14
+14,6,13
+16,4,10
+16,12,9
+15,12,3
+6,13,16
+11,16,12
+13,13,2
+5,4,11
+18,11,10
+16,13,13
+6,3,10
+17,10,10
+14,13,6
+16,6,15
+15,4,10
+17,10,11
+6,10,3
+10,14,7
+12,9,16
+4,9,5
+11,15,7
+11,12,3
+11,4,7
+9,11,3
+11,9,3
+16,14,12
+13,6,13
+15,9,13
+9,17,9
+9,6,1
+1,8,10
+7,2,14
+6,16,14
+7,5,2
+5,13,6
+14,11,5
+7,2,15
+11,6,17
+4,9,14
+14,14,11
+8,6,16
+3,9,3
+8,13,16
+16,9,7
+6,14,3
+4,9,3
+3,8,13
+15,3,10
+11,9,18
+3,8,5
+17,6,6
+4,3,9
+6,8,16
+13,2,6
+17,15,11
+14,6,4
+4,8,3
+10,10,3
+2,5,9
+9,13,18
+12,4,14
+6,17,11
+2,13,9
+9,7,1
+5,14,7
+8,14,15
+10,10,18
+11,3,15
+3,15,8
+11,15,4
+13,7,15
+14,6,6
+6,9,3
+13,17,12
+8,8,1
+10,4,13
+6,11,18
+12,13,15
+3,11,13
+16,13,7
+10,4,6
+7,6,15
+10,16,16
+5,9,14
+1,6,9
+7,15,11
+7,9,5
+4,5,13
+6,9,6
+12,3,9
+7,7,3
+17,6,5
+14,15,13
+9,11,18
+4,12,7
+6,6,5
+14,3,13
+7,15,5
+6,4,12
+4,6,13
+6,11,5
+7,1,8
+11,18,12
+5,7,12
+16,15,12
+3,14,7
+9,4,14
+3,11,8
+5,17,7
+12,16,14
+9,18,9
+10,12,17
+14,16,9
+6,11,1
+17,5,8
+11,3,4
+10,0,12
+8,17,13
+9,4,12
+4,2,10
+7,13,4
+14,2,7
+18,12,10
+3,7,12
+14,17,11
+11,10,1
+6,6,14
+7,17,10
+13,2,7
+11,16,14
+10,7,1
+7,4,15
+12,4,2
+12,9,3
+3,11,10
+11,5,4
+5,7,14
+16,13,15
+13,9,17
+4,2,11
+7,16,14
+4,11,14
+15,6,4
+16,6,5
+15,7,14
+12,17,12
+5,17,8
+1,12,12
+14,13,8
+10,13,4
+7,18,7
+17,10,12
+5,15,14
+17,8,12
+10,14,3
+7,14,14
+9,1,9
+10,11,18
+5,12,17
+7,6,18
+16,6,8
+6,5,3
+16,5,7
+9,11,16
+11,14,2
+3,10,4
+3,12,7
+6,4,6
+7,17,9
+9,6,17
+5,8,3
+7,13,18
+4,11,5
+6,6,2
+17,12,12
+6,14,15
+11,7,2
+4,9,16
+17,12,8
+5,16,14
+12,4,4
+13,15,8
+9,9,15
+4,8,7
+10,3,3
+13,14,7
+11,15,8
+14,12,14
+13,13,17
+10,16,8
+1,12,9
+12,18,10
+15,10,17
+13,5,3
+7,11,18
+8,18,11
+12,10,16
+14,8,5
+4,6,15
+6,4,14
+6,9,16
+18,6,7
+6,7,6
+16,9,15
+16,5,10
+16,7,11
+9,14,3
+14,5,12
+13,4,15
+16,6,14
+15,9,2
+3,16,9
+17,13,11
+16,10,6
+4,6,9
+10,16,10
+14,15,11
+6,15,10
+7,10,16
+8,13,2
+8,2,8
+2,11,5
+4,11,12
+6,6,13
+6,1,10
+13,12,17
+8,3,7
+3,8,10
+16,3,9
+15,3,13
+5,13,16
+1,11,13
+15,13,15
+15,2,9
+13,2,9
+14,14,8
+13,9,4
+3,13,6
+13,8,2
+7,1,10
+11,13,2
+14,10,17
+3,9,11
+6,5,7
+4,14,14
+8,6,5
+14,4,11
+7,7,15
+12,1,13
+12,5,6
+16,7,15
+15,13,12
+8,15,6
+4,14,7
+9,3,9
+3,11,4
+10,18,10
+9,12,3
+13,5,10
+15,13,11
+12,5,4
+14,9,2
+15,15,11
+5,16,9
+4,7,11
+17,6,14
+12,14,16
+6,15,7
+2,4,12
+11,11,16
+4,14,9
+2,15,11
+4,15,15
+10,18,12
+7,7,5
+9,13,15
+18,8,13
+10,18,11
+11,2,5
+15,9,5
+5,5,6
+7,15,7
+1,8,8
+11,4,12
+16,13,9
+11,14,12
+11,14,5
+9,4,4
+16,9,13
+15,9,3
+15,11,12
+15,16,10
+4,5,6
+1,11,6
+8,18,9
+9,3,4
+4,5,9
+5,18,9
+4,5,14
+8,8,16
+15,13,5
+5,9,2
+10,8,16
+8,4,11
+4,6,3
+3,6,8
+13,6,17
+10,19,9
+14,3,4
+14,14,13
+9,17,14
+6,5,6
+0,10,10
+16,11,13
+11,17,7
+16,10,7
+4,6,6
+11,6,15
+8,12,3
+11,13,18
+12,8,1
+1,7,12
+15,4,8
+16,4,11
+14,3,9
+13,11,14
+11,4,14
+17,14,7
+12,1,11
+8,14,5
+18,10,10
+2,10,5
+4,9,13
+6,18,7
+16,7,9
+15,13,16
+17,4,9
+15,17,11
+8,11,16
+9,4,17
+12,3,10
+3,15,10
+11,3,8
+4,16,11
+8,17,7
+4,13,11
+13,9,18
+10,4,12
+16,11,7
+3,9,4
+15,8,14
+6,14,13
+13,6,14
+2,5,8
+6,4,4
+6,12,5
+5,16,11
+10,6,15
+11,4,10
+11,3,7
+18,8,8
+5,7,3
+3,9,9
+18,10,11
+14,13,4
+16,12,6
+4,2,9
+7,11,17
+11,18,11
+9,7,16
+7,6,5
+13,17,14
+6,4,3
+3,16,8
+7,16,15
+8,16,4
+7,8,18
+10,11,4
+7,9,16
+2,9,14
+9,4,7
+10,0,9
+15,6,7
+13,11,15
+12,12,2
+9,18,11
+8,5,2
+10,12,18
+4,10,2
+4,8,11
+13,12,5
+15,15,8
+13,8,4
+3,15,5
+5,8,5
+7,3,6
+5,10,13
+8,13,1
+17,10,15
+9,9,1
+9,15,3
+8,4,2
+7,17,5
+11,16,7
+10,15,7
+6,3,5
+11,5,2
+13,10,2
+6,18,11
+6,11,2
+4,10,3
+8,10,1
+13,14,3
+3,10,8
+10,6,18
+11,9,14
+5,9,5
+8,5,5
+14,3,6
+1,9,7
+5,13,7
+10,3,4
+8,8,3
+5,16,12
+4,14,4
+8,18,12
+6,3,12
+18,12,6
+9,4,11
+4,4,13
+3,3,12
+1,8,12
+15,11,13
+13,12,16
+5,6,8
+18,6,11
+6,9,5
+15,7,9
+2,6,6
+12,17,7
+4,15,11
+6,13,4
+12,14,5
+3,3,7
+9,1,14
+14,8,6
+7,10,4
+2,14,7
+14,17,8
+3,10,16
+12,14,14
+10,10,16
+4,7,9
+14,6,7
+8,4,13
+16,5,5
+12,8,2
+6,9,1
+11,1,8
+1,7,10
+5,5,16
+13,15,15
+3,7,16
+7,5,7
+7,3,12
+4,13,7
+9,4,5
+14,14,3
+8,14,6
+10,8,3
+5,8,6
+9,18,8
+13,8,5
+13,12,2
+5,10,17
+18,8,12
+9,4,9
+3,10,6
+10,9,16
+9,17,11
+12,13,5
+15,7,12
+8,15,7
+17,4,11
+3,3,8
+8,15,16
+5,7,4
+4,4,15
+13,5,5
+13,16,9
+16,12,12
+10,6,13
+7,12,5
+18,10,12
+9,3,10
+10,3,9
+5,14,15
+6,1,11
+17,7,13
+18,13,10
+12,17,6
+10,7,17
+17,13,13
+2,7,13
+6,18,12
+15,12,8
+12,6,17
+8,17,6
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_19.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_19.tst.data
new file mode 100644
index 0000000..2c947d1
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_19.tst.data
@@ -0,0 +1,30 @@
+Blueprint 1: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 20 clay. Each geode robot costs 3 ore and 18 obsidian.
+Blueprint 2: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 16 clay. Each geode robot costs 3 ore and 9 obsidian.
+Blueprint 3: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 2 ore and 8 obsidian.
+Blueprint 4: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 18 clay. Each geode robot costs 4 ore and 16 obsidian.
+Blueprint 5: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 4 ore and 15 obsidian.
+Blueprint 6: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 4 ore and 14 obsidian.
+Blueprint 7: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 11 clay. Each geode robot costs 3 ore and 8 obsidian.
+Blueprint 8: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 7 clay. Each geode robot costs 3 ore and 10 obsidian.
+Blueprint 9: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 15 clay. Each geode robot costs 2 ore and 8 obsidian.
+Blueprint 10: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 20 clay. Each geode robot costs 2 ore and 17 obsidian.
+Blueprint 11: Each ore robot costs 2 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 16 clay. Each geode robot costs 2 ore and 9 obsidian.
+Blueprint 12: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 19 clay. Each geode robot costs 4 ore and 13 obsidian.
+Blueprint 13: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 17 clay. Each geode robot costs 4 ore and 20 obsidian.
+Blueprint 14: Each ore robot costs 2 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 17 clay. Each geode robot costs 3 ore and 19 obsidian.
+Blueprint 15: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 3 ore and 14 clay. Each geode robot costs 4 ore and 17 obsidian.
+Blueprint 16: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 9 clay. Each geode robot costs 3 ore and 9 obsidian.
+Blueprint 17: Each ore robot costs 2 ore. Each clay robot costs 4 ore. Each obsidian robot costs 3 ore and 20 clay. Each geode robot costs 2 ore and 17 obsidian.
+Blueprint 18: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 17 clay. Each geode robot costs 4 ore and 16 obsidian.
+Blueprint 19: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 5 clay. Each geode robot costs 3 ore and 10 obsidian.
+Blueprint 20: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 7 clay. Each geode robot costs 4 ore and 13 obsidian.
+Blueprint 21: Each ore robot costs 3 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 20 clay. Each geode robot costs 4 ore and 7 obsidian.
+Blueprint 22: Each ore robot costs 2 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 14 clay. Each geode robot costs 3 ore and 8 obsidian.
+Blueprint 23: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 19 clay. Each geode robot costs 3 ore and 13 obsidian.
+Blueprint 24: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 15 clay. Each geode robot costs 4 ore and 20 obsidian.
+Blueprint 25: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 14 clay. Each geode robot costs 4 ore and 15 obsidian.
+Blueprint 26: Each ore robot costs 4 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 8 clay. Each geode robot costs 3 ore and 7 obsidian.
+Blueprint 27: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 4 ore and 19 clay. Each geode robot costs 4 ore and 7 obsidian.
+Blueprint 28: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 2 ore and 11 clay. Each geode robot costs 4 ore and 8 obsidian.
+Blueprint 29: Each ore robot costs 3 ore. Each clay robot costs 3 ore. Each obsidian robot costs 2 ore and 15 clay. Each geode robot costs 3 ore and 9 obsidian.
+Blueprint 30: Each ore robot costs 4 ore. Each clay robot costs 4 ore. Each obsidian robot costs 4 ore and 17 clay. Each geode robot costs 2 ore and 13 obsidian.
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_2.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_2.tst.data
new file mode 100644
index 0000000..18f755a
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_2.tst.data
@@ -0,0 +1,2500 @@
+B Z
+A Y
+A Y
+B X
+A Y
+B X
+A X
+B X
+B X
+B X
+C Y
+C Y
+A X
+A Y
+A Y
+B X
+A X
+C Y
+B Z
+A X
+B Z
+C Y
+C Z
+A X
+C Z
+A Y
+A X
+B Z
+B X
+A Z
+B Z
+A X
+A Z
+B X
+B X
+C Y
+B X
+A X
+A Y
+C Y
+B Z
+C X
+A X
+B Z
+B Y
+B X
+A Z
+B Z
+B Z
+A X
+B Z
+B X
+C X
+A X
+B X
+B X
+B Z
+B X
+B Z
+A Y
+B Z
+B X
+C Y
+A Y
+C Y
+B Z
+A Y
+B X
+A Y
+C Y
+A Y
+B Z
+B Z
+C Z
+B X
+A X
+C X
+B Y
+A Z
+C Z
+B Z
+A Y
+A X
+B Z
+C Z
+B X
+B Z
+A Y
+B X
+A Y
+A Y
+A X
+C Y
+B X
+B Z
+C Y
+B X
+B X
+C Z
+C Y
+C Y
+A X
+B Z
+A X
+A X
+B Y
+A Y
+B Z
+B Z
+B Z
+A Y
+A X
+A Y
+B X
+B Z
+A X
+B X
+B X
+C Y
+B Z
+A X
+A Y
+B Z
+A X
+B Z
+A Z
+A Y
+A Z
+B Z
+A X
+A Z
+A X
+C Y
+A Y
+A X
+B Z
+C Z
+B Y
+B Z
+B X
+A X
+C Y
+B Z
+B Y
+B X
+B X
+A X
+C Y
+A Y
+B X
+A Y
+A Y
+A Y
+B X
+A Z
+A Y
+B X
+A X
+A Z
+B X
+B X
+C Z
+C Y
+B X
+B X
+A Y
+C Y
+C Y
+A X
+B Z
+B Z
+A Y
+C Y
+B Z
+A Y
+A Y
+A X
+B Z
+B X
+A X
+A X
+B X
+A X
+B X
+A X
+B X
+A X
+B Y
+B Z
+A X
+B X
+B X
+B Z
+A X
+B Z
+A Y
+B Z
+A X
+A Z
+B X
+A X
+A Y
+C Y
+C Y
+B Z
+A X
+C Y
+A X
+B X
+A Y
+A X
+B X
+B X
+A Y
+A X
+A X
+A Z
+C Y
+A X
+B X
+A X
+A X
+A X
+A Y
+A Y
+C Z
+C Z
+A Y
+B Z
+A X
+B X
+C Y
+B Z
+B Z
+C Y
+C Y
+A Y
+A Y
+A Y
+A Y
+C Z
+A Y
+B Z
+B Z
+C Z
+C Y
+C Y
+C Y
+C Y
+C X
+A X
+B Z
+B Z
+B Z
+B Z
+C Y
+B Z
+A X
+A X
+A X
+B Z
+A Y
+C X
+B Z
+A X
+A Y
+B Z
+C Z
+B X
+A X
+B Z
+A X
+A Y
+B X
+C Y
+B X
+B Z
+A X
+B X
+B X
+A X
+B X
+B Z
+B X
+A X
+B X
+B X
+B X
+B Z
+B X
+B Z
+C Y
+A X
+A X
+C Y
+C Z
+A Y
+B Z
+B Z
+A X
+B Z
+A Y
+A X
+A Y
+A Y
+A Y
+B Z
+C Y
+A X
+A Y
+A Z
+B X
+A Z
+B X
+B X
+B X
+A X
+A X
+C Y
+B X
+A X
+B Z
+A Y
+A Y
+A X
+B Z
+A Y
+B X
+A Y
+B Z
+C Y
+A Y
+C X
+B X
+B Z
+C Y
+A Y
+A X
+A X
+B Y
+C Z
+B Z
+A Y
+A X
+A Y
+A X
+A Y
+A Y
+A X
+A Y
+A Z
+B X
+A X
+C Y
+A X
+C X
+A Y
+A X
+A Y
+A X
+A X
+B X
+A X
+B Z
+A X
+C Z
+B Z
+B Z
+A Y
+B X
+B X
+A Y
+B X
+B X
+C Y
+A Y
+C X
+C Y
+B Z
+A Y
+A X
+C Z
+A X
+B X
+B X
+C X
+A Y
+B Z
+A X
+A Z
+C Y
+B Z
+C Y
+C X
+A Y
+B Z
+B Z
+A Y
+B Z
+B X
+B X
+B Z
+B Z
+B X
+C Y
+A Y
+A X
+A Y
+B Z
+A X
+A Y
+A Y
+A X
+B X
+A Z
+A X
+B Z
+B Z
+A X
+C Y
+C Y
+A Y
+A X
+A Y
+B Z
+B Z
+B X
+B Z
+A Y
+A X
+A Y
+A Y
+A Z
+C Y
+C Z
+A X
+C Y
+A Y
+A X
+A Y
+A X
+C Z
+B Z
+B X
+B X
+B X
+A X
+A Z
+B Z
+B X
+B X
+B X
+B X
+B X
+B X
+C Y
+B X
+B Z
+A X
+C Z
+A X
+C X
+B Z
+A X
+A Y
+A Z
+C Y
+B X
+C Z
+C Y
+A Z
+B Z
+C X
+A Y
+A Z
+B Z
+B Z
+B Z
+A X
+A X
+B X
+A X
+B Y
+A X
+A Y
+A Y
+B X
+A Y
+B X
+C Z
+A Y
+C Y
+A X
+A X
+A Y
+B X
+B Z
+A X
+B X
+B Z
+A Z
+C Z
+B Z
+B X
+A X
+A X
+B X
+A X
+A Y
+A Y
+B Z
+A X
+A X
+A X
+A X
+C Y
+C Z
+A X
+A Z
+A X
+B X
+A X
+B X
+B Z
+B X
+C Y
+B Z
+A X
+B Z
+A Z
+A Y
+A Y
+A X
+A X
+B Z
+A Y
+A X
+A X
+B X
+B Z
+A Z
+A Y
+A Z
+B X
+B Z
+A Y
+A Z
+B X
+B Z
+A Z
+A Y
+A Y
+A X
+A Y
+B Z
+A Y
+A X
+A X
+A Y
+A Y
+A X
+A Y
+A X
+C Y
+B Z
+B X
+B X
+B X
+A X
+B Z
+B Z
+A X
+B Z
+A Y
+C Y
+C Y
+A Y
+B Z
+B X
+C Y
+A X
+A Z
+B X
+B X
+C Y
+A X
+B X
+B Z
+A Y
+A X
+B Z
+A Y
+A Y
+C Z
+B Z
+B Z
+A X
+C Y
+A Y
+A Z
+A Y
+C Z
+B Z
+A Y
+C Z
+B X
+A X
+B X
+B X
+C Y
+A Y
+B Y
+A Y
+B X
+A Y
+A Y
+B X
+B Z
+B X
+A Y
+A Y
+C Y
+C Y
+A Y
+C Y
+A Z
+B Z
+A X
+A Z
+A X
+C Y
+A X
+A X
+B Z
+B Z
+C X
+C Z
+A X
+C Y
+B Z
+B X
+A Y
+A X
+A X
+B Z
+A X
+A Y
+A Y
+A X
+B Z
+C Y
+A Y
+B Z
+A Y
+B X
+A X
+A X
+A Y
+A X
+B Z
+C Y
+A X
+A Z
+B Z
+B Z
+A X
+C Y
+A X
+B X
+A X
+A X
+B X
+A X
+B X
+B Z
+C X
+A X
+C Y
+C Y
+B Z
+B X
+C Y
+C X
+A Y
+B X
+A Y
+B Z
+C Z
+B Z
+A Y
+A X
+B X
+A Y
+A Y
+B Z
+B X
+A Y
+B X
+A X
+A Y
+B Z
+B X
+A Z
+A Y
+A X
+A Y
+B Z
+B Z
+A X
+A X
+B Z
+A X
+B Z
+A X
+B X
+B X
+A X
+A Y
+B X
+A Y
+A X
+B X
+B X
+B Z
+B X
+C X
+B Z
+A Y
+B Z
+A Y
+A X
+B Z
+B X
+B X
+C Y
+B X
+B X
+A X
+A Y
+A X
+B X
+C Y
+C Z
+A X
+B X
+B X
+A Y
+B Z
+B X
+A X
+B X
+C X
+A Y
+A Y
+A Y
+A Y
+C Y
+A Y
+A Y
+A X
+A Y
+B X
+A Z
+A X
+B Z
+B X
+A X
+B Z
+A X
+B Y
+A X
+A X
+A Y
+B X
+B Z
+C X
+A X
+A X
+A Y
+B Z
+C Z
+A X
+C X
+B Z
+B X
+B X
+B Z
+B Z
+A X
+C Z
+A Y
+A Y
+B Y
+B X
+B Y
+A X
+B Z
+B Z
+A X
+B X
+A X
+B Z
+A Y
+A Y
+B Y
+A Y
+A Y
+A X
+B X
+A X
+B Z
+B X
+B Z
+C Y
+A X
+B Z
+A Z
+A X
+A X
+B X
+B X
+A Z
+B X
+A X
+A Z
+A X
+A Z
+A Y
+A X
+A Z
+C X
+A X
+C Y
+B X
+A X
+B X
+B X
+B X
+B X
+A X
+B Z
+B X
+A Y
+B X
+A Y
+B X
+B X
+A Y
+B X
+A X
+A X
+A Y
+B Z
+A Z
+B Z
+C Y
+B Y
+A Y
+A X
+A Y
+B Z
+A X
+B Z
+B X
+A X
+B X
+B X
+A X
+A Y
+B Z
+C Y
+A Y
+B Z
+C Y
+A X
+C Y
+A Y
+A Y
+A X
+C Y
+A Y
+B Z
+B Z
+A Y
+B Z
+B Z
+C Y
+A X
+A Y
+A Y
+C Z
+A X
+A Y
+A Y
+A X
+A Y
+B X
+A Y
+A X
+A Y
+B X
+B X
+A Y
+A Y
+A Y
+C Y
+A X
+A X
+B X
+A X
+B Z
+C Y
+B Z
+C Y
+A X
+C Z
+C Y
+B Z
+B Z
+A Y
+B X
+B Z
+C Y
+A X
+A X
+A X
+B Z
+A X
+A Y
+B Z
+C X
+C Y
+A Z
+A X
+C Y
+A X
+A X
+B X
+C Y
+A Z
+B Z
+C Y
+B X
+A X
+A X
+C Y
+A X
+A X
+B Z
+B X
+A X
+A Y
+B X
+A X
+A X
+B X
+C Y
+A Y
+C Z
+A Y
+B Z
+A X
+B X
+B X
+A X
+B X
+B Y
+A X
+C Y
+A Y
+A Y
+B X
+A Y
+B X
+B Z
+A Y
+C Y
+C Y
+A Z
+B Z
+C Z
+B Z
+A Z
+A Y
+B Z
+A X
+B Z
+A Z
+A Z
+B Z
+B X
+A X
+A X
+A X
+B X
+A X
+A Y
+C Y
+B Z
+B X
+A X
+B Z
+B X
+B Z
+A X
+B X
+B X
+B X
+A X
+B Z
+A X
+B X
+A X
+C Y
+A X
+A Y
+A Z
+C Y
+A Y
+A X
+C Y
+B Z
+A X
+B Z
+A X
+B Z
+B Z
+B Z
+C Z
+A Z
+B X
+A X
+A Y
+A Y
+A Y
+B X
+C X
+A Y
+A X
+A X
+C Y
+A Y
+A Y
+B X
+C Y
+A Z
+A Z
+A Y
+C Y
+B Z
+A Z
+C Y
+A X
+B X
+B X
+B X
+A X
+C Z
+C Y
+B Z
+B Z
+A X
+A Y
+A Y
+A Y
+C X
+A Z
+A X
+B X
+B Z
+B Z
+A Z
+A X
+B Z
+A Y
+B Z
+C X
+A X
+B Z
+A Y
+A Y
+A X
+B Z
+B X
+A Y
+A Y
+A Y
+A Y
+A Z
+A X
+C Y
+A Y
+A Y
+C Y
+C Y
+B X
+C Y
+A X
+A Z
+B Z
+C Y
+A Z
+A X
+A Z
+A Y
+C Y
+B Z
+A Y
+B X
+B X
+A X
+B X
+A Z
+B Z
+A X
+A X
+C Y
+A Y
+C Y
+C Y
+B X
+A X
+C X
+B X
+B Z
+A Y
+B Z
+A X
+A Y
+B Z
+B Z
+A Y
+A Y
+A X
+A Y
+B Z
+A Y
+B Z
+C Y
+C Y
+B X
+A Z
+A Y
+C Y
+B X
+B Z
+B X
+C Y
+B Z
+A Y
+A Y
+B Z
+A X
+A Z
+B X
+A X
+C Z
+B X
+B X
+B X
+C X
+C Y
+B X
+A Y
+B Z
+B X
+B Z
+C Y
+A X
+A Y
+A X
+B X
+B Z
+B Z
+A X
+B X
+C Y
+C X
+B Z
+A X
+A Y
+B Z
+B Y
+C Y
+C Y
+A Y
+B Z
+B X
+A Y
+B Z
+A X
+A X
+A Y
+B Z
+A Y
+A X
+B Z
+A X
+C Y
+A Y
+C Z
+B Z
+C Y
+B Z
+A Y
+C Y
+A X
+A Y
+B X
+B Z
+B X
+B Z
+A Y
+B X
+A Y
+B Z
+A Y
+C Y
+A X
+A X
+B Y
+B X
+A Y
+C X
+B Z
+B Z
+A Y
+C Z
+B X
+A X
+A Y
+B Z
+C Y
+C Y
+A Y
+A Y
+B X
+C Y
+A Y
+B X
+A X
+B X
+B Z
+A X
+A Y
+B X
+B X
+C Y
+B Z
+A X
+A X
+B X
+C Y
+B X
+A X
+A X
+B X
+C Z
+C Y
+B X
+B Z
+A X
+A Y
+C Y
+A Y
+A Y
+A Y
+B X
+C Y
+B X
+A X
+A Y
+A X
+B Z
+A Z
+B X
+A Y
+B X
+A Y
+B X
+B Z
+A X
+A X
+B Z
+A X
+A Y
+B X
+B Z
+B Z
+A X
+A Y
+A Y
+A X
+A X
+B X
+B Z
+B Y
+A X
+C Y
+A Y
+C Y
+A Y
+C X
+B X
+B X
+A X
+B Z
+A X
+C Y
+B X
+C Y
+A Z
+A X
+B Y
+A X
+B X
+B Z
+A Z
+C Y
+A Y
+A Z
+A Y
+A X
+A Y
+A X
+A X
+A X
+B Z
+B Z
+C X
+A X
+C Z
+B X
+C X
+B Z
+B Z
+A Z
+B X
+A Y
+B Z
+C Y
+A X
+C Y
+C Y
+B Z
+A Y
+A Z
+A X
+B Z
+B X
+C Z
+C Y
+A Y
+C Z
+B X
+B Z
+C Y
+A X
+B X
+C Z
+B Z
+C Y
+B X
+A Y
+B Z
+C X
+A Z
+A X
+A Y
+B Z
+B X
+B X
+B X
+B Z
+A Z
+A X
+B Z
+B X
+A X
+A Y
+B X
+B X
+A X
+A X
+B X
+B X
+C Y
+A Y
+C Z
+A Y
+A Y
+A X
+B X
+B Z
+A X
+B X
+A X
+B X
+A Y
+C Y
+A Y
+A X
+A Y
+A Y
+C Y
+B Z
+B Z
+A X
+A Y
+C Y
+C Y
+A Y
+A X
+A X
+C Y
+B X
+A Y
+B Z
+C Y
+B Z
+A X
+A Y
+A X
+B Z
+B X
+C Y
+A Z
+C X
+A Y
+A X
+C X
+B X
+A Y
+A X
+B Z
+B Z
+C Y
+A X
+A Y
+A Y
+B X
+A Y
+A X
+C Y
+B X
+C Y
+A Y
+A Y
+A Y
+A X
+A X
+C Z
+B X
+C Y
+B Z
+A X
+A Y
+B Z
+C X
+B Z
+A X
+C Y
+C Y
+B Z
+B Z
+A X
+C Y
+C Y
+A Y
+C Y
+B X
+B Z
+A Z
+C Y
+A Z
+B Z
+A X
+B Z
+A X
+B Z
+A X
+A Y
+A X
+B Z
+A X
+A X
+A X
+B X
+C Y
+B Z
+B X
+A Y
+A Y
+C Y
+B X
+A Z
+C Z
+C Y
+A X
+A Y
+A X
+B Z
+A X
+B X
+C Z
+A Y
+C Y
+A Y
+A Y
+A Z
+C Y
+A X
+B Z
+C X
+B Z
+A X
+B Z
+B Y
+A X
+C Y
+A X
+A Y
+B X
+A X
+B X
+A Z
+A X
+A Y
+B X
+A Y
+B X
+C Y
+B X
+A X
+A Y
+A X
+B X
+A X
+A X
+B X
+A Y
+B Y
+A X
+A Y
+A X
+B X
+C Y
+A X
+A Z
+C Y
+A Y
+C Z
+B X
+B Z
+A Y
+C X
+A Z
+A X
+A X
+B Z
+C X
+A Y
+A X
+A Y
+A X
+A Y
+B Z
+B X
+A Z
+B Z
+A X
+A Y
+B X
+B Z
+A Y
+B Z
+C X
+B Z
+A X
+B X
+B X
+C Y
+B X
+B Z
+A X
+A Y
+B X
+A X
+B Z
+A X
+B Z
+B Z
+C Y
+C Y
+B Z
+B X
+B Z
+A X
+A Y
+A X
+B X
+B Z
+A Y
+B Z
+B X
+B X
+B X
+B Z
+B Z
+A X
+B X
+A Y
+B X
+C Y
+B Z
+B Z
+B X
+C Z
+A Y
+A Y
+B Z
+B Z
+A X
+C Z
+A Y
+A X
+A Y
+B X
+C Y
+A Y
+A X
+B X
+B Z
+A Z
+A Y
+A Z
+A X
+B X
+B X
+A Z
+A Y
+A X
+C Y
+A Y
+A X
+C Z
+A X
+B X
+A Y
+B X
+A Y
+A X
+A Y
+B Z
+B Z
+C Z
+A Y
+A X
+A Y
+A Z
+A Y
+B Z
+B X
+A X
+A X
+B Z
+C X
+A Y
+A X
+A Z
+C X
+C Y
+B Z
+A Y
+B X
+B Z
+C X
+B Z
+A Y
+B Z
+B X
+A Y
+B Z
+B X
+A X
+B Z
+C Y
+A Y
+B Z
+A X
+A X
+B Z
+A X
+C Y
+A X
+B X
+B Z
+B Z
+C Y
+A X
+B Z
+C Z
+B Z
+A Y
+B Z
+B Z
+A X
+B Z
+A X
+B X
+A X
+A X
+B Z
+B X
+A Z
+B Z
+B X
+B Z
+B Z
+B Z
+B Z
+A Y
+B X
+A Y
+B Z
+B X
+A X
+A X
+B X
+B Z
+C Y
+B Z
+B X
+B Z
+B Z
+C Y
+A X
+A Y
+B X
+A Z
+B Z
+B Z
+A X
+A Y
+B Z
+A Z
+A Y
+A Y
+A Y
+A Y
+C Y
+B Z
+A X
+A X
+B X
+A Y
+A Y
+A Y
+A Y
+B X
+B Z
+C Y
+B X
+B X
+A Y
+B X
+B Z
+A X
+C X
+B X
+B X
+B X
+C X
+C Y
+A Y
+A X
+B X
+A Z
+C X
+B Z
+C Y
+B Z
+A Y
+A X
+B X
+B X
+B X
+A Y
+B Z
+A Z
+C Y
+A Y
+A X
+B Z
+C Y
+A Y
+A X
+B Z
+C Z
+C Y
+A Y
+A X
+A Y
+C Z
+A Y
+B Z
+B X
+B X
+C Z
+C Y
+C Y
+C Z
+A Y
+A Z
+C Z
+A Y
+A X
+B Z
+A Y
+A X
+C X
+A Y
+C Y
+C Y
+A X
+B Z
+B X
+A Z
+B X
+A X
+C Y
+A Z
+B Z
+A X
+B Z
+B X
+A Y
+C Z
+B X
+B Z
+C Y
+A X
+B Z
+B X
+A Y
+B X
+C X
+A X
+A X
+A X
+A X
+C Y
+C Y
+A X
+B Z
+A X
+A Y
+A Y
+A X
+A X
+B Z
+B Z
+B X
+A Y
+A Z
+C Y
+A X
+A Y
+B Z
+B X
+B X
+A X
+C X
+B Z
+C Y
+C Z
+B Z
+A X
+B Z
+A Y
+A Y
+A Y
+C Z
+C Y
+A Y
+C Y
+A Y
+A X
+B Z
+B Z
+B X
+C Z
+A Y
+C X
+B Z
+A Y
+B Z
+B X
+B Z
+A X
+A X
+B Z
+C Y
+A Z
+A Y
+B Z
+A Z
+C Y
+B Z
+B X
+A X
+B Z
+B X
+A X
+B Z
+A X
+A X
+B Z
+C Y
+B Z
+A Y
+A X
+A X
+C X
+A Y
+B Z
+C Y
+A Z
+C Y
+B X
+A X
+B X
+C X
+C Y
+B Z
+B Z
+A Y
+A Z
+B X
+B Z
+A Y
+B X
+A Z
+C Y
+C Z
+C Y
+A Y
+C X
+C X
+B X
+A Y
+A X
+B X
+B X
+C Z
+C X
+A X
+A Y
+B X
+B X
+C X
+B Z
+A Y
+B Z
+A Y
+B Z
+C Y
+A X
+A X
+B X
+B Z
+A X
+C Y
+B X
+A X
+A X
+A Y
+A Z
+B X
+A X
+A Y
+A Z
+B X
+B Z
+A Y
+A X
+B X
+A Y
+C Y
+B Y
+B X
+A Y
+C X
+A Z
+C Y
+A X
+B Y
+C Y
+B Z
+B X
+C Y
+C Y
+A Y
+A X
+C X
+A Z
+A X
+B Z
+B X
+B X
+A X
+B X
+A Z
+B X
+B Z
+B Z
+C Z
+B Z
+B X
+C Y
+C Y
+A Z
+C X
+A X
+B Z
+A X
+C Y
+A X
+A Z
+B Z
+B Z
+A X
+B Z
+B Z
+A X
+C Z
+B Z
+B X
+C X
+A Z
+B X
+A Y
+B Z
+C Y
+B Z
+B X
+A Y
+B Z
+A X
+B Z
+A Y
+A Z
+B Z
+C Y
+C Y
+A Z
+B Z
+B X
+B X
+C Z
+B Z
+B Z
+A X
+A X
+A X
+A X
+A X
+C Y
+A X
+B Z
+A X
+B Z
+C Y
+C X
+A Y
+B X
+A X
+B Z
+A Y
+B Z
+C X
+A Y
+B X
+A X
+A Y
+B Z
+A Y
+A X
+B X
+B Y
+B X
+B Z
+B X
+A X
+B X
+B X
+B X
+A Z
+A X
+A X
+B X
+C Y
+A X
+A X
+B X
+B X
+B X
+B X
+A Y
+A X
+B Z
+A X
+A Y
+C Y
+B Z
+A Y
+A X
+C Z
+A X
+B Z
+A X
+B Z
+B Z
+B Z
+C Y
+B X
+C Y
+A Z
+B Z
+A X
+A Y
+A Y
+A Y
+B X
+B Z
+B Z
+A Y
+B Z
+B Z
+B X
+A X
+B Z
+A Y
+A Y
+A X
+B Z
+A X
+A X
+B Z
+C Y
+B X
+A X
+A X
+A Z
+C Y
+A X
+A X
+A X
+A X
+A X
+C Y
+A X
+A X
+B X
+B Z
+C Z
+B X
+A Y
+B Z
+A X
+A Y
+B Z
+B Z
+B Z
+B Z
+A X
+A Y
+A Y
+B X
+A Y
+A Z
+A Y
+B Y
+A X
+B Z
+A X
+A Y
+C Y
+B Z
+C Y
+A X
+B Z
+A X
+A Z
+B Z
+A X
+B X
+C Y
+A Y
+A X
+A Z
+C Y
+A Z
+A Y
+A Y
+A X
+A X
+A Z
+A Y
+B X
+B Z
+B X
+B X
+C Y
+A Y
+A X
+B X
+A X
+B Z
+A X
+A X
+B Z
+C Y
+B X
+C Y
+A X
+B X
+C Z
+A Y
+B X
+A Y
+A Y
+B X
+C Y
+B Z
+A Y
+B Z
+A Y
+A X
+A X
+A Y
+B Z
+B Z
+A Y
+A X
+A X
+B X
+B Z
+A Y
+A X
+C Y
+B X
+C Y
+B Z
+B Z
+B X
+A Y
+B X
+B X
+A X
+C Y
+C Y
+B Z
+B X
+A Y
+C Z
+C Z
+C Y
+A Y
+B X
+B Z
+B X
+A X
+B Z
+A Y
+A X
+C Y
+B X
+A Y
+B X
+A Z
+A X
+A Y
+C Y
+A Y
+A X
+C Y
+C Z
+B X
+A Y
+C Y
+B Z
+B X
+A X
+B X
+B X
+C Y
+B Z
+B Z
+B Z
+B X
+B Z
+A Y
+B Y
+B Z
+A Z
+A X
+B Y
+A X
+B Z
+A Y
+B X
+A X
+B Z
+C Z
+B Z
+B Z
+A Y
+B X
+A X
+A X
+B X
+A Y
+A Y
+A X
+C Z
+C X
+A Y
+C X
+A Y
+A Z
+C Y
+A X
+B X
+A X
+B Z
+A X
+C Y
+A Y
+B X
+C Y
+A Y
+A Z
+A Y
+A Y
+B Z
+C Z
+C Y
+A Y
+A Y
+B X
+C X
+A Z
+B Z
+C Y
+A X
+A Y
+B X
+A Y
+C Y
+C Z
+A Y
+B Z
+A X
+C Y
+B X
+B Z
+A X
+C Z
+B Z
+C Y
+C Z
+B Z
+A X
+A Y
+A X
+B X
+B Z
+B X
+A X
+B Z
+C Y
+A Z
+A Z
+C Y
+A Y
+C X
+B X
+A X
+A X
+B X
+B Z
+B X
+B Z
+B Z
+A X
+B X
+A X
+A Y
+A X
+C Z
+B Z
+A X
+C Z
+C Z
+C X
+A X
+B X
+A X
+A Z
+A X
+C Z
+A X
+A X
+B Z
+C Z
+C Y
+B Z
+B X
+A X
+A X
+A Y
+B Z
+A Y
+B X
+B Z
+C X
+B Z
+B X
+A Y
+B Z
+A Z
+A Y
+A Y
+B X
+C X
+A Y
+A Y
+C Y
+C Y
+B Z
+B X
+C Y
+C Y
+A Y
+A X
+A Y
+A Y
+B Z
+B X
+A X
+B X
+B Z
+B Z
+A Z
+A Z
+A Z
+A X
+B X
+B Z
+A X
+B Z
+A X
+B Z
+B X
+C Z
+B Y
+A Y
+A Y
+A X
+A X
+B Z
+B Z
+B X
+A Y
+C Y
+B X
+A X
+B X
+C Y
+A X
+A X
+B X
+C Y
+C Y
+C X
+B X
+C Y
+A Z
+B Z
+B Z
+B Z
+B X
+B Z
+A X
+B X
+A X
+A Y
+C Z
+B X
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_20.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_20.tst.data
new file mode 100644
index 0000000..644ccc8
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_20.tst.data
@@ -0,0 +1,5000 @@
+5602
+9939
+7502
+-7162
+-8449
+-6157
+8518
+-467
+-1389
+509
+6834
+-8896
+44
+-4782
+-5921
+3499
+9837
+-5056
+9570
+2172
+1386
+-1028
+1019
+-4235
+3361
+-582
+3291
+1646
+-708
+7055
+3791
+8596
+-8357
+8034
+-3063
+-6657
+-8499
+6940
+8205
+8264
+8081
+-6891
+-4639
+4194
+-6747
+-8689
+-5757
+-9613
+-9422
+3591
+6136
+-5616
+6254
+2195
+1191
+3845
+7235
+4676
+-3869
+3551
+781
+8419
+-4569
+-353
+-5224
+6438
+4046
+154
+2336
+-2486
+-4608
+6002
+5888
+2772
+-3023
+-183
+6163
+-9139
+9939
+-4956
+4642
+-280
+9214
+6718
+1879
+7249
+-3069
+7735
+-2548
+3905
+-1275
+-5817
+542
+-8935
+-9933
+-6605
+-5117
+1744
+5857
+-32
+-8559
+6898
+6689
+8929
+8864
+1924
+5338
+-3672
+-8981
+3408
+5907
+-8432
+-1901
+-2938
+-7002
+-4010
+4506
+-5633
+4465
+-5485
+-1708
+-1946
+8196
+1090
+-1901
+2912
+3143
+-74
+1983
+1263
+-5193
+7396
+-2865
+681
+-5580
+-350
+376
+1027
+9845
+-6794
+8485
+-4190
+-6962
+8038
+6909
+4660
+1239
+2214
+1673
+5167
+5624
+-6694
+2622
+-8039
+5602
+3465
+717
+-7256
+8954
+9355
+-3927
+460
+-7790
+-3513
+-9258
+-2199
+-4370
+3416
+-2381
+1337
+9094
+-144
+7301
+1700
+-6655
+7354
+-3708
+-7784
+-2890
+-8677
+4749
+6226
+-2055
+75
+2027
+9253
+-1101
+-8217
+5297
+999
+8032
+5246
+1404
+-9020
+-9779
+-7144
+6890
+3738
+-4131
+3118
+-3095
+-7282
+8223
+2251
+9342
+5853
+3800
+6497
+-7131
+1406
+2126
+-5631
+-4633
+5496
+9914
+2394
+-8921
+4558
+-510
+-3682
+2251
+2055
+3784
+9959
+-7083
+-2919
+-5108
+1609
+-8438
+5826
+2011
+-1275
+7432
+-9240
+1622
+8689
+846
+-7731
+9630
+9002
+-1231
+3744
+7882
+-4426
+-7148
+-928
+1585
+-9554
+9770
+2575
+-439
+1412
+8981
+-4030
+-7991
+4734
+5368
+-6600
+7392
+-6309
+-7362
+-5327
+-1334
+5300
+-1547
+-2907
+9295
+-2818
+9063
+6176
+-2477
+-8900
+-6585
+-531
+8289
+7
+1736
+-8238
+-1894
+6167
+357
+-956
+7215
+1818
+6611
+-8708
+2612
+6233
+6174
+-368
+-6893
+2082
+4884
+-9968
+3119
+9608
+6422
+-3469
+-8828
+7461
+9938
+9422
+-8489
+1412
+-8319
+1924
+-3877
+-1551
+7947
+9888
+-7453
+-9579
+-8342
+2255
+-2075
+-5397
+-1285
+-3885
+751
+-8805
+-7860
+-5344
+-6833
+6074
+-4236
+-7640
+-4146
+-392
+-8016
+-7575
+-9381
+-6513
+-7203
+-3491
+3073
+-2217
+-9049
+1925
+-422
+1482
+8739
+2147
+1636
+-8549
+-7046
+6919
+-5722
+-363
+3677
+-2952
+4802
+5889
+-2525
+5201
+7522
+-4425
+-1162
+-2249
+3197
+2627
+3175
+2214
+9094
+4541
+9280
+-2028
+-3955
+217
+5866
+-9993
+2575
+-4873
+1586
+-1045
+-2640
+-6879
+-6958
+-534
+-2312
+-3690
+5673
+-2596
+-9042
+8525
+-8331
+6918
+-5284
+-9636
+5206
+2131
+-1633
+-3408
+-1096
+-4883
+-2020
+-5063
+-166
+-41
+1367
+6863
+-8943
+9436
+-124
+1151
+3815
+-2986
+-1964
+-8074
+7021
+-6068
+8572
+5897
+2988
+-6936
+50
+5191
+3504
+1737
+-7183
+-9211
+-3070
+8186
+-6404
+6586
+1739
+-3310
+8596
+7030
+4361
+-9066
+9442
+412
+9113
+8980
+-7657
+9966
+1904
+-3158
+-2869
+-4737
+-4680
+6559
+9179
+7158
+-94
+2980
+-7061
+1488
+4871
+4532
+8657
+6691
+6131
+9094
+7907
+1702
+-2821
+-9111
+-3497
+9449
+1011
+-3102
+3478
+-4608
+-6476
+8401
+5388
+4136
+-4886
+-3782
+544
+5949
+-3090
+3063
+-1946
+1639
+5675
+6112
+39
+9599
+-3264
+4093
+-3672
+5614
+-4028
+3586
+-8325
+-877
+-9725
+581
+-9012
+-3335
+-7378
+7774
+-1807
+595
+-3200
+7765
+3536
+-363
+-4653
+9050
+-6137
+-6413
+-6404
+3261
+6122
+5582
+-2067
+7128
+7988
+-3699
+-3051
+8371
+321
+7200
+-2690
+-1051
+-2858
+-9895
+-9739
+-5943
+3831
+-510
+-8510
+-275
+5475
+6872
+-3296
+6226
+4985
+-9850
+2661
+689
+-884
+-726
+1641
+-5359
+-8824
+5007
+-9870
+-9548
+-4596
+-4601
+-7881
+-4455
+-4614
+-4451
+-2318
+-6074
+-8023
+-7203
+7896
+-7756
+2163
+-4464
+9611
+1690
+-9042
+-4510
+-416
+7522
+3847
+-7677
+8922
+-2845
+-3551
+-2124
+6424
+2240
+-8472
+-9757
+-2997
+154
+223
+3068
+-2412
+-3090
+8236
+7048
+-5853
+9574
+-3229
+4304
+5582
+-2905
+-2371
+-3416
+455
+9685
+8276
+1132
+-2499
+1527
+6367
+-7325
+-8432
+-7339
+-1761
+-9016
+-365
+964
+-1722
+-3331
+-5013
+5909
+-9746
+-359
+17
+-7344
+-7183
+-1981
+-7974
+-7404
+7294
+5647
+9188
+3317
+-4259
+-8051
+5193
+1701
+3915
+-9042
+-4745
+-6352
+-3756
+-1994
+-4270
+5232
+5619
+1631
+6898
+-4811
+-5131
+5692
+-9303
+-2843
+4519
+9152
+9676
+-6160
+-5335
+-2715
+9121
+643
+9412
+2766
+-1680
+2430
+2175
+-8844
+-1198
+6907
+5717
+-7067
+-4504
+-6842
+244
+-2396
+-9630
+-686
+-7640
+-4648
+8312
+1029
+8003
+5925
+6302
+4353
+6726
+7832
+2668
+2530
+-6107
+-8973
+3699
+-5400
+-5535
+9348
+76
+1656
+651
+-2501
+-1257
+-7113
+6476
+4285
+9289
+-3521
+6858
+2963
+5080
+-3999
+-5049
+1670
+-8454
+6424
+1172
+-8003
+-7975
+3175
+-8011
+717
+3730
+7100
+1617
+1737
+-2445
+1774
+7046
+7344
+4943
+-105
+-3491
+-6891
+-5935
+5043
+-7382
+5861
+-9579
+6772
+9922
+-3797
+5874
+3775
+9155
+-2430
+5934
+-1484
+-5749
+5832
+-8431
+2481
+-2762
+4867
+3338
+4752
+827
+-8051
+-1484
+9676
+-3684
+7447
+-5180
+2583
+7376
+4400
+-2029
+-3102
+-7076
+1715
+-7596
+-290
+1823
+-8282
+-6914
+-846
+-2851
+-6035
+-9463
+-3229
+9151
+-1957
+-1078
+9355
+-183
+-3159
+5988
+-6107
+-8112
+1803
+4974
+3890
+1412
+-9710
+6111
+-2371
+-4378
+8378
+-7498
+1617
+-9206
+-3768
+-3217
+-2198
+135
+-6373
+-2574
+-5583
+9589
+8867
+-7038
+-332
+-2113
+-5155
+1891
+-9959
+-421
+7569
+-7543
+-996
+-5002
+7730
+5738
+-4734
+2977
+-1445
+-8071
+9923
+-7156
+-141
+2814
+-1015
+1108
+5272
+-6371
+589
+9641
+-14
+-9688
+3260
+7780
+8815
+9906
+-390
+-4590
+-6892
+6111
+8276
+-6021
+-8767
+9799
+589
+-9617
+9314
+-8305
+1736
+4428
+9851
+-5946
+3921
+-814
+9080
+481
+-8807
+6647
+5888
+-1951
+6039
+8747
+4303
+-8563
+6767
+2878
+6767
+-4452
+6664
+7051
+9766
+5128
+-1281
+-1121
+-3488
+-2198
+-6432
+-2533
+5356
+9890
+-996
+-3178
+5729
+-7640
+7988
+8247
+-7633
+5851
+717
+-2632
+2518
+-3082
+5339
+-4083
+7765
+4888
+1852
+-1361
+9125
+-7316
+-3578
+6227
+-454
+7450
+-7387
+-7877
+8632
+6196
+0
+-3651
+-2698
+9840
+-8655
+8186
+-1321
+-1197
+-1793
+-4343
+4008
+6770
+2496
+5375
+70
+9080
+-2727
+-858
+1094
+-6438
+6234
+75
+-750
+9450
+1602
+-2004
+-6037
+7373
+-98
+8187
+-7824
+-8738
+-5830
+7569
+544
+-6755
+-1796
+1844
+4704
+1024
+4432
+3847
+5876
+6252
+-4353
+5636
+8957
+-6740
+-9100
+8335
+3840
+510
+8380
+4687
+-3847
+2081
+-9514
+-5913
+5628
+5471
+-9759
+515
+6396
+-6995
+9594
+-2326
+-9846
+8003
+-7877
+-3050
+7331
+-1210
+2548
+-4727
+8860
+-2665
+8366
+2940
+4784
+-69
+-4579
+4327
+2609
+-714
+721
+-344
+-9742
+-7066
+-598
+-2316
+3769
+-7191
+7452
+6303
+-1198
+-3153
+1591
+5259
+1030
+-2876
+-7327
+6282
+8274
+5858
+927
+4367
+-8820
+-4809
+2977
+8017
+-9084
+-9757
+9481
+56
+-1475
+-167
+1064
+1679
+-1795
+9874
+5186
+-5049
+-4028
+-8100
+-8062
+-6766
+3307
+9552
+-7365
+-6582
+9853
+1800
+6051
+-1015
+7344
+-3090
+-4406
+7606
+5530
+3704
+-8807
+2077
+9858
+-2538
+-7945
+5968
+-8438
+-7500
+-9346
+-2571
+6600
+-3398
+-4406
+4753
+2442
+8938
+9139
+-1231
+-1174
+-9936
+6436
+8739
+-4066
+2025
+-5787
+2251
+9940
+-359
+-9460
+153
+-7491
+3704
+4694
+4852
+-4322
+-4029
+-9630
+594
+5511
+-2266
+-2840
+-2241
+-229
+780
+5456
+7229
+4303
+-2662
+3325
+4305
+6972
+5418
+722
+-250
+6047
+-491
+681
+2246
+-4131
+3050
+-1277
+4859
+-986
+-4106
+-5442
+5389
+1693
+-9066
+3519
+2194
+4604
+-5312
+2126
+-6340
+-6455
+8076
+2178
+4267
+4933
+9170
+3065
+-5582
+-9548
+4615
+-9696
+-8171
+1686
+1591
+-5826
+4350
+9307
+7579
+4920
+-6953
+-1032
+-9612
+4976
+-21
+-603
+-4548
+-9968
+-3589
+4024
+2416
+-5661
+1496
+-2199
+-5726
+3141
+8441
+6756
+-752
+9071
+-4321
+-9439
+229
+1040
+8380
+5226
+6047
+-5543
+6797
+-3634
+2183
+481
+7955
+-9376
+9348
+-2892
+-7600
+-5999
+-2785
+-3302
+-3290
+-9247
+2079
+-6254
+-5165
+4012
+643
+1242
+-8550
+-4404
+715
+-6838
+-473
+3197
+1983
+4982
+2713
+-1820
+7249
+-921
+2560
+-2919
+7095
+-8677
+4766
+1120
+-6063
+3360
+292
+4506
+-2029
+9563
+-6893
+-6519
+1988
+6008
+8815
+1532
+-8835
+1511
+6501
+-7855
+-68
+-1666
+6107
+8911
+2991
+6300
+5833
+-4653
+-5000
+6110
+-1084
+-6373
+3280
+-69
+5888
+-157
+1999
+1827
+-7633
+-3880
+-2625
+9637
+-7002
+9870
+-1884
+-3782
+2106
+-2638
+-5976
+-7644
+-8468
+-8958
+-2960
+1216
+2531
+-6542
+1585
+6369
+8551
+7955
+-5433
+-3410
+9696
+-7015
+8154
+8717
+7781
+8591
+-8850
+-2080
+-9490
+-9613
+-8877
+9762
+725
+-5473
+-251
+-3178
+4414
+2621
+4892
+2336
+6047
+-6547
+-1485
+8877
+-1566
+5624
+-1294
+-4295
+-6947
+-907
+-6219
+-3950
+-384
+-9446
+-1053
+6370
+4208
+-1589
+8888
+642
+-3513
+2897
+-2445
+1966
+-2404
+-8171
+801
+-848
+591
+-5569
+-418
+1458
+-8072
+-9042
+-4447
+4646
+-66
+-3888
+-2922
+9389
+2645
+7331
+-4097
+-5854
+-4545
+3080
+-8211
+3255
+9370
+6390
+-8633
+-1215
+-7720
+4046
+1024
+969
+-5223
+9412
+-4866
+-2098
+1907
+-8240
+4088
+-900
+9270
+-359
+-4974
+5066
+6100
+-2006
+-4864
+-245
+-5222
+1932
+2293
+-3455
+4137
+-4473
+-7920
+8210
+-7651
+7579
+953
+-5077
+-7131
+-8347
+8046
+1048
+465
+3918
+-663
+-3219
+6416
+9519
+-985
+-8499
+2634
+-2637
+8966
+-465
+-9638
+-6445
+-7820
+2293
+2963
+-7203
+-4179
+6509
+-1214
+6227
+2387
+-2020
+-3477
+5949
+-6539
+-7235
+3041
+9598
+-4574
+7359
+5487
+2004
+-2088
+4513
+3611
+6305
+-3264
+3719
+7523
+-6877
+-1720
+591
+2240
+3044
+-5768
+3677
+364
+-4680
+9031
+-5131
+-2231
+5777
+3773
+-5111
+8888
+-1704
+-575
+9253
+-8260
+3244
+7029
+4539
+6247
+9058
+7753
+-2546
+2163
+7524
+-6976
+5128
+6806
+-8238
+6741
+4999
+7761
+-9283
+-9735
+4750
+6007
+-6213
+-6508
+-9523
+-9283
+9882
+-5222
+5531
+-422
+-6309
+-684
+-4929
+-6715
+8469
+-5518
+5230
+1077
+-7860
+8020
+-1285
+7696
+2194
+-2412
+291
+-7589
+4580
+5626
+-5855
+6128
+1904
+2548
+-7889
+-9056
+1243
+-5579
+-6433
+-8719
+9153
+5567
+-9061
+4513
+-699
+-9423
+2905
+2114
+3839
+-4500
+-6711
+5082
+6831
+-2662
+1621
+-3063
+-5850
+1460
+-3647
+-1687
+1496
+-5617
+2838
+-2877
+-5207
+6896
+-6833
+9845
+8575
+9940
+-5222
+4263
+-9379
+3820
+-9299
+-810
+-7796
+-7113
+1337
+3140
+7582
+7006
+3607
+-243
+-1936
+-5027
+-6494
+1774
+9794
+1021
+9870
+1705
+-4029
+9282
+-727
+9229
+6789
+-9772
+6977
+5807
+9374
+-6363
+-8790
+4556
+7308
+-1434
+7896
+7048
+-800
+-7083
+6856
+903
+-6185
+2698
+-5353
+-6032
+4949
+18
+-594
+-4577
+-6683
+-230
+693
+6011
+8759
+2511
+-6758
+5292
+651
+-1357
+-8175
+5743
+-4479
+3510
+-4577
+-2229
+1702
+-4877
+9174
+-5063
+5266
+8722
+-1687
+1154
+1004
+1586
+3921
+6105
+-4569
+268
+4250
+-632
+-2790
+-1410
+8789
+5077
+2736
+-8894
+364
+4187
+1992
+510
+3354
+3880
+655
+714
+-7860
+-8773
+3950
+606
+-2464
+-4343
+-6900
+9151
+10000
+-1025
+-3997
+-7583
+9171
+7824
+-1657
+1307
+1121
+-3061
+-9447
+-6022
+-141
+321
+-9509
+-8420
+-7008
+4150
+3592
+-6552
+9445
+7633
+6664
+5160
+-3104
+3200
+-6752
+-9241
+-5088
+-1410
+-6586
+-2710
+6901
+5043
+9905
+-9563
+-9956
+-9799
+-9651
+2447
+-2159
+-2727
+346
+-6900
+-2412
+-1094
+8572
+-68
+-395
+-6818
+-3472
+6859
+-6433
+9036
+6931
+9784
+5687
+8274
+-390
+-119
+-2575
+581
+-5389
+7878
+5201
+9630
+3572
+-3511
+-7061
+-4808
+-467
+-5131
+-5980
+1924
+-2972
+1803
+-1982
+2856
+-5533
+-1205
+-3082
+-2755
+4667
+-1480
+7822
+3200
+-9446
+-2504
+-2934
+6918
+-4976
+4630
+-7431
+-4727
+-7886
+-8347
+2121
+-67
+-3192
+-1566
+9413
+-4510
+-3396
+4102
+-8893
+4139
+-6561
+8082
+-2435
+6302
+-5172
+7868
+-9134
+-8155
+4063
+9171
+-5530
+-8851
+-9954
+-7674
+-9655
+2394
+4416
+-1302
+2231
+9315
+4303
+6112
+-9977
+8829
+5876
+-2687
+-5722
+-3625
+-6107
+4630
+3216
+8491
+-6213
+-2188
+7332
+1974
+2515
+1466
+-5128
+2740
+3256
+-4745
+1942
+-9689
+-7813
+-2271
+7186
+6804
+-7113
+-439
+9643
+-213
+-6640
+5654
+5496
+-658
+8511
+4892
+-350
+-9363
+6976
+-8992
+7723
+-7988
+-1534
+-2504
+9892
+-6086
+7901
+5679
+-5962
+7874
+711
+9495
+-1063
+6433
+758
+4591
+800
+-4734
+2522
+4368
+-1205
+7629
+-7867
+3302
+7701
+8657
+4092
+3570
+-8255
+8585
+2567
+9373
+-1205
+2846
+4416
+-3217
+9958
+7737
+3878
+-1104
+8724
+5652
+-578
+-8076
+2531
+5727
+-5826
+-9258
+24
+7327
+6936
+22
+-4490
+-603
+8748
+-7936
+1565
+859
+-545
+8141
+3568
+7940
+9349
+-884
+-6973
+-1073
+-5568
+-6829
+491
+-2371
+-7181
+-5612
+2624
+-9678
+5063
+5493
+-1503
+7854
+6353
+-3335
+9348
+-1159
+7479
+5896
+7523
+-8891
+-5927
+-5059
+3495
+1496
+-4479
+-3943
+6928
+476
+9565
+2705
+8415
+9436
+438
+1432
+2255
+-689
+8720
+-1941
+9886
+2855
+2211
+6558
+-1197
+1940
+7522
+-2504
+-1370
+6118
+2212
+-881
+1751
+3592
+-1797
+4845
+780
+-8087
+4607
+-2392
+-2240
+5050
+-3427
+6915
+-4116
+-1887
+-2269
+8531
+6702
+-2923
+-6653
+-6420
+-4029
+4150
+-2709
+5118
+-3022
+-9200
+292
+9962
+-473
+-6318
+-7480
+-5726
+3608
+8195
+-9424
+5329
+-5323
+2005
+9837
+-7501
+-421
+9801
+1602
+-2335
+7249
+-585
+-3885
+8700
+589
+7954
+-1744
+-3251
+8959
+8430
+8082
+9411
+205
+9459
+-7377
+-6138
+8855
+2410
+-3783
+-1084
+7415
+-2006
+1354
+5070
+-6640
+-9777
+1019
+-410
+2947
+-4485
+3874
+4808
+-2728
+-1285
+-6074
+5990
+4361
+4406
+-2383
+9936
+-7488
+1364
+-2198
+-7935
+-8031
+5683
+9000
+2615
+-6866
+-6748
+-1455
+-301
+-712
+-2550
+-2322
+9750
+3677
+-5101
+-6185
+9983
+5622
+-517
+3361
+6608
+6714
+8860
+4940
+-4869
+3485
+-8571
+8377
+7172
+1465
+-8761
+3128
+-6833
+7868
+-7710
+-3672
+-3076
+5034
+1335
+-4842
+1693
+6196
+-6884
+-2693
+-8076
+2098
+6210
+9677
+-610
+-183
+-9919
+5700
+-1424
+-4970
+-6888
+-2275
+-5899
+9385
+1988
+-3615
+1047
+2851
+-3708
+2473
+2657
+-5656
+606
+67
+-8671
+-2448
+7406
+2214
+6811
+1528
+1337
+4350
+-5145
+-5473
+-5530
+-6219
+4986
+-7055
+9067
+1518
+-6775
+624
+-8621
+8078
+362
+-2727
+5344
+-1707
+-8655
+-7236
+-5161
+-3134
+-9696
+-4121
+1737
+3252
+-365
+-3373
+-4005
+5708
+-4967
+1894
+7479
+7950
+-8943
+-1826
+6465
+257
+9683
+-5335
+7223
+-4495
+-9648
+-4631
+-5564
+-1107
+-4386
+-5023
+-9605
+-9181
+-3706
+-1325
+5464
+-3229
+-6824
+-1244
+-5898
+8934
+4593
+2794
+4751
+1252
+6890
+-2070
+-542
+3519
+7677
+-7197
+-3503
+7373
+1200
+-5512
+3561
+7196
+-8678
+-6756
+-2999
+6623
+2707
+7949
+-8844
+-726
+-3894
+-5111
+-1877
+3003
+-6074
+109
+9758
+1043
+2388
+-4608
+-7055
+5032
+8381
+9698
+8184
+-77
+-8178
+2698
+3661
+-1882
+7528
+6367
+-258
+2470
+-7794
+4695
+-5865
+4295
+-194
+-5379
+2140
+-3371
+-7921
+3764
+-946
+-250
+-9181
+-4746
+507
+1702
+6266
+4132
+-6534
+-8000
+3105
+-7258
+-5504
+2121
+-9153
+-8838
+7988
+4416
+5400
+-5400
+-2179
+7772
+-542
+-6183
+-8938
+-9489
+-3472
+6880
+-5312
+4051
+-9172
+4444
+-9064
+7759
+9633
+-1157
+1123
+-4240
+1230
+-332
+6958
+855
+-5555
+-8542
+5407
+-6586
+-4300
+905
+9819
+-453
+-8774
+-2727
+7528
+2236
+-3956
+2943
+5197
+87
+-3483
+-4760
+8636
+-1200
+-5648
+-6407
+-7815
+310
+8053
+4917
+-3674
+7069
+-8724
+5354
+-3061
+1098
+-4524
+734
+-2665
+8321
+233
+3214
+7757
+-5920
+8789
+-5519
+3194
+-5262
+1003
+-2316
+-2573
+5211
+879
+8020
+6815
+-3415
+-1676
+1876
+-2130
+3836
+-8331
+-9159
+1330
+8235
+-7651
+6802
+-4606
+6234
+-8854
+-6651
+2559
+-3178
+-2008
+2467
+-4843
+5528
+-4711
+-5799
+-5214
+-219
+2398
+1398
+5475
+6697
+6924
+7016
+8660
+7295
+-7281
+-7835
+8283
+669
+4346
+2675
+6237
+-6062
+3496
+3354
+-4708
+-5340
+-4971
+8580
+7798
+1437
+-1094
+8136
+6764
+2486
+8585
+-3157
+-3190
+2960
+9370
+9929
+-1023
+-1948
+-5964
+-491
+4700
+-1386
+-1831
+-1761
+-8209
+7149
+6856
+-4954
+-8995
+4373
+-3051
+6236
+1846
+4206
+4198
+-2923
+-4554
+3395
+-5364
+-5660
+3132
+-5726
+4672
+2251
+3033
+-7936
+35
+1
+4668
+-2125
+257
+7294
+-6183
+1934
+-6048
+-6185
+6756
+6245
+6934
+4920
+7041
+1999
+-4497
+2925
+9837
+1662
+-3215
+9673
+-5903
+-5205
+2778
+9802
+-4784
+1484
+-1947
+-77
+-4734
+1914
+56
+-6243
+-598
+-2254
+2730
+-556
+-695
+8490
+-8970
+2674
+-3839
+7725
+-2548
+-4485
+-4915
+-4153
+6236
+8340
+-5447
+4701
+-9508
+9650
+-9953
+7415
+9174
+1983
+7715
+-7516
+-4630
+-2020
+-1859
+-4094
+3076
+-2510
+-2790
+-9232
+9712
+-253
+6763
+-2250
+6540
+2240
+5717
+-9984
+-1795
+-2373
+-5244
+2981
+-3214
+7831
+-6833
+-3723
+-7903
+-9942
+-9611
+9694
+1109
+2118
+35
+8953
+-7842
+-9277
+-575
+-6329
+9342
+-4244
+-7560
+-3361
+7584
+-9972
+9568
+4702
+775
+-8711
+-298
+-6432
+18
+5192
+-2538
+1220
+5465
+-9375
+-7651
+7009
+-1967
+6159
+-8577
+-8925
+15
+-21
+-1616
+-8043
+-5571
+-5998
+-7607
+-5783
+-846
+-9282
+-1292
+6558
+7093
+-8512
+4548
+-6285
+-6144
+-2543
+3677
+-1205
+7172
+5214
+-4733
+8272
+-5172
+-9455
+4610
+-5442
+2473
+-5502
+8992
+-6171
+7280
+7796
+1891
+-8051
+1685
+-1094
+-8108
+8706
+2655
+-2300
+2213
+3783
+3113
+624
+-622
+-8550
+-7972
+-3615
+1615
+7711
+-3622
+-998
+-8356
+8458
+-4593
+5080
+-7843
+-9620
+1777
+-5159
+1461
+-3590
+-9426
+3465
+-8225
+9885
+8131
+9868
+-8333
+-5971
+956
+4556
+2737
+-7203
+-6766
+-8827
+3770
+1584
+9008
+-1834
+-5451
+9170
+-2004
+6047
+3080
+-2248
+7635
+4939
+311
+6119
+509
+-2075
+-6450
+1624
+-6903
+-4384
+-3248
+9611
+1532
+-3156
+-7668
+-6111
+5683
+-7972
+3132
+-5593
+-2525
+-9049
+-5684
+8575
+1067
+1676
+-7874
+-7178
+-391
+-7674
+-4029
+3677
+8860
+-5576
+6856
+8423
+8321
+-8885
+9231
+-627
+2529
+-3817
+9973
+-1685
+-9696
+4765
+-7327
+-3114
+278
+-3711
+-3214
+-311
+9137
+-5207
+974
+8384
+-6640
+-3930
+475
+-8107
+3430
+-5433
+-4521
+-7640
+-6473
+777
+-2915
+-7813
+8683
+2532
+-1586
+1937
+-531
+-3992
+-2727
+-8264
+-3568
+-8238
+4613
+-7084
+9296
+1725
+-2134
+2766
+5511
+7198
+-5913
+-3410
+8412
+1403
+611
+-4873
+8132
+6870
+595
+-5468
+-1160
+-626
+3131
+-5433
+-4687
+1440
+5266
+-4266
+-7200
+-5768
+-5631
+8086
+689
+-9729
+5885
+8283
+5718
+-6974
+-2533
+5620
+4575
+-1845
+-8711
+-3401
+-9218
+-6794
+-5569
+-2632
+164
+2874
+-9384
+-1556
+-6612
+8547
+-4066
+4238
+-8443
+-5662
+2579
+-626
+-8237
+2183
+-8146
+4925
+-5825
+1581
+5266
+7186
+-7983
+9762
+-286
+4003
+-2226
+7723
+-7386
+7174
+3869
+-8064
+-2972
+2697
+-9585
+-3847
+4295
+6061
+-395
+-1292
+4076
+-137
+-9566
+-9848
+-2328
+-9857
+6991
+-8656
+2449
+-9699
+3033
+7249
+-183
+1149
+4676
+-4869
+-8260
+5045
+4026
+-8193
+-8499
+-7508
+-3984
+2612
+-3041
+4814
+-3336
+8800
+-4284
+-836
+-4695
+6
+1123
+4749
+1247
+5654
+-5144
+1788
+-1015
+5356
+-280
+-6905
+3211
+581
+-4593
+-4633
+-496
+581
+4734
+9153
+3385
+-6182
+-8225
+-1247
+-6181
+4134
+998
+-9572
+-7938
+-2791
+-1535
+-9225
+2609
+-9907
+-5098
+-247
+-7282
+-7046
+-7061
+-6936
+-342
+9694
+-3930
+-3310
+-6107
+9230
+3482
+-9696
+-357
+-4838
+4305
+4261
+8342
+-3229
+-7223
+-3974
+-4574
+-1407
+-8313
+2786
+2365
+-3488
+-8335
+-5580
+-7812
+-1972
+638
+-9977
+8850
+9896
+4778
+4561
+-5301
+-2225
+6048
+-6311
+-3803
+-5693
+-8751
+6208
+-7999
+-9634
+5465
+-2519
+-5799
+7049
+-8748
+9497
+1367
+-6318
+-2938
+9888
+5293
+7311
+3783
+8141
+969
+7952
+-9807
+-6756
+8062
+-377
+7027
+4017
+-1326
+31
+9067
+-4977
+-2045
+5832
+3703
+4698
+4295
+-655
+-6239
+159
+9466
+8931
+-7185
+-6032
+-7573
+4488
+-8863
+8860
+-9748
+-6703
+5358
+-4104
+7327
+2456
+7686
+-3277
+-5927
+9312
+1666
+753
+9758
+8496
+-9962
+-2464
+3020
+-2915
+5581
+8325
+-8761
+6119
+9130
+-4625
+-1023
+447
+4611
+8237
+-6271
+-2810
+-4374
+-2269
+6617
+-1668
+-3726
+1172
+-7455
+-1304
+9862
+6455
+-2349
+2661
+-674
+-3602
+-79
+5494
+-4438
+159
+-280
+-7099
+3130
+4717
+-2096
+-4240
+-9143
+-3178
+1030
+-5435
+5844
+6907
+-6588
+-8622
+4483
+5066
+-3740
+-1182
+6842
+4523
+-6420
+5448
+-8236
+7715
+8518
+-238
+-9578
+6501
+-4244
+-2920
+-8010
+1487
+5192
+-9604
+2513
+6677
+1988
+-7024
+-1174
+-9400
+1352
+7006
+2077
+-2027
+3051
+-2944
+1337
+1007
+1317
+9466
+3309
+-262
+2698
+8020
+3113
+9348
+-7031
+-9630
+-7257
+4104
+-2499
+3811
+-6360
+8422
+-641
+-9630
+-8761
+6356
+4303
+7158
+7522
+-2509
+-6435
+-3361
+-7284
+-4630
+7981
+3457
+-846
+6156
+-3442
+1629
+4347
+-702
+1029
+-3992
+-262
+-2354
+840
+9004
+6028
+717
+2746
+-3217
+1670
+9643
+-8898
+-4838
+9195
+1891
+2981
+7933
+4821
+772
+-7555
+234
+6886
+7203
+-436
+9008
+6985
+6830
+-9187
+-66
+7331
+3272
+-911
+2950
+-651
+-5854
+4604
+-4956
+2111
+8156
+353
+-8613
+-5175
+3383
+-6372
+1740
+4541
+2158
+-2632
+754
+510
+7247
+2299
+-9382
+5808
+3659
+-1797
+1035
+7998
+5682
+8305
+4390
+1172
+-2362
+-933
+-5063
+-8454
+-4218
+-7251
+-2997
+-1849
+3794
+-195
+-5799
+-5697
+-6352
+127
+-7994
+9047
+-1987
+-5145
+-5755
+1511
+6767
+-1448
+4989
+7246
+2229
+3886
+4327
+-7547
+7318
+7415
+607
+4884
+9462
+4698
+6388
+-9447
+8968
+-2322
+-1547
+5492
+-4362
+-7247
+1172
+-5622
+3978
+8779
+5186
+9553
+7089
+-743
+-7397
+9206
+7981
+2594
+9688
+7267
+9068
+-6308
+-6509
+7064
+-4378
+-6752
+-7244
+-9483
+5404
+-2778
+-8190
+9394
+8011
+9347
+-1824
+-3551
+4210
+-1198
+-2952
+-9863
+-5299
+6156
+5130
+-7114
+-4710
+1862
+6877
+6159
+-8112
+3196
+-2960
+1894
+-9857
+-2198
+-8100
+-7882
+4304
+5193
+3877
+8954
+-5985
+-8101
+-6678
+5919
+-3752
+-2429
+8143
+2828
+-1142
+-3088
+4782
+-5144
+-2801
+5990
+1021
+-7235
+-2641
+5929
+5838
+-9258
+-8022
+7922
+7417
+-3177
+7008
+7735
+561
+-9027
+-8989
+-2371
+-8790
+-5921
+714
+8763
+8423
+-7405
+8566
+1090
+-3937
+-160
+-9832
+5570
+-1284
+9360
+-2859
+8044
+1715
+-7466
+1680
+3050
+6595
+2985
+5870
+8744
+8252
+3580
+-928
+-1294
+5910
+-6487
+-7640
+1784
+4894
+-4650
+-1019
+-9258
+2367
+4527
+-6137
+-3959
+-6984
+-9774
+9167
+-8824
+-4163
+5192
+4698
+7225
+7174
+249
+-7017
+-3200
+475
+6976
+-4397
+581
+-7516
+5280
+593
+203
+-616
+-1049
+-7412
+-6997
+-8106
+-4967
+-974
+-8499
+654
+31
+8335
+-6159
+1548
+-2477
+-8776
+885
+-7815
+-3836
+-1403
+-2925
+-8854
+9056
+-9067
+-9298
+9017
+-3981
+-9684
+6259
+9620
+4994
+-6355
+-1996
+9444
+-4907
+-7855
+1525
+-4829
+2518
+-686
+-6877
+-8891
+1361
+-6322
+7819
+908
+-1809
+974
+-3344
+-3410
+8722
+4294
+6013
+-9613
+-9103
+1642
+1870
+537
+-3741
+-6994
+-1154
+-9568
+6
+5942
+-3240
+1398
+-6366
+2274
+288
+5654
+-8072
+-7061
+-1160
+9959
+6689
+-4031
+8047
+-7491
+1434
+-7797
+-2174
+-1198
+5909
+-9153
+-9096
+5342
+6559
+-8278
+-2849
+-2280
+-6202
+6920
+8430
+-8068
+-1817
+-8606
+3459
+8607
+-1826
+-6185
+3394
+-6600
+2982
+1341
+3479
+7294
+-843
+-7416
+6047
+-2225
+-112
+-2728
+9230
+-7972
+-7284
+-2257
+-1466
+-5027
+6472
+-5425
+-8569
+2557
+-2857
+-1563
+3050
+2456
+9382
+-9548
+-7271
+-3379
+8428
+-2297
+-263
+9880
+2328
+-7094
+4404
+-7640
+-2742
+8892
+-8955
+1367
+-5229
+-6007
+-2631
+-7875
+4534
+-4226
+3567
+-665
+9620
+4139
+556
+8360
+2456
+2183
+-5612
+3700
+9845
+-4455
+2313
+-7300
+927
+-7867
+8791
+-4121
+-9366
+7881
+1460
+7737
+4580
+9544
+5754
+-7038
+1774
+9252
+8775
+-146
+-6369
+491
+8934
+5387
+-852
+-243
+7730
+4554
+4892
+1624
+9929
+-6316
+-8924
+-810
+5849
+-9676
+-2982
+-1893
+1367
+1702
+-4320
+4727
+1025
+643
+-7565
+4817
+-5410
+-6639
+8822
+-2842
+1658
+2740
+-921
+5480
+640
+-2046
+8132
+9123
+6390
+-7055
+-4407
+7157
+583
+2374
+9767
+8199
+-7466
+-4590
+2278
+4730
+-4719
+362
+-4404
+9902
+3976
+2480
+7200
+-4763
+-6157
+-9082
+636
+6205
+-7022
+-4394
+5968
+-214
+-314
+-4329
+1429
+-8024
+-6766
+4404
+-1115
+9030
+-1326
+-957
+-1916
+-1198
+1715
+-7466
+-8420
+4250
+7418
+811
+1330
+-3602
+-5592
+3706
+8368
+8338
+-4713
+-8182
+-4250
+-6703
+9252
+-110
+569
+2290
+1519
+6622
+-5852
+-842
+2327
+3631
+6247
+-6044
+3303
+-3214
+9241
+-7668
+-6638
+-2566
+-6794
+-7114
+6677
+3129
+-8542
+3480
+-422
+9641
+9465
+-2915
+9020
+8819
+5789
+2022
+-444
+2183
+-5473
+9752
+-7057
+-5803
+8908
+-8139
+3856
+-1576
+-3226
+-4087
+6495
+207
+-2972
+3957
+-1273
+-5059
+35
+6534
+-5335
+-817
+-6352
+-1503
+-5905
+2920
+-8171
+9314
+-5465
+1942
+4008
+8257
+-2225
+-3927
+7154
+7200
+-1504
+-1799
+6983
+-5158
+-2613
+6758
+3113
+-5400
+-7184
+-5799
+8435
+4128
+-8073
+2830
+7
+-5530
+1067
+7060
+2185
+-4932
+-9298
+-2737
+1736
+-2567
+-3357
+-2756
+4701
+-2486
+4411
+1836
+9083
+7160
+5329
+6408
+7743
+6390
+6334
+-7293
+-4276
+-418
+-9984
+2938
+2921
+8706
+4373
+-2430
+2614
+-146
+6188
+-9458
+2527
+8778
+-7190
+-1843
+-2575
+-8043
+-4322
+4821
+-6769
+-9087
+9389
+3545
+4881
+-5460
+-2199
+33
+-8339
+7060
+6252
+8392
+-3402
+-2756
+-6404
+-77
+5936
+-2624
+-9446
+-1015
+-1984
+905
+-12
+-8948
+-2225
+7711
+-384
+-6720
+2442
+-1352
+9947
+5971
+-3901
+1246
+1629
+4527
+-9035
+9144
+3041
+-8431
+-1133
+-2197
+8559
+-719
+-5868
+-1972
+5492
+4088
+8744
+-3157
+5201
+-8277
+2251
+-8117
+-7430
+-6715
+-6334
+-6450
+-3146
+7762
+6311
+6589
+6513
+4800
+-3431
+8774
+4177
+-5197
+-7973
+6765
+-8023
+-391
+-2788
+5614
+1019
+-9646
+-1852
+-2727
+-518
+-6420
+1098
+-1053
+5508
+4480
+-3965
+2748
+4526
+-8859
+4881
+9348
+5801
+643
+9218
+-1576
+-6992
+-1151
+-5531
+-6588
+1620
+-6343
+4951
+9791
+1247
+-3138
+9832
+-1849
+-4790
+7994
+-4510
+9399
+-4954
+-412
+-7657
+8896
+-375
+9553
+8447
+-5818
+-2536
+-4841
+-4665
+3661
+7554
+9838
+-3399
+-7460
+5619
+-9714
+6995
+4674
+-6189
+-4625
+5858
+-4574
+5568
+-5059
+3367
+-6467
+-4635
+-7061
+-3135
+-6694
+3113
+-1829
+1120
+-258
+-4822
+2054
+-1445
+-5837
+-4483
+4137
+2767
+-4294
+-4932
+-1779
+-6137
+-603
+-3733
+-553
+8668
+-3041
+4658
+-4230
+-58
+-9127
+-2936
+4790
+-2972
+3524
+4031
+8932
+7931
+1555
+-1929
+-8741
+-2118
+-2857
+-992
+642
+-1494
+2963
+-3817
+7497
+1346
+4626
+7852
+9174
+9703
+-8838
+-8155
+1893
+8599
+1606
+6564
+9539
+-9075
+7582
+-6780
+1375
+7350
+-1001
+3202
+3631
+1371
+-8498
+9375
+8078
+-6046
+-9742
+-5052
+-5465
+1284
+5533
+5789
+-5923
+-9147
+-6552
+9584
+-8171
+6188
+-2198
+-8033
+-5115
+-1817
+-6842
+-9936
+-2486
+-1389
+-4712
+-247
+-550
+-8299
+-673
+-4147
+3396
+-5855
+4190
+-9709
+2036
+1890
+-15
+1594
+-4110
+7458
+4875
+-1807
+-3980
+-363
+-9123
+1907
+2981
+1779
+-492
+-1335
+-9537
+7859
+948
+-2860
+-4590
+6054
+8419
+5492
+9994
+-9049
+-8992
+-9153
+-6185
+-1293
+678
+-6850
+-8026
+-6219
+-8815
+-4083
+3640
+4402
+7145
+6119
+-8906
+6871
+-1785
+453
+9051
+8711
+-4760
+3297
+1779
+-1415
+5941
+-7119
+-4322
+8860
+2649
+-3562
+6656
+-4746
+-2056
+6111
+-6896
+-2846
+1998
+-3061
+-4971
+-9204
+-6715
+7423
+6137
+-984
+-8283
+-1047
+472
+-1463
+4234
+-7181
+-375
+8744
+2385
+-392
+4527
+3176
+6983
+5998
+-6053
+-1031
+-601
+-8347
+7198
+-835
+4667
+-2318
+-6877
+-3770
+-6347
+2583
+-520
+-7644
+-1400
+6205
+-9087
+-2006
+5536
+-5325
+-2589
+9317
+-3917
+-3239
+-9942
+-7104
+-5894
+5211
+-7307
+-9796
+6714
+9084
+2950
+7215
+6934
+1248
+6586
+-2147
+4298
+-4026
+-4407
+-9159
+3949
+5495
+-2760
+2155
+5689
+-7644
+9566
+3196
+-5058
+4953
+2313
+-5496
+-7785
+1418
+9676
+-3895
+-7156
+-4745
+-2199
+-2288
+7842
+-9756
+5972
+9543
+5919
+1741
+4350
+8518
+9438
+-1680
+-8656
+-6558
+-2082
+6451
+6233
+-8237
+5642
+-6091
+-7203
+-8521
+-1505
+-5962
+1406
+-3119
+-1161
+-208
+1688
+-575
+-2201
+-4923
+-527
+8366
+-1381
+-7934
+3132
+640
+207
+9784
+2740
+-897
+2306
+5668
+-4276
+-3314
+-82
+3289
+6410
+7249
+-2708
+-9356
+9514
+1519
+-686
+683
+7998
+-5504
+98
+-2755
+8624
+6608
+4143
+-3041
+-424
+-4244
+-8175
+-7691
+-925
+-4479
+1021
+9922
+9848
+-3215
+-2679
+678
+1724
+-5389
+-6397
+9519
+-2271
+5140
+-3301
+-4606
+-2629
+-6756
+8747
+-6828
+-208
+9489
+-8656
+-7327
+9819
+-3267
+7328
+2569
+7389
+-7498
+5941
+-8954
+2929
+5281
+1399
+-4601
+-114
+-4614
+-9937
+-2960
+-4887
+-8437
+6856
+-1060
+-4710
+-4063
+-8117
+1406
+5579
+-9942
+-1919
+-6672
+5107
+9519
+4803
+1728
+-4677
+-9634
+1823
+4334
+-6366
+9056
+7396
+1531
+6834
+7150
+-511
+3017
+1639
+8335
+9771
+-1198
+-4220
+3532
+8446
+-8346
+-1681
+-3935
+-3314
+8895
+-8596
+-8333
+9442
+3132
+5931
+9696
+5435
+7785
+4437
+-6974
+4250
+-3192
+-2574
+3840
+-6232
+9956
+-9705
+-622
+3301
+-7657
+-5252
+-5708
+2287
+4350
+-4969
+8877
+8830
+-5364
+6331
+7027
+-2365
+1446
+7244
+1636
+-4805
+-6021
+-8071
+6802
+-8101
+-7344
+4262
+-71
+-6866
+-5772
+4690
+-348
+-5250
+2088
+6531
+-9695
+-9042
+-4524
+1676
+708
+-9016
+8414
+-8075
+-1231
+9539
+-4822
+-7216
+-3851
+721
+9835
+1691
+6674
+-8976
+9027
+-6954
+8689
+-6411
+-6741
+3878
+1828
+4350
+2219
+8892
+-136
+-3654
+-846
+-7905
+-5120
+3117
+5511
+-420
+1044
+1782
+2114
+-7386
+-1551
+7136
+4434
+4524
+-3926
+-640
+9342
+2865
+7819
+2077
+-8763
+-1916
+-3345
+-5108
+4274
+1978
+-7466
+9948
+-5176
+-2869
+-166
+-41
+1353
+-440
+-8649
+-9425
+-4614
+2011
+5631
+-3310
+-3623
+-4510
+-6517
+-2810
+-6271
+4012
+-2282
+9705
+6279
+7868
+-1749
+-9075
+4989
+3338
+436
+-2419
+2674
+-8829
+9845
+6665
+-3740
+4102
+8649
+5090
+2235
+1882
+-7554
+-7905
+8838
+-2817
+717
+3676
+-7695
+9616
+9444
+1833
+-9267
+1169
+-960
+-391
+1035
+-622
+-5525
+-7407
+6789
+-312
+-3368
+-3926
+9480
+2655
+-874
+8706
+-6127
+-7644
+7760
+7331
+2947
+4113
+-1739
+1326
+-7886
+-7976
+7029
+3047
+-8606
+-7885
+-313
+-938
+9582
+9750
+4506
+8829
+9148
+3678
+2416
+9527
+4521
+4466
+795
+9639
+8863
+8279
+5678
+-7131
+-1389
+5126
+-9036
+-9517
+9231
+-8621
+9771
+-7543
+6756
+8122
+7107
+3338
+2572
+682
+-1467
+-2470
+-9826
+8354
+-3839
+7415
+7668
+-8011
+5640
+1064
+3010
+8343
+-7350
+9568
+7154
+6055
+-2318
+-7466
+-6285
+445
+-7145
+7992
+6789
+1169
+-5452
+3588
+4044
+-9548
+-8333
+9467
+-8851
+-4470
+9694
+-6099
+-2464
+2316
+-5177
+-5632
+-8776
+-9084
+8559
+-2241
+5082
+-8743
+3132
+9064
+-5615
+-3267
+-1563
+6576
+-4808
+1993
+-8948
+8354
+-5209
+-4479
+6074
+8712
+-7303
+7357
+-7460
+4700
+-3026
+-1750
+-1872
+8377
+2278
+-2771
+9188
+6099
+-8028
+-2625
+-7511
+-3296
+119
+8173
+-7516
+6909
+-332
+-6323
+1445
+9282
+-9425
+5839
+-436
+6530
+-7196
+7921
+-7087
+-6465
+-8780
+5219
+613
+4395
+2238
+-5809
+2923
+-6974
+-1023
+1751
+-4590
+-1223
+5462
+-3491
+9462
+-3970
+-2528
+-8201
+-7642
+-7534
+-946
+7257
+-2737
+1732
+-1958
+-4633
+589
+8235
+-8684
+9418
+7126
+7637
+6910
+1329
+-5722
+4595
+-7303
+348
+7911
+1766
+-3722
+-3291
+-639
+-1103
+1794
+-3582
+9943
+9393
+-2577
+-8489
+8518
+9902
+7941
+2278
+-3464
+-7083
+7186
+-5772
+-9016
+-9095
+4374
+-9849
+1113
+-1898
+-2997
+-3712
+-6670
+-1381
+3794
+-5530
+1759
+-8901
+-7460
+-4718
+234
+9540
+-5077
+-3041
+8720
+-2485
+8863
+-3813
+2195
+3156
+-9768
+-1782
+-4777
+-2071
+7272
+-8060
+7522
+-1526
+8305
+7117
+3283
+6806
+-3993
+-846
+-1680
+6859
+-9098
+4288
+3126
+8627
+401
+-5413
+-2057
+-6359
+-6913
+-6366
+5266
+-392
+5709
+-1813
+6112
+5945
+2480
+5041
+-178
+-9867
+5896
+-1094
+-6925
+7783
+-7538
+-6586
+-3972
+-289
+4404
+-6021
+469
+-1032
+671
+5916
+1246
+-8708
+2240
+1488
+581
+-6138
+8943
+-7
+8436
+-146
+9652
+4416
+-1533
+-7790
+-6335
+-8000
+-1570
+-9632
+1542
+-3315
+3132
+1
+-9779
+4881
+9652
+2602
+5909
+4035
+-8795
+-5783
+-7850
+-4861
+7431
+-7882
+-4614
+-960
+9011
+2055
+-6756
+4237
+2194
+-9866
+6822
+-6068
+2854
+-9995
+-1532
+9252
+2555
+-8235
+3272
+9611
+6480
+3895
+-9422
+5387
+-9725
+-5870
+8959
+6271
+1060
+-3959
+-1812
+8492
+-7610
+6859
+-7992
+8156
+-1856
+-3054
+-4999
+850
+4999
+-1326
+8285
+-4384
+6112
+-9446
+-5784
+-299
+6135
+-8472
+-913
+-434
+-3000
+-2562
+-4431
+8640
+-3310
+-5312
+-262
+-1134
+5647
+2088
+-9634
+2120
+8199
+-9277
+4805
+-810
+5447
+7289
+9568
+7304
+-8060
+-7964
+6968
+-5535
+7524
+-9763
+1232
+-167
+-6486
+6589
+2236
+-7491
+-412
+-5580
+-7180
+6480
+5851
+-706
+6
+-6023
+8503
+8585
+3950
+-9049
+348
+5531
+9130
+985
+-2106
+-5799
+-2865
+-5737
+6758
+-7491
+-9747
+-4906
+8264
+-584
+645
+-9755
+8336
+-3699
+5126
+6611
+-7860
+3267
+4987
+-8780
+-3371
+8949
+4132
+2624
+-1750
+4802
+8640
+-2536
+2558
+2522
+2170
+2331
+-4163
+2767
+-6906
+-2901
+9054
+-9777
+-7183
+7696
+-2008
+4790
+-6153
+7249
+-384
+2662
+-7416
+4472
+-2445
+4029
+1220
+5988
+1165
+-5231
+-3842
+-4133
+-1420
+-7885
+8700
+-6927
+9776
+5929
+-3159
+5972
+-484
+8401
+-1241
+-8925
+-9464
+-6224
+-8226
+-9423
+-1281
+6495
+7524
+260
+-1812
+-3022
+9767
+8082
+498
+-9579
+-4139
+3703
+-2915
+6360
+2497
+-9084
+-5953
+9754
+826
+-3022
+-8391
+643
+4862
+9771
+-7336
+-1321
+-2818
+7186
+-2479
+-8128
+5201
+-7695
+-186
+7781
+1874
+-1463
+-8592
+-8986
+8240
+-5259
+7396
+1894
+-9839
+-1052
+-9548
+8841
+-473
+-7534
+-8863
+-5849
+-9522
+-5028
+3869
+-8922
+-8972
+9902
+9444
+-3210
+-3491
+8522
+8569
+2595
+2322
+-9229
+5193
+-7659
+5727
+-980
+5491
+-4114
+-5168
+-3267
+3744
+-9514
+7119
+-8849
+5896
+-4843
+-6220
+-3177
+-8649
+9011
+8302
+8077
+7822
+-475
+-4104
+-7010
+-5893
+-5460
+-3686
+6535
+-385
+756
+-5582
+-9016
+8585
+1027
+-1410
+8086
+1326
+-9926
+1289
+6806
+8898
+-1617
+-2972
+2614
+-1578
+4869
+6012
+-9324
+9802
+5174
+-7511
+-9544
+-3965
+-5683
+8506
+-3802
+-491
+-6581
+-5580
+9382
+-1570
+8017
+-5462
+-5325
+-1302
+8369
+-8948
+-5631
+8342
+-3498
+-7608
+-4525
+868
+5192
+-2062
+-5815
+5339
+-3118
+3524
+-6105
+-466
+-6285
+5404
+-9343
+-6103
+-777
+-6534
+-6314
+-995
+905
+-6328
+-1323
+-3681
+4128
+1552
+8353
+4404
+4076
+1225
+5348
+-6410
+-1561
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_21.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_21.tst.data
new file mode 100644
index 0000000..a889a99
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_21.tst.data
@@ -0,0 +1,2877 @@
+zfbd: 5
+wnqf: pnwq * htpn
+tdrp: wrpw * vvwp
+clfw: rnzp * zvhb
+gncs: 10
+tlmm: 5
+lslm: rbdz + tcvs
+wgcp: twsp * ldnm
+mhvf: 3
+gsjw: 7
+zjdb: zfwg + hlzh
+drbt: 7
+ncwt: 7
+nsdv: czts * nlpw
+mrgj: 3
+pjcc: 1
+lqrj: pnpq * msnb
+jfrn: 3
+zjqc: 3
+rpnz: 4
+btzp: dlpt / gsfg
+jcfb: 5
+fcjc: fpmd * lpll
+wpmd: mjjf + hqrf
+bgmt: cnbd + lrmc
+fwzl: zsdn * fqjs
+mwzp: svsg + tzgm
+jglm: pwsp * bvmg
+bght: 5
+dlcc: fbzq * szlg
+hlzh: gfwz * dlcd
+pfpw: srwl * wlwr
+drql: 8
+wvls: 5
+qzzm: dczl + ddpz
+qslq: lgqj * nmdl
+rhvw: 3
+lcnj: 2
+gblp: qblf * rqlf
+bczw: zssh - rrsr
+pblq: mvbt + gzpj
+fmsz: 4
+jjfb: vpgn * ztqq
+ntgz: 3
+rdrb: zmrl * wsrq
+mppd: qsjp * szdm
+bjss: qhdc * bgsc
+dgsb: hsmc * gpbn
+mmgq: 19
+vfmn: flmm * dprg
+dgtz: zslp + bwsz
+cqwt: 3
+hjpg: 3
+pmqs: 15
+jcqq: 4
+gzcn: 3
+qsdh: 3
+ggwc: mfpf * lvgv
+qdlh: 2
+vpzr: 2
+bpfv: 10
+qwwm: 1
+flph: nrcn * smcv
+cpzl: 3
+wdzn: gdtc - hczr
+tbmp: 8
+bggp: rjtz + jjfn
+gspd: 4
+wstv: 20
+hnzd: 3
+mbbl: gsdl * cfjw
+zjsw: 5
+llcz: 5
+wnrj: pltj + vvhn
+wvhn: 2
+gdwp: ghlq * hlhs
+bsnf: hdqn * mqjq
+rvsm: 2
+qjcl: fnbl + qshl
+qrhr: lsdw / hhsg
+frvm: 1
+lqpq: 5
+jfpl: wzbj * sdbq
+prfr: 2
+vpgn: pszd * tcfg
+swqv: 2
+hqgh: 15
+rdvm: rcmw * hnzd
+bbmb: rjgz * mqgr
+bscv: 3
+zfsh: 2
+lbzm: 4
+wwgb: 4
+zcgg: njmq * gvmg
+njgl: 3
+gvfn: 12
+hjpw: 8
+gblz: jjgj - vzld
+fzfp: 5
+gvtz: 6
+ssdf: zzcw - tlmt
+fgjh: 14
+bttj: smlh * gtzh
+wltg: wfcv * vqsw
+gcrr: srqs / rdtb
+shvd: zfsh + dhdq
+fdzr: zvvp * rsfc
+wjwc: ncbv * wqnq
+vpds: 11
+jcmg: 2
+cbsd: pzlz + zsqs
+ztpf: 9
+dgsg: 20
+tcvs: drbt + ggjn
+dlqw: mwsf * rqll
+bfms: 5
+fhrh: vwgf + nrvh
+cbhr: 3
+rhmn: fllz + vcvw
+zgbm: 2
+qqzm: 6
+tddl: lzdj + qrjw
+bwwp: 10
+vmqr: 5
+frlr: tgtf * bszs
+jdll: zbnv / hwnh
+jvrg: hqfn - jmcs
+cjss: 4
+bjsc: 3
+zqcm: gcqn * lzwr
+cldl: gtvj + ndqt
+fpbw: 3
+cfbt: 2
+rdhn: 3
+zrdp: fcpp + wdnj
+mzjn: nwjd + zrdp
+vhld: 3
+ccrm: 3
+wdnj: jmct + mjvl
+zcsz: qpbr * rvsm
+jzbq: ccgc - wldt
+nglc: zlsz * gbll
+tzqw: stqf * zffp
+gcnj: 3
+shrq: hbfm * bbpj
+cldj: 4
+nqwp: jmgc + pfnf
+hctq: 2
+hbfm: 3
+wqpn: hrsr + qlzj
+fjfd: vdzg * pflw
+fqjs: 14
+tjwn: 13
+tqmc: 3
+lbzg: 4
+zhds: qqzm * tptb
+cspt: chsr - bfms
+jvnl: qjrd + shrq
+dvnq: jbdw * pprv
+jqgc: 2
+dmgj: 3
+sprr: 13
+zhfn: 1
+cwlg: wrhr / cwwv
+whql: 18
+vtml: 1
+lgjj: rjpt + hsdq
+mlmd: hqwm * ftqb
+vsdb: qfqf * rmlc
+vnwm: ctbl + msmc
+sdbq: 2
+rrmb: jwgh + ppbs
+rcmw: 3
+dcqb: hhjf * zwvf
+lcdl: 9
+crww: nchh * cfbt
+twzt: jzdb * vzwd
+jdft: 2
+mbsl: 2
+hnrf: rjhg + lffp
+tgpl: 2
+hbbd: 12
+czfn: dczc * bztw
+vznj: 3
+sbhl: 5
+zlvf: tgjz * sjvt
+fbms: 17
+jgfp: zspf + tpgj
+gbqq: pwsb * lnft
+gzmg: jjnq / bggz
+mznj: 3
+dwcn: mwqf + qtdf
+rczp: czfb * lvwq
+hmrp: cjvp * rqvt
+fswg: zvzq * tggd
+rhmq: lvnt * lpbb
+zchp: djln + jmsv
+lmpb: jmqh * lthd
+wmwm: fpnj + bbmb
+rnfn: 2
+hdpd: bdwr + qsff
+zvhb: 2
+zbhc: 7
+qlnv: 5
+fwlb: 2
+zhjv: dzlh + bplp
+wlqn: jgdz * phtr
+ssrb: whth * gzjf
+twmg: pzgm + rlmj
+dwns: 2
+bvjv: wbcl + nqdh
+bggz: 2
+vdzg: 3
+vphr: 3
+chrl: zqvz * jcws
+jsts: 5
+zpsn: 2
+gsdl: dlrb * nbtg
+lhng: 8
+tmqc: dhhg / gjsf
+gfwz: vwqt + drdl
+zvzq: 5
+qsvf: wgvp * dswc
+qlnp: 3
+lvmq: 11
+rznh: 2
+tjdv: swfw * hnrf
+wzmj: 9
+rzvz: fbdb * qdvz
+zrzf: 3
+tzsc: 2
+zvhf: 2
+qfss: jdtm * szzm
+gjjt: 3
+tlds: 5
+tfsr: 5
+swdd: drgg + hgwm
+sttj: zvts * cwcj
+qfjq: ztmq + bjss
+crhc: rpmg * gcnj
+sssh: lzvd * swdd
+zmdb: bzpc * gfqb
+qptl: 6
+trvm: 2
+prrq: 3
+ghmh: 16
+rntv: ftfb * vgdb
+gjhh: vlzz * fpfm
+mptc: 2
+tlvg: 14
+mlgw: twqw * cfzv
+vghn: 2
+wbql: 4
+vgwt: 5
+cjvp: 2
+nvcl: 4
+dqzs: 3
+jmqh: 3
+zcbq: 3
+bmrb: tqnm / vlgf
+nqcn: dtgf * mnsq
+fgjs: 5
+bvlc: 7
+hcwt: 1
+wzcf: rtzn + lfff
+whgs: 3
+szzb: 2
+hgwv: 3
+qczn: 2
+gvrr: 2
+swws: snpf + dmzq
+cmpp: snqf * llcz
+mlrd: 3
+nrbd: 2
+mmbr: nllh * lcnj
+pzqz: vqjj - bzmg
+mvtj: flqt - szgn
+hhcj: 6
+mptn: 2
+crwj: 15
+tpgj: svzb * hnlh
+qdfb: 13
+wqdr: tjtl + jcdh
+pdrl: gzpt * pjhw
+cztj: ztml * nbnh
+jsgs: flhf + dwmv
+pnmf: 2
+gvtv: 7
+vdvh: 4
+frvq: jtlv + lhvw
+dfdz: tzqw + lhhp
+qrqg: zhjv * hdhc
+cmvf: rphw * gzcn
+njmq: tqrc / nwvg
+nhsv: qrss + vmsm
+jmcq: 13
+fbsc: 2
+qstp: 4
+rpst: 4
+pnwq: 13
+htvv: wscf + pdbj
+zlpd: 15
+wgjc: 3
+wtbj: 7
+crjq: pddq * nzcz
+cppw: bsnd * lgmg
+nmpb: 3
+pgbp: pwll - ccsd
+gftq: 10
+mlzd: 4
+stnz: 5
+gpnl: 5
+bnsd: qhmm * fvbd
+tvdl: 18
+srwl: 2
+zjbq: rcrb * wsbj
+qzdj: 7
+zlvv: 10
+jzcb: 8
+psjj: ndjc + zpdb
+cwgq: zvbw - zdjr
+sbst: 2
+bgsc: wrnz + mmgq
+stqq: hmrp + gzlb
+jnzj: 2
+wvzb: mlds / cpbv
+nfvh: tvwg * psll
+wvpd: 5
+zphm: 2
+jrsq: dqzs * fnjv
+hhjq: hfgw - lnsn
+hqwm: 11
+vsfv: grfv + vlcb
+fmsp: 1
+rqdl: 2
+shfs: 5
+ltln: 2
+pcss: 3
+frth: qcwm + plbb
+ggtb: tcqm * jwcp
+hhmp: fgnd + nmtw
+qpls: 14
+dvvc: 6
+tjvp: bzsv + vmvr
+mmlv: 4
+ncbv: 5
+gcpj: qdvq * dbpr
+gllb: 9
+wpbp: 6
+bwmh: htnl / lbft
+lfgc: 4
+qmqn: 14
+gqbr: 11
+vlhc: 2
+lbhq: fcgv - mffn
+plrj: btzp - zhcc
+ccgc: gdvv / vdwn
+fqjh: cdff + rgql
+qdvj: 17
+zzdd: jths * ccbw
+wzhw: rszl * lrwt
+bqsq: dhsn + twwz
+dlft: 7
+mbjm: brnv / mpnh
+vltn: pshj / slzj
+gzqg: 2
+wplp: vjnq - sbrz
+vbqv: fvwq + bpfv
+vdlq: fzbl + tpzc
+jmbr: zhmm + lgnp
+gjpc: 5
+hnsm: 4
+ppvn: 8
+lvlc: qhzc * thnj
+drlm: 2
+ntcp: 2
+jths: zhdd / hdmh
+jnqb: 4
+dbpr: 3
+bftw: 2
+dtzp: 3
+bpfr: dwns + bzqz
+pjlc: sprr * mddr
+spjj: 17
+tphs: rnmz - zscq
+qzwh: blmb + mbcq
+nwmb: lqzq * glgf
+psll: hwrr + hrlm
+rzrj: 1
+rjgz: qslq + qnsh
+zdvg: 2
+fvtf: 11
+rjbd: grhh + wnwp
+lqjq: 3
+cqbw: zvdt * sjvr
+hzff: 14
+pmbn: 5
+dqwz: sdfv * wchv
+crql: ffbf * hpjf
+jssv: 2
+mfhw: dwrh * jcfb
+bwnr: 2
+mwqj: zhfn + ddrr
+pzgz: czdw + ftzh
+gcpn: 6
+rvpf: bnlv * mztq
+nqsm: 5
+mvdw: 3
+gzpt: bpng + zbhj
+hzdf: 16
+wwsc: 20
+trwg: pbcf * mgdr
+zhcp: cgss * ltln
+pnwj: 10
+rrsr: 1
+sprw: 8
+rqgq: 2
+pbvt: 12
+jbqn: 2
+jwvm: rdnm * zrzf
+hqcm: drhl + msbw
+pbcf: jtgj + hrlh
+gqqz: 2
+flrh: 3
+fbrb: jjrn + bjnh
+grmh: nbnm * wnfn
+rdtb: 3
+fvbd: 3
+pvmh: cvwd / vghn
+lfqg: lqzj + lmvh
+lrwt: fswg - rfcn
+jbbh: jcvj + ppgt
+nvwd: 2
+bghm: 2
+pjpp: mbwv + lnls
+jlmg: swwd * vncb
+zvhd: njqv + rwgh
+hswj: bbdf + ghch
+szzm: nbdt + bsnf
+lhns: 2
+cvbw: jpjq + jwqm
+cmhv: 5
+nbnh: mqrb * bsrr
+sqjd: vbnq * ssdf
+zvdw: sznf + bgmt
+snfw: 2
+qtzr: pglg + fbqp
+ngwd: gtcv + lljb
+nbrq: 5
+dtdb: sprp * zgnq
+jsvj: 2
+wfzl: qsbm + qpcj
+zcpp: zglf * qfpw
+mjqf: jgsd * bchm
+fmtc: 2
+ctwj: 3
+zrnm: 3
+ttwb: pqvj * rcdw
+szsl: 5
+qdsj: pnfg * fvqb
+zmjn: wsvh + vtml
+llbb: dnnv * wspz
+wfzd: 2
+blpd: 8
+rrzs: jzfv * vsjs
+prht: 6
+vlgf: 2
+jwqm: gbqq + hwjh
+lvlh: jmwn * zcgg
+gtcc: qvct - sndn
+rcmn: brpv + lrbb
+tjcv: zjqm * hmhc
+bsmw: mqrl - gbhf
+ddnd: ghdc * tdrp
+bhcd: gsgd + lslm
+shln: 4
+rldv: gbwq * qzhl
+plbb: 16
+qsfs: 3
+fdrr: ljtz * jrcj
+wrwq: 5
+cwpz: vhbf * ztbz
+glcc: 3
+vwbf: 17
+htmn: whgs * ppvn
+fwtt: 4
+hdng: gbsh + sclr
+lmjl: lrmt / nmpb
+vmrr: tlqc * ntmn
+srss: 3
+vrtq: 4
+wdnt: bwsc * mlbb
+zlnf: 2
+wpmr: 7
+wtdz: vczs * vncp
+swwd: 2
+tcfm: 18
+vlml: 5
+jldt: jrvv + lgdd
+vswl: 3
+qslr: nrbd * qtsn
+rlwh: crql - bzlj
+vbsj: wzfm * gfvz
+zpcr: 7
+jzdl: fmrp - vfsb
+gcch: 4
+fszl: vpdp * wlhh
+wwrl: qslr + nzgn
+qhzh: 13
+wwrp: 17
+nncc: jbls + rfvt
+qhvd: zngg - cnwd
+ptsn: 1
+scsf: ftvm * tlgj
+lfbh: gqwm + twbm
+gtvj: 14
+hzwh: 2
+hzpz: 5
+fvwq: 1
+chbs: 2
+ftmj: wgpn * vcsf
+lfzb: 2
+tsbv: bthm + mdrt
+wfgw: 2
+btdn: 5
+jztc: tdbp + ghzr
+ncld: 7
+gjsf: 2
+wsjn: tlqt / gvrr
+vzld: 2
+dvhb: 5
+grsc: mqgl * qlnv
+dhdq: grbp - grmh
+bhvz: qbbc / ldhd
+zgqc: 5
+tmcf: 7
+zfwg: clfw * dglt
+bwsz: 6
+dwmv: bsfb + dsnd
+fvpb: 3
+zcvc: dcfv * jcnh
+cndv: 5
+tcfg: 3
+zslp: 1
+drjr: 3
+wnjb: 3
+rrrc: mvpd * jctj
+fgvn: qtwv + gpvn
+dzcv: wbmj * rzhr
+pzgm: fmct * wblf
+tptb: 7
+vccg: 4
+lfcv: rsbr * cqjl
+cbdr: mqdh + ggsf
+fzpr: qwwm + nsmc
+pbzn: 14
+gbll: 5
+rjhg: dhdm + pmgl
+czfb: 10
+vlcb: 5
+lflc: 2
+tqtw: thsv * ntgz
+dvnt: 3
+jjnq: jgrn * zjzb
+nlgt: 9
+vqsw: 12
+dsnd: 4
+vrfz: 2
+zlps: 3
+hvjh: 3
+hbnc: 3
+nzgj: sngd * wthh
+smlz: 4
+fgvc: nwwh * blpd
+srtb: dcgm / zjtq
+fptp: 8
+wscf: njrb * dwrt
+hrlm: rgqf * jcpt
+btfq: cjzc * zsjn
+rjzw: hvfp + zmql
+brnv: bmpj * jgmh
+wblf: htsb + httv
+fcpv: 20
+tfll: wbbj - vfmd
+qwwv: 14
+wfcv: hrjq - wgjc
+hjmm: 2
+nphn: sqsm + cnjf
+psjz: 2
+plrp: zjsw * hglg
+pzvl: cchf * gwhl
+hnnl: 7
+hdcd: 19
+gsfg: 2
+swfv: wnbq * rqdl
+dwdt: zccv + spmf
+bfsh: 1
+ztgd: 4
+mzhn: qhcb * cbhf
+gdgw: 4
+bqln: qqcm + ddtg
+brld: 2
+mpzr: mgrw * tzbv
+mtgf: 4
+slpc: ntgr * tftb
+mtcn: wstz * jcgl
+qmwd: 5
+csvq: 5
+mqhd: mtqw + bdzf
+lmmp: rjdw + bfdj
+jwgh: wzsp + splm
+qsnc: mwhr * pzqz
+dntp: zrbt * wtqh
+fbrw: rcmn + bnsd
+rhgw: 2
+hdqn: smgw + mvtj
+hdmh: dmgj + pdmg
+sdfh: sgrc - gfcz
+fgvl: 6
+dswc: 5
+sdrr: 3
+wtlb: 7
+fgnd: wdzn * fghs
+lhnb: pwbj * dvbm
+zlsz: 19
+nqrr: 7
+zbdf: 13
+frjd: ltws * hjpg
+hmfc: 2
+dnfn: 16
+pptt: 5
+zqcs: wcmm / sbst
+vzbv: 4
+zzrm: wrvs + bjdc
+zwsw: vtvz + bdvp
+cvnc: 5
+dlcd: 7
+nqbq: 2
+hwwc: 1
+nhhb: 5
+blfw: ldmq + gmbp
+phtr: 2
+qmmq: vbzr + bwwp
+rjjv: ltjt + jmhq
+qffg: 4
+wchv: 3
+qccj: 7
+vwsw: ntqf * sgqj
+qnss: 2
+jmtn: 1
+mzts: mptn * stnz
+pqvj: 4
+fmqr: 3
+hbqs: 4
+nhww: bpmh + tqtw
+vhbf: 2
+tpgg: dcrr - mnvl
+hqfn: 18
+nqdz: jqpr / mtct
+bgqr: 1
+rbcd: 4
+rszl: 2
+vvvt: 3
+hwrr: cllg + pcvg
+ftzh: 5
+ttbl: wctc + bgbt
+jhbw: 2
+rzgw: 3
+zjgz: zqgz - fdls
+mnbv: wpmd * fhqp
+zglf: 3
+lgdd: 1
+hzss: gbrh * jnhg
+mtcq: cbsd + fptp
+ndzj: 5
+qgdh: 2
+tlqc: 2
+dmgp: 13
+hsjt: ggvj + wmpp
+tvpw: stpq * pfsd
+jjzr: 4
+dlrt: 5
+twwz: dnqf + dpwb
+vnbc: 4
+btdr: wjmw + mhvj
+nmmp: 6
+hbqh: 12
+pdbj: zjdb + qhjj
+tmmh: 3
+shnt: rpgb + qrbp
+qnfr: jvgw + vjww
+wnbq: hrbz * qjcl
+mtpn: 4
+mfbj: nqwp / blcn
+hlqj: 1
+qjvn: 4
+rgql: 4
+ptsz: mnbv - zglh
+bwfq: lqtn * qngl
+vsnh: wmwq * nqbq
+fhfr: 2
+hsmc: pfpw / scpv
+fscp: 6
+wzcr: lbzg + zmnj
+crdp: 2
+fglh: jwdb + hcjr
+dczc: hqlv * vptz
+gdjj: glcc + dlvq
+dgtv: 7
+ljtz: 2
+qsff: 7
+rqfq: mqvf + fpjl
+zbgn: mwtf - njgl
+cmjv: mpgs - wpmw
+ncnb: 13
+nvwl: vbjb + sjlc
+vplg: jdsp * qdgv
+rslh: zpcr * nmbp
+wpvf: hhmp / mptc
+bdph: 3
+qmcp: gmts + swhm
+qngl: 4
+rjpt: 3
+zhdd: ddbn * wtlb
+bqcd: 17
+tzdc: 13
+bftg: qpls + hmss
+crnv: 17
+bcwm: lvzt + llfc
+prdr: 15
+dvpv: hvth * pfzb
+bdwr: cqfp * tczb
+nljr: jllm / sltm
+vqjj: fncj / lbzn
+mpqh: 2
+lnqs: 2
+rpgb: 2
+ffrr: psvv * wqdr
+tmlf: 7
+bvdn: dmdb + ljft
+fzbn: 3
+vrvv: nzfb - bjdt
+pghh: 2
+hbzt: 7
+wtqh: 2
+lznq: 14
+mgrw: zwvl + nvcl
+vqnl: 2
+pprv: 2
+vvcv: 3
+lldb: qsnc * hzwh
+lwgm: 2
+zlrm: tgcg * rznh
+mgmq: 3
+wphc: lwbm + tgph
+wlhh: 2
+dmgd: 2
+qvgj: 3
+vptz: rnhf + qmzq
+nqcl: 2
+llwg: cztj - cgsd
+jgdz: 3
+vhfn: zcvc + rtmz
+qhzc: pjsb + vwbn
+gnnq: 3
+fgmq: 3
+fnbl: ztzs + pwfl
+pflw: wbbz * hbqq
+dzzq: zzjq + rcvn
+lhhh: clpw * mbdl
+trwt: lmjl - lwdt
+nlfn: pzgj + jvrg
+dvdl: lqwz * dcmr
+lwtj: cbhr * lhfz
+twfr: vvcm * stqq
+hpsv: 3
+wcmm: ttzz * zlhg
+jcdh: 10
+gtlr: 1
+qvnw: 2
+sjvr: 4
+dwdw: lvwd - qshv
+rngg: gblz * fmqr
+dnzc: 2
+wsvn: jhqj * grwr
+sgqj: gcpn + qdvj
+nllh: gjbh + vvgt
+tnnw: 2
+tqnm: jvct * nzpt
+ppbc: lnqw + wmst
+wwcm: 13
+rchl: lhns * nclw
+lvcp: 2
+wpgn: 2
+qncb: 8
+csgs: brrd / qcwt
+gsgd: cjtd * lmhj
+qbdb: 2
+jnhg: 7
+nfmj: fbff + bmhl
+cwwl: ctbp + ztpf
+tqcj: nmww + cdvg
+grwg: 3
+mqpp: jwhv * rgmn
+glmv: rfcr / gzrf
+htsb: qhfc * fdrr
+jmct: 1
+qtcf: fdqt + gncl
+mdvp: 2
+jpdc: mzts * hqgh
+dnqf: 1
+rdfh: 5
+ttzz: 2
+btrt: 2
+wbzr: qdht + mlzd
+zdjr: 1
+ggpb: hhqm * vmcw
+wbmj: 2
+dhhg: fglh * mphq
+bnbw: zchp * rbjf
+hczv: 2
+wlfn: hhjq * ghdl
+lgmg: 3
+mrcb: mpdj * vnwm
+rvzd: 20
+qwct: rzbt * tqpq
+gmqr: 7
+nmbp: hlqj + rzsv
+qhvp: 1
+jdwp: 2
+nszf: sssh * ndrv
+jfvs: rhgh / zptw
+gjcg: hswj - wfbd
+rnsd: wntz / vrtq
+lwqb: tcvt * slsc
+zgph: qznj * fcfp
+ffvr: 5
+msmc: 2
+qsmf: zcbq * gjjt
+hhjr: 5
+qdlt: 3
+rvbn: fbrw / rzhn
+pnwh: hpsv * pwrn
+sbfh: flph * vpds
+wfgr: 13
+zvdl: zrlw + wrfw
+fmhd: 12
+wbvs: cspt + hnwt
+zsvw: 5
+ccpz: nbrq + wrwq
+tghq: zlrl * dwtf
+zfrl: 3
+zlhg: gmqr + fddm
+lpbj: 4
+mcns: jlsf + vfmn
+bjms: 8
+hwvm: jtbl * mhqv
+gdmj: qrwn * svjf
+wjbf: lgzw * wpbp
+zvnt: 4
+qbcq: 2
+fqhj: 3
+tpwp: vncw * qbgw
+msnb: dbgw * vvlf
+smgw: bvlc * gllj
+jrcj: 3
+smlh: fpvp + wrzj
+msqg: ccrm * nqsm
+dhtz: fhrf - cbdr
+qvvt: dlrt * lbgj
+sjqz: pqnp + zntr
+hpcd: tzsm * njjn
+mgmd: 18
+vjww: tpbz * hmgl
+hhlq: 15
+jspz: trwt * qsnh
+jzfv: 4
+cnwd: ltrl + fdzr
+hppc: 3
+vzvq: 4
+qpcj: 5
+bbpj: npnh * gczw
+gmgn: 5
+dcfv: ljfc + hdpf
+rsfc: 2
+nmth: gjrf * pnmf
+bqht: 5
+zhgq: psph + dwvv
+sppf: zjpl * slfj
+lzmt: 7
+vwnm: 10
+cjtd: rnfn * jfrn
+tlnr: pdbg * qfqn
+mbzb: 11
+qlqd: zlps + vfhq
+cdvg: 4
+tqsq: 2
+rjwz: 5
+bplp: 6
+hgdt: dsnr * mlrd
+jlqc: vslg + zlwj
+mpgf: 5
+swhm: lhgz + rfrd
+hglg: 5
+vvbv: 5
+phvl: 5
+jtsq: qbgl * hjtb
+gtfn: 11
+tggc: 3
+fbqp: jdsg * tpwp
+vbjb: 1
+dwmd: flnz + nqws
+mjqj: 2
+tvnr: jrjd * nqsh
+nqvn: dplr * mfwc
+brtb: sjdj * cwwl
+bcfv: fppb * lwlw
+nqws: dllh * nsqz
+jddq: 2
+sjvt: nldl * jrrz
+hqvd: 12
+zqbf: dgzr * qmbs
+lrjw: lmmp * wpgn
+qsqv: 7
+vcbs: 3
+fcpp: hgwv * vtsd
+ttwg: 2
+dnjt: 3
+zzmc: qlsj * nbzn
+dwvv: vfnq * bcbz
+pjhw: 2
+pfzb: 6
+cpvn: 4
+vrft: dvmw * zbdf
+wpwc: mfbj * nvwd
+jgmc: 2
+djqd: 2
+cglm: cwlg - crhc
+qrlp: tjdq * hjzm
+gfcz: cbtf + wsvn
+dbsp: 2
+dtsb: zwfr + zbww
+cmwp: 2
+hgwm: 10
+wfmt: dvpq + ftmj
+hnlh: 5
+lsjt: crmb * mhpr
+vtdm: shnt * vbbn
+bzbp: vnrb + dlcc
+nrlv: cvjs * qtcs
+wnls: lhwc * twfr
+rqcv: 17
+fbff: rpnz * nhnz
+qznj: ccdl + htrl
+szdn: 10
+dfbs: dzcv + mbvd
+lpdw: 7
+zptw: 4
+hqlq: mjqj + vhdb
+mvwc: 3
+vjzb: qhfn + vplg
+jvvm: 3
+ltzz: rbmm * zbmw
+qrbp: rllh + btfq
+mztm: gmgn + mtgt
+gddt: 2
+nmph: 2
+sgqt: 14
+rhnj: 13
+jwhv: 7
+hnwt: wvzw + sqcs
+bwll: frlr + wvsq
+tlfw: 9
+ntgr: 2
+hhqm: 2
+bslv: 5
+llph: vmqr * srpb
+qmzq: qczn * zmft
+clcd: psjj + jsbf
+lpll: 2
+vmvh: 2
+jqsc: vrvv / vwcq
+zmdj: lmrn + clvb
+bfcb: sjqz - rhmq
+vcfv: 2
+cbnj: 9
+hftg: qvgj + cfww
+dhdm: 8
+qhwr: pcwt * hrwm
+fhqz: fmdg * sppf
+drdl: 2
+jfvg: 12
+psqq: 5
+gpvn: rdrb + zdmq
+mtsm: 3
+lpqf: hpcd + frvh
+shlw: vrsn + nbvq
+clpw: 4
+wwld: 2
+bpmh: 4
+dgvv: wvzb * nmph
+dglt: pgrb * tljm
+hbfh: 1
+vlhh: lldb + vtpv
+hndv: csgb + rlls
+rzhn: 2
+bmjf: 2
+fncj: nwvs * jfnp
+bfdj: vdqw * ttdg
+dctp: lswz + lhng
+jvlw: 2
+tvtm: mqzr * ptrr
+snpf: 5
+drhl: vmft * pbvf
+mjnw: 2
+stfd: fbdf * tqmc
+gzpj: 7
+vlnb: 2
+dcmr: 3
+gbhf: gzbf + rbqm
+lbzn: 8
+ccjd: 2
+fgtz: 3
+hvmh: 2
+fwtm: dmlf + gjqm
+tlwc: mjpd + pzvl
+vhmg: dtdz * cppd
+dfmw: tgpl * jnwh
+mjcv: pjsg - tsmw
+sqds: svbl * pvws
+gwhl: 2
+pbtp: 5
+djsp: 1
+dllh: 2
+fpvp: wgqs + ngwd
+gczw: 2
+lhcl: 4
+pjts: fvns + wphc
+qwrv: jbnp * pcqq
+jcsw: spjj * cttp
+bcpg: 11
+vlzp: 6
+qgpd: 1
+rfcn: rbpl + vbqv
+sfpn: fmtl * bfmp
+dzpc: tttd * pcss
+pdmg: 4
+bhpf: nnbg * rthm
+vncb: 5
+jztj: 5
+wsvh: rsqc * zbgn
+hsnb: wztg - rvmc
+hgtm: jddq * mjcv
+hrcw: 3
+sjlc: jvqj * lflc
+gllj: 6
+phmr: 3
+sdcb: 5
+jcws: wltg + cbtb
+cblw: 2
+svql: 5
+vghb: jsvj + wpvn
+gnzw: 3
+pghb: jlqc + fgvc
+fwwp: 3
+ftjb: 3
+rnhf: 11
+nflw: jnzj + vsjr
+wstz: vpzr * csgs
+nbzn: dqjj + lwph
+tttr: 3
+bbmw: 1
+fwhn: tpgg / wqpn
+mlfw: 3
+wrzm: rzbs + bjms
+cbjv: 5
+tlqt: zlrs * wplp
+sqcs: 1
+wlwr: lfmv + cjjr
+lrqn: wpmr * mpnc
+bbbn: vwzv + qbdb
+wdvr: ffhd / wlpm
+glbb: 12
+dqdj: 19
+mfln: 3
+hgcv: 2
+rpqg: mppr * hjmm
+splm: wwwf - gcch
+vfrl: ztdl - nldz
+lfmv: 4
+jhhd: 13
+ggjn: 1
+qtvl: 6
+svvn: 2
+vfhq: 3
+fvqb: hvsr * szzb
+stvr: 4
+wrfw: 6
+jnfc: vthr * wtbj
+qfhs: hzss + dlbm
+swjr: vwlc * jzbq
+cbtf: dnfn + bwmh
+ldhd: 2
+glgf: 2
+plpn: 3
+qlzj: 1
+hcsl: 2
+lhhp: rhvw + mfbn
+ccbw: 2
+qbtp: 2
+sqlt: hqgj / mjjc
+gzlb: mlbn * thvv
+svjf: 6
+zmpr: jsjm * czpq
+jllm: rvbn - zlpd
+gjrf: 3
+cpcn: vnpc * dqdj
+nzgn: 15
+qhfn: 12
+znqv: rrzs + qrsd
+blqz: 3
+qqpn: gstv + sttj
+nrww: bcwm + dffp
+jjrn: vmvh * bhmp
+tdvz: jbdb * mcns
+fbwt: 2
+mrzp: 5
+thvv: 5
+tghh: wbzr / lfgc
+znhv: whvd * sbhl
+sjhg: nrjh * vlnb
+blts: 2
+lvwd: szfc / dwdd
+grwr: 3
+tljm: 2
+pbmp: zlwq * pchs
+vbhz: mjqf * smjw
+pdcb: nfct * whfg
+mhvj: ncwt * jbbh
+wrvs: 1
+wmfc: zjpq / bmjf
+cchf: 17
+vncw: zgmv + prbm
+dfmj: 2
+mpmp: wfnc + chfp
+fqtc: 5
+rvmm: 5
+gtzh: dlqw / cpvj
+vtsd: 2
+ghlq: 2
+qbcm: ldng + dthb
+pfwf: 10
+dsnj: hprq * vzhd
+ztjj: 13
+mffn: gzlc * qjdf
+ggzs: 7
+pzvz: 14
+gncl: sprw + lcdl
+fvdn: gjpc * vptc
+jddt: pjft * hdng
+zwph: 3
+zsdn: mpmp + znqf
+mmnl: nrlv * jtsq
+qvch: 6
+rzhr: 3
+njzv: 2
+blhj: pscl * nhqn
+rtlf: zqbw - rzvz
+pjft: 5
+lgqj: lvmq * qbtp
+frvh: 1
+tqls: pwhn + slpc
+szpp: 2
+tttd: wfzd * pjts
+jptd: 4
+jwdb: 2
+rsbr: 3
+ctbl: 11
+pqfv: 20
+zzpn: 2
+dmdb: 2
+vdgf: bhcd * srss
+ldnm: 2
+nsrr: fvfd * lnqs
+phfc: 2
+swbm: 2
+ssnw: 20
+fpvq: dzdn + vnln
+hfgw: 13
+jcbn: 2
+dmss: 5
+jlcd: 11
+csgb: 1
+jtsv: fwwp * rwzb
+hdwq: vgdp - tsjm
+bhlh: qmrz * sphz
+frgb: 5
+zdmq: 5
+cjjr: 3
+hzrq: dgtv + qmwd
+dlvq: nvwl * vprv
+mpdj: 14
+ldjw: 2
+bwtd: wwsc / zccn
+cfww: 5
+qlmc: 4
+jmgc: fbrb + czfn
+gjbh: fcpv + htmn
+grfv: bnpf + frjd
+wjrh: lvlh - fpfb
+trch: 5
+nbdt: dnss * dmnn
+njqv: zjss + mgmq
+vstd: 1
+pfgb: tswm * vbhz
+root: rnsd + vlzj
+rwtl: 8
+rbmm: 2
+jcgl: 2
+mbcq: 7
+vnqs: vzns * llwg
+ftfb: 4
+nrcl: 2
+ggsf: trnd * dphh
+ppbs: jqjq * jptd
+dwzm: wbvs + nhbc
+jvct: sqwh + swlj
+qtsn: cmpp + zvnt
+gbrh: 12
+dfcq: pzjm * psjz
+dplr: hjnp * fqjh
+zrlr: 5
+qjwt: ggtb * qmmm
+ldmq: 5
+lqjf: gnwf * fbws
+mqdh: vmrr + flqr
+vwgf: 4
+hnct: vnmp * mhjq
+pzgj: pbcp + gzfc
+lbft: 7
+mvbd: hjvb + bzrr
+bvsm: 3
+hwsn: 7
+znft: 8
+vvrz: 19
+jvrm: ldjw * mvvg
+bsfb: 2
+vmft: 8
+bdzf: 10
+rfpm: 5
+ffhd: qqtl / drlm
+hdsr: 3
+qqdb: vbct * zqcp
+qrfc: 2
+zjbg: 6
+hqvg: 5
+qqwh: vqct * fwhn
+djsj: 2
+jrvv: 18
+hctl: 3
+cllg: wdnt * tjdv
+hdbc: zgph + bwll
+gvzw: vbsj * gvlv
+schf: 14
+hfwm: 3
+dwrt: gjbn * jbcl
+mqjq: 7
+mgvz: 11
+jjgm: 5
+zcwd: 6
+btpj: vmzr + mfrf
+mdzv: 3
+pcsg: wlgz * szhv
+qdgv: 5
+dnmb: vphr * cblw
+bfmp: 3
+dnpq: nmrw + qgpd
+flqr: 3
+jsdm: zjbh * lgjj
+vcbb: pmwz * gjft
+szgn: llph + pjlc
+jsjm: lglc + frws
+vdfq: rhfw * pjbd
+vfnq: 2
+mlds: vrlp + rslh
+ssmj: tzsc * bvjv
+spsd: 3
+mfbn: 4
+nzfb: gmwr * cdpz
+dlbm: zmtb + gvzw
+fcjw: bfcb / vhld
+hlvz: vrfz * pzvz
+vnpc: wlqn + gdjj
+ctdj: ghmh - hrcw
+lrbb: fzmt * fwpv
+fdqt: 6
+pjbd: lhnb / mcpp
+mbdl: swbm + vfrl
+hcvt: ltbd * bqfl
+ltjt: 10
+hrlh: 5
+vmcw: 4
+fpnj: jcbm + mjpv
+wgrs: 3
+bthm: 11
+chlf: qgfh * tnnw
+zsnz: qgmc + zmpr
+flsp: jvtm + tcfm
+vbnq: 3
+wjnb: 14
+czts: 3
+qslv: qzwh * phfc
+vnrb: szcp + bcwv
+lwdt: mdvp * mwzp
+qjrd: 13
+dhzd: 10
+hvgr: zjbq + fwlb
+tnps: 7
+fpmd: gnrs * zjqc
+fdls: 3
+lmhj: 2
+qbgg: ghbb + qqpn
+jgmh: ntdp * jcmg
+nzpt: 2
+vdlb: 8
+gzrf: 2
+cbrb: pmqs + rvzd
+jttc: wlqr * jnmz
+gvmg: 5
+stpq: 2
+fpzr: 3
+bwpf: pghb * dblp
+wvzw: tgcl * pvqc
+bdbr: 12
+ztmz: 2
+vzmv: dgvv + wjwc
+tjcm: bcpg * zzmh
+scjl: 7
+gcqn: wwld * qstp
+hcpp: 1
+tzbg: fccw * qsvf
+wrhr: mlwj + bcbp
+mnvl: cbtm * dtrv
+cpqp: ffrr + glbb
+qhzz: 9
+ddpz: wvhf - lfqg
+mhqv: dbnw + zvdl
+wbcl: tjcm + cmsj
+psms: 3
+pczd: 4
+cqzt: 4
+lfff: mqtr + zqtq
+svsn: 2
+tppt: zrcm + sjhg
+twqw: 2
+jqsj: srgn + phsl
+zdtq: frvm + dhpp
+zngg: hjjq * hsnb
+swzg: mzhn + cgbt
+flhf: tmqf * fzpr
+cbpg: 5
+dbgl: 3
+hbbs: 2
+zjpq: bghm * mdbh
+fddm: bglh - tnps
+lglc: 15
+pqdm: mrsv + cflr
+slbz: 7
+hdpf: hbbd - mvrd
+stht: nwhz + cpqp
+rmff: 7
+rmrz: fhbq + ddpj
+srgn: btht * sdrr
+lhwc: gtfn + hzwz
+fllz: hgtm + vtdm
+tgjz: 2
+wthh: 3
+szdm: hwmr + ccpz
+wzbj: 5
+rwzb: 17
+zzmh: 3
+brrd: bbrp * qnss
+wnwp: nfmj + bhht
+rpdd: 5
+mwhr: qlzm + wnjp
+ztmc: 10
+zpzm: grwg * vprf
+lqsl: 5
+clvc: qctc * csdn
+nfct: grsc + tnnc
+hwnh: 2
+wntz: wffr + qrlp
+rlmj: wgcp + bddg
+jfbv: 2
+fcdn: 2
+pfnf: qdfb * ztjj
+cdzz: 2
+vhml: 5
+wctq: 3
+stcc: ngws - srnb
+vwdh: 5
+nccf: njtf + zlvv
+mppr: 5
+rgdc: 6
+njjn: 2
+dlpt: jjdh * dmgp
+qsnh: 2
+szqv: zhhd + nsnz
+qcpw: sqcv + jvzt
+tvwg: 3
+jrth: 4
+csmg: qjvn * lqjf
+bdvp: htph * hjpw
+lljb: gbtt - jlcd
+tgcg: wzcf + bsmw
+jmwd: 4
+mpfg: 8
+lpgr: ngvn + njfd
+vzcw: fjhb + jnzl
+mdnp: 4
+zffp: vbwz * phvl
+slfj: 2
+pmwz: tphs + dzpc
+qgmc: dtdb * hctl
+blth: nlfn * vgzm
+zjsm: 2
+lhgz: cmjv * pslw
+djjg: tlvg * spfq
+vvcm: 2
+wdmc: qlrt * nhhb
+rcjt: 3
+grrw: 3
+cqfp: 2
+rzfs: wfzl * sddm
+nrvh: mmlz * wbfd
+nsmc: tmmh * vcgj
+hmss: brtb / sntq
+zmnj: prht + lzmt
+cpbv: 4
+qnpd: pslg * zbnn
+nbtg: nqcn - hbqh
+qbsf: 5
+ztml: nccf + wjbf
+lclq: 13
+qlrt: 5
+gfqb: 6
+dmfz: 8
+wsgc: 5
+zwvf: 2
+mqrl: mtgc + vmzg
+htpg: 2
+ffhf: ztmc + bpnp
+hnlm: 13
+cvwd: nqbt - mhng
+mmlz: 5
+wcvd: 12
+hcpn: 2
+vhdb: djjw + dfbs
+vncn: gsjt + mmbr
+czsh: scsf - bjsc
+mhjp: pqfv + vhfn
+zndh: 9
+sngd: 5
+vvdn: 1
+vggh: 1
+qlgj: dlzb * rvmd
+gnpg: cldj + dwtp
+mddr: 3
+dczl: rvpf / snfw
+nlhj: 13
+sznf: cgcc + jgbd
+cmzl: wgrj * rdhn
+bzqz: 5
+dqjj: nnsh + flrh
+psph: jnqb + nwmb
+scsn: rpvj * gnnq
+rlln: 6
+csdn: cndv * bslv
+hgdr: 11
+dnrt: 4
+cmwz: lbvt - rhmn
+gwcp: 2
+jpfz: mnfm * wfgr
+gbwz: 2
+vcnz: 5
+ltss: rgdc + mbld
+dmhw: lqrj + vvdn
+lfdm: dtdv * mtcq
+ldll: tptt * gvtv
+jfls: cbwq / hftg
+ghch: 12
+hsls: jnfc + pnwh
+dvmw: 2
+zcbr: gdmj + tthw
+qshl: wspv * lznq
+rmzb: 3
+vtps: 2
+czpq: pcsg - cjss
+nrcn: 2
+qssn: 3
+fvnb: qncb + rbts
+wsvj: 11
+ftvm: 4
+nzjd: jqsc + ffdl
+nldl: 3
+fthh: wgrs * btzv
+vbmh: 3
+jbls: btrt + tlnr
+cmsj: clcd * qwmg
+blqj: wnql / sfsm
+vprf: scsn - hsqm
+gcvq: nhww * gvgr
+cwvz: 2
+dtdv: 2
+mnsq: 7
+vrsn: 5
+llfc: 4
+zbnv: gnzw * fcgr
+dcqr: 2
+gdds: 1
+npfh: 4
+vhjd: 10
+brns: 3
+wbbm: 2
+spfq: 4
+vsjs: 19
+pwhq: vcrb + gdds
+wnfn: 2
+nqbt: cmwz / dnpq
+wmdn: 3
+mqqn: 2
+bgtf: 17
+hjwb: thnw + pnwj
+wnrl: 4
+znqf: csft * mtcn
+zqtq: sznl * dcnv
+jlml: qrfc * tjwn
+tzbv: 2
+hprq: jlln * ndtj
+pszm: ldzg + lvqq
+phsl: 3
+zpvw: zpzm / mdzv
+zwcs: 2
+flhw: hnct + cggw
+cggw: 10
+lswz: 12
+ddbn: ztgf / qvnw
+mdrt: dqwz + slbz
+plmc: ghdb + lmzg
+ztdl: ffjf * zfrl
+qngr: 4
+lqsn: 5
+jrrn: 3
+lgcb: 3
+dnzs: jwbd * psqq
+mvrd: 3
+lbgf: zmjn * jlwv
+wpjj: qcnl * swcn
+nhbc: vswl + bwtd
+dfwj: frvw * rvmm
+tzsm: 5
+wgmp: rtpw * pdrl
+cjcr: 2
+pdvb: 6
+wpll: rdvm + qgnm
+fpjl: 18
+pntb: qfhs * mtsm
+bzlj: 2
+hncs: msqg + zqzl
+vjlg: rczp / rhgw
+dprg: 5
+fbdb: wbsb / nsdp
+vhcs: 16
+mwtf: qqdb + nljr
+jnwh: 5
+hjhf: 5
+rwgv: nhhd + bvdn
+rbbn: hzpz * svql
+gmpg: 6
+bddg: 3
+hgld: 2
+grjv: cdfc * qmqn
+rrsb: rzfs - gspd
+wnql: vcbs * hhcj
+zvvp: fsbg + lfbh
+vpph: 17
+qsbm: 8
+hjvb: 4
+wjmw: fbtm * brns
+gqwm: pvts * tzml
+njfd: wpll * zgqc
+hchs: 3
+mpnc: 3
+srpb: 3
+dwnh: hqlq + bqln
+pwfl: hwvm * zlnf
+bwsc: 3
+djln: pmjj * lfzb
+wrpw: 4
+gfvh: nwbd - fgbv
+wgpn: 2
+wspv: 2
+mqzr: tzbg - lnbg
+tpbz: mpgf * dmss
+sbrz: 1
+lmcm: 3
+pnfg: 2
+jgbd: 3
+tlmt: 5
+fqsb: vwsj + vnqs
+qmrz: lfdm + hqpp
+hsdq: 14
+cbtm: 13
+frjq: jvwg * njms
+htpb: jttc + dsnj
+ptrr: 2
+pgrb: 3
+hggw: 4
+bjvw: fpzr * dhtz
+sgcz: 2
+rqvt: mrzp + hfds
+smjw: 5
+rzln: 3
+svsg: tppt * rfqp
+zdws: bczw + gvfn
+nnsh: 12
+mtgc: mhjp * qngr
+wlzb: htpb * gbwz
+flmm: 3
+bnfb: 3
+frfw: wmsc * hbbs
+mzmt: 2
+zfdf: 17
+mmwg: ptqz * tqls
+shhs: vhml + qvnb
+vwsj: mqhd * sqlt
+cgsd: jmbr + chrl
+lrmc: lqsl * sgtr
+vdrr: mzsd + pfwf
+rgqf: zhgq + bgtf
+lzdj: zmdb - jltt
+shwn: vzcw - dvvc
+vwct: 3
+fcgv: fvdn + pjpp
+ddhl: jmtn + msvg
+sfgg: sggs + plrp
+tnnm: 5
+plbn: bhpl * mcrn
+lmvh: qvjc * hqgd
+nsdp: 4
+tpzc: 5
+ztgf: tmpd * djqd
+wsbj: 3
+vzhd: 4
+wbcn: 19
+qtdt: wdhm * jvfq
+ttnj: 3
+jcvj: 15
+dznm: fzfp * mzjn
+dghs: 4
+jdsg: 2
+pzpd: 3
+hrsr: 5
+wzsp: twmg * tgvj
+rnqg: 2
+mmzd: 3
+lffp: hbqs * pcnh
+twbm: mlgw * pbtp
+thsv: 3
+tjtl: bgzf + slrj
+qlzm: vgsc - qwqn
+mlbn: 5
+ndrv: 5
+bglh: vjlg - sgqt
+nlmf: blqz * vsnh
+fpdm: mhvf * jjgm
+rfqq: jmwj * lqmh
+dgbh: 7
+dtrv: 2
+mjpv: hvwc + snvn
+ffjf: 3
+zlrs: ndzj * vtps
+nhqn: rpst + ltss
+pdtc: jqgc * rbcd
+lpwb: 3
+zclb: dvnq + gpgw
+vmvr: 13
+wvsf: lrjw / zlbg
+rfcr: ssnr + rtcl
+zvbw: ndbm + tdwh
+fpqw: 2
+ccsd: 11
+fmtl: 3
+jhqj: 6
+ntqf: 17
+lrrn: 12
+hvms: 10
+lmrv: 2
+nmdl: pvqw * wcwq
+vwqt: 5
+qsqs: jwvb * szqv
+nmrw: trrn * gndq
+ntdg: szbd * vnbc
+fwpv: 2
+ghhs: rjcq * mpfg
+sfsm: 3
+cfgs: pptl - ssrt
+tftb: vslv + gcrr
+clvb: rngg * vvvt
+wvhf: drvr + rfdz
+lhwj: 2
+zftq: fshz + gqhm
+gjmp: 13
+wnqt: mgpb / qffg
+pvps: 7
+fcnz: pngb * vccg
+htpn: 5
+mjfz: 2
+zntr: rpqg * zbhc
+zffw: cbnj * mfln
+vptc: wcvd + tntn
+fgbv: swfv / zqhr
+dczs: 3
+bzmg: hbql * hgdr
+fvdd: 5
+qjmj: 1
+hjzm: jpfz / pcpb
+ptgq: 5
+dnnv: 2
+qwmg: 2
+tsns: qbgg * gsjw
+nppv: jwfv * hnsm
+pwjl: frjq - ttwg
+dcgm: qtzh + wpwc
+jgsl: rrrc / fpbw
+wjqg: 13
+qtwv: tmgj / vqnl
+zlwj: lbgf * pdlh
+pqds: ztmz * fmsz
+ghbb: 2
+jlln: qmcp + rldv
+lbgb: dztw + flhw
+bndj: 3
+tsmw: 5
+vtvz: jmwd + znhv
+gjqh: bdph * zndh
+hrwm: gzmg * vcfv
+mnfv: 2
+dmlf: qglb * bwpf
+rwgh: 2
+zvff: bnlb + prrs
+jmzp: 3
+vvgt: hsls - lfcd
+gtcv: 18
+vsjr: 11
+bmpj: 4
+rpmg: wjsm + lnhq
+cnbd: zwph + vdfq
+pcvg: ncnb * mmzd
+bzvl: 11
+pngb: zzdd / wbbm
+bzrr: 3
+vdqn: 6
+wffs: 2
+rbqm: gcvq + vdjt
+spmf: vzlw * wmdn
+qhfc: 2
+dvfv: pmbn * gbhz
+zhbr: 6
+psvv: 2
+zhmm: vpts * wtbc
+mlwj: hwsn * bggp
+rzbs: drjr * cqwt
+mfpf: fhnh - qjhj
+dzlh: 1
+zlrl: qzdj + psft
+qdrn: 4
+zwfr: 1
+tdqq: nfgf * nflw
+bdhc: cvnc * trch
+czms: 2
+sldj: 14
+lqvf: mfhw + jqsj
+chsr: jbdj * lpbj
+brpv: wzhw / fvqp
+bbdf: 17
+prcj: jsts + ffvr
+wgrj: tqsq + jtsv
+zqbw: vcbb * fvvv
+bzvg: 6
+jgrn: 13
+pcqq: 2
+zwzq: dwmd + znqv
+mgdr: 3
+rnmz: ngcf * brld
+sglw: pvps * bzvl
+hcdn: hdcd * hppc
+fbtm: mlvw + cdzv
+wnjp: zffw + lrqn
+lfmw: 13
+lqzj: hdsr * mgvz
+wpvn: jmcq * fgmq
+zjtq: 9
+qzhl: qdrn * jbrb
+wldt: dmfz * plhw
+dgfs: 3
+fccw: 2
+gjbw: 4
+zglh: 10
+lsdw: cldl * wfgw
+stzj: 2
+pptl: qnpd / tlch
+qjhj: qnfr + dntp
+glrs: jrth * bdhc
+vjnq: pzpd * drql
+qrsd: hbzt * hdpd
+zlbg: 2
+hsqm: jcts - lpwb
+msbw: tzdm * dchs
+cvrs: 3
+wbbj: rmrz / vhjd
+dphh: 2
+szcp: qdlt * cpvn
+qfpw: 7
+lmmg: 2
+jmcs: 5
+cwwv: 8
+fpzf: 5
+fpfm: jfvg + gblp
+jcgt: 2
+sbfb: 19
+hdhc: 3
+wmwq: ppbl + hsrw
+gmts: qzzm * fwjf
+lqtn: 7
+flnz: rccq * gddt
+phnn: cvrs + jqlv
+rqrq: cbjl * dgbh
+qmbs: 9
+pwzt: hcpn * gjcg
+zzjq: 3
+bbrp: qwrv + jzcb
+rwjm: 5
+qvgn: 3
+rjcq: 4
+dvpq: lbgb + cbpg
+hdwz: scjl * dvnt
+vffh: sdcb + qvbr
+zjzb: 2
+fpjg: zjbg + dctp
+pjsb: vfwg + bttj
+sqcv: 7
+tcvt: ppdv + rwtl
+lmrn: hvmh * dznm
+gzlc: 9
+tgtf: 5
+cwcj: dwdt / rwfb
+lsdv: djsj * bgfg
+mbvd: 3
+whfg: 2
+czdw: 2
+cgzp: 1
+rdqq: 3
+rnzp: fgtz * mrgj
+qmmm: vlbn * rbbn
+ldst: 5
+vwbn: dvhb * fqsb
+cqdh: lhhh + tqqb
+ccdl: frmv + fhfr
+mfmz: flsp + mppd
+wtbc: 5
+sqsm: 3
+nztt: mwqj + prdr
+sdfv: 2
+lclr: 3
+vqct: 2
+qrwn: nzrd + nmqh
+hfrr: 8
+zbmw: jbqd * fpjg
+lnvs: mfjn * tbsd
+jdcb: vgbr + zhbr
+lmzg: 20
+mcrn: 2
+vqmg: 2
+tlch: 2
+rbdz: lmcm + vlzp
+nnbg: 8
+cqqc: gdgw * lbjj
+szbd: 3
+qtcs: lclr * hzhg
+mssm: qlrm / qccj
+smcv: 17
+rrnl: humn - rdfh
+vlbn: wmjd * wzcr
+nwwh: 17
+ztbz: mrpw + ptsz
+dgjj: 3
+cgbt: rcjt * zrlr
+qshv: jdcb * rjbd
+rphw: 3
+lnsn: 4
+nvvl: 3
+jtbl: 2
+lhph: 2
+rcvn: 3
+hwjh: hcnd + hcdn
+pmjj: gnpg * zpvw
+pbcp: bcfv + cfrr
+wvsq: zhds + mjhc
+qvbr: 2
+tswr: fpdm + prjl
+mvpd: qhvp + blqj
+hzhg: 2
+hqgd: 2
+vslg: llbb * hlvz
+pltv: 2
+gwnc: qblv * qhfj
+btht: 3
+zgww: 4
+pglg: ghjs * cbsj
+zgnq: cppw - tbmp
+jwvb: 3
+ptqz: 2
+lthd: 13
+vzlw: 7
+qvph: cglm * vghb
+gzjf: 9
+mphq: 2
+jcpt: 2
+rmlc: 2
+nwvg: 2
+rqlf: cbjv * wnjb
+mdbh: ctwj + twzt
+mprv: tvtm - pzgz
+mfjn: 2
+gnwf: 4
+ngcf: pszm * lvcp
+hmhc: 2
+vlzz: 2
+qfqn: 12
+zvdt: 4
+zqgz: szcw + pmrn
+jlsf: jfbv * nqrr
+jcts: pdzw * hmfc
+jmwn: wwns * tzwv
+hbqq: 2
+vgdb: 2
+gvfz: ncbs + cpbr
+mfwc: 7
+prjl: hzff * qgdh
+hpjf: 3
+jjfn: sflp * csmg
+qpbr: lhwj * vgtt
+jdfq: hbfh + qwvh
+fsqd: phnn + mgmd
+fhcw: bzvg * whws
+ddtg: wvsf + gvtz
+mgpb: qcpw * cnml
+nzrd: 2
+mpgs: zcbr + rfcm
+hwmr: fqrr - fmhd
+rccq: 11
+hvth: 4
+zbnn: tnnm + tvnr
+rfdz: rslm * plrj
+zmtb: hzrq + rqrq
+lvwq: lgcb * wnrj
+wzfm: 9
+vwlc: rnvl * vbmh
+vlzj: grvc * qbcm
+dtnn: 3
+qdwb: 4
+ncwv: 3
+sgtr: 20
+cbhf: 6
+dpbw: 4
+qvnb: 2
+ghdl: 4
+qsbv: 2
+vvhn: jbzb + ggjg
+tmgj: 12
+lgnf: btdn + fpcc
+msvg: vlml * pwhq
+tggd: fwtt * bhwm
+szfc: fdbh + stht
+ncbs: jwvm + jffh
+jpjq: jpdc / htpg
+nwbd: slsl * zhqj
+pmgl: 3
+nwvb: cwbr * jcqq
+blmb: wcfl * vfds
+wzhg: blfw * qsbv
+jtfv: fmsp + bdhh
+tgph: fzbg + jhhd
+wpmw: jjzr * bqsq
+mjjf: 10
+zqvz: djrn - hcbl
+vbct: mspg + lwgm
+qvct: sfgg + ltzz
+pqnp: tvdl * rjwz
+vbzr: 3
+ztqq: srtb - mfmz
+wlpm: trvm + pptt
+fdwm: fgvn * qbjm
+vzns: 3
+bcwv: 1
+jctj: fbsc * pfwz
+zrcm: qbsf * wsvj
+hdvn: zdtq * jztj
+qgnm: 2
+nwhz: sglw + zsmc
+fsbg: djsp + dgsb
+jmwj: 2
+lrsd: 5
+tjzm: 2
+jbnp: dwnh / cwgq
+mqts: 11
+gstv: tghh * ldst
+fhbq: chlf + pntb
+pgdd: dllv * tsbv
+fwqf: qwmw * zcmj
+ggjg: 4
+mvvg: wfqb / hgld
+chhl: 7
+wfqb: fvnb * jzwc
+pscl: 2
+dztc: 5
+bdhh: 8
+wlqr: vnbf + fhqz
+pnpq: 2
+ssmf: 1
+qgfh: plbn + ntcp
+zcmj: wstv + lhcl
+tdwh: 2
+clwv: znft + gbfl
+qphb: zjvw + jvrm
+nrjh: 3
+dvfj: cpcn - lpgr
+vtsm: qsjt + vwsw
+gzwt: 2
+zlwq: 2
+vmpw: 2
+cttp: 10
+rcdw: fbrt / fcdn
+rllh: 3
+mjhc: 1
+tsdj: 4
+pmrn: 17
+pzjm: vncn - jgsl
+bqfh: fcnz / mmlv
+mbld: 1
+jtlv: 3
+pwsb: 5
+qjzr: sqjd * zvff
+swfw: 2
+vrlp: jddt + wtfd
+gzbf: bmvs * phlz
+fvzh: ccgt * zvhd
+mspg: 5
+qltq: ggzs * rbwd
+fbws: 2
+pshj: cfgs * mbsl
+rtmz: lrsd * tsvq
+lbgj: 5
+bgbt: npfh + bqqc
+nlpw: vwbf * wvml
+gbsh: 8
+llpq: snws * prrq
+slsf: hcpp + gcpj
+wctc: 2
+fszm: 4
+ngwc: 9
+ltws: 8
+snws: qmmq * hdbc
+mtqw: 1
+nbnm: 3
+qblf: 3
+vvwp: 3
+grgb: qjwt - crww
+dwrh: 5
+gjqm: ctfw * tddl
+vcsf: hfrr * fbwt
+hpsz: 2
+rjjb: jlmg - zwwp
+jbcl: 2
+vpwc: nrzm * bbnm
+fzmt: 15
+qbjm: fhsv - mbjm
+njrb: zblc * vgwt
+jwfv: 2
+fpcc: 3
+zjss: dfct * spsd
+vvgc: szdn + lpqd
+cftp: 19
+qrgg: schf - fqhj
+cqjl: 3
+sprz: lqcb * pltv
+nhnz: ngwc + hcwt
+crmb: 7
+dzlc: cftp * psfs
+szcw: fqtc * zrnm
+vzwd: 2
+mpnh: 2
+qlsj: 2
+vprv: 2
+qhjj: dpbw * whql
+qdht: dfcq - njzv
+lwph: fvnf * hggw
+qsht: 7
+jrjd: 2
+wvml: 2
+gbhz: 5
+ldng: lvlc * vlhh
+nldz: 2
+ghdb: 4
+vcgj: 2
+hsrw: 2
+nmwz: dcqr * rljr
+vnbf: fvzh - vfsz
+zvts: 13
+jvqj: 3
+fdbh: hzbn + qvph
+jzdb: 5
+dwdd: 2
+jtdp: nqcl * vsdb
+hqpp: fzbn * vdgf
+dchs: wvls * zwcs
+fvqp: 2
+gbtt: hqcm - zjgz
+hjjq: wfvg + hvms
+tgbt: nfvh * nztt
+vfwg: bpfr * wmwm
+lzvd: 3
+cdpz: lqvf + dvpv
+jtgj: 6
+pjsg: cvsv * mpzr
+jvwg: 3
+jhsh: qghf * frgb
+ttdg: 11
+twlg: ntbf * fgjh
+qbgw: 2
+zspf: 1
+bgfg: mssm + zdws
+cwbr: shfs * vlhc
+httv: tlds + vrft
+gzfc: jdfq - fjfd
+zbhj: zlcp + rjzw
+ssfv: dnrt * jgcj
+fmrp: qsqs - ssmf
+cfjw: bmft - gjmp
+lqcb: wjrh / nrcl
+zblc: 2
+humn: 4977
+cmnn: 3
+pbgb: 2
+lnqw: cmvf + jmzp
+dcnv: hvnt / bftw
+sqwh: rmff * mpqh
+gjbn: 4
+wdhm: hfwm * bmrb
+hqlv: 3
+cppd: 2
+cfqg: 14
+fqmq: ttfs * vpql
+mnbr: 3
+zrbt: rqgq * gtcc
+pmnj: 3
+tcqm: 2
+vjzj: 3
+rzqd: ptsn + swws
+lgnp: dvfv * rwjm
+qhdm: 10
+gpbn: 3
+dpzp: 1
+vdqw: 2
+qnsh: btdr + glmv
+mqrb: qlmc * cwsv
+vqtl: dmhw + qphb
+nzcz: 3
+hvnt: gwcp * hnlm
+jnzl: dghs + pbmp
+rzsv: tgmm * mjnw
+tgcl: mznj * ftjb
+jqpr: vtpc * rzqd
+slzj: 2
+vncp: wfzr + zswd
+pqqw: ptgq * hvjh
+hlqs: pgdd / lgnf
+mcpp: 3
+jcbm: lgnr + cspm
+pdbg: 2
+zpdb: 5
+zzcw: sqds + jtdp
+qhfj: qptl * mqts
+qnhs: crdp * qtcf
+gbwq: 5
+bpmb: mbrb + zqwv
+ghdc: chbs * rfpm
+zsqs: jdft * jtfv
+nsnz: 16
+rgmr: 3
+ctgr: 13
+bszs: 2
+ddpj: hhzh * mlfw
+ljft: 4
+sndn: pgbp + qrqg
+sjdj: 2
+mmtz: 6
+lwbm: 2
+jjgj: 9
+tptt: 4
+pfsp: 10
+hscl: sfpn * fpqd
+twsp: 4
+pfwz: qssn * hbnc
+wslc: qlrn * lqjq
+hhbc: 5
+pcnh: 5
+lqzq: pqvd * zfdf
+jdsp: 5
+ndbm: 5
+jvfq: 3
+nmtw: lmpb * vltn
+lqwz: tmmb / lmrv
+dhpp: gqqz * vpwf
+nsbn: tfsr * pwzv
+fshz: 3
+qcnl: 3
+cgcc: zfbd * zsvw
+jltt: bgfz * fszm
+tntn: 1
+pvqc: 8
+zccn: 2
+qqcm: fsqd + qsmf
+qhmm: 11
+bzsv: gmpg + chhl
+qtdf: 5
+pvws: 4
+jwbd: 5
+zscq: jdll / ncwv
+vfds: 2
+jgcj: qltq + jbdr
+mspn: tnwn * dgfs
+fzsr: 6
+qdvq: 3
+jlvz: 2
+dgvd: 2
+cbmf: 2
+cbsj: 3
+nqsh: 4
+wcqb: plmc + rhnj
+rbpl: hqvg * stzj
+bmft: llzc * frfw
+pdzw: 5
+frmv: qvvt + dbsp
+ztmq: jhsh + pdtc
+jsbf: 3
+nqnq: nszf + ftth
+cvjs: ltsp - vqmg
+wgvp: 5
+vmzr: jrsq * bscv
+mzsd: pbzn + gllb
+tsvq: 5
+clhh: 5
+mtct: 2
+wbbz: 3
+ssnr: tghq * qlnp
+jqjq: hcfp + bfsh
+hczr: zlrm / jhbw
+dllv: 8
+jmhq: cjcr * lqsn
+sprp: 3
+bgzf: 13
+jbdb: fsmq + zddd
+stqf: 2
+rfcm: tjvp * wvpd
+vfsz: vzmv * jgfp
+vvlf: 2
+rqts: 4
+dthb: llpq * wlzb
+vpdp: wrzm - cqzt
+lnhq: pwzt + rzrj
+lpbb: cbrb / bqht
+rbjf: 3
+mztq: nwvb - vvgc
+fbzq: 2
+rbts: gpnl * jldt
+wfbd: mvwc * gbhl
+nchh: bwjp + pvmh
+fppb: 2
+ssrg: rrnl / blts
+zsjn: dtnn * vzvq
+fvnf: 14
+ftth: zphm * cmqj
+vdwn: 3
+tmqf: 5
+bqfl: 3
+dtft: hldc + vvrz
+vfzl: lwqb - shlw
+hvsr: 3
+chlc: gzwt * rdqq
+qwmw: 4
+ftqb: zgdw * mnfv
+ctfw: ggwc + ttwb
+cbjl: fcjc / qvch
+hwmc: shvd * vdlb
+wbfd: cpzl + cqld
+crfb: tmcf * dzzq
+mwsf: wfqz * rzgw
+cqld: 4
+ltbd: wnqt / hczv
+gjhj: wpvf + spvf
+ltrl: 6
+pglf: phmr * jvnl
+ctbp: pqdc + trml
+tsjm: dfwj * vnmt
+msrf: hpzw + qhdm
+hqrf: 1
+rsqc: 3
+rvmc: 2
+bjdt: cvbw + vqtl
+qjdf: qdsj + pqds
+hzwz: 6
+hlhs: 3
+hvfp: 6
+qcwt: 4
+hhzh: jfvs - qtzr
+hldc: qrdg * mzmt
+rthm: 4
+fvvv: 2
+fjhb: bgqr + cqqc
+ccgt: dgbj * pmnj
+zbww: vvcv * jcbn
+sznl: 5
+fcgr: rlwh * vqrd
+nhhz: nglc + pjjp
+tthn: nmth * hpsz
+hrbz: 2
+zhqj: wpcc - nqvn
+zgmv: 11
+jtwc: vhmg / jlvz
+swlj: 17
+blcn: 6
+pjjp: tlfw * fzsr
+fzbg: 1
+qcwm: vwnm * rgmr
+sggs: hwwr + msrf
+fhqp: 5
+srqs: gmvs + gfvh
+sphz: 2
+vfsb: whqf * nphn
+bmvs: 4
+rtcl: jfls * fpvq
+ndqt: hjwb * plbc
+hcfp: 6
+rzgr: 8
+drgg: 3
+dsnr: 4
+hwbt: 2
+ppbl: 5
+vwcq: 3
+gjft: 5
+vpql: 2
+dffp: 13
+cfrr: jsgs + hqvd
+gdvv: ddnd + zvdw
+wztg: sjlg + rdpw
+smnh: 3
+dlzb: 2
+bqqc: 7
+fzbl: 2
+gsjt: dtsb * mbzb
+fsmq: tlmm + vggh
+dbgm: 5
+wcwq: 5
+bztw: hmwl + hwbt
+wspz: htsc + lnvs
+hcbl: 2
+plhw: 3
+nqdh: slsf * fhrh
+rpvj: hhbc * tjzm
+jfnp: qlqd + jbqn
+bhht: 11
+tswm: stcc * szpp
+rfrd: tjcv * nsbn
+zzhh: 5
+hqgj: zsnz / zjsm
+wbsb: hzdf * jtlb
+tgvj: 3
+mwqf: vdlq * csvq
+vtpc: 4
+pszd: 3
+nrzm: 2
+gmbp: 12
+jrps: 2
+lpbl: 13
+swcn: wdmc * fvdd
+fhsv: qsqv + tlwc
+rtpw: 4
+pqdc: 2
+qdlv: lqpq * rnqg
+qwpj: 1
+sgrc: vdvh * qnhs
+gmwr: gwnc + ssrg
+grbp: 20
+fvfd: 4
+rhwj: wffs * hvgr
+hnrv: 16
+gnnd: 3
+pcpb: 2
+mhdf: 2
+bcbp: ssrb * zsbv
+ztzs: vdrr * qvrb
+mnfm: 2
+wlgz: 5
+drqs: rwgv + dnmb
+jbdr: swqv * gmqb
+rqll: 3
+nfgf: 4
+qvjt: 5
+cspm: tgbt - npqg
+nsqz: 17
+ldzg: dgjj + hnnl
+pvts: 5
+lcfw: rqcv * qsdh
+fhrf: shln * ssnw
+zsbv: 4
+bhpl: 4
+wrnz: wjnb * bndj
+pddq: dtzp + gncs
+qqjv: 2
+fmct: 2
+zlcp: blhj + bbmw
+cstn: lclq * mhdf
+vtpv: wdvr * wtdz
+cpbr: nlmf + zqcm
+dmzq: 1
+pltj: 4
+jmsv: wpjj + mlmd
+ngpj: 15
+qdvz: ncld * mcpz
+vthr: 2
+szhv: 13
+gnrs: pfsp + wctq
+mcpz: 2
+ndtj: 2
+hlsb: prcj + nncc
+bcbz: qsht - qjmj
+dtjw: nqnq + jjfb
+grjm: jrrn * fmtc
+dblp: pwjl + zwsw
+htph: 4
+trml: 6
+psbv: rnwd + hjhf
+qqtl: ppbc * mrcb
+cvsv: 6
+hjtb: 4
+jbzb: 3
+vgtt: 3
+jtlb: lzvs + qwpj
+zswd: wgmp / hsjt
+vcvw: crjq * wnrl
+rvmd: 4
+dzdn: dwzm + thjg
+qlrm: hdwz * qrrm
+jcnh: 2
+mngs: ddhl * ccjd
+fhdw: 5
+zmrl: 2
+vdgn: 2
+wcjq: bjvw - hcvt
+zssh: 14
+vgzm: smnh * fvtf
+cdfc: 4
+fvns: 3
+qrdg: zzhh + zcwd
+lzvs: 9
+bmhl: 3
+dvbm: cwtj + ldll
+rgmn: 2
+rslm: 3
+cjzc: 2
+jlpg: 6
+lgwf: pblq * shwn
+lzcv: zlvf * vhcs
+dqbs: pdcb * hgcv
+zmql: 1
+ngvn: hnmf * mtpn
+qvzs: 4
+qvjc: 7
+rnwd: lhph * wzhg
+nwvs: vzbv * hncs
+jbrb: bqfh + tsns
+zrsd: lzcv + fngt
+mlbb: 2
+svzb: 12
+qrvc: 2
+bjdc: 6
+htvm: 11
+wmjd: 2
+lvnt: 7
+zhhd: vdqn + fqvr
+jvgw: wmfc * wslc
+dgbj: dvfj + bdmh
+vmzg: ctdj * dbgl
+qwqn: rlln * sgcz
+wpcc: tzcb / sfrp
+mtgt: 2
+ntdp: 3
+qglb: zzrm * qfss
+sltm: 2
+bzpc: drqs + gdhz
+mhng: mqpp + bzbp
+ljfc: 2
+zrlw: pghh * qrgg
+tjdq: zdvg * cstn
+bdmh: cmzl + rrsb
+gmqb: wsgc + nsrr
+dcrr: smlz * jglm
+jbdj: cfqg / qdlh
+vgbr: 1
+hmgl: gjqh + qqjv
+gbhl: 2
+wcfl: dnjt * cbmf
+jbqd: 2
+srnb: sprz * mtgf
+vqrd: 2
+bgfz: pjcc + gdwp
+mbrb: 10
+bhmp: qtdt + lbhq
+nmqh: qlgj + zsvb
+pwsp: 2
+fqrr: qhzh + bwfq
+gvlv: 5
+hvwc: clhh * rwdg
+qrrm: twlg + qdlv
+thjg: tmqc + zcsz
+bjnh: mmnl - nhhz
+sflp: rjjb + hqnd
+vdjt: 17
+gmvs: ssfv + zrsd
+jzwc: 2
+bgdg: ttnj * rmzb
+mbwv: pglf + mztm
+ssrt: 4
+qsjt: qrhr * jlpg
+slrj: 16
+zwvl: dbgm + bwnr
+qrjw: wcqb * vvbv
+jlwv: 3
+lpqd: 2
+mfrf: dpzp + wsjn
+pslg: 4
+ghzr: tdvz + dqbs
+hbql: 5
+qwvh: frvq * lpdw
+tgmm: 4
+tmpd: gqzc + qjzr
+gdhz: 5
+rnvl: 5
+wmpp: 5
+ffbf: wnqf / rzvb
+mqgl: 8
+cbtb: glrs + zftq
+pcwt: 2
+qrss: 1
+htrl: jhrj * gftq
+njtf: 13
+wfnc: dvdl * bpmb
+chfp: mjfz * cwpz
+zqzl: ggpb * tqcj
+qctc: qhwr + jsdm
+wlqv: 2
+fdmm: jrps * cqdh
+lnls: htvv + jcsw
+lvqq: qslv / hctq
+whqf: 3
+vwzv: wwcm * hdbm
+dwtf: fszl - dlft
+rhgh: jspz + bhlh
+lqlb: 11
+tzgm: hnrv / svsn
+bnpf: 5
+fcfp: dgvd * bnfb
+zqwv: 1
+nclw: vfzl + zzmc
+htsc: 5
+vpwf: 5
+djjw: 4
+bsnd: bldn / zvhf
+jbdw: 4
+btzv: 2
+rdnm: 7
+rdvt: 2
+vnmt: grrw + qvzs
+qtzh: dwdw * nltc
+fqvr: 1
+jffh: vsfv * cmwp
+hpzw: 1
+jhrj: 2
+lvgv: wnls + clvc
+plbc: 3
+ggvj: 3
+tlgj: dths + nhsv
+zjpl: rchl + hdvn
+rdpw: 1
+lzwr: 13
+pvqw: nmwz + ngpj
+tshc: 7
+qsjp: vcnz * vmpw
+fnjv: 9
+vfmd: svvn + clwv
+tmmb: jssv * wwrl
+dhsn: fpbl + dfmw
+njms: 3
+tnwn: rqts * jcgt
+frws: 14
+tthw: dpcp * qvjt
+lfcr: rpdd + fwqf
+qbbc: swzg + mjgw
+nbvq: 2
+rsvp: 5
+cgss: lpbl * zwzq
+lnft: 5
+trnd: 5
+htnl: lgwf / cmnn
+tbgg: sldj * ttbl
+mqvf: 5
+wwns: 3
+gqhm: bhpf * wvhn
+vbwz: 3
+wfvg: 19
+djrn: 9
+vbbn: 13
+mhpr: 3
+wwwf: cqbw + tshc
+hhjf: lpmc + dczs
+tzjq: tdqq + dwcn
+sntq: 2
+lvzt: rzln * trwg
+bnlb: hchs * lshw
+bbnm: 3
+gpgw: 3
+ffdl: sbfh + tbgg
+rcrb: 3
+lfcd: gwsn * mvdw
+thnj: 5
+qvrb: 5
+pwzv: qhzz + rntv
+tzdm: fhdw + fqmq
+trrn: 3
+jnmz: gjhh - bqcd
+sfrp: 3
+hjnp: 5
+bvmg: snqw / hvfn
+snqf: 5
+snvn: blth + zhcp
+sjlg: dhzd * vwct
+szlg: mvbd + grjm
+wmsc: hgdt + hlsb
+vgsc: vpph + grjv
+hdbm: dnzs + mdnp
+ntbf: 3
+cflr: gqbr * lmmg
+wtfd: 11
+mjgw: hwmc + lcfw
+psdt: 8
+lhvw: 7
+vnmp: 5
+lqmh: 6
+csft: zzpn * fdmm
+pzlz: szsl * dgtz
+rzbt: 4
+vcrb: qvgn + wwgb
+gbfl: crwj + fgvl
+nmww: 3
+ghjs: 9
+cbwq: ztgd * qwwv
+gwsn: 2
+dwtp: fbms - lbzm
+rbwd: 5
+rfqp: 3
+fdwl: 2
+jvzt: lfmw + fscp
+nltc: 2
+bnnz: jfpl + tzdc
+qbgl: 4
+dtgf: vpwc + cgzp
+dztw: 1
+zgdw: 17
+gqzc: gjbw * qqwh
+rlls: hhjr * czms
+wrzj: gzqg * zmdj
+pbvf: qdwb * jvlw
+hfds: fthh * fvpb
+gndq: 2
+whth: 3
+lgzw: fhcw + hcsl
+tqrc: jtwc * dfmj
+fhnh: bnbw + qhvd
+vpts: fcjw + mspn
+qlrn: 16
+bsrr: 10
+grvc: 7
+slsc: 2
+dpzd: prfr * lpqf
+ndjc: 5
+rbgn: 11
+whvd: 5
+dbgw: rsvp + pbgb
+dpcp: 5
+bpnp: 11
+fbrt: mbbl + fwzl
+zjqm: tswr + jlml
+dbnw: dtft * tttr
+tzml: 3
+gvgr: 2
+lbvt: zgbm * dtjw
+llzc: 18
+gfvz: 2
+lrmt: mmwg - qfjq
+wjsm: hhlq * psdt
+zjbh: pdvb + fpzf
+rjdw: 1
+jrrz: 3
+zddd: 11
+fpbl: 3
+rwfb: 2
+phlz: 5
+tzcb: gjhj + ssmj
+zjvw: wzmj * shhs
+bpng: 7
+nhhd: 2
+wgqs: lsdv * zpsn
+mjpd: 7
+mrsv: czsh + crfb
+rzvb: 5
+dths: 1
+hnmf: gtlr + dcqb
+zwwp: 2
+prrs: 10
+lgnr: btpj + rtlf
+rfvt: qtvl + cmhv
+bldn: rdvt * wfmt
+mlvw: qsfs * dfdz
+pwhn: frth * zcpp
+wqnq: hwwc + rfqq
+lpmc: 7
+hmwl: 6
+dgzr: 3
+ntmn: 3
+dfct: 3
+mhjq: 5
+whws: 2
+npqg: pqdm * nrww
+wsrq: 5
+wfqz: wwrp + dgsg
+lhfz: 17
+qblv: 13
+zsmc: gvfz * tqrw
+cwsv: 5
+fmdg: 2
+prbm: wcjq / cdzz
+fpqd: 6
+psfs: tzjq + lsjt
+fghs: 2
+bhwm: 4
+tdbp: tfll * wbql
+tzwv: 13
+zmft: 3
+zqhr: 4
+cfzv: 3
+pchs: 3
+nwjd: ntdg + hscl
+cwtj: 1
+jwcp: pfgb + fwtm
+ppgt: 16
+pslw: rrmb + djjg
+slsl: 5
+pwll: bgdg * pczd
+fpfb: mprv * hndv
+jvtm: hlqs + lqlb
+vgdp: jztc / bght
+mqtr: jgmc * lrrn
+tqpq: 4
+tqrw: 2
+ppdv: nvvl + rjjv
+wfzr: rhwj + stfd
+jqlv: 4
+sclr: 2
+zhcc: 4
+lnbg: vstd + mmtz
+mrpw: qwct * crnv
+cnjf: 4
+ddrr: 7
+rwdg: fdwm + dzlc
+psft: 6
+bnlv: mnbr * zclb
+ltsp: 8
+wmst: vznj * nlgt
+vczs: 5
+flqt: zqcs + nsdv
+grhh: pbvt + jzdl
+hrjq: 10
+rhfw: 2
+dtdz: 17
+lbjj: 4
+gwhg: pqqw + nqdz
+pwbj: 3
+fwjf: lfcr + wjmj
+jdtm: 5
+thnw: 3
+smjv: 9
+rjtz: hdwq / jdwp
+pdlh: 2
+tczb: plpn * stvr
+mjvl: 6
+hwwr: 7
+spvf: lwtj + vtsm
+cnml: 4
+cpvj: 3
+qfqf: smjv - mqqn
+lshw: 3
+jjdh: 2
+mvbt: 6
+zccv: 5
+fbdf: 10
+bwjp: vjzb * ctgr
+mjjc: 2
+wffr: grgb * tsdj
+mqgr: 19
+hcnd: bdbr * qbcq
+npnh: 4
+hqnd: dnzc * gnnd
+plrb: 3
+rtzn: vwdh * wbcn
+cdzv: qrvc * bnnz
+rljr: gwhg - tvpw
+scpv: 2
+hvfn: 3
+hcjr: psms * vffh
+bchm: nzgj + dmgd
+vnln: 7
+pwrn: 3
+zqcp: 2
+svbl: nmmp + rzgr
+sddm: zgww * vdgn
+pfsd: 3
+wjmj: wlfn + wjph
+fngt: nlhj * dpzd
+hhsg: 2
+wjph: 6
+dmnn: plrb * wlqv
+qghf: tmlf * wjqg
+vmsm: 5
+tnnc: nppv + rqfq
+frvw: 19
+zsvb: 3
+qhdc: 4
+vslv: mngs + sdfh
+hzbn: ghhs * zqbf
+cmqj: tthn + rbgn
+dpwb: 5
+tqqb: sbfb * dztc
+jgsd: bbbn - chlc
+dnss: bvsm * psbv
+dlrb: 4
+qhcb: 18
+cdff: fgjs + fpqw
+gdtc: nzjd * cwvz
+lwlw: 4
+pqvd: 2
+drvr: htvm * ffhf
+tbsd: lfcv - tggc
+ngws: swjr * bhvz
+snqw: bftg * vjzj
+ttfs: fdwl * jvvm
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_22.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_22.tst.data
new file mode 100644
index 0000000..dd6419f
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_22.tst.data
@@ -0,0 +1,202 @@
+ .....#.............#.....#......##.......##...............#..#....................##................
+ ....#.#.........#.#..#.##....#...#.#.......#.#.#.#..........................................#......#
+ ............#..#..............#.##......#........................................#..#...#....#......
+ ............#.......#..........................#.#.................................#.........#......
+ ..#.....#.......#......#.......#.....................#.....#...##...#.......##....................#.
+ .........................#....#....#.......#..........#...............#...............#.............
+ .......#...............#...#...............#.......##.....................................#.#.......
+ ..............#.....................#..#............#.........#.........#.#...........#...........#.
+ #............#..........#.#....#............#.......#...............................#...............
+ ...................#..................#.............#........#........#...#.#.......#...........#...
+ .....##.......................................#.............#....#....#.....#.......#.......#.......
+ .............#..................#...............................##............#............#........
+ ......#..........#...#............#.............#........#........#.....#......#..............#..#..
+ ..................#..............#.#...#.....#..........................#............#.........#....
+ #..#........#......#...............#........#....#.................#.....#......#................#..
+ ........#.............#.....#........................#.##........#..#...............#........#......
+ .........###...........#...#........#.#..................##.......#...#..#..........................
+ .....................#..........#...........#..#........#..#.#........#.#..#............#...........
+ ..#..........................................#.#..#......................................#..........
+ .....#..#..#....................................##...................##.#.........#...#.......#.....
+ .....#....#.#....................##..#..........................#...................#.........#..#..
+ ...#........#..#.........#....................#..........#.........##...........#.........###.#.....
+ ...#...##......#..........#......................##.....................#............#.#............
+ .......................#....................#............#.#.....#...................#..............
+ ....#.....#..........#.................#...........#............#...........#........#....#....##...
+ ....#.#..............................#..........#.....#.#.........#...#.#.....#.....................
+ ..#..#..........#.#...##.#..............................#.#...............##.....................#.#
+ .##............#..#.......#............#.#..#............##..#...........#...#...#...#..............
+ .....#...............................................................#...#...................#......
+ ........#..#.........#..................#.............#...#..................#...............#......
+ ...........##...........#.....................#..#.....#.........##.................................
+ .#.........#...#.....##.#...#.....................#...##..#......#..........#.............#..##....#
+ ....................#.......#.....................#..............#....#.......#..................#..
+ ...#.......#..................#....#........#........#........................#......#..........#...
+ ..................#...............#....##........#...#.........................##.....#.............
+ ..............#..............##.......#..............#...#.........................................#
+ #.............................##................#...#..............#............#...#....#..........
+ ...............................#............#.................#..#.#.......##.....#.................
+ .....#.........................#..............#...............#.........#...........................
+ ......#..........#..#.................#..........#.........#........................##...#..#.......
+ ............#.#........#....#.#.......#......................................#.............#........
+ ....................#.......................#..............................#.......#....#........#..
+ .......#.................#...#......#...........#..#.#.................##...........#.....#...#.#...
+ ...#...................#........#..............#.#.....#..........#.............................#...
+ ......#.............#..#...#.....#...##.....................#.......#..........#.....##.............
+ #.#..............##..#..........................#....##...#......................................##.
+ ...##...............#.#..#................................#......#..................#.....#.#.......
+ ........#......#........#..........#.................#..#..#....#.........#...#..#.........#........
+ ##.........#...............#................................................#....................#.#
+ ..#..............#...................#..........................................#...................
+ ....#.#.##.....#......##.#.......##.#........#....
+ #................##.....##.........#..............
+ ......#.........#....#...#....#......##...........
+ .#..................#..#..##....#..#..............
+ .#............#........#......................#...
+ ............##......#...........#......#....#.....
+ ...##..............#.....#........##......#...##..
+ ...##.....#..#...........#....#........#..........
+ .............................................#...#
+ ...#.......#.......#..............................
+ #.................#.##.....#....#.......#.##......
+ ....#.....#..#............#..........##.#.........
+ ......#.#.#.......#..#..........##..#.#...........
+ .......#..........................................
+ ..#.......#........#..#.........#.................
+ #....#..........#......................#....#...#.
+ ..........#......##..#...............##.##........
+ .#................................................
+ ..#.###...................#...#.......#...........
+ ..#.....#.#......#......#..#...#.............#....
+ ..#.........#..............#....#..........#..#...
+ ...........#.#.....#...#....#...............#.....
+ ..#.....................................#.........
+ ................#.#........###.....#.....#.#....#.
+ .........................##.......................
+ .#.....#...#.#..........#...#..#..#...............
+ .............#........#..#...#...#.........#....##
+ ..#...##...##.....#......#.##.....................
+ .#.#.....#...............#........................
+ ......#.........#.#..........#....#.#.............
+ .............................#.......##...........
+ #...........#.....................................
+ ......#....#..###.#..#.....................#......
+ ............#...#..........#......................
+ #...#.......#........................#..#.........
+ ...#............#......#............#........#....
+ ......#.....#..#...#...#........##..#..#..........
+ .................#.................#..............
+ ........#......................#.........#..#.....
+ ..................#................#..............
+ ..#...#.......#...................................
+ #..............................#..#..##...........
+ ..#.......#.#......#...#..........#...............
+ ...........#........#..#.....#...#.....#..........
+ #..........#............#.....#.................#.
+ ....#....#.#...............##....#................
+ #.......#....#..............#.#...................
+ .........................#......#.............#..#
+ ....................#.....#......................#
+ ..#........#.........#.......#..................#.
+...........#..#...#..#........#....#...............#........#..#.#......#............#..........#..#
+........#......#........#...............#....##.................#.#..........#..........##....#.....
+..........................#...#..............#.....#.#......................#..........#..........#.
+#....##..................#...#.....#............#..............#....................................
+#........................................................#..........................................
+..............................#.................#..........#...#.#.....................##.........#.
+.....#.#......#.#........###..#.........#...#...........#............#.............#....#........#..
+.....#..........#.#..............#......#.................#.......#....#............................
+...##....##...##...........#......#...#.....#.#......#........................#.....................
+#...#......#..................................#...#......................#..#..............#..#....#
+.......#......#..#.............#..#...........................................#......#.#....#.#.....
+##.#..#.#..................#................#.#.......................................#...#.........
+.....#...............#.......................#....#............................................#....
+...........#...........................#.......................#....#.....#.....#..................#
+............#.......#..........#......................................#.#.................#.....#.##
+..#........#...#.......#..#...#..................#...#.................#.#....#...............##...#
+................#...................#.#.......#.......#............#.....................#..........
+.........#......................#.........#........#........#....#.#....###............##.#......#..
+.......................#.........................#...............................#............#.....
+#.......#...#..#......................#..............................#...........#.........#..#.....
+.##....#............#......#............#.....#...........#...........#......#....#.................
+...............#.....................................#...............#......#.........#......#......
+...#......................#..........#.......##......##...#................................#.#......
+...............#..#...................#................#.#.......#.......#..........#.#.............
+.#...#...#...##.....#.......##....#......#......#.#.....#...............................#....#...#..
+...............#..............#.#....#.#...................#..#.......#.............................
+..........#..#.#..........#..........#....#.#..........###........#.......#...#.................#...
+#........#...........###..........##..................#..#....#.......#.#.........................#.
+.#..#.......##...............#..........................#.................#...............#.#......#
+.#...#................#...............................#..........#..#....#..#.......................
+..............#.......#.............................#.............................##.........#......
+......#...#..........#.........#......#...........#.........................#....#.............#...#
+.........#..#.#....#.............#...............................#.....##..............#...#...#....
+..................#.......#.......#.............................#.............................#....#
+.###......#......#.#.#.....#..............#.#.....##..........#..............#......................
+......#....#........#.......#.#.................#........##..............#.#....#...........###.....
+..#.##...........................#......#.............................#.....................#.......
+.....................#......#...#.............................#.#..#.......#.......#...#.#...#......
+....#....................##...............#..##......#......#......#.......##..........#...........#
+..................#.........#...........##.............#..........#.......#..............#..........
+..#.............#...................#.............#.##.#......#......#................#....#........
+...........#..#............................#.#.#.........#..#........##....#........................
+.#.........................#.#.....................#......#...............#..........#..............
+....................#.........#........................#........#........#...........#....#.......#.
+..#...........................#.#.......#....#.........#...#....#.#.......#..........#..#...........
+.#........#.................#...#........#.........#......................#.........#.#.............
+.....#....#....#...............#........##..................#..#...........................#.......#
+....................#..............#..........................................#.......#........#....
+....#...#.#...............#..#..#......##...............##.............#.......#....................
+.#.#....#.#.......#...#......#......#....#.#..............##.........#.....#...#........#...........
+.....#...#..#........#.........#..................
+#..#...............#...................#........#.
+....................................#.........#...
+..........#..#..........#..#.........#............
+..................#.........#...................#.
+#.........#...........#.........#...............##
+............#......#.....#............#...........
+...................................#..............
+.......#.........#............#...................
+.....#.......................#.................#..
+..............#...#.......#..........###..##......
+.........##.......#...........#.......#..........#
+..#.#.....#....#........................#....#....
+.......#..#......#...........#.#..................
+......#.....#....#......#.................#.##....
+...............#.........................#........
+...#....#.................##.#....#..#............
+.....#..........#..#..............#.....#.........
+...#..................#............#....#.........
+...........##................................#....
+..............#...................................
+..........#...#..#.....#...................#......
+#..................#............#.......#.........
+......#.....#..........#..........................
+.........#....#...........................#......#
+..#......#.....#..................#...............
+...............#....#..#.................#..#.....
+.#.#....................#................#.......#
+..#....#..............##..#.......................
+...#....#.......#...........#..#......#...........
+..#...............#....#.##.............#.........
+................#..........#......................
+..##..........#......#......#.......#.#...#...#...
+..................................#...#..........#
+.....................#....................#.......
+...#.............#...#.......#....#........##.#...
+............#....#.#.#.............#.............#
+.................................##...#.....#.....
+...............#.#.#.#..........................#.
+.........#..................#....#...#.....#.#...#
+.............#....#.#...................#.........
+..#.#.............#.............#........#........
+...#......#............#........##......#.........
+.....#...#.#...........#..##......................
+....#.........#.....#................#............
+....#....#........#................#.#........#...
+#..#...................#............#.............
+....#.........#..#..#.....#.............#.........
+.....#..........................#.............#...
+....................#.........#.#................#
+
+24R45L6L8L40R44R35L45L36R46R24R39R16L41L44R46L13R15R8L27R42L12L16R9R50R45L21R11L47L25R23L50L18R28L35R1L24L43R32R21R33L13R6L6L14L2L21R45R12L45R35R3L50R5R43R26R44R9R17R37R22L19R50L23L20L31R42L46R38R17R9L28R23R15L9R12L24R30L46L26L13L6R23L4R7R17R28L34L9R37R47L44R47R50L45R43L5R5L28L49L43R49R14L16R24L34R42L26R49R31L16L49R31R27R31L31R2R41L38R26L46L44L20R16R22L50R20L46L26R44R14L21L18R9L7L26L7L35R23L48R20R30R15L41R38L5R4L47L7R48R8L21R25R7R37L45L30R12L47L39L45R41L47R44R16R43R48R8L11L22L17L18L26L13L35L11L48R20R35R48L30R29R44L31R10L28L29R6R12L38L38R29R28L7R23R49R18R14R18L49R16R13L38L4L47L24R19R33R21L12R45R44L32L48L42R4L30R11L19L42R15R40R41L7R7R5L23R49R8L14R36L14L29L26R10L40R13R24L9R41R27L17R25L6L5L6R17L11R32R11R39R17L49L13R47R1L49R47R12L50R9L35R48L1R34R24L43R32R6R22L15L34R25L19R37R24L15R20L45R17R29R30R10R22R6L13R15L35L40R44L40L8R29R4L25R4L5R31L18R26R47R7R37L46L2R18R30L30R2L12L18L43R23R41R38R2R43R50L46L12R31L37L23L10L23R27R21R46R27R49R41R37L28R2L6L29R26R49R19R27L2L12R12L7L32L13L18L43L24R48L39L44L46R19R23L13L14R50R3R15R38L48R2L44L14R22R36L45R10R27L24R37L24L26L15R21L34R3L5R16R30R7L40R7R7R37R47R46L29R32L30R22R21L14R4L44R5L50L36R25R38L44R27R10L37L10R20L47R24L14R45L47R27L42R16R3R10L45L4R22R48L24R5R13L23R7L46L18L16R26R42R34R9L36L33R44L32L12R32R25R30R6R16L31L50R17R40R34R30L29L26L18R11R21L38L3R25R34L25R13R13L45R48L9L36L5R1L17R31R24L31R3R45R32R38R28L44R10L33L41R23L32R9R14L43L18L13R11L30L39L50L34L10L19L15L47L13R14L33R37L20R50R6R35R20R24L39L2L24L24L21L7R1L8L3L45R39L32L31L16L12R44R15L50R40R1R31R17R38L31R31L43R42L30R43L43R18L1R39R42R44L23L10R14R12L22L24L13R13R37L5R27R28L19L38R10R24L26L38L24L10R48R6L34R44R32R32R38L33R34L41R29R30L23R16R25R40L23R25L19L4R9R20R3R43R45L9R24L14R6R23R45L26R6L12L45L1R5R37L5R21L26R39R25L20R49R8R17L13L27L33L46L3L37L10L4R14R7R6R5L40R44L18R21R48L33L36R47L42L44R20L1R42R6R37R21L28L50L21R33L20L11R43L17L36L41R40L35R44R39L17L27L27R10R15L14R28R44L46L6L40R19R37L13R18L27L29R1L8L37R24L48L1R22R30L7R13L12L9L20R37R34L28L39L18L26R40R27L3L7L14L50R19R13L42L30L46R42L43R12R40L20L49R38L38L44L17L19R38L2L5R27L31L19R23R45R14R16L47R35R40R19R38R4L17R26L4L33R34R23L50R3R20R16L45R24R15R31R14L25L29R38R34L7L27R40R50R2R23L19R16R29R10L44R39L38R18R40L37L35R39R13R27R24R23R16L27R19L42R7L13R17R7L38L5L1L42L9L39L16L26R15R16L22L7L14R7R20R42L47L43L47R29R23R45R34L17L21R2L43R35R17L47R24R43R4L25L7L19R17R48R19R1R8R37R21L41R42R21L44R48R40R12L45R44L2R9R30L48L30L49R46R13L50L10R34R15R9R13L3R5R3R6L45L11L30L23L6L43L1R27L7R4L15R49R9L30R16L14R29L36R45R17R49R7R20L46L39R34R11L23L44L33R45L30L19L7R50R27L24R27L10R28L5R12L35L42L19L33R39L16L19R27L47R30L40L33R15R43R34L30R24L32L13L24L4L46R19R37R2L25L49R16L36R38L48L1R11R15R14R2L10L11R21L19L19L9L44R22L48R44L31L46L2R32L35R48R34L30L40R29R17L42R46R37R10R44L22L30L39L23R16R9L44R29L11R37L43R4L41L19R34R16L38L50L35L49L10R47R10L10R24L22R30L40L9L17R47R41L28L9R4R28L11R28R18R45L8R34L5R41R8L40R15L38R48R8R8R11L2R27R8R20R2L20L33R22R48L5L44L15R26R20R47R22R2L30L10L40L21R47R14R28R19L45L12R44R40L21L22R36R40R50R8L35R3R6R10L44R3L42R22L2L42R16R39R23L15L35R2L38R11L10L33R27R6L19R28L37L44L19L31L31R39L49L50L2R15L16L14L43L8R7R45L2R42L21L26R30L21L35R50R48L19L46L22R33L37R21L20R9L17R22L34L2L24R6L10L44L24R31L24L26R23L15R46L5R12R46L28L37R23L20L9R20R44R5L43L27L4R41R31L21R35R17L39L26R25L31R36L17L47L22L4R19L32R35L13L35R4R22L5R15L2R23L30L14R50R21L31L26L21R19L33R10L45L36L29R42R27L18R44L43R44R18L29L37R46L16L45R50R47L35R36L4R27L26R9L33L22L37L21R6L38R35R39L36R24R11L50R44R39L5R28L41R34R30L20L3L24R27R9L12R16R36L10R19L28R26R10L13R44L30L47L38R17L49L19R16R13L28R9L44L20L44R39L30L22R40R45L44L3L9R22L9R14L5L25R13L31R19R38R33L32R11L41R29R21R11L32L48R4R4R26L47R22L46L12L41R48R1R34L38R44L40R37L2R20L30L8R14L1L38R35R33R33L29R7R32R10L35R25L16L39R21R13L35R43L21L20L40L34R2L48R30R39L13L46R23R47L48L38L8R9L16R32R43L40L43R49R16R11L29L38R45R30L22L5R15R42L48L33R22R9L42R20R9R28R28L41L46R9L48L41R1R50R43R19R29L11L2L18L49L36R44L22R23R31R25L7R34L20R43R41R1R35R17L4L46R31R38R42R7L10R43L39L35R27R10R21L49L10L40R10R43L25R30R27L38L30R40R50L46L10R1L41R33L1L27L36L45R45L20R37R6L36L41L19R14L1R38R41R21R3L34R46R13R44L10L40R23L1R10R17L6R27L40L31R33R26R32L10R12R47R2R30R50R16L42R7L50R50R46L14R7L19L23R40L44L1R10L49R14R18L6R27R9R40R16R26R17R31L31R15R23L17L47R7L23R38L39L9L18R39R11L27R2R25L39L5L29R16L11R7L26R32L37R26L11L48L49R26L50R16R1R34R20L15R13R12R16L38R39R17R18R9R1L43L44R14L4R48R10R15R50R21R34L10R22R2L44R18L4R6L10R1R49L7L11L30L13L36L13L40L34L21R13L21L19R45L32L50R36L46R39L26L48L41R20L40L29R5R7R45R47L11L13L36R21R5R34L35L45R16L48R21L50L37R13R17L5R44L7R34L17R24R46L43L38L19L37L39R17R29R13R12L1L19L47R14L30L16R31L2R29L1R18L26L49R49R36R42R11L40L45L23L27L47R21L4L18L34L24R38L2R10R1L22L24R11L29R4L46R47R42L41L13L29L16L2R42L10L21L29L23L5R15R19R39R29L14R25L50L16R44L16R25L36R6L37R43L10R11R44R46L37L2L39R35R11L14R48R21R10R11R47L11L25L48R20R22R50L40L3L42L47R33R2R41R15L49L35L8L28L7R41R26L26R9L19L1L40R23R19L2L50L43R9L28L50R15R27L18R36L46R30R24L18L5R45R12R14L35L22L47R23L33L46R27R48R46R9R26R45L4L46R25R34L2R46L36L19L24L21L16L3R50R13L45R46R27L32L23R3L12R12L46R28L4L29L24R30L25R20R36R27R2R25R23R23R43R43L29R30L25R47L3R15L33L19R35R9R2R38L1L12R45L19R33R35R47R24R29R50L36R47L33R41L28L6L49R50R13R31R31R38R31L15R16L47R47L21R24R40R17R18L49R6R2R9R27R37R29R33L48L17R12L20R20R50L20L5L22R45L2L2R48R8R46R11R15R22L36L12L26R34L2L30R49R17R5L20L2R48R41R42L16R2R3R27R45L37L6R27L24L29L40L32L38L31L9L20L15L3L19L30L35R21L1R4L17R43L38R34L10L21R48L7R25L45L19L40L50L34R31R41L23L14L20L11R44R4R3L12L29L45R35R47L33R43L8R40R26R2R20R24R16R32R5L39L35L13R30R19R38R7R49R35L47L21L24L43L30L22R24R43R25L17L50R19R12L5L11R2L47L10L45R3L1L32R28R14L29L21L30R7R49R12R24L19R29L3L17L5R43R32L6L15L47L33L29L49L8R28R8L38L39R10L25R43L19R5L36R42L44R29L12R9L1L3R1R48L10R43R50L23L30L48R25L48L46L43L17R10R46R20L20L5R14L19R6L5L27R43R47R40L7R32L11L17L41
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_23.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_23.tst.data
new file mode 100644
index 0000000..baa7dae
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_23.tst.data
@@ -0,0 +1,70 @@
+#...####...#.##.##.#..#####.########..#...#...#####.####.##.####....##
+#....####.###.##.......##.....#.....##.#.#..###.#.....#......##.#.#.#.
+..##..#.##.#.#.####.#.#..#.#..####.#.#....#.#.######.....##.#.#...#.##
+.....####.#.##....#...##.#.##........##...#...##....#..#........######
+#..#..#...#..#.#..####.##....#..#.##..###.##.#..#..####..#.#.#..#.#..#
+........#.###....###.#.#...##....#..###.#....#.#..##.#.#.....####..#.#
+....###.####...#....#.####.#..####...##.##..#...#.#.#...###.##.##..###
+##..#..##..#..#.#...#..##..###.#.#.##.#.###..###.##.#.###..##.##.###.#
+#..#..#...#.#.....##..##.###.....##...#..###......#.#.....#..#####....
+##..#.###...###.###.#..##..##.###..#.#.#..#.###....##...###.#......##.
+###....#####.#..#.###.....##.#.#.#######.....#.....#.##..####.#....###
+###.#...#..#.#..#.....#.##.##.....#####....##.#..###...#.#.#.###..#.#.
+.....####.#.#.##..#.#..#..#.#....###.##.#.##.#....##.#..#......#...###
+##.#.#.##.#...#.#####.#####...###.###..#..#.##.#...#..##.###.#......#.
+####.#..##.##..#.##.#.####....#.##.###..#.#.##..#.####..##...###..####
+#######....##.#....##.###.#.##..#.###.##.#..##..#....##.##...##.##..#.
+###..#....###...##.##..##..##.####.##.#...#.#....#.##..##..#..#...###.
+.#.#######.##.#.###..##.#.##..#.####.#.#.#....#.#.###.#.##....##.###.#
+##...#....#..###.#..#.#....#.##.#.#######.#####...##...###..##.#..####
+...##.#...##.#.##...#.##..###....#.##..#..#.###..#.##..##.##..#####...
+#...###......##.####.###.....#.#..###.#.##..##.###...........#..#.#...
+.#..##..###..##.##.##########..###..#.#..#.#.#.#.........##.##..####.#
+#.#...####.####....#...#..#.##..#..#.#######..#..#......#.#####..#.##.
+....##.#.#....#......##...#.##.#.#.#.#.####.#..#.##.#.###....#....##.#
+####.#.###.#..#.######.##.####.#.#.##.#..##.#.#.#...#..####..#.#..####
+.....##.#...#...#...#.#.........####...######..####.##..##......##..#.
+...##.#.###..#.#.....#.#..#.##...####.####....##...###...##..#..##.##.
+..##.##.#.##..######.########.###.###...##..##.#.....#.###.######..##.
+#.#.#.#####.....#...#.#..##.#..#..#####.###...##..#.##..###.#.#..#####
+.##.....##.###.###.#.#.##....##.#..#.#.###.#......#..#.##........#####
+#..##.###.#.#.#.#.#.#.##....#.##...##.#....#.###.#.##.###..###.####..#
+....##......##...##..#......#..#.#....#.##.#.#...##.#...#..#.....#....
+#.###.#####.##.....#.#.###....#.###.#..#######......#.#.#...###.#..###
+##########...####.#.###..#.#.##..####.#.#....#.####.#..#.##.....##.#.#
+..#..#####..##.#..#.....#####...##..#....#..###.#....#.#......####.##.
+##...#.##...#####.####.##..#..##..##...#######.#.##...#####.###...#.##
+#..##.#..#.#######...##..##.#.##.####..##.#.###..####....#..###...##..
+.#.#..#.#....#####.##....#.#..#.#..#.##.#.##..#....###.##...##.#...###
+.##.#.##.##.#.#..#.#.###....#####..#..###..#..#.##.##.####..#..####...
+#...#####.#...#..#..###.#.##....##...#....###.###.##.#.#.##.##.#.###.#
+...##...####...#..#.......##......#.#...#.##.#..#..########.##.##...#.
+#####.##..#..##..#.....##...##..##..##......####..#.##.#..##..#.##..#.
+##.#....####.#.#..####...#.####..#.##...##.#..#..#....#.#.#....#.##..#
+...#.#.#.####.#..#.####..#.##.##.#####.###.###.#...##...#..##..###....
+.#....###....##..#....#.........#.#....##.####...##..#.##.#..#.###.###
+.#.###.#.#..###.....###.##...####..#...#.#..##.#######...####.#..##...
+##........#.##.#..#.##..######.#..#...#.#.#..##...##.#..#.####.....#.#
+#####.#....#..#.#.#.###...#..#..##....####..##..#..#.#.....#.#..#####.
+...###.######.##.##.##.#.....##....##.#.#..#.###.#.####..####.#...#.##
+.#..####.###.#..##.....#.#...#.##..#..#.####.##....##.#####...##.#.###
+###.....#.#.###.#.#.####.#.#..#.###...####.....#...##..#.#...#...####.
+#.#.##.###......####..#.#..##.#..#.##.#..#.#.##.#.###...##.##.##.#.#.#
+..#.##.#..####.####..##...#..#....####....###.##########.##..##..####.
+.#....##.#...#.#.######.####.###.....##..####......###.####.#####.....
+.#..##.......####....##.#####..##..##.###.###..######.#.####...#..#...
+#..#.######...#..####..#.#.....#..####.#...#.###..#.##.##..#.#..##.#.#
+....#.#...#..#..#..##..##.###...#.#.##.#..##..########.#.#######.##.##
+.#...#.#.###....#.######..####..#..#.#####...#.##....#.####...#.##...#
+.#.##....##...##...#.....#..#####.###.##..###....#....#..##..####.###.
+..###.#....##.##.##.#.##.##.#.#..#.#####..####..###..###.####.#.##.##.
+#...###.#...##..#.........#####..#..##.####..##.###..#.##...###..#..#.
+#..#.....###.#.###....#######..#...#.##.##.#.#..#.....###.#...#####.##
+..######.#..#...#.#....##.#...#######.#.#.#.#....#..#.##.#.##..#.#####
+###..###..#.#...#....#.##.###..#..##..#.###.#.#....####..#...##...###.
+....#.###..#..###....#.##...####....#####........##.#####....#.....##.
+##...#....###...........#.....#....###...#...#.#.#...####.####.....#.#
+##.##.##.#.#..##.###...####.#..#.##.......#...#..#.##.......##.#.#.##.
+.#..##.###.#.####.###.#.#.......######....#..#......#..##...#..#..#.##
+#..####.....###..#####..####..######.##.#.##.###..#..#.##.#.#.##.#..##
+#.#.#.#..#.#.#.#.###.....######......#...###.#.#######....#.###...#..#
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_24.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_24.tst.data
new file mode 100644
index 0000000..9f2a0a7
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_24.tst.data
@@ -0,0 +1,27 @@
+#.########################################################################################################################
+#>v^<>^^>.v><>^v<>^.<>^<>^><><>v><^v>>><.<<<<^v.^<><^v>>^v^>v>.<^<^>^^^>^v>v><.vv<<.^^.<>vv<<.<>^^>vv^<^v>#
+#<<.>.>^vv<<^^<><<<^^^^.v..^<^v.^<>vv<<.<v^^v^^vv<>vvv^>^>.<<.vv<>^^>>v^^^<<^.^<>^.v>^v.>v<^^>^>v<<<<><>>vv<<>>v^>.<^v.>^>^^vv^<<>^.^v^^v^<<<^v>^<>^^^v.^>>>^^>>^<<.<<<<.><<><^.<.v.^v>>vvv^^v><<<.<>>><^v>v^v^>^^<>v><^>>^v<>>>v>^<.^..>.<^^.v^^<<<>><><>.vv><^>vv<#
+#>><<^>.><>>vv><>>>^>.^<>><^.<^<.><^>^<>^v<^v^v^<>v<<^<.<>^>v<^^v.^^><.vvv^^^>v<^v>.>.>^^<^<^vv<<.<<^vv^<^.<<^v<>.<^>v>>^v^>vvvv><>^^^v^>>.^vv<<.^v^>#
+#.>^v^<>v<>>><<<^<^.>^>v>v^^v<>^^v<>^v<>^^vv^v>><<.^>>v^^>^v>^v<<>.<^v<<^<<<.<<>><<<<<><.^>v<^>><>^.>^^v^v^vvv><.v^<<<^<>..>^^.v>^^^>>^>>><>vv>^.<<^^^^.vv>v.>v>v>>^v<<>><>^>^.<^v^<^<#
+#<.^^>^<<<>^><>>^vv>>v.<^^..^^.v.><><>v<>v^>>v>v<>v^..^<>.>>>v>v^<><^>><><.<>>^v.^.vvv>#
+#>^.^v>.v^v^v<>^v<<<^v^<<<><><>>.v^v>>^.v.v>><<.>^>.>>>.^vv..^v^.v>v>.>.>>><^^^>.^v>^<<><#
+#<^^<>>..<^v^v^><^v>>>^v^>v^<.>^^v>^<.v><^>^^>^>v<>^<<><>><>v.^>vv^^.>v>v<.>v><<<<.^^<<^^.>#
+#<<>>^vv><<<^<^<^v.>v^<^.>>v^><>>v^v<<<^vv^v><^v<^^>v<^v.>>vv>^v^<.<>^>>vv><^>>>vv<^^^><#
+#<^><^>^^<.>v^^>v><^v.^<^^<v>^^v<.>^.vv<^v.>>v^.<^^>v>^>^^<^v^>..><>vv.v>>>vv.vv>>v<<<<^>>>v<^>v>>^<#
+#.^>vv^vv<>v<><^v>^.^v>>>v^v<>>>>^v>^<v.vv.^vv^v><^^>vv><^v^v<<>>v<^v.v^v>><>v>>v>>^vv<..^>.^>^^<>><^<^>^<<<^<..^>^>>vvv><><^^>.>v<.^.^>v<<>v.><^.<>.<>^^v<>^^>^.>v.v>^>.v<^>v.><<>^^^v<>.>vv>^.v.^^^^^>^><^^.>><<>.<.<>^><^^.vv.v><>>.v>vvv<>>vvv^.<<>><><>v>v>>>.^v>>v^v^><>>>>v#
+#>^v>^v^>..v>^v.^.<<^>^>^<<>v^>vv^<^<>^v^^>>v<^vv^^^<>><<>>.>>>^v<>^>v<#
+#>^v>>><><><^<.vv^^^<^>vv<.<^..<.>.><^<<<>v>>.<>.>v.vv<<^^v^v>.v><>>^^>^<^^.^.^>^v.>>vvv^<#
+#>>^<^vv<>^^^><>.^>>>><<<>>^>^.<.^^<^.^.^>>>^^<^>>v.v<<^^<^^>vv<><>v>>><^vv.><.<>>>>^<^>^vvvvv.vv^v.>>#
+#<v^<>>.vv^v^><>>><<<>><^^v^<^.<<><^<^>v><^v>v^v><^<>v^^v>v^<^>v>^.<<^^v><<.>v>>#
+#>v^<><<^>v^.^^.v^>>v>^v<<<<>vv^v.>^v.>>^vvv^><<^<>v.v^<..>>^^>^v>^>^^<^><>^<^^>^<^^<.^vvv.^.<<<<^<#
+#>.v<>^>>>^.v^>^<>^.<<><<^v>^>>^v<>v>>.^>>^>.vv<>^<><.^^.vv^.^^>^v>.^>^v>#
+#^^^^<<^^>v.><>^>v.>>^^<>v<><.^.v..>>^v^v>^^>.^v>>.^v^v>v<<<>v>.<>>^<^vv>^v>>vv>^v>vv><<>^^<^<^vv>.^>#
+#<^<<><>vv<^^v.^<<^.v^>^^vv^^v^>^^vv>^>^v^^.vvvv^>^v^><.>^>>v><>^.^^<>>v>v.^<<..vvv><<<<.#
+#<<<>^^^>^^.v.^><<>>v<>^^v<>^v.<^^^^^>>v>^v>vv^^>^.v>>^^^.>v>>>>v>>^^v<^.>>v.>v>^<#
+########################################################################################################################.#
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_25.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_25.tst.data
new file mode 100644
index 0000000..5663d2d
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_25.tst.data
@@ -0,0 +1,117 @@
+11-00
+2--2==212=12
+1=0110121=2
+1=012-21-=121
+1==0-1121-=200=2212
+1=1210===00=
+11210021-0001010-
+12=1-10-1-
+212-2==221-210-21
+1=-01=0-02-2-=-222=
+1=022000===-22010
+1=01=12202
+11=
+202-1
+2-12-2=--1
+10-=-00=101=-0-=-0
+1112-1
+2--1201
+1=1==-020=1-
+1--0-=2-0022-
+1=-1-21-200-102=
+11=100021210
+1=2=01=2-=01-=
+1=0120-11-0-=-2=-2
+1=-20221=2=-2=
+1-0
+1=00=-=11100--=2
+22122
+1=102222
+1210=1=001-=000
+1--200102022-=
+102=12=-1==
+100=
+20-02
+10
+10==-102
+11=020-0210-1-2012=
+12-11=0-1-=
+20=-
+212=1-1-10
+1=20=1-=2-11=0
+1=22
+120=2202=12200
+1-0-1
+211011-11=
+2=120=--==0==--0-0
+110-0-=-10-1-112
+1=2=1-=1-2
+1=12==10
+10=2110
+22222-1=01-1
+111-=2=22-==-00
+10===2-2=21100-1=
+100-21-0-1=021
+2-21=0
+1===002012=2=-1121
+122222-101=1-==2-2=
+112=0
+2--212=0
+110--2-0022--01=-
+1-0-0=0-1011-2-=0--2
+1=--0-2=1
+2=
+1=1
+1022=1--2---120
+2-1=2-22--21=1-212
+22=-11-0=-1
+2==210022=
+11=000=002-2002-1=
+2-2=02=0
+1=00-=----=
+1=121-2
+12-2=2-=2=2022
+2=110=1=2=02
+2
+1=0--02-121
+1200-2000=0
+1==--021--2=-
+12-1=22=-02--2-
+1=1=1--121-1221
+2-0212=
+21-==0-201-
+20212=1
+111--
+22-2=-1
+112
+2=2-==101
+1-=1
+12211=010=-=10--
+2211
+21-110-1-22==-10
+121-1-
+22000=-=2-0=012
+212-02
+102
+2-110=11=--
+11=11===0
+1=210-0120
+1=--1011
+2=00022==21-1=-2
+21=1-==2---2=0-2
+1220-11=022122
+21210=01
+1==1-2
+2=2
+11-11122=-
+200-0=21202-=
+2=-11
+2==2=0=1120221
+101010
+1=2=-=--=-2-0=
+111=0=--
+1=0121-=2
+1==1=1
+2-0222=2=-
+12=
+10-=0-2
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_3.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_3.tst.data
new file mode 100644
index 0000000..0467fc3
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_3.tst.data
@@ -0,0 +1,300 @@
+gtZDjBcmpcDgpZcmmbgtdtqmCGVCGGsvhCFCCqvmCMMM
+JrhfzfLTNfJhPnhQnfzHfCFFQFSGvMFCGQFsQSMSVs
+TllTRrfNNlfzwhtZBZgtRDBp
+vMdwjZdjwjvjdTZZvCcQMGnQMQcbcgLLCL
+rsVhfmssPWzDVGCLJSbCgPLSQG
+lfWNDHDgfszFRTFtwwNjdv
+GLPqVqdVGCLCdczjMjzMfzld
+JnWQvJDmvWBtlMzhrzfHQgcz
+tDtJDDDDtWRRmBwJwWtpPRsGCGScLPGSqspNCS
+ChVzZzfNDzNJmBQfjjJfmH
+MrTMPMncGMJvPPvPWTbrMWvgmBgQwgdpwmdpdpjwpHQcdw
+SPvvvbqrFvMvZzJzsFVzVJNV
+mvBbvMFqbMMVVmtCBHpDdDPTDspdNWPDVP
+zjSfftcQtwtSfQSpNDppsNsjPNdRPP
+fgfStJShrgvvCLLv
+GmFnNNwbFFbhQQGQnGwwwfBgnMMqVDBZVVBMfMVzVz
+vWzRRHzTHcgfZDVfBgfH
+SSTvrvRcPpcvjFGwNGbNpbwQwz
+FFgbZZFZgFmpstLgmbtzqNrwVPlMPlSWWrMPNp
+QQhTvjhcvjjvTcTcTfCcSRwwWzwzPMrzWNNWVVhwrwWq
+GRQBfCRnGGTcDvBfGvffCCjnFZtFFgStJLbLHbFLJZdgmd
+pppdjcrMMRDJLJdRcwRDrwssqHGGDHsZHHsvBVtvmVHV
+nlCFWzGzzQFlSlhGWnPzFbSsBZmsssmVVmsBvnHqvNVqqm
+lFTTTCSQSTrdGJJLJG
+jpsGMgsmghQwQsMmhlQshjtTNTRTnFqRWnnqRfFnnt
+SLBCHrcvZHbSvSZrSvSWnfvVNvftVlFRTqnRTq
+JrzdZbBcHBCrrlHrrSsMgmGpJPDPQmpgQgPG
+cmcZHgwgMgHSLmtjLfWPNNrWBNfffp
+JTqGTsClHslVVRVCVGVJGnBrjdnnrdBNvjPNBNBrWvnW
+VVlQlqTFJlzzlsVGsRCZMthHDbwbFhgcbwHchg
+qgZjgjjbssqgsjlNqjhTtdrfQdTdWLLnDVfHtHWd
+zcGMBDDzcLnztfQQQz
+JSppJcBScMmMFFBRCpRCMmGlggvjhbhlNlglwbslCZjhDZ
+hvhmqcqwwcTBvvwQnRQnRnTRFzFzQz
+jWLPPtPsgMtpdLMLWllpgLLQFQhFJjnVrzFrVFhnRzJJrJ
+WPWffgtSdspdhSMdlSdtfBbHmSvqbNBCCmcBmcvcCH
+frVcrVcggfSZJfbbJvBd
+hwWQnwhWQmQmThTSsdvvSMBTBzcb
+wGnFFCGlQwntGtCtwntwDmFwRgLrHqNRqqcNNgRrHHLggCjp
+wRSwwHDMsRGHvNBNjTgvjgJD
+mcLcFCclWQWQpPQWVQcQcvvNJjrNBTrvgJgBvTRvCg
+VFPbQLchQLSRfbMtdHGH
+lfVrhnlRRqrJZVDJdHSWCvJCJSbj
+BFsgcgMNNQgSvbfCff
+ffNPcMtzqPlnmRGh
+ZJplFmRJmWRJRWmTJCvtTtnLCtndCqtqnr
+SQsVPQHBQZNSNSLCfSLrcLcrrr
+VMjPjbNMDsVHmRllmZpZWmjh
+LcTLRbJhhdhLJbbclfVvfWQVWFRWFFfq
+rZNttSNvtgsPPFsqBFPWQF
+HGCSmHrrwNnHGMLpDhbzzpmJJv
+VlSWzRtWSJqWdfhdqBdF
+mTDHsmmmcHpgrCgCrTsMMtqfsFNsZqfdMZMNbd
+TDcpvrpHCprCpHrmcQvTHgTQzSnLJnPPJlLzwJtRVJwLjJ
+vZSWZJZJFvhZldZHdvvlphZSNGNnmzwCPNHNHGNrrRHGCPmP
+bjfgcbjTQTFQBnGRRBCBNwBnCz
+csqscsbssQLsgQcLgLQLQTQpFdlhdvdZdpZWhJplShWWtq
+QgQvHnfflfBwQCfwlfglnQQccNcRqGGcjmcsGjddwdzsJc
+DhZbTLZTDMVTsRzsqsRjszTz
+FSZVtMLMMWbSgqSvPQlnpH
+MMPllnnBmfSHvBgCLf
+whZjGRJdjcNjjhRjCvgCfbSvCZLHfpZs
+RRWGWwNRWwhwclmrgFmngFPMWm
+VVHQGDGDGsdRrmZBQZRCVHZCNcSTTPMwwvTTwSSNqBqvgMvN
+nfhdLfjFnJpblLbJjWhtnjWPScNnwSTPTPqTvgngNNvSvS
+fpWljtpLjflfLfzlhZGQHZQVddHrrQRDRz
+VCHCjwCwMSZSqQzhhQqcWZJD
+GGGrFFgNRNNgmfnTdgmWQpczvPvQPWQJGDpzzc
+lgTttRTgmfNRntrTTngrCbjCwJCHjLBBHlMVMsbB
+szgPPlCblggVszhLmzvcvNrqpjNqmrqqpGvG
+wBQDtBfQDtFvLjjctLqTMr
+ZFWWdDLQFwSfDSBSQQBWnnnQVdbhgRVbsHzsshbClzzCVggb
+VpVsHVcqcMVMMNHpsspstbMqzBztJZTBBfJfzTvZfvWJWSTv
+mDDQgCQQQHdrwgSvZSmJJZvWfJJf
+drCjggDlPdgrlbjNcnhcHsbpsj
+cNNDRRpDcNcTpppsqHLQGLfRLvHzLH
+lFntJjtbFFlsmsjvnGqHWLfhfqzzQh
+sgPbjBJtPgbPJblblJgbgbwdBTwDCwpwrdZZVcCcDppc
+GGclMjLnnjCMchcChLMLcnnzRFJDZJSRSzzzzDSShszPRS
+VHgFQgwVwfNNpQVfHzQsPPPJDbmZbJDJbS
+HfNVWdHVvgHgVWVNppNWVHwTlvBFcClBCjcTLTlBnnLrTL
+GTLdlJhffQwDRvWLrp
+HVZVNjjsPqzNjNNmNgDWMrRQpWvWRHrDHBWp
+VCqVzjPjCpVqCVPCsbctcnblcGlTbGnlbFJf
+flHdfdBNdZcflBMjqMjBNfZQhvJbGvqvsshJQsJCJDWvvD
+gFTzRRpzRTwbgbLmtCvsJhWsChrWCrtWCC
+VzzzFbVRLPznmRBffPNBHNMdlZfl
+FFFMwCqJFFmrRwgnbLrL
+GpjGpQHQpfjdjDRnLrbrRQmJzzgg
+BphfhDcNcHNvPBvSqJMWJS
+NndbWpDBNbjvWLZqWsWQ
+JPFFTSPfgcMgftQQGjvTmsGqzssG
+gPgcfcVFgcHqSqVhbBCHlpbbpDlhDD
+FSdfWFTTBnjsDCjsmrrT
+pQzLRVLppLGcQjqbmVDJsChCvCbVsm
+qHLRGqqZzGjLqBNMFdnHlNlBFN
+DjqbfBTchDjqqCjjCTWNTbdzSVzGZQGBwZnQnVwpSSnQ
+ssJlPrtvMsRLrrJQGNZJSpZpGzSG
+rlFssHsvPRPMvFmtHvtqjhTgjbqhWqNmNqgDNh
+vcpnRqwwLLbvvcGpDQWDFSCgMrWWQWRR
+gtNfBfllrFlHrlrl
+ZPzftBmsNBNBPJBZPmZPNtmPdGLsqbwqpqcndVLLGpVGvqgV
+vRBfQqqBQPfbrFvPBvPbhLDVDVDQZVVtZtlWLLLt
+jcJmFFwnhJVZLWVl
+sHTcmNNHzncmcjmdsBCrBCPCrBBqCFrqzb
+bbZRnGmNnBGGMNRTgCmWWGGSrvSvFHvzFvFQDF
+LjwphpdPdLpLJVqfJrQzDzfrvQHSvDcQrQ
+DJphdwDsnmbZsTZM
+rdNrZNBSzSztnNzWCcNpHlMwlwHWlM
+QqLGLJvLjtvQWhgHgchHwHJw
+GtjTGtDRqvfLRGnrzsmZmfrVFBrV
+TdMhZrTTNvwphcLL
+WnnmffmDWnWPsPCJNpNcpNVNQp
+fsjbWfFFfnmmDsFDnnflSSdczlMdTHTzTTRRBdtT
+cMcPcMcwgWJMjWWhFWCCQCmqCFdh
+bSLVLblnNnLbVfnsbSbCChSQdChptpdqZrmCmZ
+DLGNfnGVDNDHbfzjRcRgqHMRBJPc
+HVFVlVHjzjjlCJjHjCjnvDrggrgLdqzddMqrzz
+SSfBTmtNdLqngvrm
+TwnNfPWWpBSBNtTHZCGlPHCQJHZHPV
+prvccpFQpMcQBwsvssshdwSTPD
+qbGHVbNJGqwdPgDrTsDJ
+fGbGqqlGGHflqLlzZBBrRcrtrZlp
+fCSPhltMBmPmbdgd
+DjvJJscvTsHHDbWzBWsWbdwgLB
+VVHDZvTppRcJVFFppvvRJDJqMSGqCtZdthttrnthSZMGCr
+ZcSrSdrhDjBDDCmZdZmZjhwVHwqVVsMwgswVVwMfhw
+PNvzTPNbnzcPbGQNJTvqwsWgVgVMMWpQqwgHpp
+JTPGPTzNttnbRTPlPtNNRlFrFmBcmDljjmBFSCmLZZBr
+mNvRRCVMtNRdFNtMtBHHprpHgJgJWwpBnprg
+LZDDlSLlTslDfbcpJJWndwcscnwr
+qdZZGSDhMVRCGtmC
+VGFjjgBShGdGzQczcGRG
+MppqCDfCMwfLDfvNmrtWstRcMPzRMRsRsPQS
+NwDCffLppbqqrqvTBngSbnBHglZllH
+vdllJVDzmVDVqvvWvdqJlcWrCsfCsfSSsSJfCSfQQCCbCQ
+jnTHZPZHMjZhMjTpHgMpgnbNqBstnfrtSSrBSNssCrfN
+LHLTFLjTMTTTwjHhpHTcwmDcWVDlvRDmvqwWlW
+rqQsSStdmsdLqlNNPGlGlV
+FpFpzJNTcHzRHRHlGwFVLFBLFGVvlw
+WCCjWRNJTJWhQhbhrbnd
+jsQjfrRTRwzSsRTgNchlnlhqcnlQmQ
+dFDtdFBDddHLJpVpHHtVbtHFCWlWlGlNlmGggNqgglmcchqb
+dLDHMVdLtBBDBFVJBFthtJHRTvsMSvsTrTSRvPPjPzSwRP
+CSPpSrLlrlPrPchLnSlbDbbRttDVhbGRDDJRtD
+fzfvmzTMmfsFszsHZsHMHVfwtbjBDDGjtRBjQQGGJb
+HmvmTFmqmTsHqzzzzdTsMMScndccdLppnLCSPcCLrVgr
+pfMflRnfrnjrpjnFzDpfDMmMLRTLZVTgLsvdZgLLZHSVWZRd
+tBGNhwPGcNBBWwZddsSTTPgVLPdT
+JwthtwbbhNBQhwhbBCrzpnprnWnprlzWlClD
+PPnZZjnFNDjlJJhtMddfTTdD
+QGLHFWvQJtzfpvCt
+swqSmmQWLQwFWLwwRcqNNBnnbgPqbPNbglVZ
+GCLSjjZGZhpvGtBgjJlnJDhhJMVDPnJlJP
+mNtQQwNzQRHWdJHnPTsddlln
+zQrfmbtNbcQcrzmrRBZqBcvpjSGLZGLZBB
+zGNzgsjDssvNbPlWJfJq
+RLMVSRMLhCLZSMZHDSJWvpcqfbfhvpJqcWPv
+dMVHLFHLZMLRLLFRHHHVZMgDTntgstGwznzGGnzjDFwG
+wCLCHLBwzBtQRLHLbNFFfdqdDqVrVfBN
+JGvljmgGZvMlfDRRnnnZnfND
+GppRlgJlSllSgjMsmllpTjcCLczWztPWPwwwzWThtcQh
+WvHbvvWnFHszDRSltcCctCFD
+gCmJmCCPTPqpgrZtjdRtDRplcSjS
+rJJrQPPJQmrmrhGTznCfLMMbfvWfbCWQ
+TqBWtTbFBNNRRtwQpJJvvvZPpTSQ
+fRMfsMssrGhSmMwSQvvZJm
+VggcVlsCgHnVFnndbbnR
+NdrSSWBNPPSWWHPPlwlLZHLZLMhjlLLH
+pVptMTgVTzLwZTzlbF
+qsRmRJtsMvMqgqgRvCdcSrWSPcWrDmmdBN
+nbJnfqWcmCMnSBSHwzWBsHHz
+dVpdvdppdptppDlvlHcczSgNcgww
+VGTdTVtGtRLFPTDbcfCmmcCQJQjcrT
+VTjrjrjTlTjQMdpGrWMSHvSG
+wnNJbDmttnwnhNwcJmNGdvWvMSfvMfhSSppSdp
+JznFnNsGnzzGFDJsFNmLgVVQZBlLZjQTLTjTls
+hpngHwcpWHgjjfhzTJBfBB
+RFFbFlQlSdRsbRQQMGPRGdSGjBvvNTvzZMBvjzBBTJTvMBBT
+GPSSPDDDFzGlGGRzLzGGPRWqnprcgCHwCHpwHWVcncLV
+LLlLGffQLPRThRwP
+MpZjbmznWqmqZznmzmpZqZnMRgPBCTPfgRTTwTjhwBPPghjP
+VnZpMsMMJnWsmnJpJmzrtFlGQFrHGvSvfHStNV
+MQqHMQPnqmpDdTLLRnDjsj
+NGFzwgtLBtFFGrrCtzgfgCNgSsdTDSSTsdssjDdSlZRjTSBs
+zCwNLthfrbCgzzhqhmccJPhQHVmV
+SndBVcgdqcRBRcdPBBcVcQTSSMLMlTssMNMWsHMsLQ
+GmJvZvhqpvZtNwwWLTTLwMMm
+JFJpzFGZqjvhGZcjBPcCBBPnnVBc
+rJWbqTvwvJNbPDPPvLcZvPDp
+QMnfBsjmFPLcHRDfPp
+lQlMlmtFsMMBstljlnGhtMhmGNqJqTcWNNbWdGwdNNJCrTrq
+LcjcNCQNQWDpRDjRTj
+vWvszVVSsBGWsTJRFHRJTTSTRJ
+vvGbtqbGVVBqtzbqvBdzVLWNLClwnwMLWlQNMfdPQP
+TWBZsWrjzZzWBrBsrrsTLNNJvFnJVmlSFFQnGpmnSJJS
+qdCggdqqqhhqwhRbCwbCPqhlJFPPGJQVvvvnpVVmPnnFvS
+ffgCfghDqDdCsGWZjTsLrsfW
+QzQSSQmzSsLQcLmrcsLzccgqCnwqCtZDnDnrZwgnqTTT
+hFRHHRPRPMtWPGVPRlMljRPCgWBBDTgJBgnwqTZDBZDWDB
+jPjPHRMjjvdjVFhdNfbsbbQfbcddmNtL
+jJlTqMqJtdztJqzcSJSlTdSlprLsRRHwcRRrsrHbrnnRHsHL
+VVVMWNNWmNmLnPLRHrLp
+NGhfvvVWBNfNNCNCQTMqjzgTQBSSSqll
+SSSRMRSRpnMRHLqWLfPlDGlGWldD
+hbNtlmvrNrsVDWsGPfPfqG
+jvbBNmvlJjRcCzHFppCJ
+hhWWPjnBGBGnjqBWSnhhsNLllLNcLczJcqcTlLTlfl
+FHvFFMHwdmvrDbwCbbvHwdHnZTMLzTNTczflJTZclzNLlLcJ
+HdFFvdDvpCDdrnwrGhBQhWRRpsjQWWQW
+sBsvtJtdRdjNbWWrTllqlNgg
+nSZSnPPZzMSnSlScWWWgrVWCrqgrWMWr
+lzSncQcLZLzlwDvtdDdFdFJJhHvJ
+lpsTLDlTtFtlWHPDvvgPfgMrQQJM
+zmNbzcNjzldjwmbdbhhjcjRgfwrgvMwMMSRJSvQQvrRf
+ZhjqcjzNhmzNqBqNznmcWHplCFGnpCtFsGWHHWsH
+ZPGQBFHFbhSrHqtfSrSr
+nMdznzzMDTnjMQrMWtrMptplqpqS
+wzjczJmccTJCmcVghZBJbPBQBbVh
+wLLMJbqSBBnnJhbvbFSSRRlztTrHzrrrrd
+QNNGVPjWPGVqltTHWCqCdH
+sjNGmmGVGgQNGDVmsVpgqQVpMDhvbLwMffZfhZbLnfLLLZwb
+gQLcQrMtBPdwSBsSlmBm
+TfCpTJnTbfqgsgwgppsSzp
+jVbvTnvWfJnJjjbfCjWWjrFPrLMtcDPgLMQQRtgZVF
+gwpHvpgwngGHcnvNvgnmsqCzmMzlfqmmqzHHCm
+JrdSLdBVPRDtRtPfPPzCJhjqmljzmmqszzsM
+SWLDDtVdrZWtSBRZfRcwgFGnpNFpnTnWnTvT
+rpcnHrwrhWccNZDDBBgBVCSW
+nmzFRRjFmmJQNDJC
+qznMlqGnzRtRGvqGFRPrdMhwTpTLfLcppLHp
+wthvbmhmChWMRJLJzngZpzLLNC
+SsdBVjSTjBdffBFfcSdVHfTrnDZGpQgNZHNnLZGpJngJGLng
+sSdTcdVScdcrccjcrBPrBSjcvmRRwlWPhwmqtgWhMPtmMMqR
+CJJBdBCrHdBhtRHctBQhRMrBwZpwZWNZNSNTwSNpQWpZsSSW
+LVFnvnbDjLsDPsPqFFvPvDnTzSTwNwPZpSmpSpgmgZWNTW
+LjlflbFjsvVlrHcrHtrfcChH
+tVLJGNRtfBBNGBrfrbzmfhPsrsPC
+DWWDQHQgllSFqFzcsJmzzSSzmrrs
+MJFQDgMqnHlDvFdGNBNNZGNVVvjV
+wnNwGCBBFNWBqjFBnLLGVDHhHmDPHvZTjTvTrPvD
+bMbttVScMJQtdgSgstbJRSPmrTHmHmrmmSDZlrPrPDhv
+cMbgpsbVbzbdRMRFWLqzBfLGwwwwfW
+JpSnGSGpbGgsWWPHJrdfsT
+MNsRqNNvMQDTLWHlffNHLN
+qqmtRzRvCRRQDqjqjDmsmRpZwSZbcwbnCcCSBBnSSnnC
+TWqlqpRqRptqlRhrmtGGzhbSrSdz
+VgsBVMvgVZfZvPsMVNvfZfvVbSPdhFPFhbzLhJdGFJmLhhhL
+QZgvZgvHwbwHbMsMRllRjDRDnQRqlRjl
+fsPQwnHnHLLfnBBnwwGtjTGRWTWTWwhV
+jblbdjZFDMbGllqTGTtVlq
+gmdMgZMbjpZDcrrDgdmszsPLpQfpBPPnNQNLLz
+HRsPPGMhLPMrnPchPSwStjbSttSvtHSqQw
+dfsCfpCJVJCvdFBFwStwjj
+gTNWmWfTNVZVJzZWpWJgTpfhnDrMnDclgDlDrDRnRcMLDs
+ZQZQJMqdwmZvqfPmwRjpBBjHjnshnjtt
+zcTPTLDTFWLGTrTSWPcDSSHjRlhRsDhHslslssBRljjj
+TrNFLbTWrGNZvmvVQPQV
+htfLgmtSLcTWNLcT
+slbHlBBGbqRsblBHvdNJJcjFFNBTVWWWcn
+bbQsHMMblHrMsGRqvQhwCTQCwtQCzSpfmS
+zmqdphmFmSpTzhdqhFmwjjGbtcvDbcGGjllGQjSP
+HJFrMCsVLrHRRMCNrVMVnctvstlGcQlPtGGjQtGlvP
+RFLHLVWrNgVJzwzwfgffwdfp
+vdMjSmMMpmMWhRpndRmZnhvHqLpGHcJGGGDLHHLGcfcLfc
+lPBwwrsCgLFggcqqLW
+TWszsWNBTNdmSRvjbZZT
+zFlBGpzzzLLNjBwPcwwmcNPfWNQn
+VHSHRJTJDSVVnmcVVPpWmpnf
+DMZHHrDHHrJrrZrShZsHGbMBbFgGjGCgjpFlBzzb
+FVMpsvTqvqMssVsWZSrqWFvwlGDGwQzwfwQQNLzDlwlZwf
+hPbgBHhJJcJPwCwDpNllCCHC
+pnjbBmjgbgmqtSmsTtsF
+DHZHmfTmCfjDZHMZmzffHHnQwwTBdQwbSdBGBQwhBQTQww
+cqstRFWNtLrNFwdVShlBSlhBRl
+StJWpLptNWLtJcpqPrFHDjZzzvnDDHPCZjPvvz
+hzffhGVGGhzRqTBLTqHL
+sFFFsMQlwJMsmrBFSNHTHNqrTS
+pbdsJMdJMJbwbmJJtbTtgnffGgVVChvD
+FvJnFnCpQTddSSmFdFpPPsVhppDjBzjDVhDV
+RgZMZbsgzlDPlhjb
+cHHHRgRZgfHHZGZfHZcLLHrrCrmJCmddrsvdJsmvFFQG
+dpJDdZwLnvdvFmFMmHjslMLH
+CGCztgPhWCWhzzzNNPGfrrWfmbbsmmHjFHDMsbHMsjFPjbHm
+rNQDGzzhCCfNrzrDzChTcZZvQcTRJpTwdvQpVc
+VpvNGhGHGNhHbPsbVbvfFtLCzSCFSBsCFSFCLB
+MlqJwTnrRRrRnMlQMHfHzHzWFWtmTzLWFC
+ljZDDHqqjqRbpNhjNNgcgc
+qrQtDzcQzbrcfdbqrQrthtscSsvpvnsSHpTpLpspmsSs
+CVwNNVRNBSHsLSFBTv
+CVVVNZjlVlGwlGlljNlWJVrrfqbPQQqHqJhhftbfDJqf
+lpmrPDPDjPlmWrVzPztZwFjtFbBnRtZbbcRL
+dnqJCCgQdNqbqRbRbBLt
+QGhGddGCTdMHNTGgshgJhzvSmWWPSsnprpPzWzsWlr
+hCJHTdJJNvTdSSNssjvfwgntwDgtgwDGCtZwtRRB
+mbllFmFMFbMVWWLpbpZwwBZTZnnVwnTggtDB
+MmzLQpFPTmPzHvfJNNzhNs
+dzgBwzlgrrBrVLLlwLBgBlgRScDMMDDswMsHZRGDsZGZmM
+HPfPbjCFJjCvfnnsjsDDcccmZsRSMc
+hCvHfWPPnvJhPWpqNNhqLqzLqLLd
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_4.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_4.tst.data
new file mode 100644
index 0000000..c7fb3fc
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_4.tst.data
@@ -0,0 +1,1000 @@
+48-50,48-49
+5-89,5-5
+17-57,55-96
+24-67,23-25
+89-99,11-89
+34-71,35-71
+13-17,16-95
+13-93,5-12
+11-91,1-11
+4-81,2-11
+53-82,52-53
+5-98,4-97
+4-78,3-3
+20-81,21-80
+79-83,77-82
+76-87,43-87
+14-93,12-62
+13-94,15-95
+22-75,14-53
+67-90,67-79
+1-82,1-82
+5-80,83-96
+28-57,56-56
+53-91,52-54
+21-97,2-36
+8-18,10-98
+7-91,12-91
+11-88,19-95
+22-88,21-88
+31-69,9-48
+2-3,3-43
+5-95,2-6
+5-85,5-79
+51-91,51-69
+41-91,41-64
+23-37,24-95
+1-28,3-94
+6-93,6-98
+8-65,34-66
+2-8,9-38
+3-75,2-4
+40-77,37-76
+51-51,11-51
+95-95,3-94
+90-90,81-90
+26-61,26-61
+1-96,97-98
+41-84,90-91
+94-94,1-94
+52-89,74-90
+9-11,10-74
+57-67,56-62
+29-98,30-78
+20-88,18-54
+11-81,10-82
+85-87,26-86
+8-45,46-78
+16-33,20-49
+73-93,16-93
+35-36,29-36
+4-98,98-98
+24-30,30-80
+64-99,72-97
+8-33,8-47
+88-96,93-99
+23-46,35-49
+41-60,40-41
+5-83,4-6
+76-76,15-76
+37-70,69-71
+11-77,11-12
+57-65,65-97
+20-46,46-62
+76-84,8-77
+10-29,29-53
+16-50,6-17
+20-99,19-19
+11-12,12-72
+24-91,77-92
+37-73,72-73
+50-52,73-89
+37-99,25-76
+1-88,1-2
+18-64,17-63
+19-52,17-52
+5-86,6-87
+13-87,14-87
+23-82,19-92
+56-79,57-79
+25-68,26-67
+5-95,94-96
+38-50,38-39
+32-75,32-75
+23-69,23-69
+25-54,18-25
+33-79,34-67
+38-62,38-65
+62-75,69-78
+2-17,3-17
+12-20,19-96
+7-7,4-8
+1-92,2-93
+29-70,69-77
+7-54,2-54
+9-34,16-34
+4-20,7-31
+4-89,4-47
+12-91,9-96
+8-79,9-80
+32-91,31-91
+1-4,5-55
+85-94,84-95
+73-74,6-74
+51-70,52-70
+21-75,7-27
+13-38,37-39
+42-97,42-98
+33-45,28-45
+12-14,13-98
+91-92,90-91
+66-83,57-83
+8-79,9-67
+59-72,71-72
+33-71,3-33
+13-38,12-38
+18-93,18-52
+28-80,12-26
+87-88,2-88
+7-89,7-85
+26-27,27-27
+12-97,12-97
+36-95,32-91
+25-33,25-32
+4-39,5-75
+40-58,41-58
+8-60,8-93
+9-69,70-70
+19-34,35-68
+47-47,38-47
+1-70,1-70
+39-82,38-83
+17-98,17-99
+56-86,37-56
+2-2,4-96
+5-97,97-97
+52-93,52-77
+39-66,38-66
+9-99,4-99
+25-37,24-37
+2-99,1-98
+13-15,15-15
+10-51,5-9
+38-99,19-96
+6-38,37-78
+94-98,95-99
+8-89,29-89
+2-98,1-98
+13-99,99-99
+1-76,1-25
+8-97,8-97
+9-90,89-93
+24-52,7-49
+30-97,45-99
+26-62,26-59
+15-27,21-30
+80-81,64-80
+65-76,2-76
+9-9,10-99
+3-6,4-82
+78-79,20-79
+11-50,49-49
+10-12,11-68
+1-5,4-85
+8-10,9-95
+16-86,16-87
+11-81,10-11
+36-87,75-87
+55-92,54-99
+3-18,18-84
+4-73,1-2
+16-66,5-76
+29-73,29-79
+60-91,67-91
+82-82,47-82
+31-38,31-37
+44-44,21-44
+93-94,65-94
+13-79,2-12
+4-97,5-97
+40-78,40-41
+69-99,1-69
+8-97,8-96
+27-27,26-79
+60-96,71-88
+24-57,18-25
+1-26,2-27
+53-81,69-81
+3-96,2-96
+9-99,9-97
+45-48,46-56
+6-36,5-30
+45-73,46-73
+28-41,27-42
+4-91,90-94
+6-39,20-44
+3-3,5-65
+17-98,18-65
+15-98,15-96
+29-88,65-90
+10-61,60-62
+26-91,27-91
+78-96,95-95
+6-22,6-17
+40-56,40-57
+4-5,6-98
+78-83,51-83
+8-78,8-78
+26-87,26-86
+4-94,3-4
+5-55,2-6
+40-50,19-56
+55-68,2-94
+39-41,9-40
+68-76,68-69
+51-60,50-59
+9-48,2-10
+13-96,13-63
+1-90,4-91
+1-7,6-99
+25-67,25-66
+13-94,14-93
+27-28,28-70
+39-41,25-40
+8-53,9-53
+56-89,57-88
+4-56,50-56
+22-76,15-17
+7-98,69-76
+12-46,11-46
+1-41,3-72
+43-55,44-76
+9-81,9-81
+45-95,45-94
+12-68,12-69
+90-96,74-85
+67-68,68-68
+50-73,2-73
+6-17,6-97
+70-76,71-99
+9-43,9-43
+9-76,8-75
+66-90,65-66
+13-99,12-14
+1-2,3-91
+53-86,52-53
+3-57,3-96
+81-92,80-92
+6-18,17-88
+70-94,69-69
+17-17,18-88
+4-92,4-93
+41-61,47-61
+25-52,25-73
+78-97,12-97
+39-54,38-46
+39-52,39-58
+8-99,8-51
+52-58,51-52
+5-45,6-46
+3-99,98-98
+84-87,84-98
+58-87,86-88
+6-72,71-73
+41-42,41-86
+27-42,27-77
+14-15,14-74
+43-43,40-43
+17-95,17-93
+44-66,65-70
+4-99,5-99
+43-43,44-86
+64-75,63-71
+4-99,5-99
+6-29,6-99
+19-84,18-83
+72-72,10-72
+9-14,13-88
+3-98,98-98
+9-81,10-81
+13-69,13-70
+3-87,1-87
+22-61,10-62
+75-90,75-90
+69-99,68-87
+94-94,91-95
+2-3,3-96
+5-93,48-93
+43-45,33-49
+85-87,2-86
+51-52,52-62
+50-91,40-49
+1-81,21-81
+51-56,51-56
+22-23,23-37
+25-27,26-67
+58-59,23-58
+37-85,84-85
+12-97,12-96
+14-38,2-13
+33-81,32-44
+34-65,46-60
+3-28,27-28
+11-54,11-55
+2-93,1-93
+28-28,28-50
+10-82,81-83
+77-82,77-82
+33-63,49-63
+2-84,89-91
+37-90,36-91
+46-85,45-85
+97-97,14-97
+5-18,6-19
+7-94,6-95
+17-87,12-86
+11-85,39-85
+7-94,7-93
+9-98,9-96
+18-18,19-96
+62-62,34-62
+24-36,24-91
+72-91,4-91
+7-84,7-83
+9-93,9-87
+22-99,21-99
+32-46,31-32
+32-70,69-97
+13-89,12-88
+10-10,11-89
+46-46,47-64
+51-51,24-52
+5-51,3-3
+46-90,99-99
+6-96,5-95
+50-96,50-97
+96-96,4-70
+13-36,12-35
+19-90,13-20
+12-43,42-95
+1-83,1-84
+3-5,4-70
+24-97,25-98
+27-40,1-50
+37-82,36-83
+47-95,47-94
+2-80,2-58
+64-83,63-87
+42-52,41-44
+26-97,1-97
+35-45,35-78
+6-45,28-82
+11-17,11-16
+67-67,44-67
+2-95,2-94
+22-95,22-94
+20-43,21-92
+33-60,59-76
+6-75,7-75
+3-90,96-99
+38-76,41-76
+18-98,6-19
+2-65,64-77
+3-88,2-88
+14-94,13-93
+40-89,71-99
+44-93,44-72
+48-62,48-61
+6-27,6-26
+43-53,43-54
+4-97,36-98
+8-13,12-83
+15-96,7-96
+18-91,17-18
+11-13,12-55
+31-92,19-94
+44-87,14-45
+18-51,17-18
+23-24,27-27
+23-46,24-88
+12-90,13-90
+37-70,34-70
+1-98,88-98
+2-93,6-95
+73-99,74-98
+4-46,2-46
+50-52,51-75
+45-91,46-90
+11-85,58-94
+26-43,26-44
+56-95,55-94
+10-93,11-92
+1-99,1-99
+8-95,7-7
+19-69,9-18
+18-90,9-60
+74-93,13-73
+62-90,61-72
+7-53,52-95
+44-82,4-44
+17-88,17-88
+26-27,26-89
+1-9,1-62
+13-40,39-62
+2-93,1-92
+91-91,17-91
+57-58,58-85
+23-98,97-99
+16-48,16-48
+25-61,61-87
+14-47,13-84
+46-96,47-94
+8-98,7-99
+3-5,4-97
+38-83,28-82
+7-99,6-34
+23-91,38-84
+33-35,34-63
+14-55,55-55
+34-50,11-35
+3-69,4-69
+67-99,99-99
+38-94,2-59
+2-98,2-97
+77-79,42-78
+6-45,44-45
+39-79,61-93
+5-92,5-97
+4-61,3-64
+47-48,48-67
+11-23,10-23
+2-99,9-99
+31-99,30-81
+28-87,29-88
+8-31,2-13
+3-17,16-83
+29-58,57-59
+4-75,15-35
+49-94,48-93
+23-85,84-84
+7-92,7-97
+53-91,91-97
+26-95,1-95
+9-22,7-9
+13-63,62-95
+54-55,54-97
+80-88,79-88
+1-44,2-44
+3-83,1-4
+95-95,26-95
+23-26,23-26
+19-35,19-34
+17-34,34-34
+39-89,75-97
+42-84,84-84
+60-95,61-94
+6-88,5-88
+2-68,1-68
+16-76,15-16
+30-93,9-96
+10-91,11-91
+36-88,35-36
+24-67,45-66
+41-58,16-96
+84-85,83-85
+10-59,18-59
+33-70,69-69
+58-69,57-58
+4-6,68-85
+3-91,91-91
+99-99,2-98
+33-94,93-95
+68-69,27-68
+4-4,5-14
+98-98,2-97
+5-91,90-92
+2-91,2-90
+37-81,80-80
+9-51,54-69
+45-59,46-59
+8-69,7-69
+20-21,21-29
+45-83,88-91
+22-87,20-21
+4-77,3-76
+50-81,49-49
+47-59,58-78
+22-85,21-84
+3-86,7-91
+63-83,62-63
+10-58,7-57
+14-88,14-88
+18-67,16-28
+39-50,39-42
+9-85,8-85
+7-28,7-8
+72-72,19-73
+25-27,25-56
+40-43,40-43
+10-26,25-25
+29-99,30-99
+9-14,13-92
+9-17,10-56
+93-94,1-94
+31-67,30-68
+15-84,84-84
+45-46,8-46
+10-93,10-94
+31-48,5-94
+49-93,92-92
+45-80,40-67
+63-94,7-93
+2-94,1-66
+26-44,41-53
+51-94,1-94
+5-93,4-92
+14-86,85-86
+9-52,8-10
+24-61,23-62
+1-78,77-79
+6-97,17-96
+43-65,19-43
+45-99,35-99
+58-58,20-57
+22-89,64-85
+12-22,21-80
+6-36,36-36
+1-92,87-92
+26-99,26-97
+7-85,1-85
+20-98,20-98
+2-51,2-54
+73-95,74-95
+16-54,15-17
+4-95,4-96
+11-98,11-98
+67-79,66-80
+61-61,62-63
+50-62,12-50
+9-80,9-81
+1-1,3-87
+16-61,15-23
+31-35,34-40
+13-89,12-90
+89-91,90-95
+20-60,12-81
+2-65,1-66
+38-96,56-96
+23-23,12-22
+96-96,11-95
+8-37,36-97
+2-26,1-26
+30-71,37-73
+71-87,70-70
+31-99,31-82
+6-39,2-7
+1-99,3-99
+29-73,32-81
+33-37,33-36
+15-41,14-40
+32-33,33-90
+23-85,22-24
+26-93,26-86
+3-97,2-98
+10-92,92-94
+29-55,30-55
+9-75,29-96
+6-94,93-97
+63-63,52-63
+24-78,5-5
+38-67,37-67
+14-32,13-32
+35-94,36-94
+23-92,24-92
+9-36,8-36
+63-95,62-62
+37-78,3-78
+34-51,17-37
+84-85,13-84
+1-95,1-98
+18-56,18-19
+17-78,13-16
+6-52,15-44
+13-33,14-33
+10-88,11-89
+61-80,61-79
+6-98,98-98
+1-91,1-85
+60-86,10-87
+3-96,95-98
+34-99,33-98
+19-21,20-91
+7-96,8-96
+2-90,2-90
+36-96,36-96
+76-96,60-75
+8-44,7-44
+9-28,10-28
+10-95,7-95
+56-68,29-82
+10-97,18-99
+68-97,45-97
+19-92,2-92
+6-97,5-97
+74-74,73-73
+20-70,20-70
+18-66,19-67
+91-94,7-92
+4-47,4-47
+11-93,12-93
+33-54,32-53
+54-64,55-63
+20-99,20-21
+39-82,56-68
+4-36,36-47
+30-41,25-31
+65-69,69-69
+20-71,71-74
+16-36,24-54
+2-96,95-98
+11-70,10-12
+5-36,35-95
+36-92,36-37
+37-78,32-87
+28-89,15-88
+9-63,62-62
+2-94,4-94
+85-85,72-85
+30-73,7-31
+10-36,10-36
+75-97,47-95
+23-23,4-24
+49-88,36-87
+25-25,26-42
+33-86,26-86
+13-76,76-76
+60-60,60-60
+3-23,24-24
+4-85,10-85
+7-38,8-37
+40-85,41-84
+46-86,47-87
+8-38,7-38
+76-78,9-77
+80-94,57-94
+86-96,86-97
+35-89,10-67
+45-94,35-81
+8-93,7-8
+22-48,23-47
+21-94,20-94
+63-72,60-73
+89-89,57-90
+34-41,41-78
+5-5,2-6
+1-79,1-80
+79-82,80-83
+37-37,38-53
+65-93,64-96
+33-85,33-33
+7-98,44-57
+2-5,4-69
+19-69,18-68
+80-81,7-81
+19-99,20-99
+5-34,4-14
+4-88,88-89
+51-91,59-93
+33-60,33-58
+32-67,27-94
+8-98,7-8
+34-43,44-69
+10-80,10-11
+7-73,11-73
+23-69,24-69
+68-83,6-68
+2-35,5-35
+1-4,3-90
+88-89,30-89
+57-99,14-63
+16-29,17-28
+67-82,62-77
+20-65,19-66
+37-69,61-63
+58-94,94-94
+1-72,72-72
+7-11,10-47
+18-59,59-59
+57-57,37-58
+60-81,54-72
+2-86,1-87
+7-78,7-77
+59-69,59-65
+15-16,15-73
+15-82,16-92
+8-88,57-88
+36-92,36-88
+59-60,24-59
+4-22,1-3
+44-60,45-60
+90-95,35-89
+21-30,20-30
+4-83,83-83
+16-99,7-17
+11-18,19-95
+45-94,44-94
+3-11,3-12
+9-70,8-10
+1-8,8-78
+1-5,4-97
+30-55,29-31
+7-89,8-89
+47-47,46-48
+66-96,38-84
+33-34,33-73
+2-23,1-22
+52-64,53-91
+9-34,19-61
+25-57,25-57
+1-98,97-98
+79-89,76-80
+28-80,28-80
+13-77,76-78
+3-88,2-88
+69-72,70-72
+91-91,22-91
+77-95,76-94
+84-92,84-91
+55-99,56-99
+1-91,2-91
+33-36,27-36
+79-84,62-74
+52-54,18-53
+26-37,25-27
+55-85,40-85
+58-74,10-59
+6-53,6-53
+42-49,42-47
+47-79,80-97
+11-24,25-91
+83-87,86-87
+1-88,1-96
+55-63,54-62
+76-76,8-76
+3-78,78-99
+1-86,8-96
+44-70,43-70
+25-27,26-91
+65-98,97-97
+14-64,15-65
+9-36,8-35
+78-84,77-85
+42-58,41-59
+60-92,59-60
+95-97,14-86
+8-82,7-83
+5-58,5-59
+5-99,6-99
+4-13,1-4
+57-86,43-58
+11-82,11-11
+4-87,1-5
+6-7,7-11
+6-22,2-7
+15-49,14-49
+39-97,99-99
+12-49,13-90
+70-80,71-80
+46-95,66-94
+94-98,13-94
+3-11,11-11
+13-23,12-23
+11-98,11-98
+20-99,8-20
+28-87,27-87
+16-21,21-61
+2-91,7-56
+7-7,8-71
+74-74,67-74
+23-88,1-74
+1-99,2-98
+34-85,40-86
+6-85,6-68
+28-31,31-49
+13-40,13-40
+55-56,56-56
+70-72,26-71
+93-94,34-93
+45-75,44-75
+4-10,10-50
+65-74,65-77
+39-87,6-59
+11-85,3-85
+8-46,12-46
+9-9,10-95
+30-41,27-92
+13-97,9-96
+21-62,22-63
+54-69,52-53
+17-99,18-99
+75-92,7-76
+38-39,38-90
+50-69,49-50
+65-87,65-99
+6-98,6-96
+34-62,40-90
+33-47,34-48
+33-95,34-95
+42-99,43-98
+70-85,1-71
+37-63,38-63
+12-17,17-72
+28-31,29-92
+18-69,8-17
+41-96,40-95
+7-86,7-86
+68-78,67-73
+4-6,7-99
+8-86,86-87
+5-6,6-37
+88-94,89-95
+33-74,33-74
+86-87,86-87
+29-55,62-78
+23-38,13-38
+9-44,10-89
+18-67,19-97
+3-83,1-66
+55-81,55-81
+6-72,7-71
+5-55,6-55
+14-99,14-97
+39-83,16-40
+11-73,55-73
+4-68,5-67
+66-73,26-73
+3-92,3-91
+36-59,33-35
+72-73,4-73
+1-83,2-83
+25-88,25-43
+45-71,45-73
+9-96,95-95
+4-5,7-23
+48-50,4-49
+45-96,44-96
+50-87,49-50
+98-99,27-96
+4-40,40-78
+3-94,94-94
+7-34,25-26
+72-79,23-72
+2-84,3-83
+78-96,25-78
+77-94,73-94
+63-66,62-65
+25-80,24-80
+10-33,78-90
+25-55,24-54
+58-62,23-64
+61-62,62-84
+83-83,46-84
+23-30,31-92
+8-95,94-99
+35-65,34-64
+12-19,12-18
+21-25,24-43
+54-79,54-84
+37-56,37-57
+77-77,15-77
+57-88,55-88
+7-93,8-93
+5-89,3-66
+33-63,32-33
+9-52,51-96
+7-97,6-66
+3-58,1-3
+26-85,25-84
+11-63,10-12
+52-54,53-54
+23-68,22-22
+14-96,14-95
+4-41,3-21
+4-6,5-83
+97-98,1-97
+13-90,73-88
+11-15,7-10
+65-80,24-81
+48-82,48-83
+81-87,4-81
+40-47,40-47
+15-87,14-75
+30-50,29-30
+26-65,64-64
+37-37,7-37
+51-51,49-51
+5-71,7-70
+18-54,53-54
+47-48,48-60
+26-98,25-97
+5-6,5-81
+3-98,3-99
+9-22,21-22
+4-97,1-1
+36-36,37-77
+22-35,4-23
+18-95,19-96
+14-94,14-96
+43-46,47-50
+80-91,81-91
+20-67,5-81
+8-87,9-86
+30-69,23-30
+96-99,2-96
+59-75,74-76
+20-66,19-66
+10-85,10-65
+9-82,8-38
+32-66,54-66
+23-64,63-65
+1-89,1-90
+1-95,1-94
+12-82,7-64
+55-66,60-66
+3-93,3-42
+45-87,15-88
+3-50,3-76
+7-86,8-79
+39-39,40-85
+57-86,52-52
+17-84,16-18
+63-99,64-99
+83-94,83-94
+12-85,11-86
+18-89,17-17
+12-25,13-87
+9-12,10-15
+62-92,85-88
+26-97,26-94
+16-94,94-94
+47-83,47-83
+25-86,85-88
+1-99,1-98
+47-87,87-99
+9-99,9-97
+8-73,2-73
+45-47,46-85
+18-95,18-96
+41-41,40-41
+1-4,4-61
+4-95,5-96
+8-79,78-80
+6-81,9-81
+7-90,1-7
+6-22,6-22
+32-82,15-59
+19-93,13-93
+43-48,12-99
+45-45,46-59
+27-69,1-28
+78-78,59-79
+12-57,57-57
+4-39,4-77
+55-91,91-91
+27-87,92-95
+83-87,87-98
+22-84,22-31
+3-91,3-22
+45-86,57-62
+68-82,55-82
+96-98,3-97
+12-32,1-32
+37-71,37-71
+31-59,31-59
+86-88,79-88
+4-92,3-3
+40-91,17-91
+51-52,52-74
+2-97,1-98
+50-83,82-83
+34-34,35-41
+6-47,5-5
+5-65,5-47
+32-77,33-85
+21-68,22-67
+12-45,46-95
+45-48,38-46
+39-84,35-40
+4-60,3-4
+67-83,68-84
+24-92,25-93
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_5.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_5.tst.data
new file mode 100644
index 0000000..3c93ae0
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_5.tst.data
@@ -0,0 +1,514 @@
+[Q] [N] [N]
+[H] [B] [D] [S] [M]
+[C] [Q] [J] [V] [Q] [D]
+[T] [S] [Z] [F] [J] [J] [W]
+[N] [G] [T] [S] [V] [B] [C] [C]
+[S] [B] [R] [W] [D] [J] [Q] [R] [Q]
+[V] [D] [W] [G] [P] [W] [N] [T] [S]
+[B] [W] [F] [L] [M] [F] [L] [G] [J]
+ 1 2 3 4 5 6 7 8 9
+
+move 3 from 6 to 2
+move 2 from 8 to 7
+move 3 from 3 to 8
+move 2 from 5 to 3
+move 5 from 9 to 7
+move 5 from 3 to 5
+move 1 from 4 to 2
+move 3 from 2 to 1
+move 2 from 9 to 6
+move 4 from 1 to 4
+move 6 from 5 to 8
+move 1 from 6 to 3
+move 8 from 8 to 9
+move 5 from 9 to 2
+move 1 from 3 to 4
+move 11 from 7 to 2
+move 1 from 4 to 1
+move 1 from 5 to 9
+move 1 from 3 to 9
+move 1 from 9 to 5
+move 21 from 2 to 6
+move 2 from 8 to 4
+move 5 from 8 to 6
+move 4 from 9 to 7
+move 2 from 5 to 6
+move 5 from 4 to 2
+move 4 from 7 to 2
+move 20 from 6 to 9
+move 7 from 2 to 7
+move 1 from 2 to 6
+move 7 from 9 to 6
+move 3 from 7 to 9
+move 7 from 1 to 9
+move 3 from 7 to 4
+move 1 from 2 to 5
+move 1 from 5 to 2
+move 1 from 1 to 9
+move 23 from 9 to 1
+move 1 from 2 to 4
+move 1 from 9 to 6
+move 1 from 1 to 5
+move 20 from 1 to 7
+move 1 from 5 to 9
+move 12 from 4 to 2
+move 2 from 1 to 3
+move 1 from 3 to 5
+move 4 from 2 to 9
+move 2 from 6 to 4
+move 9 from 7 to 4
+move 11 from 6 to 7
+move 7 from 2 to 8
+move 1 from 5 to 7
+move 2 from 9 to 7
+move 1 from 6 to 4
+move 6 from 8 to 2
+move 3 from 7 to 1
+move 6 from 2 to 4
+move 1 from 3 to 2
+move 7 from 4 to 3
+move 1 from 8 to 5
+move 3 from 6 to 7
+move 1 from 2 to 9
+move 1 from 6 to 7
+move 4 from 4 to 1
+move 1 from 3 to 1
+move 22 from 7 to 6
+move 3 from 7 to 6
+move 4 from 7 to 6
+move 5 from 4 to 5
+move 26 from 6 to 2
+move 8 from 1 to 9
+move 2 from 6 to 5
+move 9 from 9 to 5
+move 2 from 9 to 4
+move 1 from 5 to 3
+move 1 from 9 to 5
+move 1 from 5 to 6
+move 1 from 4 to 3
+move 3 from 5 to 8
+move 1 from 6 to 2
+move 1 from 6 to 1
+move 1 from 1 to 8
+move 4 from 5 to 2
+move 7 from 2 to 4
+move 8 from 5 to 3
+move 1 from 5 to 7
+move 12 from 2 to 8
+move 6 from 3 to 8
+move 1 from 7 to 6
+move 10 from 3 to 4
+move 11 from 8 to 7
+move 6 from 8 to 3
+move 11 from 7 to 4
+move 1 from 6 to 3
+move 6 from 3 to 1
+move 6 from 1 to 5
+move 15 from 4 to 7
+move 1 from 3 to 5
+move 7 from 2 to 3
+move 5 from 5 to 9
+move 2 from 3 to 8
+move 1 from 9 to 4
+move 1 from 9 to 7
+move 1 from 4 to 5
+move 5 from 7 to 8
+move 13 from 4 to 1
+move 8 from 8 to 2
+move 2 from 2 to 7
+move 7 from 7 to 4
+move 1 from 5 to 1
+move 1 from 5 to 9
+move 3 from 8 to 9
+move 7 from 9 to 8
+move 1 from 5 to 2
+move 6 from 8 to 2
+move 6 from 7 to 6
+move 2 from 2 to 7
+move 2 from 8 to 3
+move 3 from 4 to 5
+move 1 from 7 to 1
+move 3 from 3 to 5
+move 4 from 4 to 6
+move 3 from 6 to 3
+move 11 from 2 to 9
+move 5 from 3 to 4
+move 1 from 1 to 4
+move 7 from 9 to 4
+move 1 from 6 to 4
+move 5 from 5 to 4
+move 9 from 1 to 3
+move 4 from 6 to 3
+move 2 from 1 to 7
+move 3 from 9 to 8
+move 1 from 9 to 5
+move 5 from 3 to 4
+move 3 from 4 to 6
+move 3 from 7 to 5
+move 4 from 2 to 4
+move 10 from 3 to 1
+move 2 from 8 to 9
+move 1 from 8 to 4
+move 2 from 2 to 9
+move 5 from 5 to 8
+move 2 from 6 to 3
+move 4 from 9 to 4
+move 2 from 3 to 7
+move 2 from 6 to 3
+move 1 from 6 to 1
+move 1 from 8 to 5
+move 1 from 5 to 8
+move 1 from 4 to 8
+move 17 from 4 to 2
+move 11 from 4 to 2
+move 1 from 8 to 6
+move 28 from 2 to 3
+move 10 from 3 to 1
+move 3 from 8 to 1
+move 1 from 7 to 8
+move 1 from 7 to 1
+move 1 from 6 to 5
+move 10 from 1 to 5
+move 20 from 3 to 5
+move 3 from 1 to 6
+move 3 from 8 to 1
+move 18 from 5 to 1
+move 4 from 4 to 6
+move 4 from 5 to 1
+move 1 from 6 to 8
+move 7 from 5 to 8
+move 2 from 5 to 3
+move 34 from 1 to 8
+move 4 from 1 to 7
+move 36 from 8 to 6
+move 6 from 8 to 4
+move 3 from 6 to 4
+move 1 from 1 to 2
+move 1 from 3 to 2
+move 1 from 3 to 5
+move 1 from 1 to 8
+move 1 from 7 to 2
+move 3 from 2 to 8
+move 3 from 8 to 1
+move 2 from 7 to 5
+move 5 from 6 to 4
+move 31 from 6 to 4
+move 1 from 7 to 3
+move 13 from 4 to 7
+move 2 from 5 to 9
+move 1 from 1 to 9
+move 1 from 3 to 1
+move 11 from 4 to 9
+move 12 from 4 to 3
+move 4 from 9 to 1
+move 1 from 9 to 8
+move 1 from 5 to 9
+move 3 from 6 to 5
+move 3 from 5 to 1
+move 11 from 7 to 8
+move 6 from 4 to 8
+move 3 from 3 to 8
+move 5 from 1 to 6
+move 1 from 7 to 3
+move 5 from 8 to 3
+move 2 from 4 to 7
+move 8 from 8 to 4
+move 5 from 8 to 2
+move 2 from 2 to 1
+move 7 from 9 to 2
+move 5 from 6 to 7
+move 6 from 2 to 4
+move 3 from 9 to 1
+move 3 from 1 to 4
+move 2 from 2 to 1
+move 5 from 1 to 2
+move 6 from 2 to 9
+move 4 from 7 to 6
+move 2 from 9 to 6
+move 1 from 2 to 5
+move 1 from 6 to 5
+move 5 from 3 to 1
+move 1 from 5 to 3
+move 2 from 6 to 1
+move 1 from 9 to 7
+move 3 from 7 to 3
+move 4 from 8 to 4
+move 1 from 5 to 6
+move 9 from 1 to 4
+move 4 from 6 to 8
+move 2 from 7 to 4
+move 2 from 1 to 9
+move 10 from 3 to 1
+move 7 from 1 to 3
+move 1 from 1 to 2
+move 1 from 2 to 4
+move 2 from 3 to 8
+move 6 from 8 to 9
+move 2 from 1 to 2
+move 30 from 4 to 3
+move 29 from 3 to 7
+move 2 from 2 to 4
+move 7 from 9 to 5
+move 6 from 4 to 8
+move 5 from 8 to 9
+move 5 from 5 to 7
+move 1 from 5 to 4
+move 17 from 7 to 9
+move 6 from 3 to 9
+move 4 from 3 to 7
+move 1 from 8 to 6
+move 17 from 9 to 8
+move 8 from 9 to 3
+move 1 from 5 to 6
+move 9 from 8 to 7
+move 3 from 9 to 5
+move 1 from 4 to 5
+move 2 from 6 to 1
+move 3 from 3 to 8
+move 2 from 3 to 5
+move 1 from 3 to 8
+move 10 from 8 to 4
+move 2 from 1 to 9
+move 1 from 8 to 1
+move 1 from 1 to 5
+move 1 from 8 to 6
+move 4 from 4 to 5
+move 1 from 3 to 9
+move 3 from 9 to 6
+move 1 from 9 to 8
+move 2 from 9 to 1
+move 2 from 1 to 7
+move 1 from 9 to 1
+move 3 from 4 to 6
+move 2 from 4 to 9
+move 1 from 1 to 8
+move 2 from 8 to 1
+move 5 from 6 to 2
+move 2 from 1 to 4
+move 2 from 9 to 1
+move 2 from 6 to 3
+move 2 from 3 to 1
+move 2 from 4 to 7
+move 4 from 1 to 5
+move 15 from 5 to 4
+move 4 from 2 to 5
+move 7 from 4 to 2
+move 4 from 4 to 5
+move 1 from 3 to 9
+move 3 from 5 to 2
+move 9 from 2 to 1
+move 3 from 5 to 4
+move 1 from 5 to 3
+move 1 from 9 to 7
+move 1 from 5 to 8
+move 4 from 1 to 6
+move 1 from 3 to 2
+move 2 from 1 to 2
+move 3 from 2 to 8
+move 14 from 7 to 2
+move 2 from 6 to 4
+move 19 from 7 to 8
+move 1 from 7 to 1
+move 23 from 8 to 2
+move 33 from 2 to 1
+move 1 from 7 to 1
+move 7 from 4 to 3
+move 1 from 6 to 2
+move 15 from 1 to 7
+move 6 from 2 to 8
+move 1 from 8 to 2
+move 1 from 2 to 8
+move 2 from 3 to 8
+move 3 from 8 to 5
+move 1 from 6 to 1
+move 2 from 4 to 7
+move 1 from 5 to 9
+move 3 from 8 to 3
+move 1 from 2 to 6
+move 18 from 1 to 4
+move 1 from 6 to 3
+move 2 from 5 to 1
+move 2 from 8 to 2
+move 5 from 1 to 9
+move 15 from 4 to 9
+move 5 from 9 to 5
+move 1 from 1 to 5
+move 1 from 1 to 3
+move 1 from 1 to 2
+move 3 from 2 to 8
+move 9 from 9 to 8
+move 11 from 8 to 4
+move 1 from 8 to 3
+move 4 from 7 to 8
+move 3 from 3 to 1
+move 3 from 3 to 7
+move 3 from 5 to 8
+move 3 from 5 to 3
+move 5 from 9 to 7
+move 9 from 4 to 3
+move 1 from 8 to 9
+move 9 from 3 to 7
+move 2 from 3 to 2
+move 1 from 4 to 1
+move 1 from 8 to 6
+move 10 from 7 to 1
+move 2 from 2 to 6
+move 2 from 6 to 8
+move 2 from 9 to 4
+move 14 from 1 to 9
+move 3 from 4 to 7
+move 1 from 6 to 3
+move 2 from 8 to 4
+move 8 from 7 to 5
+move 6 from 7 to 5
+move 12 from 9 to 3
+move 3 from 9 to 8
+move 8 from 8 to 2
+move 7 from 2 to 1
+move 1 from 7 to 2
+move 6 from 7 to 2
+move 7 from 3 to 6
+move 1 from 6 to 3
+move 7 from 2 to 1
+move 5 from 4 to 8
+move 2 from 7 to 9
+move 1 from 2 to 7
+move 4 from 6 to 1
+move 2 from 8 to 1
+move 1 from 7 to 6
+move 2 from 6 to 1
+move 3 from 3 to 7
+move 1 from 4 to 6
+move 7 from 3 to 8
+move 6 from 8 to 1
+move 1 from 9 to 7
+move 22 from 1 to 9
+move 2 from 7 to 2
+move 3 from 3 to 2
+move 5 from 1 to 3
+move 2 from 2 to 7
+move 2 from 6 to 9
+move 3 from 9 to 4
+move 2 from 4 to 5
+move 1 from 4 to 7
+move 1 from 1 to 9
+move 13 from 9 to 7
+move 3 from 9 to 5
+move 14 from 5 to 3
+move 5 from 9 to 5
+move 2 from 9 to 7
+move 9 from 5 to 3
+move 15 from 3 to 2
+move 12 from 7 to 3
+move 3 from 2 to 7
+move 8 from 7 to 5
+move 4 from 8 to 9
+move 1 from 9 to 6
+move 1 from 7 to 5
+move 14 from 2 to 7
+move 2 from 9 to 4
+move 1 from 6 to 5
+move 18 from 3 to 2
+move 5 from 3 to 9
+move 2 from 3 to 6
+move 2 from 4 to 8
+move 15 from 7 to 6
+move 1 from 9 to 1
+move 2 from 8 to 3
+move 1 from 7 to 9
+move 6 from 9 to 6
+move 2 from 3 to 7
+move 3 from 5 to 8
+move 8 from 5 to 3
+move 2 from 7 to 9
+move 22 from 6 to 9
+move 12 from 2 to 3
+move 1 from 1 to 9
+move 1 from 2 to 6
+move 1 from 6 to 5
+move 6 from 2 to 6
+move 7 from 6 to 3
+move 20 from 9 to 4
+move 5 from 9 to 3
+move 7 from 3 to 5
+move 14 from 4 to 6
+move 2 from 4 to 1
+move 2 from 8 to 3
+move 2 from 1 to 5
+move 9 from 6 to 1
+move 20 from 3 to 4
+move 5 from 6 to 8
+move 1 from 5 to 9
+move 1 from 9 to 6
+move 9 from 5 to 7
+move 1 from 6 to 5
+move 2 from 3 to 4
+move 4 from 8 to 2
+move 2 from 8 to 4
+move 3 from 3 to 7
+move 5 from 1 to 7
+move 4 from 2 to 7
+move 1 from 1 to 3
+move 3 from 3 to 6
+move 4 from 7 to 3
+move 1 from 1 to 4
+move 3 from 3 to 5
+move 1 from 1 to 7
+move 28 from 4 to 3
+move 20 from 3 to 5
+move 16 from 5 to 6
+move 3 from 3 to 2
+move 2 from 3 to 6
+move 6 from 7 to 5
+move 1 from 3 to 6
+move 1 from 2 to 1
+move 10 from 6 to 8
+move 2 from 1 to 5
+move 1 from 4 to 8
+move 1 from 6 to 9
+move 2 from 2 to 5
+move 10 from 7 to 4
+move 2 from 3 to 4
+move 1 from 3 to 8
+move 1 from 9 to 4
+move 6 from 4 to 1
+move 10 from 8 to 6
+move 1 from 1 to 4
+move 8 from 4 to 9
+move 3 from 1 to 5
+move 14 from 5 to 8
+move 2 from 7 to 5
+move 3 from 9 to 7
+move 5 from 9 to 5
+move 2 from 7 to 3
+move 16 from 6 to 9
+move 3 from 6 to 3
+move 1 from 1 to 5
+move 1 from 1 to 4
+move 1 from 7 to 3
+move 2 from 6 to 1
+move 2 from 5 to 7
+move 2 from 7 to 1
+move 3 from 3 to 8
+move 12 from 5 to 4
+move 1 from 5 to 8
+move 1 from 1 to 4
+move 9 from 4 to 1
+move 11 from 1 to 7
+move 10 from 7 to 4
+move 3 from 3 to 7
+move 1 from 1 to 7
+move 5 from 4 to 5
+move 8 from 4 to 1
+move 1 from 4 to 1
+move 5 from 5 to 4
+move 2 from 7 to 5
+move 2 from 7 to 3
+move 9 from 1 to 7
+move 16 from 8 to 5
+move 3 from 8 to 7
+move 6 from 4 to 3
+move 17 from 5 to 1
+move 14 from 1 to 2
+move 7 from 2 to 4
+move 5 from 2 to 6
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_6.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_6.tst.data
new file mode 100644
index 0000000..0a60bba
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_6.tst.data
@@ -0,0 +1 @@
+pnnfhnhshrhmhwwmwzmznmnwmwfmfhfjfcjjtgtbggpdgdjjbjrjsjpjrrmddmgmpmddrhddnfnfzfpfvpfpprhhlffmtffqhhdtdcdsswsdwswmmfvvpdprrnnhhhtffnfbbznbznnvdnnbffjrfrbfrbrgbrrntnggrqqwtqwwgjgsswgwqwtwwsvwvbwvwrwlrlppzfzwfzzpmzzhqqzqlzlglzzmrmwrmwwvmwvvnppjfjttlffhjjjsccbggnffqgfgjjnccmdmzmllvnlnznttlvlttvnvgnvvqvmvqqzrqqcgglzzwtztwwmjmzjjnddsffqrqlrrvsvdvldvvlgvlvccdzczcqcpphggtnthhhtbhtttcjtjcjgcjcbbrhbbfrffgjgdgzddcttczzsccbpcpddcpcggmjgjddtcccthccfrccmdmhmddnwddfldffntnptnpttcptcptpfphhmfmwfwmmlblgbgvbvlltqltldttfcfcclgcllmplmlbbjnjzjnzzttnvvgddshddsqddggsqgqddsggdhghjgjhhgchhdmdjmjddgdhghrrphrrpnnqhhjwwqrrcmmslmmszzpgzpzzrmzmznzllnjnnlnbbdvdsdffbpffcmmnznqqcbbzvvjnjvvwqwgqqpnnzwnzwnzwwwlpwpzzfqzfqqwnqnbnfnqnbqqbggqnqdndrrzzlffbbgqgfgrfrqqsddnqnqjjgssqwqwcqcpcrrqppwpjjfnfpffhphwwmcwwznwznnplptlplnlsnlsldslslsffwtwftwtbtdbbjsjcczwwfllwtlwtlwlvwlwrwppsggvcvrrqcrqqvmqvmmbrrsbsfspspjpnnmpmqmcczgzffqmfmtmpppwzppzrpzrzsrrpqrpqpmpvmpvpttbqtqmtmjttqdqgggcppclcjcpcsppctpplpdpcppcmmdzmzddvhvhnhrrldllcwwbnwnssshlhrhthggtmggbjbjwwbvbttjllvrrfggngvngnmmvzzrrmddmcddztztctfccqpcpcqqvqppqcqdcdhhvhssgfgzgwwzmmnssvwwbqbhbnhnphpqqjcqcddfwfttqjtqtlttglljgjbgjgnnsqqvrvffqvqfqbffljjpffssqdsqstqqqldqqmhmsmsqqwtqwqdqgdgjjfbjffgbbrhhqghgppqgpgmpmmfzfhhfrhffgmfggpzgpzzhtzhhlbhhqbbzvvnvqnntptmmbhbdhdwwmjjcnnmsscqcbbtjtvjvwjvvmsmjmtmpmgghttcztzggpddbfbfgbbdsdrsrrqfqjjqfjjhzhtzzmdzzcgzgdzzmvmmfmjmgjmggmppbdppmzpppvfppzhhfsfwfhhpjpmmrjjpssdccjpjpwjppvdpphcpcjcfjfwjfwfjwfjjqcqcwqqqsmmmbbgdgwwpcwwdfdlflrltlgtthfhfjhhlthtddlgdggsjsrrdpdcppgttphpgpwppmpzmmrjmmvjvgvgfglfgllbqlqhllszzlwwhzzdfdcdtctptwtztfzzmjzjtjtrjrcrnrjjmwmnnbddgvgtgsstjsszmpqdmzgqflrbrspjmtzjcrmlzltmhgblghnwqvwwqwzbpnfrpdpblpjgshfccfbjfsnwvvhnjftsdnsgtzzjtzpmtfdvzrhtqpblhwgmqtgpbfvbdmsnrrrvvbstpsznvbbwgjfqjrhdvwvgptpglpfddhddmtglmjlpwlvfpbtbmgbplbzrlpdlvqzcwhbscpszgfstjpfdvfpmljlngrbgrdnnblzqrfpzsdvblpwbtnhdjclldvwvbwcwzfzbdspgwpfqjfbdbrqcshtlvcrdstnzggbwqnzbrfzbpnrtmvpbvdhcvdsdshgtvhfgdzljflppqbwclnvbhbczvrscjhlbgbfvwdjhnjsgmvwhpfgwbbmnndpnglfrmtfdzvqgfjdqfhgrhvpbqndmqnqccgwswwdsqjnbjtjbjdbqgjnmfbdvlnfwbnrdqgvgzzhmmbbdzfdvvpwhpbwbnzdcdpchrwlhfsjnhhjggvplmqggwjdsvjtpnpnqgldjjdcscrdltssjdrpcrfbgbcjfplhzgwbprfcslhpcngtszrghmwhzdqscbfrhzdwcffzvmjrmcjcstfvhplvrsglgsjnjtrpddsdfqjsndjnfmvdhfgdbzzflqhsrrwmrnlpqzmcddqbqvvzgtlztpgjnddtcnbmqsjlhmcszrmcjvwzpptlfqsmpvgnzvrjdwzpdwqgbmdgdtvjlmfczthjbcgfhbqpnmlbmrwwhfptzlbmfdhssznjcvjbmnjtnvzjhzczlrrdnttmmcbnzhqpplzqwgttwrnwfvmnptgqlfrnzvqpjfgrzwmlcwvtptvcvrlsrdwdgqfvffspmdbnnrqjttpqvhvdpbcrvzptwnhhfsqzchmncvttcdgdnlppcfzpmjpvbvqhlvplwvrmmbbggbwttwmvsqjlllsftprsmtmnzjcqfzblrllzgshfljchrjwjlpvhpbrtrsschzltrblgjnbgdnmwdggjhqggntblnhsvfgsbcblhmctbqzqwmhqnjhpzjfqpjdgwpzhczcftfcpdhvzhzccmwmrfrbqshzmtpqgpbbvfqqbjbmvnlnlwjtzrpmhdlffccrqcfgsjfszbrzrfztntchtmgmbhjgmlsqzcbtqqjzzlghtzzqmlnnvsgsvbbjfgqsqbqmqrdzwpwdgbggpdvhvnlzshhntprjdwhnwfvdjzpqgflwrvwgtmfdmfdztcbtfnjdrvgdwwczdgphnvdgrbdchprqldfjrvcsflcmlcmzqvqgsgnzcgmrhccgcmptcdzhbcdgdtppwztfstzqqzqrdzlnzthggjmpcflmbcmdrrjnnpbpqfmjbzqbtsjjgdlmgncbmgspqqvbrvzrdjscpzjsdtcdvsdwqlmwrngttswnrsbqctvhgfnnwblpcqzdmzpfchplslspmghvgcqntmlrfhgpcbpspvfhnvqvglsqzsnsdzddqpbsjhlclslngbwvvgjhwfcncqsmqwbptzvpzlzslsjjjldjpwpfrdlfbjphqcjtsgqdsdfdjhqgdhcppndwmhmmldvvmblcqcqfqhltbcbvrnghjfmtgqwtwljtczvqlnmgscjhqdhnzwhzvzzqnlsrhqvljqpgpwghfqlhjjrrhvnmnnrbnlhdcjctwtlhmhhmhjvcgzdrzmdjrvqzgnsttjdwglgwlcmbcdnjprgfsbbdzzngbqdrvwwwhbtlnnmzqdjttsrrpvlfdqnfhhtdtvmpcjgdwtbnqmwmtszdqfmbhjsjpqqddzfggwjhbtlnqfgcwbjzdtcpcpzgnrmnvwlpgmwfjlpgppdfrfvvjwsfcdqdnpcpjbqsvhttssgptqjghctrbgntlfjzdrfjccsprsjlrrwrzsmnjsqslmpdtrvhlqbnmgpjthpqdqmnvrtzlhhzzfzbrcclpmpcszhbttgrtcpgcpjwpdbfpfvgspsgtvglwthqcmcvmrfmclwlvjlsptfgmtlrnsvjrnfwzhdcsmgztpzfcvzwdztpppvqpvqfpdrsfnlhrbqwrsqjtwjmhnpwmqmpdgdhbtbpfwnmswffdqffdggrdrpmngvpzplmmwlddnhcvjjzqqfsbbtfmzdwnpvbjrshmllczhgvwwcbcbtfrfnplqjwmjlvpwwgfrtffwddwppsgtnlmpvfnhfzcsgjbqbjmbvpnqppsrvwnlzvcmjqgtbzrdsnrgwbfmrvnflgccrssfvcwgllqqbbcthzmbtnsmbzbcczhtzcvmthttpltrtdmgspctvtpvqbhmnnpnjwmhpqclmjsdrbjwvjbtzcjlqbjsvbgdwqzflnwzcfjwtrhjgfshfmwbjfwpnhjsmtpgbpwlfjjnmdlrhchmnfmgmgcrftmwbzshdwbhndgwtjbrrvbwprqppfmgfmfllpcjgrwdmtzddthsjlgjljv
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_7.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_7.tst.data
new file mode 100644
index 0000000..d083766
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_7.tst.data
@@ -0,0 +1,942 @@
+$ cd /
+$ ls
+dir gts
+68377 jvdqjhr.jvp
+dir lwhbw
+228884 nqth.gcn
+dir pcqjnl
+94844 ppwv.zsh
+97889 rqpw
+dir sqhw
+dir vllgn
+dir wdtm
+dir ztfdwp
+$ cd gts
+$ ls
+846 grwwbrgz.wft
+72000 mrnhn.psz
+155241 qvnbd.dqs
+6655 tndtmwfv
+$ cd ..
+$ cd lwhbw
+$ ls
+99946 lrrl.lth
+$ cd ..
+$ cd pcqjnl
+$ ls
+76420 gdg.lvr
+dir gljcvm
+161390 hlnrq.mjj
+dir lqwntmdg
+dir lrrl
+dir qgpr
+222006 tndtmwfv
+$ cd gljcvm
+$ ls
+264381 tmwzlzn
+$ cd ..
+$ cd lqwntmdg
+$ ls
+dir jjfwr
+dir rfqbmb
+$ cd jjfwr
+$ ls
+dir cfhjvmh
+$ cd cfhjvmh
+$ ls
+dir gzfgc
+$ cd gzfgc
+$ ls
+134989 cfhjvmh.wwh
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd rfqbmb
+$ ls
+dir cbrvhz
+dir flcw
+dir mnd
+$ cd cbrvhz
+$ ls
+131072 wdtm.rjr
+$ cd ..
+$ cd flcw
+$ ls
+216675 wlfwpb.wpg
+$ cd ..
+$ cd mnd
+$ ls
+28976 hzzzzvmr.lsz
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd lrrl
+$ ls
+dir cpmvnf
+dir dcfmtw
+dir ggnwqcj
+7864 lgsc.smg
+42042 mjfdjrgt
+dir mrnhn
+258288 nqth.gcn
+dir nwjggvr
+249578 qfnnncr.ftw
+dir sqpgr
+dir wgpqg
+3196 wtpmdqhd.snd
+$ cd cpmvnf
+$ ls
+dir srtqvcv
+$ cd srtqvcv
+$ ls
+dir mrnhn
+$ cd mrnhn
+$ ls
+dir fbrwd
+$ cd fbrwd
+$ ls
+163166 nqth.gcn
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd dcfmtw
+$ ls
+31712 mrnhn.tgg
+dir nzpdtfr
+dir sntcbctt
+dir vzhvjp
+dir wdtm
+$ cd nzpdtfr
+$ ls
+dir qwtwps
+130527 rhhlfg.tcj
+160893 rwbwp.rmr
+dir vcthd
+$ cd qwtwps
+$ ls
+dir cmf
+$ cd cmf
+$ ls
+73595 wdsjg.thm
+$ cd ..
+$ cd ..
+$ cd vcthd
+$ ls
+15016 cfhjvmh
+$ cd ..
+$ cd ..
+$ cd sntcbctt
+$ ls
+dir lrrl
+dir mjfdjrgt
+dir npqj
+$ cd lrrl
+$ ls
+258433 clgfwbb.htg
+166151 fbt.cnp
+$ cd ..
+$ cd mjfdjrgt
+$ ls
+64472 csphnrqr
+222554 fbt.cnp
+30487 vqb.grr
+$ cd ..
+$ cd npqj
+$ ls
+154071 mtn.pjq
+185929 nqth.gcn
+$ cd ..
+$ cd ..
+$ cd vzhvjp
+$ ls
+161341 mrnhn.wvw
+$ cd ..
+$ cd wdtm
+$ ls
+224565 cdd
+dir jrswcjq
+dir smgbdw
+$ cd jrswcjq
+$ ls
+173122 blm.znb
+$ cd ..
+$ cd smgbdw
+$ ls
+307533 cfhjvmh.ppp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ggnwqcj
+$ ls
+dir bfjvt
+146815 fbt.cnp
+279655 nljrr
+152735 qpv
+$ cd bfjvt
+$ ls
+193338 qlfcz
+238188 qnz.llm
+$ cd ..
+$ cd ..
+$ cd mrnhn
+$ ls
+dir cfhjvmh
+dir cjsrvg
+32604 fbt.cnp
+231569 fpjfth.mmc
+dir hghjzpgc
+270425 mjfdjrgt.fdt
+273944 mjfdjrgt.twj
+141791 ztswsbs.pjs
+$ cd cfhjvmh
+$ ls
+306620 lrrl.mgd
+$ cd ..
+$ cd cjsrvg
+$ ls
+303619 dffrqscq.nct
+16738 lrrl.rbb
+63842 zbbwj
+$ cd ..
+$ cd hghjzpgc
+$ ls
+dir mgnq
+273152 mnszcbnv.fzj
+$ cd mgnq
+$ ls
+dir ttmctqlc
+250332 wdsjg.thm
+20054 zpzml
+$ cd ttmctqlc
+$ ls
+9006 nqth.gcn
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd nwjggvr
+$ ls
+dir bwmglvmt
+202937 lqqmqzl.vqj
+dir lrrl
+dir wmjp
+dir zvlhngjm
+$ cd bwmglvmt
+$ ls
+dir bszd
+244726 dnwvnsn.npc
+dir dqdrngf
+226857 jvcn
+dir lrrl
+288079 mjfdjrgt.ttw
+172669 vqr
+dir wtqgd
+$ cd bszd
+$ ls
+3937 csn.mft
+198599 vpbccpm
+$ cd ..
+$ cd dqdrngf
+$ ls
+26680 lrrl.gch
+150627 tndtmwfv
+$ cd ..
+$ cd lrrl
+$ ls
+dir bzrs
+27874 grjbtv
+$ cd bzrs
+$ ls
+71351 wlfwpb.wpg
+$ cd ..
+$ cd ..
+$ cd wtqgd
+$ ls
+58033 lrrl.cgp
+16732 vnznzhc.bzr
+137407 wlfwpb.wpg
+$ cd ..
+$ cd ..
+$ cd lrrl
+$ ls
+dir wrtp
+$ cd wrtp
+$ ls
+267582 nwmj.rlb
+$ cd ..
+$ cd ..
+$ cd wmjp
+$ ls
+155158 szhljp
+dir tzqqmmp
+163989 zwz.jvq
+$ cd tzqqmmp
+$ ls
+140115 qgwcfnvr.fzt
+$ cd ..
+$ cd ..
+$ cd zvlhngjm
+$ ls
+dir fjt
+214803 mjfdjrgt.zrb
+dir qsvwfb
+187556 tcqgvqr.gmv
+185730 tndtmwfv
+301659 wlfwpb.wpg
+$ cd fjt
+$ ls
+57947 mnchj
+$ cd ..
+$ cd qsvwfb
+$ ls
+23145 dzrgbhgf.dcm
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd sqpgr
+$ ls
+dir bpnlrhsb
+dir jvdh
+dir zplwvj
+$ cd bpnlrhsb
+$ ls
+22875 wdsjg.thm
+$ cd ..
+$ cd jvdh
+$ ls
+95461 ftmzfwt
+$ cd ..
+$ cd zplwvj
+$ ls
+dir gtd
+$ cd gtd
+$ ls
+50675 lgjbhr.jmc
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd wgpqg
+$ ls
+65679 wlfwpb.wpg
+$ cd ..
+$ cd ..
+$ cd qgpr
+$ ls
+dir fhnnc
+dir jzmpcc
+dir lrrl
+dir wdtm
+$ cd fhnnc
+$ ls
+84726 tndtmwfv
+$ cd ..
+$ cd jzmpcc
+$ ls
+dir mjfdjrgt
+dir mrnhn
+dir wdtm
+120156 whz.cts
+134435 wlfwpb.wpg
+$ cd mjfdjrgt
+$ ls
+234188 wdtm.bpt
+$ cd ..
+$ cd mrnhn
+$ ls
+dir gphqmvpn
+dir gvtgqn
+$ cd gphqmvpn
+$ ls
+23807 nzl.hzv
+$ cd ..
+$ cd gvtgqn
+$ ls
+225267 fbt.cnp
+132455 mrnhn.vcn
+$ cd ..
+$ cd ..
+$ cd wdtm
+$ ls
+dir cfhjvmh
+dir mjfdjrgt
+119601 mjfdjrgt.rhc
+226225 wdsjg.thm
+191042 wdtm
+$ cd cfhjvmh
+$ ls
+130491 dgdcbwqp.czm
+$ cd ..
+$ cd mjfdjrgt
+$ ls
+87408 djd.ccj
+152868 mjfdjrgt.zcn
+22605 srdfwwtj.rcp
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd lrrl
+$ ls
+26548 zwrctnn.lln
+$ cd ..
+$ cd wdtm
+$ ls
+dir jszntstc
+$ cd jszntstc
+$ ls
+210953 gwgmnvsh.nhb
+277302 msqjtrdm
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd sqhw
+$ ls
+dir djw
+dir dqnhzbh
+dir lwp
+dir mjfdjrgt
+211273 mjfdjrgt.hls
+dir mrnhn
+$ cd djw
+$ ls
+98290 cfhjvmh.jpr
+$ cd ..
+$ cd dqnhzbh
+$ ls
+43311 bdf.pzd
+68801 cfwdq.rbz
+dir cmfhw
+dir cwtm
+77978 nnzhntgh
+138343 nqth.gcn
+81692 tzhltsq
+dir zwhs
+$ cd cmfhw
+$ ls
+dir dsbjlmrf
+215307 fbt.cnp
+dir lch
+217372 mjfdjrgt.dzq
+228751 tndtmwfv
+dir tpgszv
+$ cd dsbjlmrf
+$ ls
+92510 pzq.hcl
+$ cd ..
+$ cd lch
+$ ls
+171339 czhsjn.ttq
+$ cd ..
+$ cd tpgszv
+$ ls
+215263 nvgcfqzb.gww
+$ cd ..
+$ cd ..
+$ cd cwtm
+$ ls
+105200 twrb.ljq
+$ cd ..
+$ cd zwhs
+$ ls
+35576 gnt.zdh
+68204 mfg
+207974 njb.lzw
+$ cd ..
+$ cd ..
+$ cd lwp
+$ ls
+65175 jcwncw.tms
+208506 tndtmwfv
+$ cd ..
+$ cd mjfdjrgt
+$ ls
+dir hlgqdqb
+153252 mjfdjrgt.njp
+dir pdsdjdlz
+144949 phsnm.bvl
+287686 zlszpmlv.gsf
+$ cd hlgqdqb
+$ ls
+128570 fdbls
+dir lmhrtp
+dir mjfdjrgt
+184639 mjfdjrgt.lct
+168706 mmlfd
+159454 mrdljff
+dir pzcnzs
+dir rcmzfm
+86088 tndtmwfv
+$ cd lmhrtp
+$ ls
+251922 cfhjvmh.njw
+$ cd ..
+$ cd mjfdjrgt
+$ ls
+61866 nqtrmm.zts
+24980 wlfwpb.wpg
+$ cd ..
+$ cd pzcnzs
+$ ls
+123265 fbt.cnp
+$ cd ..
+$ cd rcmzfm
+$ ls
+dir gjls
+$ cd gjls
+$ ls
+109021 cnzz
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd pdsdjdlz
+$ ls
+103346 zhfhrzmr.qqm
+$ cd ..
+$ cd ..
+$ cd mrnhn
+$ ls
+dir tmldr
+140361 tndtmwfv
+$ cd tmldr
+$ ls
+169607 dvchnsqr.ltc
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd vllgn
+$ ls
+58389 tndtmwfv
+$ cd ..
+$ cd wdtm
+$ ls
+dir cfhjvmh
+dir cpcqz
+dir gmrgsmpp
+290978 jbfn
+179525 mjfdjrgt
+dir mrnhn
+dir nvgmrpdf
+dir vpm
+67780 wlfwpb.wpg
+dir ztp
+$ cd cfhjvmh
+$ ls
+dir hqf
+218467 lfl.vpp
+dir rgq
+147778 rhntpj
+dir tgmw
+$ cd hqf
+$ ls
+207656 blvtl.zhg
+$ cd ..
+$ cd rgq
+$ ls
+54691 cfhjvmh.mhw
+201230 jjhr.lml
+22759 mgqdg.qsj
+$ cd ..
+$ cd tgmw
+$ ls
+153570 nqth.gcn
+$ cd ..
+$ cd ..
+$ cd cpcqz
+$ ls
+dir cfhjvmh
+17143 fbt.cnp
+dir ftpm
+dir lrrl
+92760 lwdzptgw.gfv
+dir mrnhn
+151636 tndtmwfv
+dir vqt
+$ cd cfhjvmh
+$ ls
+17554 wlfwpb.wpg
+$ cd ..
+$ cd ftpm
+$ ls
+244476 crpfc.bwn
+290894 dhdnh
+210196 lhf
+58166 nqth.gcn
+$ cd ..
+$ cd lrrl
+$ ls
+229894 btrbfh.twr
+269093 cfhjvmh.pbb
+277722 fvhtjpg.pvb
+236232 gztc.lbh
+dir mjfdjrgt
+230753 qgjrh.zsf
+dir sdvhlnz
+$ cd mjfdjrgt
+$ ls
+186105 lrrl.zng
+226081 lsdzz.gsj
+33416 nqth.gcn
+109966 wgtclbvt.nct
+160015 wlfwpb.wpg
+$ cd ..
+$ cd sdvhlnz
+$ ls
+219905 cngbvwz.zsm
+284092 dgjz
+dir lcmlmr
+22135 lrrl
+dir vdcbcvzv
+dir wdwgp
+dir zllqgnhj
+$ cd lcmlmr
+$ ls
+dir lrrl
+$ cd lrrl
+$ ls
+104034 cpv
+$ cd ..
+$ cd ..
+$ cd vdcbcvzv
+$ ls
+263858 qwsmpvdv.lfr
+dir sldsnqld
+$ cd sldsnqld
+$ ls
+3116 hvsb.vrj
+166766 wqfg.ztg
+$ cd ..
+$ cd ..
+$ cd wdwgp
+$ ls
+11714 wdsjg.thm
+$ cd ..
+$ cd zllqgnhj
+$ ls
+113285 hrjtqzvf
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mrnhn
+$ ls
+212363 bhldtsnn.jbp
+194936 wdsjg.thm
+$ cd ..
+$ cd vqt
+$ ls
+46371 lrrl.ztz
+215875 rnggjsg.hsw
+255959 vnjhm.frz
+277765 vwvjnrjp.mwq
+$ cd ..
+$ cd ..
+$ cd gmrgsmpp
+$ ls
+dir fbcv
+275639 fbt.cnp
+dir tnrmj
+65119 vtfjqtw.tqg
+117334 zsg.grj
+$ cd fbcv
+$ ls
+dir htmwl
+292840 wwwspsb.hrb
+$ cd htmwl
+$ ls
+34803 dshcw
+10573 dwtd
+$ cd ..
+$ cd ..
+$ cd tnrmj
+$ ls
+dir cfhjvmh
+dir wqtnrwg
+$ cd cfhjvmh
+$ ls
+110464 wlfwpb.wpg
+$ cd ..
+$ cd wqtnrwg
+$ ls
+283055 mfgllgv
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd mrnhn
+$ ls
+2633 tndtmwfv
+$ cd ..
+$ cd nvgmrpdf
+$ ls
+32919 pnc
+$ cd ..
+$ cd vpm
+$ ls
+dir ddz
+dir dhmphrn
+dir grr
+132419 mgfdgw.vlt
+dir nbccdd
+dir plw
+183717 pvgbbjgt.wbt
+dir qsmg
+120729 stbh.rvz
+101652 ttqc
+$ cd ddz
+$ ls
+4672 hrnnrzd
+217020 wdtm
+$ cd ..
+$ cd dhmphrn
+$ ls
+dir fwbmb
+dir gdq
+dir lrrl
+dir mrcnm
+dir mrmmr
+161427 rllvrpzl.vcg
+$ cd fwbmb
+$ ls
+258937 dfd.wrl
+103543 gtfgscfg.jjc
+$ cd ..
+$ cd gdq
+$ ls
+133691 bzgt.llh
+278010 cfhjvmh.nhj
+191344 cjbcnfz.rjb
+269115 fbt.cnp
+$ cd ..
+$ cd lrrl
+$ ls
+dir gqqsg
+dir gwbtt
+dir mrnhn
+140500 nqth.gcn
+dir pdtm
+220764 tndtmwfv
+dir vvsvfchb
+$ cd gqqsg
+$ ls
+dir gvn
+dir hzfmdhw
+34666 vfzbvl
+dir wdtm
+$ cd gvn
+$ ls
+206457 cfhjvmh.thh
+133435 hsdsstt
+dir lrrl
+dir rwvbmlq
+127003 sjqvt.lzl
+136402 wlfwpb.wpg
+60537 zwjfrqf.nvl
+$ cd lrrl
+$ ls
+15291 mrnhn.ltr
+190429 wlfwpb.wpg
+119328 wln.msz
+86384 zbhzvrc.gbj
+$ cd ..
+$ cd rwvbmlq
+$ ls
+186907 nqth.gcn
+$ cd ..
+$ cd ..
+$ cd hzfmdhw
+$ ls
+9653 fbt.cnp
+dir lvdhtg
+301280 nqth.gcn
+dir nwnp
+241354 vzrbbj.bfb
+$ cd lvdhtg
+$ ls
+dir cfhjvmh
+dir hzpzz
+296694 mjfdjrgt.mpj
+65800 nqth.gcn
+dir pbfhn
+dir wljjgs
+$ cd cfhjvmh
+$ ls
+87654 htlq
+203005 vhmthzjb
+$ cd ..
+$ cd hzpzz
+$ ls
+153446 brfstm.nwc
+47585 cfhjvmh
+258754 wdtm.gpt
+150809 zlwq.hgr
+$ cd ..
+$ cd pbfhn
+$ ls
+dir mjfdjrgt
+$ cd mjfdjrgt
+$ ls
+16108 rmfwpm.fnt
+$ cd ..
+$ cd ..
+$ cd wljjgs
+$ ls
+228757 bqf.jll
+$ cd ..
+$ cd ..
+$ cd nwnp
+$ ls
+124842 lrrl
+$ cd ..
+$ cd ..
+$ cd wdtm
+$ ls
+122771 fbt.cnp
+252697 lpqf.bvg
+264813 mrnhn
+165228 pgn.wnw
+dir vsls
+292567 wlfwpb.wpg
+$ cd vsls
+$ ls
+250070 dvbv
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd gwbtt
+$ ls
+dir mjfdjrgt
+2327 nqth.gcn
+20064 sdjvgv.sfr
+$ cd mjfdjrgt
+$ ls
+96726 fbt.cnp
+4801 lrrl.fgv
+180291 wspcp.brw
+$ cd ..
+$ cd ..
+$ cd mrnhn
+$ ls
+dir lrrl
+dir mqcstf
+271459 nqth.gcn
+190006 zdln
+$ cd lrrl
+$ ls
+160260 fbt.cnp
+281732 tfpprjj
+$ cd ..
+$ cd mqcstf
+$ ls
+222125 gntrdss.zcw
+dir pdbbbmn
+58613 stwlp.wpl
+$ cd pdbbbmn
+$ ls
+250947 mjfdjrgt
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd pdtm
+$ ls
+55975 wdhn
+$ cd ..
+$ cd vvsvfchb
+$ ls
+10547 hpwmnjgc
+157960 tcc
+$ cd ..
+$ cd ..
+$ cd mrcnm
+$ ls
+106708 cfhjvmh
+264809 ffqfm.slz
+dir lrrl
+dir mjfdjrgt
+174610 wlfwpb.wpg
+90207 wwhwvdc.zvc
+$ cd lrrl
+$ ls
+305034 fbt.cnp
+240756 jmfwlmzv.gjc
+77875 wgfpcscz.mdn
+$ cd ..
+$ cd mjfdjrgt
+$ ls
+26073 mrnhn
+$ cd ..
+$ cd ..
+$ cd mrmmr
+$ ls
+287663 qlc
+$ cd ..
+$ cd ..
+$ cd grr
+$ ls
+dir tgb
+$ cd tgb
+$ ls
+203808 psssw.nzs
+$ cd ..
+$ cd ..
+$ cd nbccdd
+$ ls
+62162 wfmhzh
+$ cd ..
+$ cd plw
+$ ls
+185632 ljwvnppm.bcc
+$ cd ..
+$ cd qsmg
+$ ls
+164538 lrrl.flr
+dir vbvtzmsg
+dir wrrtctvd
+$ cd vbvtzmsg
+$ ls
+15318 mrnhn.qlh
+$ cd ..
+$ cd wrrtctvd
+$ ls
+249219 lggjwn.mfj
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ztp
+$ ls
+241178 fzc.swf
+dir hns
+223340 lbmzvf
+dir wdtm
+195144 wlfwpb.wpg
+$ cd hns
+$ ls
+dir fshzss
+77792 mjfdjrgt.qcm
+85013 nlpsw
+274710 pmclgp.lvz
+dir spdzjs
+$ cd fshzss
+$ ls
+297058 fbj.qjm
+131320 wjbhllz.mnf
+$ cd ..
+$ cd spdzjs
+$ ls
+165766 nrzthq.rvj
+10584 zfhqhm.njj
+$ cd ..
+$ cd ..
+$ cd wdtm
+$ ls
+dir vnmg
+$ cd vnmg
+$ ls
+83938 mrnhn.wwd
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ..
+$ cd ztfdwp
+$ ls
+152895 swjdzqdh.ngv
+215804 tndtmwfv
+68954 wdsjg.thm
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_8.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_8.tst.data
new file mode 100644
index 0000000..c400166
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_8.tst.data
@@ -0,0 +1,99 @@
+020110220332333020110144320304042020444223003535441353331002333431100300241023221210123003331021020
+002120010112022233203323334422340102033151553341235324543343233301202102130210343113312320222102020
+000000000301021002423224442341031145215244543444223314545524515335404222310244314423023331200102012
+011200302010212334422213334343335452314532352111122533515334412241512412033340322004232020212310011
+110111200102310120411101020333232255345143342245212323552344535253214434143032323213200301101020121
+122001020113011314043121413025543341512335111452355331355351515421515411500421204113413212021112302
+011210211003201420103123304513544114145311452334355144111521441452154223512022101102111221311323311
+011030200312240341224434214241313322323544154242345656634321531531424124544551344224331443202111303
+031023120224010220144244342511241334331166432443322363352643453525244443222142533014331212133113031
+331033331100013013431114214253543323143222523423236646456363626622312534521454454123324132323233200
+313320023430241044213221132131122135436564345625426422255326234363243521151144414344130023210131130
+002203011410101343345413454143416333665335233566235623536644652644522345535525153521230411343303211
+022030323311323124542521154345356626352343324652424464566645425223224521453553252234321033403323130
+331222243010032043452454232565665256426536435254566436633323343652534544214412242551144312310221231
+231133233004211422411531255443363333555345434532475762623642433466363266634413551244254134333243030
+020231113200002214145443133533534653326664654474363645366343345466265644554325342415122332200024311
+311032340032414323451542554464466352256347635357637447736577667463426532442564245132242343241314212
+210342413212232542421452232234546643373633347344743377376553465333423522425436534352355150302110320
+012302042023135125251364365232626547463576733637455663764376436734352545425434331543241124042312202
+304042410233125532432523224245663443763753734647533535565636563665334542556665554245524241400402122
+100324144335411111343624365526556753335435457754653754663647544353454443256623466532421524442220212
+004310002315421423634565264237567445665436743333467647547754434765353667542365233361541321530411122
+340100133133254351662534562377644656735477678648447854646765556636735646456562322345353223545130204
+223422234555541234336653556365464346366386775667444744567758637737757667635354324626442355153142402
+301202352352311332364654446567354376644665887886878854847858588356564773766244445222614543212440041
+121010254322255546522625235356663453785775455846758588786788567566653645763532436352663334521520342
+223123122512444365553626454767563488464886467858877655766685458675437556363673526236645213411512224
+003314511142456453664565476333555654845565878476575468776548666885476777366354622652365442341232330
+100434351354142623236353735657745766665557455465675844665578767675874476556574642555262344222545124
+310035122251134332246455666547787878577677667587668567788744875844888844364453536232254344234442004
+332355524421462334544344655646458867688886798865795569865997666688465755335745555656646243433122421
+212252432545222565265377376368574784887787696558698987968675547855656555445333366624445325141553342
+113535121253534442546646364347455675758878676575695576785998796454646647555637657565266546254424513
+023531155256556443573534665476784478579889966685965558767695667786588646763565366352565623135242132
+332235311465633455637577656876574774599858977857599877979855878694546488485435736564352255345534352
+423312331346353345545646578646466549968669789766955768696578957665488458568376747735452426221223133
+042131555255526335474354376567744577697576655686887997959968659596857774864465577464334245541411144
+314335533542324633457667677854784879668896688676989899996875778858675674784535777333543532331142411
+342431321343652634443346854886679789759856968779866777899677797959996774647753365556465426225312415
+443122331352464374355445874586585857875568898788666678776787986756859447544446666763365552244452322
+434332122456323647344556476668759666569568769987679766689798887678765548587477474536465533643451422
+012515214225433447464677777487776597697976998888987789798887796967785955887765466437333665342324523
+151212435544622335634548655777875966867886867777679699887698988956977857868655457465635544364542154
+425332155643342656676678888575989888788767888899689899798688796666757955465858667777362363434424542
+531532414223243445466348848575895777968779899997887798776667989655588765447757447347342252524115215
+155245334655555376575664568856876978978787888977789987998877778796686666588544843473375333466131323
+442223263655353573545578848875879796997899897789887987979686977788898887848487563664644353624212355
+532342436423523433743374566649565796978689677778887988977986779775985585775684847364464225436344143
+144131162643455446377457566657777998676869667898877798979888978868889578745676553337663625625354412
+212531125562654464546354657756555595879978788779777999979988869895856856488587466676673534564554215
+515521136425625643733788668547967896969879989899779977888986996776697776777887634766746536654352314
+533115456346557773554457648785576555967877979777897997977979879979889786544548474557775226255314122
+432554142445363766476368787846679896977899887779797978979969889696765986666844737665565256236231155
+125253442625345476646468778468579567787976888987879797899978977695756855477657433457362446432521533
+451335344244435635354545558745856999567779868887799878899867977959975677866558447464563253543641554
+412221312464362643575387865576575778679997969899879799897898997777656968646646747476434353234412443
+132123436534443354553586484485777568678779897878779989966877968659558598445764456573762542646254544
+024143156436353736354736885476858987768978898698789976987668878886568974574565737457544455543452243
+413135313643263775675578866878568599957868689889887898688888897699957964455656556464353643525222353
+151155234625524455454576866886566769799886776697778986968676996687578554546778475347663665445441542
+225335432336665664467554464786765996688599897886876679899878795577796866847588643664352344525425543
+231314414363454365656445447648785668665699968677877867679686575989979554888874435546345632362455211
+215225154624264466667536475884866766856799777898688869799678789658958655666655664763723652345235254
+035354151466424636347656474544888889966575676978876877797665689589954588444647355553546242434541533
+001253252266442433343367457848868577696576876956987767987878766766685545864636355333223636351531525
+432114153244234344474473336455665467595685659677769775776598955788485844764764774633253355345153344
+440231335123622442356777766866685464699576999777998779679677676798556674878735743562224245652132511
+321533313113424533355576556587855784598797699998756887876998858868457756543476743664332364153212141
+003415211213442534357575744467674686668987887956977567898997789587764784753377657636326255155213240
+224445525333436434526743474634674544887785577959758998579798555487687877644644777665225554533252422
+114025431113445462556535777346657775747764689775588768859877487468477864653336547436625221413353402
+444431445545324552322733365535555774656466544687955795855665775645668663457547655566226341423452434
+410445115125126462226236353755455888548674587788447578688475766447586446763443644432535242233435244
+124340412535436432636663557555763744747854587474866557668648548584743443577534342355356535325312231
+200313132541126432532542747437536486654767558545587875558487658465577773437664544545354413212211212
+101333454545223643623655465756576356785656755457885765456674785763465474656725224222541315314114031
+131233142323341366245232435554365765545574774767785475776848668453355554474332533326544433554514201
+321411402434455156645353526473756763444567846554465464446465455445745336435566265254512531525210112
+030131034355454454644464565464475577344753366858566476585577545346763733342656446563454444451042420
+123233024345514531322525463344645673755773347575544437475656346736346777342352464432215452454013411
+014322323421235432556233655455544546633674634474456664346664375533773475562242423541545331424443423
+103044012005453352356343445634325645434337637364655565435774676736733553262634342435541343244030000
+320224321434222311444445623462256346445463567453434633465443337646352226626622452524224345304403330
+212420324020443535541356556336654222753455556557453353546474577342535554563532343321131244211234443
+122201202000423112251512562424625443344753367744337643545467743645523543344535431154212330403302410
+302200224224202341324112146243633653523426575646533673677763345633345645554351214352331400423031333
+123001320330302415435532414224224226352235334353577574436324344226425624263133551342153034141032032
+213131040401103044255424155325562642646633364323565455323646566426224245451451423431324433130343033
+231211142003310021532152553311226325626362465244625533422332633634454451545253314415220400420413203
+312320130422410131322514243524545532465435666446335525623552365342455442353243151122403024303312021
+133332233112042420435241253424143243654366264342464546256332442465235435334432132240241304411322221
+333302213333240222002452421142454145262355663455246362444253326353144344554554324413300122011222021
+202310030210410440001115535553444131333333663342464256255352255253344353414423520402213424030101331
+020120023231001430421410113431542415212332151336254445313532121145524443121220343020012020230032230
+210023323121322121303302233233245321224455333332343322323215223451525532222223304043001030230132022
+002222021003231011234340303045243412535411232132142332533521354111141433134004443142111110122121100
+022122131333022231003311233440122445251415343142141523345254553214425533033042143220401300010213100
+122110132221332212341431023220242412121544355542132225542445544553234342030402442141111321103231211
+122021200131211021314010312001241211235253115315252213451111223452204220130001212341202130012001221
diff --git a/AdventOfCode.Tests/Data/2022_Input_Day_9.tst.data b/AdventOfCode.Tests/Data/2022_Input_Day_9.tst.data
new file mode 100644
index 0000000..63f30fc
--- /dev/null
+++ b/AdventOfCode.Tests/Data/2022_Input_Day_9.tst.data
@@ -0,0 +1,2000 @@
+U 1
+R 2
+D 2
+U 2
+L 1
+U 1
+R 1
+U 2
+R 1
+D 1
+U 2
+L 1
+R 1
+U 1
+L 1
+D 1
+L 1
+D 1
+U 2
+R 2
+U 1
+L 1
+R 2
+U 2
+L 2
+U 2
+R 2
+D 2
+R 1
+U 2
+L 2
+U 1
+R 1
+L 2
+U 2
+R 2
+L 1
+R 2
+L 1
+D 1
+R 2
+L 2
+D 2
+L 1
+D 1
+L 2
+U 1
+R 2
+L 2
+U 2
+D 2
+R 2
+D 2
+L 2
+D 2
+L 1
+D 2
+L 1
+R 2
+L 2
+R 1
+D 2
+U 1
+R 2
+L 1
+R 2
+D 1
+U 1
+R 1
+U 2
+D 2
+R 1
+D 1
+U 1
+L 2
+D 2
+U 1
+R 2
+L 2
+R 1
+D 2
+L 1
+U 1
+D 1
+U 2
+D 1
+U 1
+D 2
+R 2
+L 1
+D 1
+U 1
+R 1
+L 2
+D 1
+L 2
+R 1
+L 2
+U 2
+R 1
+L 2
+D 2
+L 2
+U 2
+L 1
+U 2
+R 2
+L 2
+R 2
+L 2
+U 1
+L 1
+U 1
+D 1
+U 3
+R 2
+L 3
+R 2
+D 2
+U 3
+R 1
+L 3
+D 1
+U 3
+R 2
+D 1
+U 3
+R 2
+L 3
+R 3
+L 2
+R 1
+U 2
+R 2
+U 3
+D 1
+U 3
+L 2
+D 1
+R 2
+U 3
+R 3
+L 3
+D 3
+R 3
+U 3
+L 3
+U 1
+L 2
+U 3
+L 1
+U 1
+D 3
+R 3
+U 1
+R 1
+U 1
+L 3
+R 2
+U 2
+L 3
+D 1
+L 2
+D 2
+L 2
+R 2
+U 3
+D 3
+R 2
+U 3
+L 2
+U 1
+D 2
+R 3
+L 1
+U 1
+R 2
+D 3
+L 1
+R 1
+U 1
+D 3
+R 2
+D 3
+R 2
+U 1
+L 2
+U 1
+R 2
+U 1
+R 2
+L 2
+U 2
+R 3
+L 3
+D 2
+L 1
+R 3
+D 1
+U 1
+L 2
+R 1
+D 3
+U 3
+D 3
+U 1
+R 2
+L 3
+R 1
+L 3
+R 2
+D 2
+U 1
+D 1
+L 3
+R 1
+L 3
+R 3
+L 1
+D 2
+L 3
+U 2
+D 1
+L 1
+U 2
+R 3
+L 2
+R 3
+U 3
+L 2
+D 4
+U 4
+R 3
+U 2
+L 1
+U 3
+D 4
+L 2
+U 3
+L 4
+D 4
+R 3
+D 3
+R 1
+D 2
+L 1
+R 2
+D 3
+L 1
+R 2
+U 3
+D 4
+R 4
+L 2
+R 4
+U 3
+R 4
+U 4
+L 4
+D 3
+R 4
+D 1
+U 3
+L 3
+R 1
+U 2
+R 3
+U 4
+D 2
+U 3
+D 2
+L 2
+D 3
+L 4
+R 2
+U 2
+L 2
+U 4
+D 2
+U 4
+L 4
+U 2
+R 3
+D 4
+U 4
+L 3
+D 3
+R 4
+L 3
+R 2
+L 4
+U 3
+D 2
+L 4
+R 1
+U 2
+L 3
+D 1
+R 2
+U 2
+D 4
+R 1
+U 1
+R 2
+D 2
+L 3
+R 1
+U 2
+R 1
+D 4
+U 1
+R 1
+U 3
+D 1
+U 2
+D 3
+U 3
+L 2
+U 4
+R 1
+L 2
+D 2
+L 2
+D 3
+U 3
+L 3
+U 1
+D 1
+R 1
+D 2
+L 2
+U 2
+D 3
+R 1
+L 4
+U 3
+L 5
+R 5
+L 4
+D 4
+R 4
+L 4
+R 4
+L 2
+R 3
+D 3
+R 2
+L 4
+R 2
+U 5
+D 5
+U 1
+R 4
+U 2
+R 3
+L 4
+D 2
+U 3
+D 4
+U 2
+D 5
+L 5
+R 2
+U 3
+R 1
+D 1
+R 4
+U 5
+R 3
+L 3
+U 3
+L 1
+U 5
+D 2
+U 3
+R 1
+D 5
+L 4
+U 3
+D 1
+L 3
+R 2
+U 1
+L 2
+R 2
+D 4
+R 2
+L 3
+U 2
+D 1
+L 1
+R 4
+L 1
+D 2
+R 1
+L 5
+R 4
+U 2
+R 2
+U 1
+D 3
+R 3
+L 1
+U 5
+R 2
+D 3
+U 3
+R 1
+U 4
+R 1
+D 2
+L 1
+D 4
+L 1
+R 5
+L 5
+R 5
+L 1
+U 5
+R 2
+U 5
+L 2
+D 3
+U 5
+L 4
+D 5
+U 2
+R 2
+D 2
+R 4
+L 4
+D 5
+R 2
+L 2
+R 5
+U 2
+L 1
+U 2
+D 2
+R 5
+U 1
+L 5
+R 1
+L 4
+D 4
+L 3
+D 4
+U 2
+L 2
+D 5
+U 4
+R 3
+L 6
+D 3
+R 2
+U 2
+L 2
+U 1
+R 6
+U 5
+R 2
+U 2
+R 1
+U 5
+L 3
+U 2
+R 5
+L 3
+U 3
+D 2
+U 5
+L 5
+U 4
+R 6
+D 2
+L 6
+U 1
+L 5
+D 4
+U 3
+D 3
+U 5
+L 6
+U 4
+D 3
+U 4
+D 6
+R 1
+U 4
+L 1
+D 4
+U 5
+R 2
+L 3
+R 2
+U 2
+D 1
+L 3
+R 6
+L 2
+U 5
+L 3
+D 1
+L 2
+D 4
+U 4
+L 4
+D 1
+L 2
+D 2
+R 5
+L 2
+R 2
+L 3
+R 2
+U 2
+L 1
+U 4
+D 4
+R 5
+L 3
+U 2
+D 3
+R 6
+D 3
+R 3
+L 4
+U 5
+D 3
+R 5
+U 4
+R 2
+U 4
+L 1
+U 6
+D 6
+L 1
+R 2
+U 6
+D 5
+L 1
+U 3
+L 1
+D 6
+L 3
+U 4
+D 6
+U 4
+D 3
+L 3
+U 5
+R 2
+L 5
+D 3
+R 2
+D 2
+U 1
+D 2
+R 2
+U 5
+R 4
+U 1
+R 5
+D 2
+R 2
+U 5
+L 6
+U 3
+L 7
+D 1
+R 4
+D 4
+R 7
+L 7
+U 7
+D 4
+L 4
+R 6
+U 6
+L 7
+R 3
+L 6
+U 6
+R 5
+D 4
+L 6
+U 1
+R 6
+D 3
+U 5
+D 3
+U 2
+R 7
+U 5
+D 5
+L 2
+D 2
+U 4
+L 3
+D 1
+L 1
+R 2
+L 2
+R 6
+D 4
+L 7
+D 7
+R 4
+L 6
+R 3
+L 3
+U 7
+R 3
+L 5
+D 6
+R 3
+U 5
+D 3
+L 4
+U 7
+R 6
+D 6
+U 5
+R 3
+L 3
+R 6
+L 3
+D 1
+L 3
+U 5
+D 2
+L 3
+R 4
+L 7
+R 5
+U 3
+L 7
+D 5
+U 6
+D 5
+L 6
+R 6
+L 1
+R 3
+D 4
+L 5
+R 2
+U 4
+R 2
+D 4
+R 3
+D 2
+L 3
+R 2
+L 4
+R 5
+U 7
+L 7
+D 3
+R 5
+L 1
+U 4
+R 5
+U 4
+R 6
+L 1
+R 4
+D 8
+L 2
+U 7
+L 3
+R 3
+U 1
+D 8
+U 5
+D 3
+R 3
+L 2
+U 2
+D 8
+R 3
+U 4
+L 6
+D 7
+R 7
+U 6
+L 7
+U 5
+R 1
+L 2
+U 4
+D 1
+L 6
+D 5
+R 7
+U 7
+R 8
+L 7
+U 7
+D 3
+L 3
+D 4
+L 1
+R 6
+D 5
+U 1
+D 8
+R 1
+L 2
+U 1
+D 2
+L 3
+R 7
+L 2
+D 8
+R 5
+U 6
+D 4
+L 1
+U 6
+R 1
+D 4
+R 4
+L 2
+D 4
+R 1
+U 2
+R 8
+L 6
+R 8
+U 8
+L 3
+R 6
+D 3
+R 2
+L 3
+U 6
+D 6
+U 4
+R 7
+L 3
+R 2
+L 4
+U 3
+R 7
+D 8
+R 1
+D 6
+U 7
+R 2
+U 2
+L 6
+U 5
+R 1
+D 1
+R 6
+L 2
+U 3
+D 2
+L 2
+D 5
+R 4
+L 1
+D 7
+R 6
+D 4
+U 2
+D 5
+U 3
+D 8
+U 6
+R 5
+L 6
+U 7
+L 3
+R 8
+U 3
+L 2
+R 3
+L 5
+R 3
+L 2
+U 9
+D 2
+U 5
+R 7
+U 9
+L 9
+R 6
+L 7
+D 1
+L 4
+D 3
+R 7
+L 6
+R 9
+D 6
+R 4
+D 8
+L 1
+U 5
+R 9
+D 9
+U 6
+L 5
+R 4
+D 2
+R 5
+D 1
+R 6
+D 3
+R 8
+L 1
+U 2
+R 5
+U 3
+L 1
+R 8
+D 6
+L 5
+D 7
+R 3
+U 2
+L 7
+U 3
+D 4
+L 2
+R 8
+D 6
+L 3
+U 5
+L 1
+U 5
+L 4
+R 7
+U 6
+R 1
+D 3
+U 3
+D 2
+R 4
+L 5
+U 2
+R 6
+L 8
+U 6
+L 9
+D 3
+R 3
+U 9
+D 8
+L 2
+R 7
+D 6
+R 1
+D 8
+U 8
+D 2
+U 4
+D 8
+L 9
+R 8
+D 8
+R 7
+U 8
+L 8
+U 8
+R 7
+L 8
+U 3
+D 6
+R 7
+D 2
+L 5
+U 8
+D 7
+U 6
+R 3
+D 7
+U 9
+L 7
+R 3
+L 1
+U 9
+L 7
+U 2
+D 7
+L 5
+R 9
+D 2
+R 7
+U 6
+D 7
+U 3
+R 8
+U 9
+L 8
+R 8
+D 10
+L 7
+R 3
+U 5
+R 5
+D 9
+U 10
+L 2
+D 4
+L 2
+U 1
+D 3
+L 3
+U 7
+D 6
+L 6
+D 7
+L 8
+U 1
+D 9
+L 7
+U 4
+L 3
+U 6
+D 2
+L 5
+U 10
+D 9
+U 8
+D 1
+R 10
+U 4
+L 1
+R 7
+U 2
+L 5
+D 5
+R 7
+D 1
+R 4
+U 2
+D 6
+L 7
+U 10
+R 3
+L 9
+D 7
+L 2
+R 5
+U 10
+D 10
+R 9
+D 5
+U 3
+L 7
+D 5
+U 6
+D 7
+L 6
+D 10
+R 7
+U 8
+L 4
+D 9
+L 4
+U 5
+R 9
+U 9
+R 3
+U 2
+R 2
+D 1
+R 1
+U 6
+R 8
+D 10
+U 2
+D 9
+L 8
+R 1
+D 1
+L 9
+R 8
+D 9
+R 5
+L 9
+U 10
+D 4
+R 7
+U 4
+L 3
+U 8
+L 2
+U 9
+D 9
+L 1
+R 4
+U 2
+L 4
+U 3
+D 7
+U 11
+R 6
+U 9
+D 6
+R 7
+L 1
+D 7
+R 2
+D 6
+U 2
+L 2
+U 4
+R 6
+U 6
+L 11
+D 7
+R 9
+L 2
+D 10
+L 10
+U 4
+L 6
+D 11
+U 9
+L 1
+R 10
+L 7
+R 4
+D 5
+L 3
+U 2
+R 9
+L 9
+D 1
+L 11
+D 5
+U 6
+D 5
+U 9
+R 1
+L 7
+U 3
+R 7
+L 2
+D 6
+R 3
+U 2
+D 5
+R 9
+L 3
+D 11
+U 9
+D 11
+R 2
+D 7
+R 9
+U 4
+D 6
+U 7
+R 10
+D 3
+L 4
+R 9
+D 3
+L 7
+R 7
+L 11
+D 6
+R 9
+D 9
+R 3
+U 3
+R 3
+L 6
+D 11
+R 2
+L 10
+U 2
+R 2
+D 11
+R 7
+D 8
+R 2
+D 10
+U 5
+D 3
+L 10
+R 1
+D 5
+R 4
+L 10
+U 5
+D 9
+U 2
+L 3
+U 3
+R 5
+D 4
+L 1
+D 1
+R 10
+L 4
+D 8
+L 5
+D 5
+L 3
+D 5
+L 3
+R 1
+L 3
+R 4
+U 9
+R 4
+D 12
+L 5
+R 4
+L 11
+D 10
+U 3
+R 2
+U 5
+L 6
+D 5
+U 5
+D 10
+R 12
+L 2
+R 10
+D 11
+R 12
+U 5
+R 4
+L 4
+U 2
+R 12
+L 6
+D 3
+R 2
+D 1
+U 9
+L 6
+U 6
+L 10
+D 8
+R 9
+L 1
+U 1
+D 5
+U 4
+R 10
+U 5
+R 10
+D 12
+U 6
+D 9
+U 3
+L 8
+R 8
+D 7
+L 6
+U 7
+R 1
+U 6
+D 9
+R 2
+U 11
+D 7
+L 12
+D 6
+L 5
+U 8
+R 8
+L 8
+D 3
+R 7
+L 11
+D 1
+L 5
+D 5
+U 8
+D 2
+R 8
+L 6
+D 7
+L 3
+D 3
+U 9
+L 1
+U 8
+D 7
+L 8
+U 4
+R 12
+U 7
+L 10
+D 4
+U 7
+D 7
+U 5
+L 4
+R 9
+D 5
+R 4
+U 2
+R 1
+D 9
+U 7
+R 9
+U 12
+D 4
+R 8
+U 4
+D 10
+L 10
+D 11
+L 8
+R 11
+U 5
+D 4
+L 3
+D 1
+U 7
+L 5
+R 13
+L 2
+R 9
+L 6
+R 6
+L 2
+U 10
+D 11
+U 13
+R 11
+U 6
+L 7
+D 11
+R 7
+U 4
+L 1
+D 9
+R 7
+L 11
+U 13
+L 8
+R 12
+U 5
+R 9
+U 11
+R 3
+D 11
+U 9
+L 8
+U 6
+D 6
+L 11
+U 4
+D 3
+U 11
+D 1
+L 6
+U 5
+R 10
+L 10
+R 8
+L 12
+R 4
+U 3
+R 8
+L 8
+U 4
+L 10
+U 9
+R 8
+U 3
+D 2
+U 4
+D 10
+L 6
+R 10
+U 8
+L 9
+R 13
+D 8
+U 10
+D 10
+L 13
+U 1
+R 4
+U 11
+D 12
+L 1
+R 2
+U 12
+D 7
+U 9
+R 13
+U 5
+D 6
+R 4
+L 6
+U 9
+L 5
+U 8
+D 4
+L 5
+U 6
+L 8
+U 1
+R 3
+U 8
+R 2
+D 5
+U 12
+D 9
+L 2
+U 3
+R 11
+U 9
+R 7
+D 10
+U 2
+L 3
+D 3
+U 9
+D 6
+U 1
+R 9
+L 5
+R 2
+L 2
+R 11
+D 7
+L 10
+U 13
+L 6
+R 11
+U 6
+D 11
+U 4
+R 10
+D 5
+R 4
+L 6
+U 3
+L 8
+D 6
+U 14
+R 3
+U 1
+L 6
+R 7
+U 9
+L 9
+D 10
+U 10
+D 12
+R 9
+D 12
+R 4
+D 12
+U 9
+R 9
+U 2
+L 11
+D 13
+U 12
+L 7
+D 14
+R 4
+D 14
+U 11
+D 5
+R 10
+L 2
+D 11
+L 3
+U 9
+R 4
+L 8
+U 8
+R 7
+U 7
+D 5
+R 8
+U 5
+L 3
+R 7
+D 6
+R 12
+U 3
+D 8
+L 8
+U 3
+L 8
+R 7
+L 13
+U 2
+L 8
+U 14
+R 5
+L 1
+D 14
+R 10
+U 14
+R 6
+U 14
+D 5
+U 13
+D 1
+U 12
+R 7
+L 2
+U 4
+R 10
+U 8
+R 12
+L 2
+U 7
+D 9
+L 6
+D 3
+U 7
+L 11
+U 8
+R 7
+D 5
+U 5
+R 13
+D 9
+R 14
+U 8
+R 14
+D 8
+U 1
+L 13
+R 12
+D 7
+L 6
+R 3
+D 10
+R 10
+L 6
+D 12
+L 5
+U 14
+D 1
+U 8
+R 5
+D 15
+R 11
+D 10
+L 11
+D 13
+L 5
+D 3
+U 15
+R 6
+L 12
+R 12
+L 15
+U 5
+D 8
+R 13
+D 10
+R 4
+L 6
+U 8
+R 6
+D 15
+U 6
+L 13
+D 15
+U 11
+D 6
+U 7
+L 1
+R 5
+L 1
+U 7
+D 15
+L 1
+D 7
+U 6
+R 14
+D 4
+R 5
+U 4
+D 5
+R 13
+D 5
+L 1
+D 11
+L 3
+D 3
+R 13
+L 15
+D 4
+R 4
+U 5
+L 10
+U 14
+D 2
+R 9
+U 8
+R 1
+U 13
+L 5
+U 12
+R 10
+U 8
+L 9
+D 7
+R 10
+L 8
+R 13
+D 12
+L 2
+R 4
+D 14
+R 14
+D 2
+U 4
+D 14
+U 1
+L 3
+R 7
+L 2
+D 10
+R 10
+L 1
+R 5
+D 6
+L 5
+R 11
+U 15
+L 6
+D 4
+R 14
+D 6
+R 1
+L 12
+R 15
+L 10
+U 1
+D 3
+R 2
+D 2
+L 8
+U 9
+D 14
+L 4
+R 2
+U 14
+L 11
+D 12
+U 5
+L 11
+R 5
+U 14
+R 9
+U 12
+L 12
+D 9
+R 10
+D 4
+L 3
+U 4
+R 2
+D 9
+U 5
+L 13
+U 5
+R 15
+L 4
+R 10
+U 8
+R 3
+U 13
+D 4
+U 4
+L 8
+U 1
+D 13
+R 10
+U 13
+L 5
+U 7
+D 2
+U 15
+R 10
+U 12
+D 9
+R 12
+L 3
+D 7
+R 7
+L 3
+R 14
+L 9
+D 4
+R 8
+D 1
+R 1
+U 1
+R 14
+L 7
+R 10
+D 14
+L 1
+U 12
+D 8
+U 1
+R 13
+U 12
+D 4
+U 8
+L 8
+D 8
+L 4
+R 2
+D 6
+R 2
+L 3
+D 16
+R 6
+L 16
+D 16
+L 2
+R 16
+D 15
+L 1
+D 4
+U 3
+L 5
+U 4
+L 4
+D 9
+L 2
+R 8
+D 7
+U 7
+R 12
+U 12
+R 3
+D 8
+L 12
+D 12
+R 13
+U 8
+R 5
+U 2
+D 3
+U 11
+L 13
+R 4
+L 5
+R 9
+D 9
+U 14
+R 15
+L 16
+R 13
+D 11
+U 13
+L 10
+D 11
+L 10
+R 4
+U 7
+D 17
+U 7
+R 10
+U 11
+L 2
+D 8
+U 3
+R 14
+U 13
+D 8
+U 6
+L 2
+D 9
+L 1
+D 4
+U 16
+D 4
+L 13
+U 1
+D 13
+U 12
+R 17
+L 6
+R 17
+L 17
+R 13
+L 9
+U 12
+L 15
+R 17
+U 3
+R 2
+L 12
+U 7
+L 12
+U 9
+L 15
+R 9
+U 3
+L 13
+R 8
+L 3
+R 2
+L 17
+U 14
+D 16
+L 13
+D 2
+U 17
+D 6
+U 8
+L 5
+D 10
+L 3
+D 3
+R 7
+L 16
+R 8
+U 13
+L 17
+U 16
+L 9
+U 8
+D 12
+R 10
+U 11
+D 10
+L 17
+R 3
+D 7
+U 13
+D 11
+R 7
+D 16
+U 4
+R 12
+D 12
+U 11
+D 2
+L 9
+D 6
+L 4
+R 5
+L 13
+U 7
+L 12
+D 1
+L 15
+U 8
+R 4
+U 15
+R 15
+D 7
+R 8
+U 9
+R 5
+D 12
+R 12
+U 2
+D 13
+U 2
+L 6
+D 8
+U 12
+R 6
+D 16
+U 4
+R 9
+L 6
+U 18
+L 7
+R 15
+U 8
+D 18
+L 11
+R 16
+D 2
+R 7
+D 8
+L 10
+U 15
+L 13
+D 7
+R 13
+D 14
+R 2
+L 14
+D 4
+L 10
+R 13
+L 18
+U 15
+L 17
+R 18
+D 2
+U 7
+R 18
+D 4
+L 1
+U 12
+L 1
+U 16
+D 6
+R 7
+U 9
+L 1
+U 13
+R 2
+L 8
+D 5
+R 18
+D 16
+R 8
+D 2
+R 13
+L 16
+R 18
+L 10
+D 6
+U 4
+D 15
+U 3
+D 9
+R 17
+D 8
+L 4
+R 17
+D 15
+R 1
+D 18
+U 1
+R 5
+L 7
+D 18
+U 16
+D 2
+L 11
+R 7
+L 12
+D 2
+U 8
+L 17
+U 18
+L 10
+R 16
+L 5
+R 1
+L 10
+R 14
+L 4
+D 15
+R 8
+D 15
+L 12
+D 5
+U 11
+L 1
+R 8
+D 11
+U 5
+L 12
+D 11
+U 9
+D 12
+R 7
+D 11
+U 2
+R 15
+L 2
+R 8
+U 2
+D 8
+R 14
+L 4
+D 1
+U 4
+R 4
+D 2
+R 5
+D 9
+L 10
+U 8
+R 13
+D 15
+R 18
+D 5
+U 5
+L 1
+U 1
+R 9
+D 2
+U 6
+R 5
+U 5
+R 17
+L 2
+D 1
+R 3
+D 5
+U 13
+R 10
+D 10
+R 13
+D 5
+L 1
+U 14
+D 17
+U 15
+R 16
+L 9
+U 12
+L 17
+R 19
+U 1
+D 4
+U 14
+L 7
+R 16
+L 5
+D 4
+L 14
+U 13
+R 10
+L 19
+D 1
+R 17
+D 6
+L 19
+U 11
+L 14
+U 15
+D 10
+U 17
+R 16
+U 12
+L 13
+D 1
+R 11
+D 10
+L 4
+D 15
+L 18
+R 2
+U 5
+L 2
+U 9
+D 16
+R 8
+D 13
+R 19
+U 14
+L 10
+R 13
+U 3
+R 2
+U 11
+L 2
+R 2
+U 12
+L 14
+U 15
+R 6
+D 10
+R 8
+U 14
+D 9
+L 2
+U 3
+D 8
+U 7
+R 10
+U 16
+R 3
+U 9
+L 16
+D 1
+R 1
+U 12
+R 12
+U 8
+L 19
+U 14
+R 9
+U 5
+L 15
+U 7
+L 17
+U 16
+R 19
+U 17
+L 1
+D 7
diff --git a/AdventOfCode.sln b/AdventOfCode.sln
index 77eae18..a498403 100644
--- a/AdventOfCode.sln
+++ b/AdventOfCode.sln
@@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.32929.386
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode", "AdventOfCode\AdventOfCode.csproj", "{30F2887D-526F-4068-A581-E20BAF52F900}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdventOfCode", "AdventOfCode\AdventOfCode.csproj", "{30F2887D-526F-4068-A581-E20BAF52F900}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.InputFetcher", "AdventOfCode.InputFetcher\AdventOfCode.InputFetcher.csproj", "{105BF947-9878-4995-B16B-F8093A53EC66}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventOfCode.Tests", "AdventOfCode.Tests\AdventOfCode.Tests.csproj", "{03C0BB76-6521-4B51-B267-346E88678D79}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +19,14 @@ Global
{30F2887D-526F-4068-A581-E20BAF52F900}.Debug|Any CPU.Build.0 = Debug|Any CPU
{30F2887D-526F-4068-A581-E20BAF52F900}.Release|Any CPU.ActiveCfg = Release|Any CPU
{30F2887D-526F-4068-A581-E20BAF52F900}.Release|Any CPU.Build.0 = Release|Any CPU
+ {105BF947-9878-4995-B16B-F8093A53EC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {105BF947-9878-4995-B16B-F8093A53EC66}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {105BF947-9878-4995-B16B-F8093A53EC66}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {105BF947-9878-4995-B16B-F8093A53EC66}.Release|Any CPU.Build.0 = Release|Any CPU
+ {03C0BB76-6521-4B51-B267-346E88678D79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {03C0BB76-6521-4B51-B267-346E88678D79}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {03C0BB76-6521-4B51-B267-346E88678D79}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {03C0BB76-6521-4B51-B267-346E88678D79}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/AdventOfCode/AdventOfCode.csproj b/AdventOfCode/AdventOfCode.csproj
index 0ff1ded..ab3abdc 100644
--- a/AdventOfCode/AdventOfCode.csproj
+++ b/AdventOfCode/AdventOfCode.csproj
@@ -13,6 +13,7 @@
+
diff --git a/AdventOfCode/Common/AOCExtensions.cs b/AdventOfCode/Common/AOCExtensions.cs
index 22b02b9..ca3760d 100644
--- a/AdventOfCode/Common/AOCExtensions.cs
+++ b/AdventOfCode/Common/AOCExtensions.cs
@@ -8,7 +8,15 @@ namespace AdventOfCode.Common
{
public static int ToInt(this string str)
{
- return Convert.ToInt32(str);
+ try
+ {
+ return Convert.ToInt32(str);
+ }catch (Exception e)
+ {
+ return 0;
+ throw e;
+ }
+
}
public static IEnumerable> Chunk(this IEnumerable source, int chunksize)
diff --git a/AdventOfCode/Common/IgnoreTestAnswerAttribute.cs b/AdventOfCode/Common/IgnoreTestAnswerAttribute.cs
new file mode 100644
index 0000000..ca8cda2
--- /dev/null
+++ b/AdventOfCode/Common/IgnoreTestAnswerAttribute.cs
@@ -0,0 +1,20 @@
+using AdventOfCode.Models;
+using System;
+using System.Linq;
+
+namespace AdventOfCode.Common
+{
+ public class IgnoreTestAnswerAttribute : Attribute
+ {
+ private AOCVersion[] _versions;
+ public IgnoreTestAnswerAttribute(params AOCVersion[] versions)
+ {
+ this._versions = versions;
+ }
+
+ public bool ShouldIgnoreAnswer(AOCVersion version)
+ {
+ return _versions.Any(x => x == version);
+ }
+ }
+}
diff --git a/AdventOfCode/_2022/Day10/CommunicationCPU.cs b/AdventOfCode/_2022/Day10/CommunicationCPU.cs
index d37e049..06e0ebb 100644
--- a/AdventOfCode/_2022/Day10/CommunicationCPU.cs
+++ b/AdventOfCode/_2022/Day10/CommunicationCPU.cs
@@ -66,7 +66,6 @@ namespace AdventOfCode._2022.Day10
_cycle++; //Increase it after we draw CRT screen but before we do the cycle check for part A
if (_version == AOCVersion.A && CHECK_CYCLES.Any(x => x == _cycle))
{
- Console.WriteLine($"Cycle {_cycle} has register value of {_registerX} and a strength of {_cycle * _registerX}");
_sumOfStregnth += _cycle * _registerX;
}
}
diff --git a/AdventOfCode/_2022/Day10/Day10.cs b/AdventOfCode/_2022/Day10/Day10.cs
index a0e80a8..94d55ba 100644
--- a/AdventOfCode/_2022/Day10/Day10.cs
+++ b/AdventOfCode/_2022/Day10/Day10.cs
@@ -7,6 +7,7 @@ using System.Linq;
namespace AdventOfCode._2022.Day10
{
[AOC(year: 2022, day: 10)]
+ [IgnoreTestAnswer(AOCVersion.B)]
public class Day10 : AOCDay
{
protected override AOCResponse ExecutePartA()
diff --git a/AdventOfCode/_2022/Day5.cs b/AdventOfCode/_2022/Day5.cs
index 681ce04..4468c22 100644
--- a/AdventOfCode/_2022/Day5.cs
+++ b/AdventOfCode/_2022/Day5.cs
@@ -17,7 +17,7 @@ namespace AdventOfCode._2022
var crates = input.Take(Array.FindIndex(input, x => string.IsNullOrEmpty(x)));
var moves = input.Skip(crates.Count() + 1);
var crateBoard = new CargoCrateBoard(_request.Version, crates.ToArray(), moves.ToArray());
- _response.Answer = string.Join(" ", crateBoard.GetResults());
+ _response.Answer = string.Join("", crateBoard.GetResults()).Replace("[", string.Empty).Replace("]", string.Empty);
return _response;
}
diff --git a/AdventOfCode/_2022/Day7/Day7.cs b/AdventOfCode/_2022/Day7/Day7.cs
index a470a19..5726ea0 100644
--- a/AdventOfCode/_2022/Day7/Day7.cs
+++ b/AdventOfCode/_2022/Day7/Day7.cs
@@ -15,7 +15,8 @@ namespace AdventOfCode._2022.Day7
{
var root = GenerateDirectory();
- root.Print("");
+ if (!_request.IgnoreLogMessages)
+ root.Print("");
var allDirectories = root.GetAllDirectories().ToList();
_response.Answer = allDirectories.Where(x => x.GetSize() <= 100000).Sum(x => x.GetSize());
diff --git a/AdventOfCode/_2022/Models/CargoCrateBoard.cs b/AdventOfCode/_2022/Models/CargoCrateBoard.cs
index ac04390..541ba8f 100644
--- a/AdventOfCode/_2022/Models/CargoCrateBoard.cs
+++ b/AdventOfCode/_2022/Models/CargoCrateBoard.cs
@@ -26,6 +26,7 @@ namespace AdventOfCode._2022.Models
{
foreach (var move in moves)
{
+ if (string.IsNullOrWhiteSpace(move)) continue;
string numbersOnly = Regex.Replace(move, "[^0-9.]", " ");
var pendingMoves = Regex.Replace(numbersOnly, @"\s+", " ").Trim().Split(" ");
_board.Move(version, pendingMoves[0].ToInt(), pendingMoves[1].ToInt(), pendingMoves[2].ToInt());