diff --git a/AdventOfCode.sln b/AdventOfCode.sln
index ab08bba..d7b94b6 100644
--- a/AdventOfCode.sln
+++ b/AdventOfCode.sln
@@ -159,6 +159,56 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "23", "src\2022\23\23.csproj
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "24", "src\2022\24\24.csproj", "{C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "01", "src\2023\01\01.csproj", "{990960AC-34B8-4298-B271-56216D0C51BA}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "2023", "2023", "{5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "02", "src\2023\02\02.csproj", "{12B31A56-F65C-4C2D-86B5-805E285251B1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "03", "src\2023\03\03.csproj", "{DB9FD3EB-70DD-4347-A08A-FAC6424700A6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "04", "src\2023\04\04.csproj", "{4CE9405A-527F-4934-B320-A1469A55FE02}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "05", "src\2023\05\05.csproj", "{7611534F-7E03-415F-BF1F-C614CBE14C22}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "06", "src\2023\06\06.csproj", "{BAC1A348-949B-4FA6-B8A8-39098484A609}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "11", "src\2023\11\11.csproj", "{0B3FEBCE-2954-4B0A-85FE-FCD81D477ED4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "10", "src\2023\10\10.csproj", "{E5919C9B-06FC-4B92-8AEC-87FEF8E60701}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "09", "src\2023\09\09.csproj", "{B4BD2A2B-B18F-4C16-A063-A71D4D6F10A6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "08", "src\2023\08\08.csproj", "{6D3104ED-A928-4326-808C-9C62A838D143}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "07", "src\2023\07\07.csproj", "{F4B2118C-3A8C-4C46-9CC7-4F657B2C57E7}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "12", "src\2023\12\12.csproj", "{EA8329AD-AB5F-45F7-AD14-7DA41590E497}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "13", "src\2023\13\13.csproj", "{01FE02A5-544A-48BC-AAF5-379BF48774C6}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "14", "src\2023\14\14.csproj", "{0BF5DBE9-AFCD-4ED3-9AB9-B8B24EDC9557}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "15", "src\2023\15\15.csproj", "{E453D249-1B6F-47C7-AD04-1638C6396BCA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "24", "src\2023\24\24.csproj", "{FE8AC0DD-9479-4041-A61C-CD4782632357}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "23", "src\2023\23\23.csproj", "{27D0AE61-C7B4-4BB8-B7A5-B3B580F2CD00}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "22", "src\2023\22\22.csproj", "{7B3E970D-53D4-4C19-804E-CAD161A5093A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "21", "src\2023\21\21.csproj", "{753D7378-2077-4022-88A5-D0EC8C35A3C3}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "20", "src\2023\20\20.csproj", "{BFAB9FE1-4D49-46F6-B701-1CC8C1DD575F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "19", "src\2023\19\19.csproj", "{644C50F6-9358-4FE4-A60F-7DFD8B497CED}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "16", "src\2023\16\16.csproj", "{87ED8226-226F-457B-8895-0C326111B5E1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "18", "src\2023\18\18.csproj", "{F8B3FC10-FFD0-4291-AD48-20F6CC30E72D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "17", "src\2023\17\17.csproj", "{38AC89A9-38D6-4456-86F0-9FA8D5BA487D}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -369,6 +419,42 @@ Global
{14982BD6-0562-4998-8E08-0BFD92373562}.Debug|Any CPU.Build.0 = Debug|Any CPU
{14982BD6-0562-4998-8E08-0BFD92373562}.Release|Any CPU.ActiveCfg = Release|Any CPU
{14982BD6-0562-4998-8E08-0BFD92373562}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Release|Any CPU.Build.0 = Release|Any CPU
+ {1F382540-7315-48CC-A72C-36DC60781E36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {1F382540-7315-48CC-A72C-36DC60781E36}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {1F382540-7315-48CC-A72C-36DC60781E36}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {1F382540-7315-48CC-A72C-36DC60781E36}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2565CAE7-1085-41B6-AE95-DED13A41160D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2565CAE7-1085-41B6-AE95-DED13A41160D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2565CAE7-1085-41B6-AE95-DED13A41160D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2565CAE7-1085-41B6-AE95-DED13A41160D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Release|Any CPU.Build.0 = Release|Any CPU
{3BB08FD1-F9B1-4D63-8206-5E5BEAF63C08}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3BB08FD1-F9B1-4D63-8206-5E5BEAF63C08}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3BB08FD1-F9B1-4D63-8206-5E5BEAF63C08}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -421,50 +507,110 @@ Global
{DCDB74E6-88E8-49A6-83B1-180D25057B8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DCDB74E6-88E8-49A6-83B1-180D25057B8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DCDB74E6-88E8-49A6-83B1-180D25057B8B}.Release|Any CPU.Build.0 = Release|Any CPU
- {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Release|Any CPU.Build.0 = Release|Any CPU
{57D9B735-1A92-47C9-B813-4A94D40D80C8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{57D9B735-1A92-47C9-B813-4A94D40D80C8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{57D9B735-1A92-47C9-B813-4A94D40D80C8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{57D9B735-1A92-47C9-B813-4A94D40D80C8}.Release|Any CPU.Build.0 = Release|Any CPU
- {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DCC88659-6EF7-4945-88F0-F9BF2D631EDF}.Release|Any CPU.Build.0 = Release|Any CPU
- {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B79A0052-7EB6-4A1F-A02B-5DD478FAD663}.Release|Any CPU.Build.0 = Release|Any CPU
- {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646}.Release|Any CPU.Build.0 = Release|Any CPU
- {1F382540-7315-48CC-A72C-36DC60781E36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1F382540-7315-48CC-A72C-36DC60781E36}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1F382540-7315-48CC-A72C-36DC60781E36}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1F382540-7315-48CC-A72C-36DC60781E36}.Release|Any CPU.Build.0 = Release|Any CPU
- {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D}.Release|Any CPU.Build.0 = Release|Any CPU
- {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90}.Release|Any CPU.Build.0 = Release|Any CPU
- {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2ADF413D-7F84-4C35-9E49-28813C3F0778}.Release|Any CPU.Build.0 = Release|Any CPU
- {2565CAE7-1085-41B6-AE95-DED13A41160D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2565CAE7-1085-41B6-AE95-DED13A41160D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2565CAE7-1085-41B6-AE95-DED13A41160D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2565CAE7-1085-41B6-AE95-DED13A41160D}.Release|Any CPU.Build.0 = Release|Any CPU
- {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73}.Release|Any CPU.Build.0 = Release|Any CPU
+ {990960AC-34B8-4298-B271-56216D0C51BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {990960AC-34B8-4298-B271-56216D0C51BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {990960AC-34B8-4298-B271-56216D0C51BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {990960AC-34B8-4298-B271-56216D0C51BA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {12B31A56-F65C-4C2D-86B5-805E285251B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12B31A56-F65C-4C2D-86B5-805E285251B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12B31A56-F65C-4C2D-86B5-805E285251B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {12B31A56-F65C-4C2D-86B5-805E285251B1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DB9FD3EB-70DD-4347-A08A-FAC6424700A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DB9FD3EB-70DD-4347-A08A-FAC6424700A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DB9FD3EB-70DD-4347-A08A-FAC6424700A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DB9FD3EB-70DD-4347-A08A-FAC6424700A6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4CE9405A-527F-4934-B320-A1469A55FE02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4CE9405A-527F-4934-B320-A1469A55FE02}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4CE9405A-527F-4934-B320-A1469A55FE02}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4CE9405A-527F-4934-B320-A1469A55FE02}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7611534F-7E03-415F-BF1F-C614CBE14C22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7611534F-7E03-415F-BF1F-C614CBE14C22}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7611534F-7E03-415F-BF1F-C614CBE14C22}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7611534F-7E03-415F-BF1F-C614CBE14C22}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BAC1A348-949B-4FA6-B8A8-39098484A609}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BAC1A348-949B-4FA6-B8A8-39098484A609}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BAC1A348-949B-4FA6-B8A8-39098484A609}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BAC1A348-949B-4FA6-B8A8-39098484A609}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0B3FEBCE-2954-4B0A-85FE-FCD81D477ED4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0B3FEBCE-2954-4B0A-85FE-FCD81D477ED4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0B3FEBCE-2954-4B0A-85FE-FCD81D477ED4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0B3FEBCE-2954-4B0A-85FE-FCD81D477ED4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E5919C9B-06FC-4B92-8AEC-87FEF8E60701}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E5919C9B-06FC-4B92-8AEC-87FEF8E60701}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E5919C9B-06FC-4B92-8AEC-87FEF8E60701}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E5919C9B-06FC-4B92-8AEC-87FEF8E60701}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B4BD2A2B-B18F-4C16-A063-A71D4D6F10A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B4BD2A2B-B18F-4C16-A063-A71D4D6F10A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B4BD2A2B-B18F-4C16-A063-A71D4D6F10A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B4BD2A2B-B18F-4C16-A063-A71D4D6F10A6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6D3104ED-A928-4326-808C-9C62A838D143}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6D3104ED-A928-4326-808C-9C62A838D143}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6D3104ED-A928-4326-808C-9C62A838D143}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6D3104ED-A928-4326-808C-9C62A838D143}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F4B2118C-3A8C-4C46-9CC7-4F657B2C57E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F4B2118C-3A8C-4C46-9CC7-4F657B2C57E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F4B2118C-3A8C-4C46-9CC7-4F657B2C57E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F4B2118C-3A8C-4C46-9CC7-4F657B2C57E7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EA8329AD-AB5F-45F7-AD14-7DA41590E497}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EA8329AD-AB5F-45F7-AD14-7DA41590E497}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EA8329AD-AB5F-45F7-AD14-7DA41590E497}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EA8329AD-AB5F-45F7-AD14-7DA41590E497}.Release|Any CPU.Build.0 = Release|Any CPU
+ {01FE02A5-544A-48BC-AAF5-379BF48774C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {01FE02A5-544A-48BC-AAF5-379BF48774C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {01FE02A5-544A-48BC-AAF5-379BF48774C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {01FE02A5-544A-48BC-AAF5-379BF48774C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {0BF5DBE9-AFCD-4ED3-9AB9-B8B24EDC9557}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0BF5DBE9-AFCD-4ED3-9AB9-B8B24EDC9557}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0BF5DBE9-AFCD-4ED3-9AB9-B8B24EDC9557}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0BF5DBE9-AFCD-4ED3-9AB9-B8B24EDC9557}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E453D249-1B6F-47C7-AD04-1638C6396BCA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E453D249-1B6F-47C7-AD04-1638C6396BCA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E453D249-1B6F-47C7-AD04-1638C6396BCA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E453D249-1B6F-47C7-AD04-1638C6396BCA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FE8AC0DD-9479-4041-A61C-CD4782632357}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FE8AC0DD-9479-4041-A61C-CD4782632357}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FE8AC0DD-9479-4041-A61C-CD4782632357}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FE8AC0DD-9479-4041-A61C-CD4782632357}.Release|Any CPU.Build.0 = Release|Any CPU
+ {27D0AE61-C7B4-4BB8-B7A5-B3B580F2CD00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {27D0AE61-C7B4-4BB8-B7A5-B3B580F2CD00}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {27D0AE61-C7B4-4BB8-B7A5-B3B580F2CD00}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {27D0AE61-C7B4-4BB8-B7A5-B3B580F2CD00}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7B3E970D-53D4-4C19-804E-CAD161A5093A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7B3E970D-53D4-4C19-804E-CAD161A5093A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7B3E970D-53D4-4C19-804E-CAD161A5093A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7B3E970D-53D4-4C19-804E-CAD161A5093A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {753D7378-2077-4022-88A5-D0EC8C35A3C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {753D7378-2077-4022-88A5-D0EC8C35A3C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {753D7378-2077-4022-88A5-D0EC8C35A3C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {753D7378-2077-4022-88A5-D0EC8C35A3C3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BFAB9FE1-4D49-46F6-B701-1CC8C1DD575F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BFAB9FE1-4D49-46F6-B701-1CC8C1DD575F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BFAB9FE1-4D49-46F6-B701-1CC8C1DD575F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BFAB9FE1-4D49-46F6-B701-1CC8C1DD575F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {644C50F6-9358-4FE4-A60F-7DFD8B497CED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {644C50F6-9358-4FE4-A60F-7DFD8B497CED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {644C50F6-9358-4FE4-A60F-7DFD8B497CED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {644C50F6-9358-4FE4-A60F-7DFD8B497CED}.Release|Any CPU.Build.0 = Release|Any CPU
+ {87ED8226-226F-457B-8895-0C326111B5E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {87ED8226-226F-457B-8895-0C326111B5E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {87ED8226-226F-457B-8895-0C326111B5E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {87ED8226-226F-457B-8895-0C326111B5E1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F8B3FC10-FFD0-4291-AD48-20F6CC30E72D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F8B3FC10-FFD0-4291-AD48-20F6CC30E72D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F8B3FC10-FFD0-4291-AD48-20F6CC30E72D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F8B3FC10-FFD0-4291-AD48-20F6CC30E72D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {38AC89A9-38D6-4456-86F0-9FA8D5BA487D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {38AC89A9-38D6-4456-86F0-9FA8D5BA487D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {38AC89A9-38D6-4456-86F0-9FA8D5BA487D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {38AC89A9-38D6-4456-86F0-9FA8D5BA487D}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -520,6 +666,15 @@ Global
{264EC2A7-CFB1-43CE-BF6A-6A4F359C6306} = {162CD95D-48E2-4700-8D19-226267E633D9}
{95CC663C-4604-45D2-A6AA-A868EC3C673A} = {162CD95D-48E2-4700-8D19-226267E633D9}
{14982BD6-0562-4998-8E08-0BFD92373562} = {162CD95D-48E2-4700-8D19-226267E633D9}
+ {DCC88659-6EF7-4945-88F0-F9BF2D631EDF} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {B79A0052-7EB6-4A1F-A02B-5DD478FAD663} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {1F382540-7315-48CC-A72C-36DC60781E36} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {2ADF413D-7F84-4C35-9E49-28813C3F0778} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {2565CAE7-1085-41B6-AE95-DED13A41160D} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
{3BB08FD1-F9B1-4D63-8206-5E5BEAF63C08} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
{99B6DBF9-5472-48BA-B850-639B00172856} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
{9F403FA5-AB7E-447B-9FCB-0C542DB463F1} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
@@ -533,17 +688,32 @@ Global
{A87DE5F1-7C74-4786-BA61-854405859FD9} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
{E13351DB-E73C-46B4-A67B-54124B2850C3} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
{DCDB74E6-88E8-49A6-83B1-180D25057B8B} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
{57D9B735-1A92-47C9-B813-4A94D40D80C8} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {DCC88659-6EF7-4945-88F0-F9BF2D631EDF} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {B79A0052-7EB6-4A1F-A02B-5DD478FAD663} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {ACC47C57-1B47-47B2-B06A-F1FCE3CC5646} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {1F382540-7315-48CC-A72C-36DC60781E36} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {FD0F1BEC-64CB-4CCE-A81C-0CE50CB5497D} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {F9F0A636-F4C4-46DA-8EDA-DF5F9E13EC90} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {2ADF413D-7F84-4C35-9E49-28813C3F0778} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {2565CAE7-1085-41B6-AE95-DED13A41160D} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
- {0F4F578D-8A33-46D2-BDE9-EF7F7C827F9F} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {C76D0C80-1697-4C6D-9B9A-93B29A9D3E73} = {D15963DA-3E8C-4CE7-A017-577D08D6A6A8}
+ {990960AC-34B8-4298-B271-56216D0C51BA} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {12B31A56-F65C-4C2D-86B5-805E285251B1} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {DB9FD3EB-70DD-4347-A08A-FAC6424700A6} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {4CE9405A-527F-4934-B320-A1469A55FE02} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {7611534F-7E03-415F-BF1F-C614CBE14C22} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {BAC1A348-949B-4FA6-B8A8-39098484A609} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {0B3FEBCE-2954-4B0A-85FE-FCD81D477ED4} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {E5919C9B-06FC-4B92-8AEC-87FEF8E60701} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {B4BD2A2B-B18F-4C16-A063-A71D4D6F10A6} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {6D3104ED-A928-4326-808C-9C62A838D143} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {F4B2118C-3A8C-4C46-9CC7-4F657B2C57E7} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {EA8329AD-AB5F-45F7-AD14-7DA41590E497} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {01FE02A5-544A-48BC-AAF5-379BF48774C6} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {0BF5DBE9-AFCD-4ED3-9AB9-B8B24EDC9557} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {E453D249-1B6F-47C7-AD04-1638C6396BCA} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {FE8AC0DD-9479-4041-A61C-CD4782632357} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {27D0AE61-C7B4-4BB8-B7A5-B3B580F2CD00} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {7B3E970D-53D4-4C19-804E-CAD161A5093A} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {753D7378-2077-4022-88A5-D0EC8C35A3C3} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {BFAB9FE1-4D49-46F6-B701-1CC8C1DD575F} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {644C50F6-9358-4FE4-A60F-7DFD8B497CED} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {87ED8226-226F-457B-8895-0C326111B5E1} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {F8B3FC10-FFD0-4291-AD48-20F6CC30E72D} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
+ {38AC89A9-38D6-4456-86F0-9FA8D5BA487D} = {5CFC5E6B-FA48-45A3-9990-5E1A7AEBEBAA}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F9475105-5079-479E-AF85-EC41E85E69A2}
diff --git a/src/2023/01/01.csproj b/src/2023/01/01.csproj
new file mode 100644
index 0000000..fd23fe3
--- /dev/null
+++ b/src/2023/01/01.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_01
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/01/Program.cs b/src/2023/01/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/01/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/02/02.csproj b/src/2023/02/02.csproj
new file mode 100644
index 0000000..5b04c70
--- /dev/null
+++ b/src/2023/02/02.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_02
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/02/Program.cs b/src/2023/02/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/02/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/03/03.csproj b/src/2023/03/03.csproj
new file mode 100644
index 0000000..24bb31b
--- /dev/null
+++ b/src/2023/03/03.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_03
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/03/Program.cs b/src/2023/03/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/03/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/04/04.csproj b/src/2023/04/04.csproj
new file mode 100644
index 0000000..83026d5
--- /dev/null
+++ b/src/2023/04/04.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_04
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/04/Program.cs b/src/2023/04/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/04/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/05/05.csproj b/src/2023/05/05.csproj
new file mode 100644
index 0000000..c526126
--- /dev/null
+++ b/src/2023/05/05.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_05
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/05/Program.cs b/src/2023/05/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/05/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/06/06.csproj b/src/2023/06/06.csproj
new file mode 100644
index 0000000..f3fdacc
--- /dev/null
+++ b/src/2023/06/06.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_06
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/06/Program.cs b/src/2023/06/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/06/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/07/07.csproj b/src/2023/07/07.csproj
new file mode 100644
index 0000000..f8d116e
--- /dev/null
+++ b/src/2023/07/07.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_07
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/07/Program.cs b/src/2023/07/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/07/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/08/08.csproj b/src/2023/08/08.csproj
new file mode 100644
index 0000000..818c655
--- /dev/null
+++ b/src/2023/08/08.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_08
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/08/Program.cs b/src/2023/08/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/08/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/09/09.csproj b/src/2023/09/09.csproj
new file mode 100644
index 0000000..73575fc
--- /dev/null
+++ b/src/2023/09/09.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_09
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/09/Program.cs b/src/2023/09/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/09/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/10/10.csproj b/src/2023/10/10.csproj
new file mode 100644
index 0000000..b884172
--- /dev/null
+++ b/src/2023/10/10.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/10/Program.cs b/src/2023/10/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/10/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/11/11.csproj b/src/2023/11/11.csproj
new file mode 100644
index 0000000..39885a3
--- /dev/null
+++ b/src/2023/11/11.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_11
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/11/Program.cs b/src/2023/11/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/11/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/12/12.csproj b/src/2023/12/12.csproj
new file mode 100644
index 0000000..03e885a
--- /dev/null
+++ b/src/2023/12/12.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/12/Program.cs b/src/2023/12/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/12/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/13/13.csproj b/src/2023/13/13.csproj
new file mode 100644
index 0000000..c3a8e6c
--- /dev/null
+++ b/src/2023/13/13.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_13
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/13/Program.cs b/src/2023/13/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/13/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/14/14.csproj b/src/2023/14/14.csproj
new file mode 100644
index 0000000..2d308cc
--- /dev/null
+++ b/src/2023/14/14.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_14
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/14/Program.cs b/src/2023/14/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/14/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/15/15.csproj b/src/2023/15/15.csproj
new file mode 100644
index 0000000..f6474ed
--- /dev/null
+++ b/src/2023/15/15.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_15
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/15/Program.cs b/src/2023/15/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/15/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/16/16.csproj b/src/2023/16/16.csproj
new file mode 100644
index 0000000..2aeb9ca
--- /dev/null
+++ b/src/2023/16/16.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_16
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/16/Program.cs b/src/2023/16/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/16/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/17/17.csproj b/src/2023/17/17.csproj
new file mode 100644
index 0000000..e35d841
--- /dev/null
+++ b/src/2023/17/17.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_17
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/17/Program.cs b/src/2023/17/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/17/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/18/18.csproj b/src/2023/18/18.csproj
new file mode 100644
index 0000000..38ec489
--- /dev/null
+++ b/src/2023/18/18.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_18
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/18/Program.cs b/src/2023/18/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/18/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/19/19.csproj b/src/2023/19/19.csproj
new file mode 100644
index 0000000..61bffa4
--- /dev/null
+++ b/src/2023/19/19.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_19
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/19/Program.cs b/src/2023/19/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/19/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/20/20.csproj b/src/2023/20/20.csproj
new file mode 100644
index 0000000..d45cc30
--- /dev/null
+++ b/src/2023/20/20.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_20
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/20/Program.cs b/src/2023/20/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/20/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/21/21.csproj b/src/2023/21/21.csproj
new file mode 100644
index 0000000..6163ffa
--- /dev/null
+++ b/src/2023/21/21.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_21
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/21/Program.cs b/src/2023/21/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/21/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/22/22.csproj b/src/2023/22/22.csproj
new file mode 100644
index 0000000..43be003
--- /dev/null
+++ b/src/2023/22/22.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_22
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/22/Program.cs b/src/2023/22/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/22/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/23/23.csproj b/src/2023/23/23.csproj
new file mode 100644
index 0000000..9aaa6b2
--- /dev/null
+++ b/src/2023/23/23.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_23
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/23/Program.cs b/src/2023/23/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/23/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");
diff --git a/src/2023/24/24.csproj b/src/2023/24/24.csproj
new file mode 100644
index 0000000..9c4af46
--- /dev/null
+++ b/src/2023/24/24.csproj
@@ -0,0 +1,20 @@
+
+
+
+ Exe
+ AdventOfCode._2023_24
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/2023/24/Program.cs b/src/2023/24/Program.cs
new file mode 100644
index 0000000..6f08cd4
--- /dev/null
+++ b/src/2023/24/Program.cs
@@ -0,0 +1,3 @@
+using AdventOfCode.Common;
+
+var lines = Resources.GetResourceFileLines("input.txt");