diff --git a/.idea/.idea.Jenny/.idea/vcs.xml b/.idea/.idea.Jenny/.idea/vcs.xml
index 76e3eca..e500acc 100644
--- a/.idea/.idea.Jenny/.idea/vcs.xml
+++ b/.idea/.idea.Jenny/.idea/vcs.xml
@@ -3,5 +3,10 @@
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/Jenny/Resources" vcs="Git" />
+ <mapping directory="$PROJECT_DIR$/LibMatrix" vcs="Git" />
+ <mapping directory="$PROJECT_DIR$/LibMatrix/ArcaneLibs" vcs="Git" />
+ <mapping directory="$PROJECT_DIR$/LibMatrix/ExampleBots/LibMatrix.ExampleBot" vcs="Git" />
+ <mapping directory="$PROJECT_DIR$/LibMatrix/ExampleBots/ModerationBot" vcs="Git" />
+ <mapping directory="$PROJECT_DIR$/LibMatrix/ExampleBots/PluralContactBotPoC" vcs="Git" />
</component>
</project>
\ No newline at end of file
diff --git a/Jenny.sln b/Jenny.sln
index 63b3ed5..35cdc9a 100644
--- a/Jenny.sln
+++ b/Jenny.sln
@@ -8,43 +8,196 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix", "LibMatrix\LibM
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.EventTypes", "LibMatrix\LibMatrix.EventTypes\LibMatrix.EventTypes.csproj", "{112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ArcaneLibs", "ArcaneLibs", "{8C894F49-B2D7-46A1-BC17-F827A8BD432E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.Utilities.Bot", "LibMatrix\Utilities\LibMatrix.Utilities.Bot\LibMatrix.Utilities.Bot.csproj", "{C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs", "LibMatrix\ArcaneLibs\ArcaneLibs\ArcaneLibs.csproj", "{C7EDD128-4211-4FCD-B510-746A95D62EBC}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ArcaneLibs", "ArcaneLibs", "{C64FE366-72CB-2329-1C90-3B9624133FA9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibMatrix.Utilities.Bot", "LibMatrix\Utilities\LibMatrix.Utilities.Bot\LibMatrix.Utilities.Bot.csproj", "{C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs", "LibMatrix\ArcaneLibs\ArcaneLibs\ArcaneLibs.csproj", "{E881CFA1-DC48-4DB4-AB98-84EAE82D242D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Blazor.Components", "LibMatrix\ArcaneLibs\ArcaneLibs.Blazor.Components\ArcaneLibs.Blazor.Components.csproj", "{76531EAD-BAD8-49D9-B9D5-ADF09876AB71}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Legacy", "LibMatrix\ArcaneLibs\ArcaneLibs.Legacy\ArcaneLibs.Legacy.csproj", "{8189E7CD-B897-419F-B8AB-14102F96E0F6}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Logging", "LibMatrix\ArcaneLibs\ArcaneLibs.Logging\ArcaneLibs.Logging.csproj", "{89429C38-6876-49B4-A655-1AFF10B1EC4D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.StringNormalisation", "LibMatrix\ArcaneLibs\ArcaneLibs.StringNormalisation\ArcaneLibs.StringNormalisation.csproj", "{ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Tests", "LibMatrix\ArcaneLibs\ArcaneLibs.Tests\ArcaneLibs.Tests.csproj", "{03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.Timings", "LibMatrix\ArcaneLibs\ArcaneLibs.Timings\ArcaneLibs.Timings.csproj", "{FBD9BF5A-2EB0-4A68-A048-73603A4D079F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ArcaneLibs.UsageTest", "LibMatrix\ArcaneLibs\ArcaneLibs.UsageTest\ArcaneLibs.UsageTest.csproj", "{2C185CA8-8C02-44AF-881A-8FF8E146CC8E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7810BB29-94B9-4F05-A470-AFA41A665D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7810BB29-94B9-4F05-A470-AFA41A665D30}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Debug|x64.Build.0 = Debug|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Debug|x86.Build.0 = Debug|Any CPU
{7810BB29-94B9-4F05-A470-AFA41A665D30}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7810BB29-94B9-4F05-A470-AFA41A665D30}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Release|x64.ActiveCfg = Release|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Release|x64.Build.0 = Release|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Release|x86.ActiveCfg = Release|Any CPU
+ {7810BB29-94B9-4F05-A470-AFA41A665D30}.Release|x86.Build.0 = Release|Any CPU
{3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Debug|x64.Build.0 = Debug|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Debug|x86.Build.0 = Debug|Any CPU
{3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Release|x64.ActiveCfg = Release|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Release|x64.Build.0 = Release|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Release|x86.ActiveCfg = Release|Any CPU
+ {3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3}.Release|x86.Build.0 = Release|Any CPU
{112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Debug|x64.Build.0 = Debug|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Debug|x86.Build.0 = Debug|Any CPU
{112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Release|Any CPU.Build.0 = Release|Any CPU
- {C7EDD128-4211-4FCD-B510-746A95D62EBC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C7EDD128-4211-4FCD-B510-746A95D62EBC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C7EDD128-4211-4FCD-B510-746A95D62EBC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C7EDD128-4211-4FCD-B510-746A95D62EBC}.Release|Any CPU.Build.0 = Release|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Release|x64.ActiveCfg = Release|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Release|x64.Build.0 = Release|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Release|x86.ActiveCfg = Release|Any CPU
+ {112F964B-4AE4-4B4D-B41E-F7DAB7198AD0}.Release|x86.Build.0 = Release|Any CPU
{C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Debug|x64.Build.0 = Debug|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Debug|x86.Build.0 = Debug|Any CPU
{C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Release|x64.ActiveCfg = Release|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Release|x64.Build.0 = Release|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Release|x86.ActiveCfg = Release|Any CPU
+ {C04C723F-FD19-4D64-95EE-C9D96F8FFB3E}.Release|x86.Build.0 = Release|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Debug|x64.Build.0 = Debug|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Debug|x86.Build.0 = Debug|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Release|x64.ActiveCfg = Release|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Release|x64.Build.0 = Release|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Release|x86.ActiveCfg = Release|Any CPU
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D}.Release|x86.Build.0 = Release|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Debug|x64.Build.0 = Debug|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Debug|x86.Build.0 = Debug|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Release|Any CPU.Build.0 = Release|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Release|x64.ActiveCfg = Release|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Release|x64.Build.0 = Release|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Release|x86.ActiveCfg = Release|Any CPU
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71}.Release|x86.Build.0 = Release|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Debug|x64.Build.0 = Debug|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Debug|x86.Build.0 = Debug|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Release|x64.ActiveCfg = Release|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Release|x64.Build.0 = Release|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Release|x86.ActiveCfg = Release|Any CPU
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6}.Release|x86.Build.0 = Release|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Debug|x64.Build.0 = Debug|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Debug|x86.Build.0 = Debug|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Release|x64.ActiveCfg = Release|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Release|x64.Build.0 = Release|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Release|x86.ActiveCfg = Release|Any CPU
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D}.Release|x86.Build.0 = Release|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Debug|x64.Build.0 = Debug|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Debug|x86.Build.0 = Debug|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Release|Any CPU.Build.0 = Release|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Release|x64.ActiveCfg = Release|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Release|x64.Build.0 = Release|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Release|x86.ActiveCfg = Release|Any CPU
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752}.Release|x86.Build.0 = Release|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Debug|x64.Build.0 = Debug|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Debug|x86.Build.0 = Debug|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Release|x64.ActiveCfg = Release|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Release|x64.Build.0 = Release|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Release|x86.ActiveCfg = Release|Any CPU
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2}.Release|x86.Build.0 = Release|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Debug|x64.Build.0 = Debug|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Debug|x86.Build.0 = Debug|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Release|x64.ActiveCfg = Release|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Release|x64.Build.0 = Release|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Release|x86.ActiveCfg = Release|Any CPU
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F}.Release|x86.Build.0 = Release|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Debug|x64.Build.0 = Debug|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Debug|x86.Build.0 = Debug|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Release|x64.ActiveCfg = Release|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Release|x64.Build.0 = Release|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Release|x86.ActiveCfg = Release|Any CPU
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E}.Release|x86.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{3DC3F175-9EE5-4EE3-A7AF-3E34B4EDC0B3} = {4E705DA0-2CA5-4BB7-9A06-B6F5329355C7}
{112F964B-4AE4-4B4D-B41E-F7DAB7198AD0} = {4E705DA0-2CA5-4BB7-9A06-B6F5329355C7}
- {C7EDD128-4211-4FCD-B510-746A95D62EBC} = {8C894F49-B2D7-46A1-BC17-F827A8BD432E}
{C04C723F-FD19-4D64-95EE-C9D96F8FFB3E} = {4E705DA0-2CA5-4BB7-9A06-B6F5329355C7}
+ {C64FE366-72CB-2329-1C90-3B9624133FA9} = {4E705DA0-2CA5-4BB7-9A06-B6F5329355C7}
+ {E881CFA1-DC48-4DB4-AB98-84EAE82D242D} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
+ {76531EAD-BAD8-49D9-B9D5-ADF09876AB71} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
+ {8189E7CD-B897-419F-B8AB-14102F96E0F6} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
+ {89429C38-6876-49B4-A655-1AFF10B1EC4D} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
+ {ED9C763F-E7FF-4E23-8E18-ACC6DCB7A752} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
+ {03673C89-4802-4BB8-A56A-5EAAC0C2ADA2} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
+ {FBD9BF5A-2EB0-4A68-A048-73603A4D079F} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
+ {2C185CA8-8C02-44AF-881A-8FF8E146CC8E} = {C64FE366-72CB-2329-1C90-3B9624133FA9}
EndGlobalSection
EndGlobal
diff --git a/Jenny/Jenny.csproj b/Jenny/Jenny.csproj
index c97a412..4631482 100644
--- a/Jenny/Jenny.csproj
+++ b/Jenny/Jenny.csproj
@@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
<LangVersion>preview</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
@@ -22,7 +22,7 @@
</ItemGroup>
<ItemGroup>
- <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
+ <PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.0-rc.2.25502.107" />
</ItemGroup>
<ItemGroup>
<Content Include="appsettings*.json">
diff --git a/LibMatrix b/LibMatrix
-Subproject b992d20da79b9de020d629bf9574abefff9c4b1
+Subproject 1db452c75de1e25a9a2a8fd4fe2a04a2e1047f2
|