commit 2ba87a113d27b3d24a426f745de709ba7846cf52 Author: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Mon Jun 8 12:30:37 2026 +0200 Initial commit diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..93df31b --- /dev/null +++ b/.gitignore @@ -0,0 +1,401 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +# but not Directory.Build.rsp, as it configures directory-level build defaults +!Directory.Build.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.tlog +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files +*.ncb +*.aps + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider +*.sln.iml diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..1f1954b --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "cosmosos.cosmos-vscode", + "ms-dotnettools.csharp", + "ms-dotnettools.csdevkit", + "ms-vscode.cpptools" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..fbbfae3 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,90 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug x64 Kernel", + "type": "cppdbg", + "request": "launch", + "MIMode": "gdb", + "miDebuggerPath": "gdb", + "targetArchitecture": "x64", + "program": "${workspaceFolder}/output-x64/RemSox.elf", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "miDebuggerServerAddress": "localhost:1234", + "preLaunchTask": "Debug QEMU x64", + "postDebugTask": "Stop QEMU x64", + "setupCommands": [ + { + "description": "Enable pretty-printing", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set disassembly flavor", + "text": "-gdb-set disassembly-flavor intel", + "ignoreFailures": true + }, + { + "description": "Set pagination off", + "text": "set pagination off", + "ignoreFailures": true + } + ], + "launchCompleteCommand": "None" + }, + { + "name": "Debug ARM64 Kernel", + "type": "cppdbg", + "request": "launch", + "MIMode": "gdb", + "miDebuggerPath": "gdb-multiarch", + "targetArchitecture": "arm64", + "program": "${workspaceFolder}/output-arm64/RemSox.elf", + "args": [], + "stopAtEntry": true, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "miDebuggerServerAddress": "localhost:1234", + "preLaunchTask": "Debug QEMU ARM64", + "postDebugTask": "Stop QEMU ARM64", + "setupCommands": [ + { + "description": "Enable pretty-printing", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }, + { + "description": "Set pagination off", + "text": "set pagination off", + "ignoreFailures": true + }, + { + "description": "Set step mode", + "text": "set step-mode on", + "ignoreFailures": true + }, + { + "description": "Set architecture", + "text": "set architecture aarch64", + "ignoreFailures": false + }, + { + "description": "Set target endian", + "text": "set endian little", + "ignoreFailures": true + } + ], + "launchCompleteCommand": "None" + }, + { + "name": "Cosmos: Debug Kernel", + "type": "cosmos-debug", + "request": "launch" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ec1c42a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "files.exclude": { + "**/bin": true, + "**/obj": true + }, + "files.associations": { + "limine.conf": "ini" + }, + "editor.formatOnSave": true, + "dotnet.defaultSolution": "disable" +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..2f31550 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,217 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build x64", + "type": "shell", + "command": "dotnet", + "args": [ + "publish", + "-c", "Debug", + "-r", "linux-x64", + "-o", "${workspaceFolder}/output-x64", + "--verbosity", "minimal" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": ["$msCompile"], + "presentation": { + "reveal": "always", + "panel": "shared" + } + }, + { + "label": "Build ARM64", + "type": "shell", + "command": "dotnet", + "args": [ + "publish", + "-c", "Debug", + "-r", "linux-arm64", + "-o", "${workspaceFolder}/output-arm64", + "--verbosity", "minimal" + ], + "group": "build", + "problemMatcher": ["$msCompile"], + "presentation": { + "reveal": "always", + "panel": "shared" + } + }, + { + "label": "Build Release x64", + "type": "shell", + "command": "dotnet", + "args": [ + "publish", + "-c", "Release", + "-r", "linux-x64", + "-o", "${workspaceFolder}/output-x64", + "--verbosity", "minimal" + ], + "group": "build", + "problemMatcher": ["$msCompile"], + "presentation": { + "reveal": "always", + "panel": "shared" + } + }, + { + "label": "Build Release ARM64", + "type": "shell", + "command": "dotnet", + "args": [ + "publish", + "-c", "Release", + "-r", "linux-arm64", + "-o", "${workspaceFolder}/output-arm64", + "--verbosity", "minimal" + ], + "group": "build", + "problemMatcher": ["$msCompile"], + "presentation": { + "reveal": "always", + "panel": "shared" + } + }, + { + "label": "Run QEMU x64", + "type": "shell", + "dependsOn": "Build x64", + "command": "qemu-system-x86_64", + "args": [ + "-M", "q35", + "-cpu", "max", + "-m", "512M", + "-serial", "stdio", + "-cdrom", "${workspaceFolder}/output-x64/RemSox.iso", + "-vga", "std", + "-no-reboot", + "-no-shutdown" + ], + "problemMatcher": [], + "presentation": { + "reveal": "always", + "panel": "dedicated" + } + }, + { + "label": "Run QEMU ARM64", + "type": "shell", + "dependsOn": "Build ARM64", + "command": "qemu-system-aarch64", + "args": [ + "-M", "virt", + "-cpu", "cortex-a72", + "-m", "1G", + "-bios", "/usr/share/AAVMF/AAVMF_CODE.fd", + "-drive", "if=none,id=cd,file=${workspaceFolder}/output-arm64/RemSox.iso", + "-device", "virtio-scsi-pci", + "-device", "scsi-cd,drive=cd,bootindex=0", + "-device", "virtio-keyboard-device", + "-device", "ramfb", + "-serial", "stdio" + ], + "problemMatcher": [], + "presentation": { + "reveal": "always", + "panel": "dedicated" + } + }, + { + "label": "Debug QEMU x64", + "dependsOn": "Build x64", + "dependsOrder": "sequence", + "type": "shell", + "command": "bash", + "args": [ + "-c", + "qemu-system-x86_64 -M q35 -cpu max -m 512M -serial stdio -cdrom ${workspaceFolder}/output-x64/RemSox.iso -vga std -s -S -no-reboot -no-shutdown & sleep 1 && echo QEMU-DEBUG-READY && wait" + ], + "isBackground": true, + "problemMatcher": { + "owner": "qemu-debug", + "fileLocation": ["relative", "${workspaceFolder}"], + "background": { + "activeOnStart": true, + "beginsPattern": "^qemu", + "endsPattern": "QEMU-DEBUG-READY" + }, + "pattern": { "regexp": ".*" } + }, + "presentation": { + "reveal": "always", + "panel": "dedicated" + } + }, + { + "label": "Debug QEMU ARM64", + "dependsOn": "Build ARM64", + "dependsOrder": "sequence", + "type": "shell", + "command": "bash", + "args": [ + "-c", + "qemu-system-aarch64 -M virt -cpu cortex-a72 -m 1G -bios /usr/share/AAVMF/AAVMF_CODE.fd -drive if=none,id=cd,file=${workspaceFolder}/output-arm64/RemSox.iso -device virtio-scsi-pci -device scsi-cd,drive=cd,bootindex=0 -device virtio-keyboard-device -device ramfb -serial stdio -s -S & sleep 1 && echo QEMU-ARM64-DEBUG-READY && wait" + ], + "isBackground": true, + "problemMatcher": { + "owner": "qemu-arm64-debug", + "fileLocation": ["relative", "${workspaceFolder}"], + "background": { + "activeOnStart": true, + "beginsPattern": "^qemu", + "endsPattern": "QEMU-ARM64-DEBUG-READY" + }, + "pattern": { "regexp": ".*" } + }, + "presentation": { + "reveal": "always", + "panel": "dedicated" + } + }, + { + "label": "Stop QEMU x64", + "type": "shell", + "command": "pkill", + "args": ["-f", "qemu-system-x86_64.*RemSox"], + "problemMatcher": [], + "presentation": { + "reveal": "never" + } + }, + { + "label": "Stop QEMU ARM64", + "type": "shell", + "command": "pkill", + "args": ["-f", "qemu-system-aarch64.*RemSox"], + "problemMatcher": [], + "presentation": { + "reveal": "never" + } + }, + { + "label": "Check Tools", + "type": "shell", + "command": "cosmos", + "args": ["check"], + "problemMatcher": [], + "presentation": { + "reveal": "always", + "panel": "shared" + } + }, + { + "label": "Clean Build", + "type": "shell", + "command": "rm", + "args": ["-rf", "${workspaceFolder}/output-x64", "${workspaceFolder}/output-arm64", "${workspaceFolder}/bin", "${workspaceFolder}/obj"], + "problemMatcher": [], + "presentation": { + "reveal": "silent" + } + } + ] +} diff --git a/BcAesCrypto.cs b/BcAesCrypto.cs new file mode 100644 index 0000000..f01d09c --- /dev/null +++ b/BcAesCrypto.cs @@ -0,0 +1,108 @@ +using System; +using System.Security.Cryptography; +using System.Text; +using Org.BouncyCastle.Crypto; +using Org.BouncyCastle.Crypto.Digests; +using Org.BouncyCastle.Crypto.Engines; +using Org.BouncyCastle.Crypto.Generators; +using Org.BouncyCastle.Crypto.Modes; +using Org.BouncyCastle.Crypto.Parameters; + +public static class BcAesCrypto +{ + private const int KeySize = 32; // 256-bit AES + private const int SaltSize = 16; // 128-bit salt + private const int NonceSize = 12; // GCM standard + private const int TagSize = 128; // authentication tag (bits) + private const int Iterations = 150_000; // PBKDF2 cost factor + + // ----------------------------- + // PBKDF2 Key Derivation + // ----------------------------- + private static byte[] DeriveKey(string password, byte[] salt) + { + var generator = new Pkcs5S2ParametersGenerator(new Sha256Digest()); + + generator.Init( + PbeParametersGenerator.Pkcs5PasswordToBytes(password.ToCharArray()), + salt, + Iterations + ); + + var keyParam = (KeyParameter)generator.GenerateDerivedMacParameters(KeySize * 8); + return keyParam.GetKey(); + } + + // ----------------------------- + // Encrypt + // ----------------------------- + public static string Encrypt(string plainText, string password) + { + byte[] salt = new byte[SaltSize]; + RandomNumberGenerator.Fill(salt); + + byte[] key = DeriveKey(password, salt); + + byte[] nonce = new byte[NonceSize]; + RandomNumberGenerator.Fill(nonce); + + var cipher = new GcmBlockCipher(new AesEngine()); + + cipher.Init(true, new AeadParameters( + new KeyParameter(key), + TagSize, + nonce + )); + + byte[] input = Encoding.UTF8.GetBytes(plainText); + byte[] output = new byte[cipher.GetOutputSize(input.Length)]; + + int len = cipher.ProcessBytes(input, 0, input.Length, output, 0); + cipher.DoFinal(output, len); + + // Combine: salt + nonce + ciphertext + byte[] result = new byte[salt.Length + nonce.Length + output.Length]; + + Buffer.BlockCopy(salt, 0, result, 0, salt.Length); + Buffer.BlockCopy(nonce, 0, result, salt.Length, nonce.Length); + Buffer.BlockCopy(output, 0, result, salt.Length + nonce.Length, output.Length); + + return Convert.ToBase64String(result); + } + + // ----------------------------- + // Decrypt + // ----------------------------- + public static string Decrypt(string cipherText, string password) + { + byte[] data = Convert.FromBase64String(cipherText); + + byte[] salt = new byte[SaltSize]; + byte[] nonce = new byte[NonceSize]; + + Buffer.BlockCopy(data, 0, salt, 0, SaltSize); + Buffer.BlockCopy(data, SaltSize, nonce, 0, NonceSize); + + int cipherLength = data.Length - SaltSize - NonceSize; + byte[] cipherBytes = new byte[cipherLength]; + + Buffer.BlockCopy(data, SaltSize + NonceSize, cipherBytes, 0, cipherLength); + + byte[] key = DeriveKey(password, salt); + + var cipher = new GcmBlockCipher(new AesEngine()); + + cipher.Init(false, new AeadParameters( + new KeyParameter(key), + TagSize, + nonce + )); + + byte[] plain = new byte[cipher.GetOutputSize(cipherBytes.Length)]; + + int len = cipher.ProcessBytes(cipherBytes, 0, cipherBytes.Length, plain, 0); + cipher.DoFinal(plain, len); + + return Encoding.UTF8.GetString(plain); + } +} diff --git a/Bootloader/limine.conf b/Bootloader/limine.conf new file mode 100644 index 0000000..052ec3c --- /dev/null +++ b/Bootloader/limine.conf @@ -0,0 +1,10 @@ +# Timeout in seconds that Limine will use before automatically booting. +timeout: 0 + +# The entry name that will be displayed in the boot menu. +/RemSox + # We use the Limine boot protocol. + protocol: limine + + # Path to the kernel to boot. boot():/ represents the partition on which limine.conf is located. + path: boot():/boot/RemSox.elf diff --git a/Kernel.cs b/Kernel.cs new file mode 100644 index 0000000..a1165fe --- /dev/null +++ b/Kernel.cs @@ -0,0 +1,186 @@ +global using Sys = Cosmos.Kernel.System; +using System.Diagnostics; +using System.Drawing; +using System.Runtime; +using System.Runtime.InteropServices; +using Cosmos.Build.API.Attributes; +using Cosmos.Kernel.Core; +using Cosmos.Kernel.System.Graphics; +using RemSox.Processing; +using RemSox.Processing.IPC; +using RemSox.UI.GUI.CLI; +using RemSox.UI.GUI.CLI.Commands; +using RemSox.UI.GUI.Rendering; +using RemSox.UI.GUI.Windows; + +namespace RemSox; + +/// +/// Main kernel class - inherits from Cosmos.Kernel.System.Kernel. +/// +public class Kernel : Sys.Kernel +{ + private static Window? activeDragWindow = null; + + private static Point lastPointerPosition = Point.Empty; + + private static bool wasLeftButtonDown = false; + + private static int mousePollCounter = 0; + + protected override void BeforeRun() + { + Console.WriteLine("Cosmos booted successfully!"); + Console.WriteLine("Type a command to get it executed."); + + WindowManager.AddRenderSource(new CanvasRenderSource()); + + CommandManager.RegisterCommands(new ICommand[] + { + new HelpCommand(), + new ClearCommand(), + new HaltCommand(), + new SpawnTestProcessCommand(), + new ListProcessesCommand(), + new StopProcessCommand() + }); + + Sys.Mouse.MouseManager.Initialize(); + Sys.Keyboard.KeyboardManager.Initialize(); + + ProcessManager.SpawnProcess(); + + Console.WriteLine(CosmosFeatures.MouseEnabled); + Console.WriteLine(CosmosFeatures.KeyboardEnabled); + Console.WriteLine($"Canvas size: {FullScreenCanvas.GetFullScreenCanvas().Mode.Width}x{FullScreenCanvas.GetFullScreenCanvas().Mode.Height}"); + } + + protected override void Run() + { + WindowInputTick(); + return; + + Console.Write("> "); + + string? input = Console.ReadLine(); + + if (string.IsNullOrEmpty(input)) + { + return; + } + + if (CommandManager.TryExecute(input)) + { + return; + } + + Console.WriteLine($"\"{input}\" is not a command"); + } + + private static void WindowInputTick() + { + mousePollCounter++; + Sys.Mouse.MouseManager.Poll(); + + Point pointerPosition = new(Sys.Mouse.MouseManager.X, Sys.Mouse.MouseManager.Y); + bool leftButtonDown = Sys.Mouse.MouseManager.LeftButton; + + // Draw Cursor + + if (pointerPosition.X != lastPointerPosition.X || pointerPosition.Y != lastPointerPosition.Y) + { + Canvas canvas = FullScreenCanvas.GetFullScreenCanvas(); + canvas.DrawFilledCircle(Color.White, pointerPosition.X, pointerPosition.Y, 5); + canvas.Display(); + } + + lastPointerPosition = pointerPosition; + + if (leftButtonDown && !wasLeftButtonDown) + { + activeDragWindow = TryBeginDrag(pointerPosition); + } + else if (leftButtonDown && activeDragWindow is not null) + { + activeDragWindow.DragTo(pointerPosition); + } + else if (!leftButtonDown && activeDragWindow is not null) + { + activeDragWindow.EndDrag(); + activeDragWindow = null; + } + + wasLeftButtonDown = leftButtonDown; + } + + private static Window? TryBeginDrag(Point pointerPosition) + { + foreach (Processing.Process process in ProcessManager.GetAllProcesses()) + { + List windows = WindowManager.GetWindowsForProcess(process); + + for (int index = windows.Count - 1; index >= 0; index--) + { + Window window = windows[index]; + + if (window.TryBeginDrag(pointerPosition)) + { + return window; + } + } + } + + return null; + } +} + +public class TestProcess() : Processing.Process("Test Process") +{ + internal override void Run() + { + Window window = WindowManager.CreateWindow(this, "Test Window", Point.Empty, new Size(200, 150)); + window.AutoFlush = true; + + var circle = window.CreateUIElement(rect => + { + rect.Position = new Point(10, 10); + rect.Radius = 50; + rect.Color = Color.Red; + }); + + circle.Radius = 40; + + SendMessageToAllProcesses(new TestMessage { SenderProcessId = Id }); + + while (!StopRequested) + { + Thread.Sleep(1000); + } + } + + internal override void HandleInterProcessMessage(Message message) + { + if (message is TestMessage testMessage && message.SenderProcessId != Id) + { + Console.WriteLine($"Received message in {Name} (ID: {Id}): {testMessage.MessageText}"); + } + } +} + +internal class TestMessage : Message +{ + public string MessageText { get; set; } = "Hello from TestMessage!"; +} + +public static unsafe partial class StartupCodeHelpers +{ + [RuntimeExport("fmod")] + public static double fmod(double x, double y) + { + if (Math.Abs(y) < double.Epsilon) + return double.NaN; + + double q = Math.Truncate(x / y); + return x - q * y; + } +} \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e62ec04 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000..95e879e --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + diff --git a/Plugs/RandomNumberGeneratorImplementationPlug.cs b/Plugs/RandomNumberGeneratorImplementationPlug.cs new file mode 100644 index 0000000..8f7ca13 --- /dev/null +++ b/Plugs/RandomNumberGeneratorImplementationPlug.cs @@ -0,0 +1,317 @@ +using System; +using Cosmos.Build.API.Attributes; + +namespace MyKernel.Plugs; + +[Plug("System.Security.Cryptography.RandomNumberGeneratorImplementation")] +public static unsafe class RandomNumberGeneratorImplementationImpl +{ + // ========================================================= + // SECURITY NOTE + // ========================================================= + // This implementation uses ChaCha20 as its core stream cipher, + // which is cryptographically sound. However, the initial seed + // quality at boot is LIMITED without hardware entropy sources + // (RDTSC / RDRAND). Security improves substantially once + // AddMouseEntropy / AddKeyboardEntropy have been called with + // real hardware event timing. Do not use this for high-value + // key generation before sufficient entropy has been collected. + // + // To reach true CSPRNG quality, add assembly plugs for: + // - RDTSC (real CPU cycle counter) + // - RDRAND (hardware RNG, Intel/AMD, post-2012) + // and call them from ReadTSC() and EnsureInitialized(). + // ========================================================= + + // ========================================================= + // ChaCha20 state + // ========================================================= + private static uint[] key = new uint[8]; + private static uint[] counter = new uint[4]; + private static uint[] state = new uint[16]; + + // ========================================================= + // entropy pool + // ========================================================= + private static ulong e0, e1, e2, e3; + private static int entropyCounter; + private static bool initialized = false; + + // ========================================================= + // ChaCha constants ("expand 32-byte k") + // ========================================================= + private static readonly uint[] constants = + { + 0x61707865, 0x3320646E, 0x79622D32, 0x6B206574 + }; + + // ========================================================= + // rotate left + // ========================================================= + private static uint RotL(uint x, int n) + { + return (x << n) | (x >> (32 - n)); + } + + // ========================================================= + // ChaCha quarter round + // ========================================================= + private static void QR(ref uint a, ref uint b, ref uint c, ref uint d) + { + a += b; d ^= a; d = RotL(d, 16); + c += d; b ^= c; b = RotL(b, 12); + a += b; d ^= a; d = RotL(d, 8); + c += d; b ^= c; b = RotL(b, 7); + } + + // ========================================================= + // ChaCha20 block + // ========================================================= + private static void ChaChaBlock(uint[] output) + { + uint[] x = new uint[16]; + + for (int i = 0; i < 4; i++) x[i] = constants[i]; + for (int i = 0; i < 8; i++) x[4 + i] = key[i]; + for (int i = 0; i < 4; i++) x[12 + i] = counter[i]; + for (int i = 0; i < 16; i++) state[i] = x[i]; + + for (int i = 0; i < 10; i++) + { + QR(ref x[0], ref x[4], ref x[8], ref x[12]); + QR(ref x[1], ref x[5], ref x[9], ref x[13]); + QR(ref x[2], ref x[6], ref x[10], ref x[14]); + QR(ref x[3], ref x[7], ref x[11], ref x[15]); + + QR(ref x[0], ref x[5], ref x[10], ref x[15]); + QR(ref x[1], ref x[6], ref x[11], ref x[12]); + QR(ref x[2], ref x[7], ref x[8], ref x[13]); + QR(ref x[3], ref x[4], ref x[9], ref x[14]); + } + + for (int i = 0; i < 16; i++) + output[i] = x[i] + state[i]; + + counter[0]++; + if (counter[0] == 0) + { + counter[1]++; + if (counter[1] == 0) + { + counter[2]++; + if (counter[2] == 0) counter[3]++; + } + } + } + + // ========================================================= + // FIX: stronger Mix() using a multiplier with good avalanche. + // The previous shift-only chain was reversible with linear + // algebra. Multiplying by a prime scrambles bits non-linearly. + // Using the 64-bit Fibonacci hashing constant (knuth / splitmix64). + // ========================================================= + private static void Mix(ulong v) + { + e0 ^= v; + e0 *= 0x9E3779B97F4A7C15UL; // Fibonacci hash, full avalanche + e1 ^= e0 ^ (e0 >> 30); + e1 *= 0xBF58476D1CE4E5B9UL; + e2 ^= e1 ^ (e1 >> 27); + e2 *= 0x94D049BB133111EBUL; + e3 ^= e2 ^ (e2 >> 31); + } + + private static void Reseed() + { + key[0] ^= (uint)e0; key[1] ^= (uint)(e0 >> 32); + key[2] ^= (uint)e1; key[3] ^= (uint)(e1 >> 32); + key[4] ^= (uint)e2; key[5] ^= (uint)(e2 >> 32); + key[6] ^= (uint)e3; key[7] ^= (uint)(e3 >> 32); + + counter[0] ^= (uint)(e0 >> 16); + counter[1] ^= (uint)(e1 >> 16); + counter[2] ^= (uint)(e2 >> 16); + counter[3] ^= (uint)(e3 >> 16); + + // wipe pool after folding + e0 = 0; e1 = 0; e2 = 0; e3 = 0; + + // invalidate output buffer so new key takes effect immediately + bufferIndex = 16; + } + + private static void MaybeReseed() + { + if (++entropyCounter % 64 == 0) + Reseed(); + } + + // ========================================================= + // ReadTSC() — HONEST fallback + // + // Without an assembly plug for RDTSC this cannot provide real + // sub-millisecond jitter. The previous spin-loop was removed + // because it was deterministic and added no real entropy. + // + // Replace the body of this method with an RDTSC assembly plug + // and this becomes a real entropy source: + // + // [PlugMethod(assemblyName: "...", methodLabel: "rdtsc")] + // public static extern ulong NativeRdtsc(); + // + // Until then, TickCount is used honestly at its actual resolution. + // ========================================================= + private static ulong ReadTSC() + { + return (ulong)Environment.TickCount; + } + + // ========================================================= + // Initial seed + // + // Mixes the best available non-hardware sources. This is weak + // at boot but not zero. Security depends heavily on the first + // real entropy events (mouse/keyboard) arriving quickly. + // ========================================================= + private static void EnsureInitialized() + { + if (initialized) return; + initialized = true; + + // Compile-time build nonce — gives a different stream per + // build even if all runtime sources are identical. + // IMPORTANT: regenerate this value for each release build. + const ulong BUILD_NONCE = 0xDEADBEEFCAFEBABEUL; + + // Heap pointer: weak in Cosmos (sequential allocator) but + // still varies across hardware configs and VM setups. + ulong heapBits; + fixed (byte* p = new byte[1]) + heapBits = (ulong)p; + + Mix(BUILD_NONCE); + Mix(ReadTSC()); + Mix(heapBits); + Mix(ReadTSC() ^ (heapBits << 17)); // second sample + + Reseed(); + } + + // ========================================================= + // Thread safety + // ========================================================= + private static readonly Lock _lock = new(); + + // ========================================================= + // ChaCha output buffer + // ========================================================= + private static uint[] buffer = new uint[16]; + private static int bufferIndex = 16; + + private static uint NextUInt32() + { + EnsureInitialized(); + + if (bufferIndex >= 16) + { + ChaChaBlock(buffer); + bufferIndex = 0; + + // Backtracking resistance: ratchet the key forward by XORing + // it with the first 8 words of the fresh keystream. + // + // XOR rather than replace: assignment would discard all entropy + // accumulated via AddMouseEntropy / AddKeyboardEntropy, since + // those fold into key[] via Reseed(). XOR preserves that entropy + // while still making the new key unpredictable from the old one. + // + // We then regenerate the block so the 8 words used for ratcheting + // are never returned to the caller as output. + key[0] ^= buffer[0]; + key[1] ^= buffer[1]; + key[2] ^= buffer[2]; + key[3] ^= buffer[3]; + key[4] ^= buffer[4]; + key[5] ^= buffer[5]; + key[6] ^= buffer[6]; + key[7] ^= buffer[7]; + + ChaChaBlock(buffer); + } + + return buffer[bufferIndex++]; + } + + // Use all 4 bytes of each uint + private static int byteShift = 0; + private static uint byteWord = 0; + + private static byte NextByte() + { + if (byteShift == 0) + { + byteWord = NextUInt32(); + byteShift = 32; + } + + byteShift -= 8; + return (byte)(byteWord >> byteShift); + } + + // ========================================================= + // ENTROPY INPUTS + // ========================================================= + + public static void AddMouseEntropy(int dx, int dy, int dz, int x, int y) + { + ulong tsc = ReadTSC(); + + lock (_lock) + { + Mix((ulong)dx); + Mix((ulong)dy); + Mix((ulong)dz); + Mix((ulong)x ^ ((ulong)y << 32)); + Mix(tsc); + MaybeReseed(); + } + } + + public static void AddKeyboardEntropy(uint scanCode, uint flags, char keyChar) + { + ulong tsc = ReadTSC(); + + lock (_lock) + { + Mix(scanCode); + Mix(flags); + Mix((ulong)keyChar); + Mix(tsc); + MaybeReseed(); + } + } + + // ========================================================= + // PUBLIC API + // ========================================================= + + [PlugMember] + public static void FillSpan(Span data) + { + lock (_lock) + { + for (int i = 0; i < data.Length; i++) + data[i] = NextByte(); + } + } + + [PlugMember] + public static void GetBytes(byte* bufferPtr, int count) + { + lock (_lock) + { + for (int i = 0; i < count; i++) + bufferPtr[i] = NextByte(); + } + } +} \ No newline at end of file diff --git a/Processing/IPC/InterProcessCommunicator.cs b/Processing/IPC/InterProcessCommunicator.cs new file mode 100644 index 0000000..d9bcc90 --- /dev/null +++ b/Processing/IPC/InterProcessCommunicator.cs @@ -0,0 +1,23 @@ +using System; +using RemSox.Processing; + +namespace RemSox.Processing.IPC; + +internal static class InterProcessCommunicator +{ + public static void Send(int targetProcessId, Message message, Process sender) + { + message.SenderProcessId = sender.Id; // automatically set + ProcessManager.GetProcess(targetProcessId)?.HandleInterProcessMessage(message); + } + + public static void SendToAll(Message message, Process sender) + { + message.SenderProcessId = sender.Id; // automatically set + + foreach (var process in ProcessManager.GetAllProcesses()) + { + process.HandleInterProcessMessage(message); + } + } +} diff --git a/Processing/IPC/Message.cs b/Processing/IPC/Message.cs new file mode 100644 index 0000000..0a6ec5c --- /dev/null +++ b/Processing/IPC/Message.cs @@ -0,0 +1,8 @@ +using System; + +namespace RemSox.Processing.IPC; + +public abstract class Message +{ + public int SenderProcessId { get; internal set; } +} diff --git a/Processing/Process.cs b/Processing/Process.cs new file mode 100644 index 0000000..114481d --- /dev/null +++ b/Processing/Process.cs @@ -0,0 +1,34 @@ +using System; +using RemSox.Processing.IPC; + +namespace RemSox.Processing; + +public abstract class Process(string name) +{ + public int Id { get; init; } + + public string Name { get; set; } = name; + + public bool StopRequested { get; private set; } = false; + + internal abstract void Run(); + + internal virtual void HandleInterProcessMessage(Message message) + { + } + + protected void SendMessageToProcess(int targetProcessId, Message message) + { + InterProcessCommunicator.Send(targetProcessId, message, this); + } + + protected void SendMessageToAllProcesses(Message message) + { + InterProcessCommunicator.SendToAll(message, this); + } + + internal void RequestStop() + { + StopRequested = true; + } +} diff --git a/Processing/ProcessManager.cs b/Processing/ProcessManager.cs new file mode 100644 index 0000000..d36b897 --- /dev/null +++ b/Processing/ProcessManager.cs @@ -0,0 +1,83 @@ +using System; + +namespace RemSox.Processing; + +public static class ProcessManager +{ + private static readonly Dictionary processes = []; + + private static int nextProcessId = 0; + + public static int SpawnProcess() where T : Process, new() + { + int id = GetNextProcessId(); + + T process = new() + { + Id = id + }; + + Thread thread = new(process.Run); + + processes.Add(id, (process, thread)); + + thread.Start(); + + return id; + } + + public static void StopProcess(int processId) + { + if (!processes.TryGetValue(processId, out var entry)) + return; + + entry.Process.RequestStop(); + + processes.Remove(processId); + } + + public static void StopAllProcesses() + { + foreach (var entry in processes.Values) + { + entry.Process.RequestStop(); + } + + processes.Clear(); + } + + public static Process? GetProcess(int processId) + { + if (processes.TryGetValue(processId, out var entry)) + { + return entry.Process; + } + + return null; + } + + public static IEnumerable GetAllProcesses() + { + foreach (var entry in processes.Values) + { + yield return entry.Process; + } + } + + public static bool TryGetProcess(int processId, out Process? process) + { + if (processes.TryGetValue(processId, out var entry)) + { + process = entry.Process; + return true; + } + + process = null; + return false; + } + + private static int GetNextProcessId() + { + return nextProcessId++; + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..123506a --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# RemSox + diff --git a/RemSox.csproj b/RemSox.csproj new file mode 100644 index 0000000..f703b67 --- /dev/null +++ b/RemSox.csproj @@ -0,0 +1,82 @@ + + + Exe + net10.0 + + + + + + + + + + + + + + + + + + + + + + t.FullName == "Interop"); + var sys = interop?.NestedTypes.FirstOrDefault(t => t.Name == "Sys"); + var method = sys?.Methods.FirstOrDefault(m => + m.Name == "GetCryptographicallySecureRandomBytes" && + m.ReturnType.MetadataType == MetadataType.Int32 && + m.Parameters.Count == 2); + + if (method is null) + { + Log.LogError("Could not find Interop/Sys.GetCryptographicallySecureRandomBytes(Byte*, Int32)."); + return false; + } + + var nonSecureMethod = method.Module.ImportReference( + sys.Methods.First(m => + m.Name == "GetNonCryptographicallySecureRandomBytes" && + m.Parameters.Count == 2)); + + method.Body.Variables.Clear(); + method.Body.ExceptionHandlers.Clear(); + method.Body.Instructions.Clear(); + + var il = method.Body.GetILProcessor(); + il.Append(il.Create(OpCodes.Ldarg_0)); + il.Append(il.Create(OpCodes.Ldarg_1)); + il.Append(il.Create(OpCodes.Call, nonSecureMethod)); + il.Append(il.Create(OpCodes.Ldc_I4_0)); + il.Append(il.Create(OpCodes.Ret)); + + assembly.Write(); + Log.LogMessage(MessageImportance.High, "Patched Interop/Sys.GetCryptographicallySecureRandomBytes return IL for NativeAOT."); + return true; + ]]> + + + + + + + + diff --git a/UI/CLI/CommandManager.cs b/UI/CLI/CommandManager.cs new file mode 100644 index 0000000..36b5dcf --- /dev/null +++ b/UI/CLI/CommandManager.cs @@ -0,0 +1,60 @@ +using System; + +namespace RemSox.UI.GUI.CLI; + +public static class CommandManager +{ + private static readonly Dictionary commands = new(StringComparer.OrdinalIgnoreCase); + + public static void RegisterCommand(ICommand command) + { + commands[command.Name] = command; + } + + public static void RegisterCommands(IEnumerable commandsToRegister) + { + foreach (ICommand command in commandsToRegister) + { + RegisterCommand(command); + } + } + + public static IEnumerable GetCommands() + { + return commands.Values.OrderBy(command => command.Name); + } + + public static bool TryExecute(string input) + { + string trimmedInput = input.Trim(); + + if (trimmedInput.Length == 0) + { + return false; + } + + foreach (KeyValuePair entry in commands + .OrderByDescending(entry => entry.Key.Length)) + { + string commandName = entry.Key; + + if (!trimmedInput.Equals(commandName, StringComparison.OrdinalIgnoreCase) && + !trimmedInput.StartsWith(commandName + " ", StringComparison.OrdinalIgnoreCase)) + { + continue; + } + + string? arguments = null; + + if (trimmedInput.Length > commandName.Length) + { + arguments = trimmedInput.Substring(commandName.Length).TrimStart(); + } + + entry.Value.Execute(arguments); + return true; + } + + return false; + } +} \ No newline at end of file diff --git a/UI/CLI/Commands/ClearCommand.cs b/UI/CLI/Commands/ClearCommand.cs new file mode 100644 index 0000000..d07ff9d --- /dev/null +++ b/UI/CLI/Commands/ClearCommand.cs @@ -0,0 +1,15 @@ +using System; + +namespace RemSox.UI.GUI.CLI.Commands; + +public sealed class ClearCommand : ICommand +{ + public string Name => "clear"; + + public string Description => "Clear the screen"; + + public void Execute(string? arguments) + { + Console.Clear(); + } +} \ No newline at end of file diff --git a/UI/CLI/Commands/HaltCommand.cs b/UI/CLI/Commands/HaltCommand.cs new file mode 100644 index 0000000..9c6258e --- /dev/null +++ b/UI/CLI/Commands/HaltCommand.cs @@ -0,0 +1,16 @@ +using System; + +namespace RemSox.UI.GUI.CLI.Commands; + +public sealed class HaltCommand : ICommand +{ + public string Name => "halt"; + + public string Description => "Halt the system"; + + public void Execute(string? arguments) + { + Console.WriteLine("Halting system..."); + Environment.Exit(0); + } +} \ No newline at end of file diff --git a/UI/CLI/Commands/HelpCommand.cs b/UI/CLI/Commands/HelpCommand.cs new file mode 100644 index 0000000..01e07e9 --- /dev/null +++ b/UI/CLI/Commands/HelpCommand.cs @@ -0,0 +1,20 @@ +using System; + +namespace RemSox.UI.GUI.CLI.Commands; + +public sealed class HelpCommand : ICommand +{ + public string Name => "help"; + + public string Description => "Show this help message"; + + public void Execute(string? arguments) + { + Console.WriteLine("Available commands:"); + + foreach (ICommand command in CommandManager.GetCommands()) + { + Console.WriteLine($" {command.Name,-12} - {command.Description}"); + } + } +} \ No newline at end of file diff --git a/UI/CLI/Commands/ProcessCommands.cs b/UI/CLI/Commands/ProcessCommands.cs new file mode 100644 index 0000000..59944c3 --- /dev/null +++ b/UI/CLI/Commands/ProcessCommands.cs @@ -0,0 +1,63 @@ +using System; +using RemSox.Processing; + +namespace RemSox.UI.GUI.CLI.Commands; + +public sealed class SpawnTestProcessCommand : ICommand +{ + public string Name => "spawn test"; + + public string Description => "Spawn the test process"; + + public void Execute(string? arguments) + { + int processId = ProcessManager.SpawnProcess(); + Console.WriteLine($"Spawned TestProcess with ID {processId}"); + } +} + +public sealed class ListProcessesCommand : ICommand +{ + public string Name => "ps"; + + public string Description => "List running processes"; + + public void Execute(string? arguments) + { + IEnumerable processes = ProcessManager.GetAllProcesses(); + + Console.WriteLine("Running processes:"); + + foreach (Process process in processes) + { + Console.WriteLine($" ID: {process.Id}, Name: {process.Name}"); + } + } +} + +public sealed class StopProcessCommand : ICommand +{ + public string Name => "stop"; + + public string Description => "Stop a process by ID"; + + public void Execute(string? arguments) + { + string? idText = arguments; + + if (string.IsNullOrWhiteSpace(idText)) + { + Console.WriteLine("Usage: stop "); + return; + } + + if (int.TryParse(idText, out int processId)) + { + ProcessManager.StopProcess(processId); + Console.WriteLine($"Stopped process with ID {processId}"); + return; + } + + Console.WriteLine("Invalid process ID"); + } +} \ No newline at end of file diff --git a/UI/CLI/ICommand.cs b/UI/CLI/ICommand.cs new file mode 100644 index 0000000..217f883 --- /dev/null +++ b/UI/CLI/ICommand.cs @@ -0,0 +1,10 @@ +namespace RemSox.UI.GUI.CLI; + +public interface ICommand +{ + string Name { get; } + + string Description { get; } + + void Execute(string? arguments); +} diff --git a/UI/GUI/Rendering/CanvasRenderSource.cs b/UI/GUI/Rendering/CanvasRenderSource.cs new file mode 100644 index 0000000..383b99a --- /dev/null +++ b/UI/GUI/Rendering/CanvasRenderSource.cs @@ -0,0 +1,65 @@ +using System; +using System.Drawing; +using Cosmos.Kernel.System.Graphics; + +namespace RemSox.UI.GUI.Rendering; + +public sealed class CanvasRenderSource : IRenderSource +{ + public void Render(IEnumerable commands) + { + Canvas canvas = FullScreenCanvas.GetFullScreenCanvas(); + + foreach (RenderCommand command in commands) + { + if (command.ElementType == "Window") + { + RenderWindow(canvas, command); + continue; + } + + if (command.ElementType == "Circle") + { + RenderCircle(canvas, command); + } + } + } + + private static void RenderWindow(Canvas canvas, RenderCommand command) + { + int x = command.Position.X; + int y = command.Position.Y; + + Size size = command.Properties.TryGetValue(nameof(Size), out object? rawSize) && rawSize is Size windowSize + ? windowSize + : new Size(160, 120); + + bool isFocused = command.Properties.TryGetValue(nameof(Windows.Window.IsFocused), out object? rawFocused) && rawFocused is bool focused && focused; + + Color borderColor = isFocused ? Color.White : Color.DarkGray; + Color bodyColor = Color.FromArgb(32, 32, 32); + Color titleColor = isFocused ? Color.FromArgb(0, 120, 215) : Color.FromArgb(80, 80, 80); + + canvas.DrawFilledRectangle(bodyColor, x, y, size.Width, size.Height); + canvas.DrawFilledRectangle(titleColor, x, y, size.Width, 18); + canvas.DrawRectangle(borderColor, x, y, size.Width, size.Height); + } + + private static void RenderCircle(Canvas canvas, RenderCommand command) + { + Color color = command.Properties.TryGetValue(nameof(Color), out object? rawColor) && rawColor is Color circleColor + ? circleColor + : Color.White; + + int radius = command.Properties.TryGetValue(nameof(Radius), out object? rawRadius) && rawRadius is int circleRadius + ? circleRadius + : 10; + + int centerX = command.Position.X + radius; + int centerY = command.Position.Y + radius; + + canvas.DrawFilledCircle(color, centerX, centerY, radius); + } + + private static string Radius => nameof(Radius); +} \ No newline at end of file diff --git a/UI/GUI/Rendering/IRenderSource.cs b/UI/GUI/Rendering/IRenderSource.cs new file mode 100644 index 0000000..408416f --- /dev/null +++ b/UI/GUI/Rendering/IRenderSource.cs @@ -0,0 +1,6 @@ +namespace RemSox.UI.GUI.Rendering; + +public interface IRenderSource +{ + public void Render(IEnumerable commands); +} \ No newline at end of file diff --git a/UI/GUI/Rendering/RenderCommand.cs b/UI/GUI/Rendering/RenderCommand.cs new file mode 100644 index 0000000..68b3278 --- /dev/null +++ b/UI/GUI/Rendering/RenderCommand.cs @@ -0,0 +1,12 @@ +using System; +using System.Drawing; + +namespace RemSox.UI.GUI.Rendering; + +public class RenderCommand +{ + public required int ElementId { get; set; } + public required string ElementType { get; set; } + public required Point Position { get; set; } + public required IReadOnlyDictionary Properties { get; set; } +} \ No newline at end of file diff --git a/UI/GUI/UIEelements/Control.cs b/UI/GUI/UIEelements/Control.cs new file mode 100644 index 0000000..f6cfb3d --- /dev/null +++ b/UI/GUI/UIEelements/Control.cs @@ -0,0 +1,19 @@ +using System; +using System.Drawing; + +namespace RemSox.UI.GUI.UIEelements; + +public abstract class Control(string type) : UIElement(type) +{ + public Color BackgroundColor + { + get; + set => SetProperty(nameof(BackgroundColor), ref field, value); + } = Color.LightGray; + + public Size Size + { + get; + set => SetProperty(nameof(Size), ref field, value); + } +} diff --git a/UI/GUI/UIEelements/Shape.cs b/UI/GUI/UIEelements/Shape.cs new file mode 100644 index 0000000..a85e6f7 --- /dev/null +++ b/UI/GUI/UIEelements/Shape.cs @@ -0,0 +1,12 @@ +using System.Drawing; + +namespace RemSox.UI.GUI.UIEelements; + +public abstract class Shape(string type) : UIElement(type) +{ + public Color Color + { + get; + set => SetProperty(nameof(Color), ref field, value); + } +} \ No newline at end of file diff --git a/UI/GUI/UIEelements/Shapes/Circle.cs b/UI/GUI/UIEelements/Shapes/Circle.cs new file mode 100644 index 0000000..cc8fabd --- /dev/null +++ b/UI/GUI/UIEelements/Shapes/Circle.cs @@ -0,0 +1,12 @@ +using System.Drawing; + +namespace RemSox.UI.GUI.UIEelements.Shapes; + +public class Circle() : Shape("Circle") +{ + public int Radius + { + get; + set => SetProperty(nameof(Radius), ref field, value); + } +} \ No newline at end of file diff --git a/UI/GUI/UIEelements/UIEelement.cs b/UI/GUI/UIEelements/UIEelement.cs new file mode 100644 index 0000000..1333f6c --- /dev/null +++ b/UI/GUI/UIEelements/UIEelement.cs @@ -0,0 +1,19 @@ +namespace RemSox.UI.GUI.UIEelements; + +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using RemSox.Utils; + +public abstract class UIElement(string type) : ChangedPropertiesTracker +{ + public int Id { get; init; } + + public string Type { get; set; } = type; + + public Point Position + { + get; + set => SetProperty(nameof(Position), ref field, value); + } +} \ No newline at end of file diff --git a/UI/GUI/Windows/Window.cs b/UI/GUI/Windows/Window.cs new file mode 100644 index 0000000..d4bef11 --- /dev/null +++ b/UI/GUI/Windows/Window.cs @@ -0,0 +1,167 @@ +using System; +using System.Drawing; +using System.Reflection; +using RemSox.UI.GUI.Rendering; +using RemSox.UI.GUI.UIEelements; + +namespace RemSox.UI.GUI.Windows; + +public sealed class Window(string title, int processId, int id, IRenderSource renderSource) +{ + public int Id { get; } = id; + + public int ProcessId { get; } = processId; + + public string Title { get; set; } = title; + + public bool AutoFlush { get; set; } = false; + + public bool IsFocused + { + get => WindowManager.IsWindowFocused(this); + set + { + WindowManager.FocusWindow(value ? this : null); + } + } + + public bool IsVisible { get; set; } = true; + + public bool IsResizable { get; set; } = true; + + public bool IsDraggable { get; set; } = true; + + public Point Position { get; set; } + + public Size Size { get; set; } + + public bool IsDragging => isDragging; + + private readonly Dictionary uiElements = []; + + private int nextUIElementId = 1; + + private bool isDragging; + + private Point dragOffset; + + public T CreateUIElement(Action? options = null) where T : UIElement, new() + { + int uiElementId = GetNextUIElementId(); + + T uiElement = new() + { + Id = uiElementId + }; + + options?.Invoke(uiElement); + + uiElement.PropertyChanged += (sender, args) => + { + if (AutoFlush) + { + Flush(); + } + }; + + if (AutoFlush) + { + Flush(); + } + + uiElements.Add(uiElementId, uiElement); + + return uiElement; + } + + public void Flush() + { + List commands = []; + + if (IsVisible) + { + commands.Add(new RenderCommand + { + ElementId = Id, + ElementType = "Window", + Position = Position, + Properties = new Dictionary + { + [nameof(Title)] = Title, + [nameof(Size)] = Size, + [nameof(IsFocused)] = IsFocused, + [nameof(IsResizable)] = IsResizable, + [nameof(IsDraggable)] = IsDraggable + } + }); + } + + foreach (UIElement element in uiElements.Values) + { + if (element.AnyPropertyChanged) + { + IReadOnlyDictionary changes = element.ChangedProperties; + + commands.Add(new RenderCommand + { + ElementId = element.Id, + ElementType = element.Type, + Position = element.Position, + Properties = changes + }); + + element.ClearChangedProperties(); + } + } + + if (commands.Count > 0) + { + renderSource.Render(commands); + } + } + + public bool TryBeginDrag(Point pointerPosition) + { + if (!IsVisible || !IsDraggable || !IsPointInTitleBar(pointerPosition)) + { + return false; + } + + isDragging = true; + dragOffset = new Point(pointerPosition.X - Position.X, pointerPosition.Y - Position.Y); + + WindowManager.FocusWindow(this); + + return true; + } + + public void DragTo(Point pointerPosition) + { + if (!isDragging || !IsDraggable) + { + return; + } + + Position = new Point(pointerPosition.X - dragOffset.X, pointerPosition.Y - dragOffset.Y); + + Flush(); + } + + public void EndDrag() + { + isDragging = false; + } + + private bool IsPointInTitleBar(Point pointerPosition) + { + return pointerPosition.X >= Position.X + && pointerPosition.X < Position.X + Size.Width + && pointerPosition.Y >= Position.Y + && pointerPosition.Y < Position.Y + 18; + } + + private int GetNextUIElementId() + { + return nextUIElementId++; + } +} \ No newline at end of file diff --git a/UI/GUI/Windows/WindowLayer.cs b/UI/GUI/Windows/WindowLayer.cs new file mode 100644 index 0000000..f6b7117 --- /dev/null +++ b/UI/GUI/Windows/WindowLayer.cs @@ -0,0 +1,8 @@ +namespace RemSox.UI.GUI.Windows; + +public enum WindowLayer +{ + Background, + Normal, + Foreground +} \ No newline at end of file diff --git a/UI/GUI/Windows/WindowManager.cs b/UI/GUI/Windows/WindowManager.cs new file mode 100644 index 0000000..b30c6b2 --- /dev/null +++ b/UI/GUI/Windows/WindowManager.cs @@ -0,0 +1,105 @@ +using System; +using System.Drawing; +using RemSox.Processing; +using RemSox.UI.GUI.Rendering; + +namespace RemSox.UI.GUI.Windows; + +public static class WindowManager +{ + // Process ID to list of windows + private static readonly Dictionary> windows = []; + + private static int nextWindowId = 1; + + private static Window? focusedWindow; + + private static readonly MuliRenderSource renderSource = new([]); + + public static void AddRenderSource(IRenderSource source) => renderSource.AddSource(source); + + public static void RemoveRenderSource(IRenderSource source) => renderSource.RemoveSource(source); + + public static Window CreateWindow(Process process, string title, Point position, Size size) + { + Window window = new(title, process.Id, GetNextWindowId(), renderSource) + { + Position = position, + Size = size + }; + + if (!windows.ContainsKey(process.Id)) + { + windows[process.Id] = []; + } + + windows[process.Id].Add(window); + + return window; + } + + public static void CloseWindow(Window window) + { + if (windows.TryGetValue(window.ProcessId, out var processWindows)) + { + processWindows.Remove(window); + } + } + + public static List GetWindowsForProcess(Process process) + { + if (windows.TryGetValue(process.Id, out var processWindows)) + { + return processWindows; + } + + return []; + } + + public static void CloseWindowsForProcess(Process process) + { + if (windows.ContainsKey(process.Id)) + { + windows.Remove(process.Id); + } + } + + public static void FocusWindow(Window? window) + { + if (focusedWindow == window) + { + return; + } + + Window? previousFocusedWindow = focusedWindow; + focusedWindow = window; + + previousFocusedWindow?.Flush(); + focusedWindow?.Flush(); + } + + public static bool IsWindowFocused(Window window) + { + return focusedWindow == window; + } + + private static int GetNextWindowId() + { + return nextWindowId++; + } + + sealed private class MuliRenderSource(List sources) : IRenderSource + { + public void AddSource(IRenderSource source) => sources.Add(source); + + public void RemoveSource(IRenderSource source) => sources.Remove(source); + + public void Render(IEnumerable commands) + { + foreach (IRenderSource source in sources) + { + source.Render(commands); + } + } + } +} diff --git a/Utils/ChangedPropertiesTracker.cs b/Utils/ChangedPropertiesTracker.cs new file mode 100644 index 0000000..326ad1b --- /dev/null +++ b/Utils/ChangedPropertiesTracker.cs @@ -0,0 +1,29 @@ + +using System.ComponentModel; + +namespace RemSox.Utils; + +public abstract class ChangedPropertiesTracker : INotifyPropertyChanged +{ + private readonly Dictionary changedProperties = []; + + public IReadOnlyDictionary ChangedProperties => changedProperties; + + public event PropertyChangedEventHandler? PropertyChanged; + + public bool AnyPropertyChanged => changedProperties.Count > 0; + + protected void SetProperty(string name, ref T field, T value) + { + if (!EqualityComparer.Default.Equals(field, value)) + { + field = value; + changedProperties[name] = value; + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); + } + } + + public void ClearChangedProperties() => changedProperties.Clear(); + + public bool IsPropertyChanged(string name) => changedProperties.ContainsKey(name); +} diff --git a/output-x64/BouncyCastle.Cryptography.dll b/output-x64/BouncyCastle.Cryptography.dll new file mode 100644 index 0000000..e8d3222 Binary files /dev/null and b/output-x64/BouncyCastle.Cryptography.dll differ diff --git a/output-x64/Cosmos.Build.API.dll b/output-x64/Cosmos.Build.API.dll new file mode 100644 index 0000000..7c8a47d Binary files /dev/null and b/output-x64/Cosmos.Build.API.dll differ diff --git a/output-x64/Cosmos.Build.Analyzer.Patcher.CodeFixes.dll b/output-x64/Cosmos.Build.Analyzer.Patcher.CodeFixes.dll new file mode 100644 index 0000000..223a8c9 Binary files /dev/null and b/output-x64/Cosmos.Build.Analyzer.Patcher.CodeFixes.dll differ diff --git a/output-x64/Cosmos.Build.Analyzer.Patcher.Package.dll b/output-x64/Cosmos.Build.Analyzer.Patcher.Package.dll new file mode 100644 index 0000000..729096f Binary files /dev/null and b/output-x64/Cosmos.Build.Analyzer.Patcher.Package.dll differ diff --git a/output-x64/Cosmos.Build.Analyzer.Patcher.dll b/output-x64/Cosmos.Build.Analyzer.Patcher.dll new file mode 100644 index 0000000..330dc1b Binary files /dev/null and b/output-x64/Cosmos.Build.Analyzer.Patcher.dll differ diff --git a/output-x64/Cosmos.Kernel.Boot.Limine.dll b/output-x64/Cosmos.Kernel.Boot.Limine.dll new file mode 100644 index 0000000..901c3df Binary files /dev/null and b/output-x64/Cosmos.Kernel.Boot.Limine.dll differ diff --git a/output-x64/Cosmos.Kernel.Core.X64.dll b/output-x64/Cosmos.Kernel.Core.X64.dll new file mode 100644 index 0000000..f93b4b7 Binary files /dev/null and b/output-x64/Cosmos.Kernel.Core.X64.dll differ diff --git a/output-x64/Cosmos.Kernel.Core.dll b/output-x64/Cosmos.Kernel.Core.dll new file mode 100644 index 0000000..451a9a7 Binary files /dev/null and b/output-x64/Cosmos.Kernel.Core.dll differ diff --git a/output-x64/Cosmos.Kernel.Debug.dll b/output-x64/Cosmos.Kernel.Debug.dll new file mode 100644 index 0000000..09da260 Binary files /dev/null and b/output-x64/Cosmos.Kernel.Debug.dll differ diff --git a/output-x64/Cosmos.Kernel.HAL.Interfaces.dll b/output-x64/Cosmos.Kernel.HAL.Interfaces.dll new file mode 100644 index 0000000..35b738a Binary files /dev/null and b/output-x64/Cosmos.Kernel.HAL.Interfaces.dll differ diff --git a/output-x64/Cosmos.Kernel.HAL.X64.dll b/output-x64/Cosmos.Kernel.HAL.X64.dll new file mode 100644 index 0000000..7234515 Binary files /dev/null and b/output-x64/Cosmos.Kernel.HAL.X64.dll differ diff --git a/output-x64/Cosmos.Kernel.HAL.dll b/output-x64/Cosmos.Kernel.HAL.dll new file mode 100644 index 0000000..12e5d41 Binary files /dev/null and b/output-x64/Cosmos.Kernel.HAL.dll differ diff --git a/output-x64/Cosmos.Kernel.Plugs.dll b/output-x64/Cosmos.Kernel.Plugs.dll new file mode 100644 index 0000000..6c4bb57 Binary files /dev/null and b/output-x64/Cosmos.Kernel.Plugs.dll differ diff --git a/output-x64/Cosmos.Kernel.SourceGenerators.dll b/output-x64/Cosmos.Kernel.SourceGenerators.dll new file mode 100644 index 0000000..826ad7a Binary files /dev/null and b/output-x64/Cosmos.Kernel.SourceGenerators.dll differ diff --git a/output-x64/Cosmos.Kernel.System.dll b/output-x64/Cosmos.Kernel.System.dll new file mode 100644 index 0000000..482dca9 Binary files /dev/null and b/output-x64/Cosmos.Kernel.System.dll differ diff --git a/output-x64/Cosmos.Kernel.dll b/output-x64/Cosmos.Kernel.dll new file mode 100644 index 0000000..95973d1 Binary files /dev/null and b/output-x64/Cosmos.Kernel.dll differ diff --git a/output-x64/Humanizer.dll b/output-x64/Humanizer.dll new file mode 100644 index 0000000..c9a7ef8 Binary files /dev/null and b/output-x64/Humanizer.dll differ diff --git a/output-x64/Microsoft.CSharp.dll b/output-x64/Microsoft.CSharp.dll new file mode 100644 index 0000000..37423e2 Binary files /dev/null and b/output-x64/Microsoft.CSharp.dll differ diff --git a/output-x64/Microsoft.CodeAnalysis.CSharp.Workspaces.dll b/output-x64/Microsoft.CodeAnalysis.CSharp.Workspaces.dll new file mode 100644 index 0000000..cd98b0b Binary files /dev/null and b/output-x64/Microsoft.CodeAnalysis.CSharp.Workspaces.dll differ diff --git a/output-x64/Microsoft.CodeAnalysis.CSharp.dll b/output-x64/Microsoft.CodeAnalysis.CSharp.dll new file mode 100644 index 0000000..5ad16cb Binary files /dev/null and b/output-x64/Microsoft.CodeAnalysis.CSharp.dll differ diff --git a/output-x64/Microsoft.CodeAnalysis.Workspaces.dll b/output-x64/Microsoft.CodeAnalysis.Workspaces.dll new file mode 100644 index 0000000..0496b29 Binary files /dev/null and b/output-x64/Microsoft.CodeAnalysis.Workspaces.dll differ diff --git a/output-x64/Microsoft.CodeAnalysis.dll b/output-x64/Microsoft.CodeAnalysis.dll new file mode 100644 index 0000000..58d70e0 Binary files /dev/null and b/output-x64/Microsoft.CodeAnalysis.dll differ diff --git a/output-x64/Microsoft.VisualBasic.Core.dll b/output-x64/Microsoft.VisualBasic.Core.dll new file mode 100644 index 0000000..68161c7 Binary files /dev/null and b/output-x64/Microsoft.VisualBasic.Core.dll differ diff --git a/output-x64/Microsoft.VisualBasic.dll b/output-x64/Microsoft.VisualBasic.dll new file mode 100644 index 0000000..8faae7e Binary files /dev/null and b/output-x64/Microsoft.VisualBasic.dll differ diff --git a/output-x64/Microsoft.Win32.Primitives.dll b/output-x64/Microsoft.Win32.Primitives.dll new file mode 100644 index 0000000..214c21d Binary files /dev/null and b/output-x64/Microsoft.Win32.Primitives.dll differ diff --git a/output-x64/Microsoft.Win32.Registry.dll b/output-x64/Microsoft.Win32.Registry.dll new file mode 100644 index 0000000..efd087b Binary files /dev/null and b/output-x64/Microsoft.Win32.Registry.dll differ diff --git a/output-x64/Mono.Cecil.Mdb.dll b/output-x64/Mono.Cecil.Mdb.dll new file mode 100644 index 0000000..55f9ee2 Binary files /dev/null and b/output-x64/Mono.Cecil.Mdb.dll differ diff --git a/output-x64/Mono.Cecil.Pdb.dll b/output-x64/Mono.Cecil.Pdb.dll new file mode 100644 index 0000000..0462a8f Binary files /dev/null and b/output-x64/Mono.Cecil.Pdb.dll differ diff --git a/output-x64/Mono.Cecil.Rocks.dll b/output-x64/Mono.Cecil.Rocks.dll new file mode 100644 index 0000000..561b0d7 Binary files /dev/null and b/output-x64/Mono.Cecil.Rocks.dll differ diff --git a/output-x64/Mono.Cecil.dll b/output-x64/Mono.Cecil.dll new file mode 100644 index 0000000..488bd5c Binary files /dev/null and b/output-x64/Mono.Cecil.dll differ diff --git a/output-x64/RemSox b/output-x64/RemSox new file mode 100644 index 0000000..dbef8f9 Binary files /dev/null and b/output-x64/RemSox differ diff --git a/output-x64/RemSox.deps.json b/output-x64/RemSox.deps.json new file mode 100644 index 0000000..9178689 --- /dev/null +++ b/output-x64/RemSox.deps.json @@ -0,0 +1,1508 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v10.0/linux-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v10.0": {}, + ".NETCoreApp,Version=v10.0/linux-x64": { + "RemSox/1.0.0": { + "dependencies": { + "BouncyCastle.Cryptography": "2.6.2", + "Cosmos.Build.Analyzer.Patcher": "3.0.58", + "Cosmos.Build.Ilc": "3.0.58", + "Cosmos.Kernel": "3.0.58", + "Cosmos.Kernel.Core.X64": "3.0.58", + "Cosmos.Kernel.HAL.X64": "3.0.58", + "Cosmos.Kernel.SourceGenerators": "3.0.58", + "Cosmos.Kernel.System": "3.0.58", + "runtimepack.Microsoft.NETCore.App.Runtime.linux-x64": "10.0.8" + }, + "runtime": { + "RemSox.dll": {} + } + }, + "runtimepack.Microsoft.NETCore.App.Runtime.linux-x64/10.0.8": { + "runtime": { + "Microsoft.CSharp.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "15.0.0.0", + "fileVersion": "15.0.826.23019" + }, + "Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "Microsoft.Win32.Registry.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.AppContext.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Buffers.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Collections.Concurrent.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Collections.Immutable.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Collections.NonGeneric.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Collections.Specialized.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Collections.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ComponentModel.Annotations.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ComponentModel.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ComponentModel.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Console.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Data.Common.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Data.DataSetExtensions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.Contracts.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.Debug.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.Process.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.Tools.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Diagnostics.Tracing.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Drawing.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Dynamic.Runtime.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Formats.Asn1.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Formats.Tar.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Globalization.Calendars.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Globalization.Extensions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Globalization.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.Compression.Brotli.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.Compression.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.FileSystem.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.IsolatedStorage.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.Pipelines.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.Pipes.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.IO.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Linq.AsyncEnumerable.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Linq.Expressions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Linq.Parallel.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Linq.Queryable.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Linq.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Memory.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Http.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Http.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.HttpListener.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Mail.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.NameResolution.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.NetworkInformation.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Ping.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Quic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Requests.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Security.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.ServerSentEvents.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.ServicePoint.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.Sockets.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.WebClient.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.WebProxy.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.WebSockets.Client.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.WebSockets.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Numerics.Vectors.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ObjectModel.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Private.CoreLib.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Private.DataContractSerialization.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Private.Uri.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Private.Xml.Linq.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Private.Xml.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.Emit.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.Extensions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.Metadata.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Reflection.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Resources.Reader.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Resources.ResourceManager.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Resources.Writer.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Extensions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Handles.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.InteropServices.JavaScript.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.InteropServices.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Intrinsics.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Loader.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Numerics.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "8.1.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Runtime.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.AccessControl.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Claims.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Cryptography.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Principal.Windows.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.Principal.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.SecureString.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Text.Encoding.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Text.Encodings.Web.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Text.Json.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Text.RegularExpressions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.AccessControl.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Channels.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Overlapped.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Tasks.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Thread.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.ThreadPool.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.Timer.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Threading.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Transactions.Local.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.ValueTuple.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Web.HttpUtility.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.ReaderWriter.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.XDocument.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.XPath.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.XmlDocument.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.XmlSerializer.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "10.0.826.23019" + }, + "netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "10.0.826.23019" + } + }, + "native": { + "createdump": { + "fileVersion": "0.0.0.0" + }, + "libSystem.Globalization.Native.so": { + "fileVersion": "0.0.0.0" + }, + "libSystem.IO.Compression.Native.so": { + "fileVersion": "0.0.0.0" + }, + "libSystem.Native.so": { + "fileVersion": "0.0.0.0" + }, + "libSystem.Net.Security.Native.so": { + "fileVersion": "0.0.0.0" + }, + "libSystem.Security.Cryptography.Native.OpenSsl.so": { + "fileVersion": "0.0.0.0" + }, + "libclrgc.so": { + "fileVersion": "0.0.0.0" + }, + "libclrgcexp.so": { + "fileVersion": "0.0.0.0" + }, + "libclrjit.so": { + "fileVersion": "0.0.0.0" + }, + "libcoreclr.so": { + "fileVersion": "0.0.0.0" + }, + "libcoreclrtraceptprovider.so": { + "fileVersion": "0.0.0.0" + }, + "libhostfxr.so": { + "fileVersion": "0.0.0.0" + }, + "libhostpolicy.so": { + "fileVersion": "0.0.0.0" + }, + "libmscordaccore.so": { + "fileVersion": "0.0.0.0" + }, + "libmscordbi.so": { + "fileVersion": "0.0.0.0" + } + } + }, + "BouncyCastle.Cryptography/2.6.2": { + "runtime": { + "lib/net6.0/BouncyCastle.Cryptography.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.6.2.46322" + } + } + }, + "Cosmos.Build.Analyzer.Patcher/3.0.58": { + "dependencies": { + "Cosmos.Build.Analyzer.Patcher.CodeFixes": "3.0.58", + "_Cosmos.Build.Analyzer.Patcher": "3.0.58" + }, + "runtime": { + "lib/netstandard2.0/Cosmos.Build.Analyzer.Patcher.Package.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Build.Analyzer.Patcher.CodeFixes/3.0.58": { + "dependencies": { + "Microsoft.CodeAnalysis.CSharp.Workspaces": "4.14.0", + "Microsoft.CodeAnalysis.Common": "4.14.0", + "_Cosmos.Build.Analyzer.Patcher": "3.0.58" + }, + "runtime": { + "lib/netstandard2.0/Cosmos.Build.Analyzer.Patcher.CodeFixes.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Build.API/3.0.58": { + "runtime": { + "lib/netstandard2.0/Cosmos.Build.API.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Build.Ilc/3.0.58": { + "dependencies": { + "Mono.Cecil": "0.11.6" + } + }, + "Cosmos.Kernel/3.0.58": { + "dependencies": { + "Cosmos.Kernel.Boot.Limine": "3.0.58", + "Cosmos.Kernel.HAL": "3.0.58", + "Cosmos.Kernel.HAL.Interfaces": "3.0.58", + "Cosmos.Kernel.Plugs": "3.0.58", + "Cosmos.Kernel.System": "3.0.58", + "Cosmos.Kernel.System.Core": "3.0.58" + }, + "runtime": { + "runtimes/linux-x64/lib/net10.0/Cosmos.Kernel.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.Boot.Limine/3.0.58": { + "runtime": { + "lib/net10.0/Cosmos.Kernel.Boot.Limine.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.Core.X64/3.0.58": { + "dependencies": { + "Cosmos.Kernel.System.Core": "3.0.58" + }, + "runtime": { + "lib/net10.0/Cosmos.Kernel.Core.X64.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.Debug/3.0.58": { + "runtime": { + "lib/net10.0/Cosmos.Kernel.Debug.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.HAL/3.0.58": { + "dependencies": { + "Cosmos.Build.API": "3.0.58", + "Cosmos.Kernel.Boot.Limine": "3.0.58", + "Cosmos.Kernel.HAL.Interfaces": "3.0.58", + "Cosmos.Kernel.System.Core": "3.0.58" + }, + "runtime": { + "runtimes/linux-x64/lib/net10.0/Cosmos.Kernel.HAL.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.HAL.Interfaces/3.0.58": { + "dependencies": { + "Cosmos.Build.API": "3.0.58", + "Cosmos.Kernel.System.Core": "3.0.58" + }, + "runtime": { + "lib/net10.0/Cosmos.Kernel.HAL.Interfaces.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.HAL.X64/3.0.58": { + "dependencies": { + "Cosmos.Kernel.Boot.Limine": "3.0.58", + "Cosmos.Kernel.Core.X64": "3.0.58", + "Cosmos.Kernel.HAL": "3.0.58", + "Cosmos.Kernel.HAL.Interfaces": "3.0.58", + "Cosmos.Kernel.System.Core": "3.0.58" + }, + "runtime": { + "lib/net10.0/Cosmos.Kernel.HAL.X64.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.Plugs/3.0.58": { + "dependencies": { + "Cosmos.Build.API": "3.0.58", + "Cosmos.Kernel.HAL.X64": "3.0.58", + "Cosmos.Kernel.System": "3.0.58", + "Cosmos.Kernel.System.Core": "3.0.58" + }, + "runtime": { + "runtimes/linux-x64/lib/net10.0/Cosmos.Kernel.Plugs.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.SourceGenerators/3.0.58": { + "runtime": { + "lib/netstandard2.0/Cosmos.Kernel.SourceGenerators.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.System/3.0.58": { + "dependencies": { + "Cosmos.Kernel.HAL": "3.0.58", + "Cosmos.Kernel.System.Core": "3.0.58" + }, + "runtime": { + "runtimes/linux-x64/lib/net10.0/Cosmos.Kernel.System.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Cosmos.Kernel.System.Core/3.0.58": { + "dependencies": { + "Cosmos.Build.API": "3.0.58", + "Cosmos.Kernel.Boot.Limine": "3.0.58", + "Cosmos.Kernel.Debug": "3.0.58" + }, + "runtime": { + "runtimes/linux-x64/lib/net10.0/Cosmos.Kernel.Core.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + }, + "Humanizer.Core/2.14.1": { + "runtime": { + "lib/net6.0/Humanizer.dll": { + "assemblyVersion": "2.14.0.0", + "fileVersion": "2.14.1.48190" + } + } + }, + "Microsoft.CodeAnalysis.Common/4.14.0": { + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.dll": { + "assemblyVersion": "4.14.0.0", + "fileVersion": "4.1400.25.26210" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp/4.14.0": { + "dependencies": { + "Microsoft.CodeAnalysis.Common": "4.14.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.dll": { + "assemblyVersion": "4.14.0.0", + "fileVersion": "4.1400.25.26210" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.14.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.CSharp": "4.14.0", + "Microsoft.CodeAnalysis.Common": "4.14.0", + "Microsoft.CodeAnalysis.Workspaces.Common": "4.14.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.CSharp.Workspaces.dll": { + "assemblyVersion": "4.14.0.0", + "fileVersion": "4.1400.25.26210" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.14.0": { + "dependencies": { + "Humanizer.Core": "2.14.1", + "Microsoft.CodeAnalysis.Common": "4.14.0", + "System.Composition": "9.0.0" + }, + "runtime": { + "lib/net9.0/Microsoft.CodeAnalysis.Workspaces.dll": { + "assemblyVersion": "4.14.0.0", + "fileVersion": "4.1400.25.26210" + } + }, + "resources": { + "lib/net9.0/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "cs" + }, + "lib/net9.0/de/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "de" + }, + "lib/net9.0/es/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "es" + }, + "lib/net9.0/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "fr" + }, + "lib/net9.0/it/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "it" + }, + "lib/net9.0/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ja" + }, + "lib/net9.0/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ko" + }, + "lib/net9.0/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pl" + }, + "lib/net9.0/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "pt-BR" + }, + "lib/net9.0/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "ru" + }, + "lib/net9.0/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "tr" + }, + "lib/net9.0/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hans" + }, + "lib/net9.0/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll": { + "locale": "zh-Hant" + } + } + }, + "Mono.Cecil/0.11.6": { + "runtime": { + "lib/netstandard2.0/Mono.Cecil.Mdb.dll": { + "assemblyVersion": "0.11.6.0", + "fileVersion": "0.11.6.0" + }, + "lib/netstandard2.0/Mono.Cecil.Pdb.dll": { + "assemblyVersion": "0.11.6.0", + "fileVersion": "0.11.6.0" + }, + "lib/netstandard2.0/Mono.Cecil.Rocks.dll": { + "assemblyVersion": "0.11.6.0", + "fileVersion": "0.11.6.0" + }, + "lib/netstandard2.0/Mono.Cecil.dll": { + "assemblyVersion": "0.11.6.0", + "fileVersion": "0.11.6.0" + } + } + }, + "System.Composition/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Convention": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0", + "System.Composition.TypedParts": "9.0.0" + } + }, + "System.Composition.AttributedModel/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.AttributedModel.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Convention/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Convention.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Hosting/9.0.0": { + "dependencies": { + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.Hosting.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.Runtime/9.0.0": { + "runtime": { + "lib/net9.0/System.Composition.Runtime.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "System.Composition.TypedParts/9.0.0": { + "dependencies": { + "System.Composition.AttributedModel": "9.0.0", + "System.Composition.Hosting": "9.0.0", + "System.Composition.Runtime": "9.0.0" + }, + "runtime": { + "lib/net9.0/System.Composition.TypedParts.dll": { + "assemblyVersion": "9.0.0.0", + "fileVersion": "9.0.24.52809" + } + } + }, + "_Cosmos.Build.Analyzer.Patcher/3.0.58": { + "dependencies": { + "Cosmos.Build.API": "3.0.58", + "Microsoft.CodeAnalysis.CSharp": "4.14.0" + }, + "runtime": { + "lib/netstandard2.0/Cosmos.Build.Analyzer.Patcher.dll": { + "assemblyVersion": "3.0.58.0", + "fileVersion": "3.0.58.0" + } + } + } + } + }, + "libraries": { + "RemSox/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "runtimepack.Microsoft.NETCore.App.Runtime.linux-x64/10.0.8": { + "type": "runtimepack", + "serviceable": false, + "sha512": "" + }, + "BouncyCastle.Cryptography/2.6.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7oWOcvnntmMKNzDLsdxAYqApt+AjpRpP2CShjMfIa3umZ42UQMvH0tl1qAliYPNYO6vTdcGMqnRrCPmsfzTI1w==", + "path": "bouncycastle.cryptography/2.6.2", + "hashPath": "bouncycastle.cryptography.2.6.2.nupkg.sha512" + }, + "Cosmos.Build.Analyzer.Patcher/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QbSNvqQDNJ6nuagrjyck3EmcEd3GW9rgtnPORkdh9XoQIJulZeoXA50BUvC6tMUlZzwFMbRxAhhJkFBF1UtjoQ==", + "path": "cosmos.build.analyzer.patcher/3.0.58", + "hashPath": "cosmos.build.analyzer.patcher.3.0.58.nupkg.sha512" + }, + "Cosmos.Build.Analyzer.Patcher.CodeFixes/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5P9F7j5faV2F78kwaX42nSuC+scWrRDR1k+3ef5TE5/RLIfaf3vkkfmyeWfvF1zFAvqJY2+M67q1cDDXLg5vSg==", + "path": "cosmos.build.analyzer.patcher.codefixes/3.0.58", + "hashPath": "cosmos.build.analyzer.patcher.codefixes.3.0.58.nupkg.sha512" + }, + "Cosmos.Build.API/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Hl37DjB+XCT3PWIBsdVq4BjjS8GpS0G7jPy0C7NwT0t1AR3a3dbuU1OtPui7qP+UgawcPUiQL1Jl5bHVUfv38w==", + "path": "cosmos.build.api/3.0.58", + "hashPath": "cosmos.build.api.3.0.58.nupkg.sha512" + }, + "Cosmos.Build.Ilc/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-9D82hGIinn/BGICmKeHhadZTIep6QzQJZbTt43iGkiW3+5AuzC+QC6tD3oi+u331uFShQD0NU2FeZSUzXB4CWw==", + "path": "cosmos.build.ilc/3.0.58", + "hashPath": "cosmos.build.ilc.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+XWBqTL8ArXTv742CSLEGGq45x7cuGmH/SoIgoANo6dI6q/+HAYREGCcXelQp5IJP6bCfzx+wx8hk8tyvF230A==", + "path": "cosmos.kernel/3.0.58", + "hashPath": "cosmos.kernel.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.Boot.Limine/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-qe44gtLZ1k/z7kT6pqGJMVwJMhupSWvI0rReRh4rfx7HLeRxfN+2uTC+IeXVovJ5SvLkKTdGMjL4FsTuT/6bUQ==", + "path": "cosmos.kernel.boot.limine/3.0.58", + "hashPath": "cosmos.kernel.boot.limine.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.Core.X64/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-i6ocLFgqxvpN2wSXRQr6Kqzwi/UoDQ8dy7yglZSWqm0FsRgXQuiOTIYezc4tFWoIpNRg/9h0w9yw/kKtQ4v1Cg==", + "path": "cosmos.kernel.core.x64/3.0.58", + "hashPath": "cosmos.kernel.core.x64.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.Debug/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-Mx4p3ngEhvEbiAtvW5B+NuKokmwZQ2DeeB79YsXvXj9/ciuVeTJMxe9GN4Pz4ldTxRlwjcXiLlO2p9WI92sRDw==", + "path": "cosmos.kernel.debug/3.0.58", + "hashPath": "cosmos.kernel.debug.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.HAL/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-50wZghGgFzn/iErIKQrKOuJzXRxWPZUUko3nXMkM/Vft2BiQx5wxVTr+cW8ESdJj1C1aRkaCSk4zPFhdH7KQ7Q==", + "path": "cosmos.kernel.hal/3.0.58", + "hashPath": "cosmos.kernel.hal.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.HAL.Interfaces/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rvdkEOd6mYumdFNUQIRCNKQlrfw28xWja0D/f5z1NvROEhEHXYRrvOKwWlNciZPCJUno1TiTkttTitJtxMyp/g==", + "path": "cosmos.kernel.hal.interfaces/3.0.58", + "hashPath": "cosmos.kernel.hal.interfaces.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.HAL.X64/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-1OxON1OhcKg+1plcy593V1QHBulKOw8+MEx0QqKl43+RIRWGe/ddfhCr2DctH0GSlqqmsgZ2AhjfTvuQTZdzeA==", + "path": "cosmos.kernel.hal.x64/3.0.58", + "hashPath": "cosmos.kernel.hal.x64.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.Plugs/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hbr2e99CUoooHhHLObFxpeW275/aQWjpdeEIUEhePqvIzJq3rCwSA2oV03MaAWJ1RvFaNTE99jyswXSkHgSqHg==", + "path": "cosmos.kernel.plugs/3.0.58", + "hashPath": "cosmos.kernel.plugs.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.SourceGenerators/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nxCaeMgDvKBm9BuzzspAS+8NrMy7xYhhOuvlOLoHOp0mIuzTGyWCMrZPfUtQAzCcVX0sG/fokwBNkOwC+eb1/w==", + "path": "cosmos.kernel.sourcegenerators/3.0.58", + "hashPath": "cosmos.kernel.sourcegenerators.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.System/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-pHnccDSJY1JuuT7kyIc+VvRSHhTQz++HMVdTiBj04AUr/+CvDAkO6cMRpM0pvkkpSAGpc2A5x1ow9kxfirkMXw==", + "path": "cosmos.kernel.system/3.0.58", + "hashPath": "cosmos.kernel.system.3.0.58.nupkg.sha512" + }, + "Cosmos.Kernel.System.Core/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-KkRH+3FLJFhCXgxiVnzj1XhkFIU3IPKuOft+BFQ/cLR4N51UPh0v8uJxpdFhYpDSjH/pkZtlalcSUi1vr8IKfA==", + "path": "cosmos.kernel.system.core/3.0.58", + "hashPath": "cosmos.kernel.system.core.3.0.58.nupkg.sha512" + }, + "Humanizer.Core/2.14.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==", + "path": "humanizer.core/2.14.1", + "hashPath": "humanizer.core.2.14.1.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Common/4.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-PC3tuwZYnC+idaPuoC/AZpEdwrtX7qFpmnrfQkgobGIWiYmGi5MCRtl5mx6QrfMGQpK78X2lfIEoZDLg/qnuHg==", + "path": "microsoft.codeanalysis.common/4.14.0", + "hashPath": "microsoft.codeanalysis.common.4.14.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp/4.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-568a6wcTivauIhbeWcCwfWwIn7UV7MeHEBvFB2uzGIpM2OhJ4eM/FZ8KS0yhPoNxnSpjGzz7x7CIjTxhslojQA==", + "path": "microsoft.codeanalysis.csharp/4.14.0", + "hashPath": "microsoft.codeanalysis.csharp.4.14.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.CSharp.Workspaces/4.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-QkgCEM4qJo6gdtblXtNgHqtykS61fxW+820hx5JN6n9DD4mQtqNB+6fPeJ3GQWg6jkkGz6oG9yZq7H3Gf0zwYw==", + "path": "microsoft.codeanalysis.csharp.workspaces/4.14.0", + "hashPath": "microsoft.codeanalysis.csharp.workspaces.4.14.0.nupkg.sha512" + }, + "Microsoft.CodeAnalysis.Workspaces.Common/4.14.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-wNVK9JrqjqDC/WgBUFV6henDfrW87NPfo98nzah/+M/G1D6sBOPtXwqce3UQNn+6AjTnmkHYN1WV9XmTlPemTw==", + "path": "microsoft.codeanalysis.workspaces.common/4.14.0", + "hashPath": "microsoft.codeanalysis.workspaces.common.4.14.0.nupkg.sha512" + }, + "Mono.Cecil/0.11.6": { + "type": "package", + "serviceable": true, + "sha512": "sha512-f33RkDtZO8VlGXCtmQIviOtxgnUdym9xx/b1p9h91CRGOsJFxCFOFK1FDbVt1OCf1aWwYejUFa2MOQyFWTFjbA==", + "path": "mono.cecil/0.11.6", + "hashPath": "mono.cecil.0.11.6.nupkg.sha512" + }, + "System.Composition/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3Djj70fFTraOarSKmRnmRy/zm4YurICm+kiCtI0dYRqGJnLX6nJ+G3WYuFJ173cAPax/gh96REcbNiVqcrypFQ==", + "path": "system.composition/9.0.0", + "hashPath": "system.composition.9.0.0.nupkg.sha512" + }, + "System.Composition.AttributedModel/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iri00l/zIX9g4lHMY+Nz0qV1n40+jFYAmgsaiNn16xvt2RDwlqByNG4wgblagnDYxm3YSQQ0jLlC/7Xlk9CzyA==", + "path": "system.composition.attributedmodel/9.0.0", + "hashPath": "system.composition.attributedmodel.9.0.0.nupkg.sha512" + }, + "System.Composition.Convention/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-+vuqVP6xpi582XIjJi6OCsIxuoTZfR0M7WWufk3uGDeCl3wGW6KnpylUJ3iiXdPByPE0vR5TjJgR6hDLez4FQg==", + "path": "system.composition.convention/9.0.0", + "hashPath": "system.composition.convention.9.0.0.nupkg.sha512" + }, + "System.Composition.Hosting/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-OFqSeFeJYr7kHxDfaViGM1ymk7d4JxK//VSoNF9Ux0gpqkLsauDZpu89kTHHNdCWfSljbFcvAafGyBoY094btQ==", + "path": "system.composition.hosting/9.0.0", + "hashPath": "system.composition.hosting.9.0.0.nupkg.sha512" + }, + "System.Composition.Runtime/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-w1HOlQY1zsOWYussjFGZCEYF2UZXgvoYnS94NIu2CBnAGMbXFAX8PY8c92KwUItPmowal68jnVLBCzdrWLeEKA==", + "path": "system.composition.runtime/9.0.0", + "hashPath": "system.composition.runtime.9.0.0.nupkg.sha512" + }, + "System.Composition.TypedParts/9.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aRZlojCCGEHDKqh43jaDgaVpYETsgd7Nx4g1zwLKMtv4iTo0627715ajEFNpEEBTgLmvZuv8K0EVxc3sM4NWJA==", + "path": "system.composition.typedparts/9.0.0", + "hashPath": "system.composition.typedparts.9.0.0.nupkg.sha512" + }, + "_Cosmos.Build.Analyzer.Patcher/3.0.58": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/5/TrzF+YTctLp+j30eP+nU6Nj+ZVZaGknDb5mBGb2jjpG/y9Nh9zmy1KtHL9fZxkAdSZ1Bs4HJm2foxHmY6Lw==", + "path": "_cosmos.build.analyzer.patcher/3.0.58", + "hashPath": "_cosmos.build.analyzer.patcher.3.0.58.nupkg.sha512" + } + }, + "runtimes": { + "android-x64": [ + "android", + "linux-bionic-x64", + "linux-bionic", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linux-bionic-x64": [ + "linux-bionic", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linux-musl-x64": [ + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linux-x64": [ + "linux", + "unix-x64", + "unix", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/output-x64/RemSox.dll b/output-x64/RemSox.dll new file mode 100644 index 0000000..52045a4 Binary files /dev/null and b/output-x64/RemSox.dll differ diff --git a/output-x64/RemSox.iso b/output-x64/RemSox.iso new file mode 100644 index 0000000..3759cce Binary files /dev/null and b/output-x64/RemSox.iso differ diff --git a/output-x64/RemSox.runtimeconfig.json b/output-x64/RemSox.runtimeconfig.json new file mode 100644 index 0000000..538da4a --- /dev/null +++ b/output-x64/RemSox.runtimeconfig.json @@ -0,0 +1,46 @@ +{ + "runtimeOptions": { + "tfm": "net10.0", + "includedFrameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "10.0.8" + } + ], + "configProperties": { + "Cosmos.Kernel.HAL.Interrupts.Enabled": true, + "Cosmos.Kernel.HAL.UART.Enabled": true, + "Cosmos.Kernel.HAL.PCI.Enabled": true, + "Cosmos.Kernel.System.Timer.Enabled": true, + "Cosmos.Kernel.System.Input.Keyboard.Enabled": true, + "Cosmos.Kernel.System.Input.Mouse.Enabled": true, + "Cosmos.Kernel.System.Network.Enabled": true, + "Cosmos.Kernel.System.Graphics.Enabled": true, + "Cosmos.Kernel.Core.Scheduler.Enabled": true, + "Cosmos.Kernel.System.Graphics.Fonts.CustomFont": "Cosmos.Kernel.System.Graphics.Fonts.CustomFont.psf", + "Microsoft.Extensions.DependencyInjection.VerifyOpenGenericServiceTrimmability": true, + "System.ComponentModel.DefaultValueAttribute.IsSupported": false, + "System.ComponentModel.Design.IDesignerHost.IsSupported": false, + "System.ComponentModel.TypeConverter.EnableUnsafeBinaryFormatterInDesigntimeLicenseContextSerialization": false, + "System.ComponentModel.TypeDescriptor.IsComObjectDescriptorSupported": false, + "System.Data.DataSet.XmlSerializationIsSupported": false, + "System.Globalization.Invariant": true, + "System.Globalization.PredefinedCulturesOnly": true, + "System.Net.Security.UseManagedNtlm": false, + "System.Net.SocketsHttpHandler.Http3Support": false, + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Resources.ResourceManager.AllowCustomResourceTypes": false, + "System.Resources.UseSystemResourceKeys": false, + "System.Runtime.CompilerServices.RuntimeFeature.IsDynamicCodeSupported": true, + "System.Runtime.InteropServices.BuiltInComInterop.IsSupported": false, + "System.Runtime.InteropServices.EnableConsumingManagedCodeFromNativeHosting": false, + "System.Runtime.InteropServices.EnableCppCLIHostActivation": false, + "System.Runtime.InteropServices.Marshalling.EnableGeneratedComInterfaceComImportInterop": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false, + "System.StartupHookProvider.IsSupported": false, + "System.Text.Encoding.EnableUnsafeUTF7Encoding": false, + "System.Text.Json.JsonSerializer.IsReflectionEnabledByDefault": false, + "System.Threading.Thread.EnableAutoreleasePool": false + } + } +} \ No newline at end of file diff --git a/output-x64/System.AppContext.dll b/output-x64/System.AppContext.dll new file mode 100644 index 0000000..803ce62 Binary files /dev/null and b/output-x64/System.AppContext.dll differ diff --git a/output-x64/System.Buffers.dll b/output-x64/System.Buffers.dll new file mode 100644 index 0000000..1739167 Binary files /dev/null and b/output-x64/System.Buffers.dll differ diff --git a/output-x64/System.Collections.Concurrent.dll b/output-x64/System.Collections.Concurrent.dll new file mode 100644 index 0000000..0a0beb1 Binary files /dev/null and b/output-x64/System.Collections.Concurrent.dll differ diff --git a/output-x64/System.Collections.Immutable.dll b/output-x64/System.Collections.Immutable.dll new file mode 100644 index 0000000..7d09c63 Binary files /dev/null and b/output-x64/System.Collections.Immutable.dll differ diff --git a/output-x64/System.Collections.NonGeneric.dll b/output-x64/System.Collections.NonGeneric.dll new file mode 100644 index 0000000..ccf4c43 Binary files /dev/null and b/output-x64/System.Collections.NonGeneric.dll differ diff --git a/output-x64/System.Collections.Specialized.dll b/output-x64/System.Collections.Specialized.dll new file mode 100644 index 0000000..fc0e4ec Binary files /dev/null and b/output-x64/System.Collections.Specialized.dll differ diff --git a/output-x64/System.Collections.dll b/output-x64/System.Collections.dll new file mode 100644 index 0000000..ca6e5b4 Binary files /dev/null and b/output-x64/System.Collections.dll differ diff --git a/output-x64/System.ComponentModel.Annotations.dll b/output-x64/System.ComponentModel.Annotations.dll new file mode 100644 index 0000000..e986ffb Binary files /dev/null and b/output-x64/System.ComponentModel.Annotations.dll differ diff --git a/output-x64/System.ComponentModel.DataAnnotations.dll b/output-x64/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 0000000..4f6d05f Binary files /dev/null and b/output-x64/System.ComponentModel.DataAnnotations.dll differ diff --git a/output-x64/System.ComponentModel.EventBasedAsync.dll b/output-x64/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 0000000..cd8faa3 Binary files /dev/null and b/output-x64/System.ComponentModel.EventBasedAsync.dll differ diff --git a/output-x64/System.ComponentModel.Primitives.dll b/output-x64/System.ComponentModel.Primitives.dll new file mode 100644 index 0000000..4635b9e Binary files /dev/null and b/output-x64/System.ComponentModel.Primitives.dll differ diff --git a/output-x64/System.ComponentModel.TypeConverter.dll b/output-x64/System.ComponentModel.TypeConverter.dll new file mode 100644 index 0000000..d38b644 Binary files /dev/null and b/output-x64/System.ComponentModel.TypeConverter.dll differ diff --git a/output-x64/System.ComponentModel.dll b/output-x64/System.ComponentModel.dll new file mode 100644 index 0000000..64e8dbd Binary files /dev/null and b/output-x64/System.ComponentModel.dll differ diff --git a/output-x64/System.Composition.AttributedModel.dll b/output-x64/System.Composition.AttributedModel.dll new file mode 100644 index 0000000..2664688 Binary files /dev/null and b/output-x64/System.Composition.AttributedModel.dll differ diff --git a/output-x64/System.Composition.Convention.dll b/output-x64/System.Composition.Convention.dll new file mode 100644 index 0000000..40f6537 Binary files /dev/null and b/output-x64/System.Composition.Convention.dll differ diff --git a/output-x64/System.Composition.Hosting.dll b/output-x64/System.Composition.Hosting.dll new file mode 100644 index 0000000..b1cce85 Binary files /dev/null and b/output-x64/System.Composition.Hosting.dll differ diff --git a/output-x64/System.Composition.Runtime.dll b/output-x64/System.Composition.Runtime.dll new file mode 100644 index 0000000..c30bbbb Binary files /dev/null and b/output-x64/System.Composition.Runtime.dll differ diff --git a/output-x64/System.Composition.TypedParts.dll b/output-x64/System.Composition.TypedParts.dll new file mode 100644 index 0000000..1556319 Binary files /dev/null and b/output-x64/System.Composition.TypedParts.dll differ diff --git a/output-x64/System.Configuration.dll b/output-x64/System.Configuration.dll new file mode 100644 index 0000000..d0674c1 Binary files /dev/null and b/output-x64/System.Configuration.dll differ diff --git a/output-x64/System.Console.dll b/output-x64/System.Console.dll new file mode 100644 index 0000000..488a6fc Binary files /dev/null and b/output-x64/System.Console.dll differ diff --git a/output-x64/System.Core.dll b/output-x64/System.Core.dll new file mode 100644 index 0000000..dc8a8ed Binary files /dev/null and b/output-x64/System.Core.dll differ diff --git a/output-x64/System.Data.Common.dll b/output-x64/System.Data.Common.dll new file mode 100644 index 0000000..2b0cc56 Binary files /dev/null and b/output-x64/System.Data.Common.dll differ diff --git a/output-x64/System.Data.DataSetExtensions.dll b/output-x64/System.Data.DataSetExtensions.dll new file mode 100644 index 0000000..a2b81f8 Binary files /dev/null and b/output-x64/System.Data.DataSetExtensions.dll differ diff --git a/output-x64/System.Data.dll b/output-x64/System.Data.dll new file mode 100644 index 0000000..bbf54f0 Binary files /dev/null and b/output-x64/System.Data.dll differ diff --git a/output-x64/System.Diagnostics.Contracts.dll b/output-x64/System.Diagnostics.Contracts.dll new file mode 100644 index 0000000..37d54e4 Binary files /dev/null and b/output-x64/System.Diagnostics.Contracts.dll differ diff --git a/output-x64/System.Diagnostics.Debug.dll b/output-x64/System.Diagnostics.Debug.dll new file mode 100644 index 0000000..9e8577f Binary files /dev/null and b/output-x64/System.Diagnostics.Debug.dll differ diff --git a/output-x64/System.Diagnostics.DiagnosticSource.dll b/output-x64/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 0000000..455f761 Binary files /dev/null and b/output-x64/System.Diagnostics.DiagnosticSource.dll differ diff --git a/output-x64/System.Diagnostics.FileVersionInfo.dll b/output-x64/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 0000000..36d17b2 Binary files /dev/null and b/output-x64/System.Diagnostics.FileVersionInfo.dll differ diff --git a/output-x64/System.Diagnostics.Process.dll b/output-x64/System.Diagnostics.Process.dll new file mode 100644 index 0000000..af5c2c7 Binary files /dev/null and b/output-x64/System.Diagnostics.Process.dll differ diff --git a/output-x64/System.Diagnostics.StackTrace.dll b/output-x64/System.Diagnostics.StackTrace.dll new file mode 100644 index 0000000..74251a5 Binary files /dev/null and b/output-x64/System.Diagnostics.StackTrace.dll differ diff --git a/output-x64/System.Diagnostics.TextWriterTraceListener.dll b/output-x64/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 0000000..876b860 Binary files /dev/null and b/output-x64/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/output-x64/System.Diagnostics.Tools.dll b/output-x64/System.Diagnostics.Tools.dll new file mode 100644 index 0000000..eaae31f Binary files /dev/null and b/output-x64/System.Diagnostics.Tools.dll differ diff --git a/output-x64/System.Diagnostics.TraceSource.dll b/output-x64/System.Diagnostics.TraceSource.dll new file mode 100644 index 0000000..37df6e7 Binary files /dev/null and b/output-x64/System.Diagnostics.TraceSource.dll differ diff --git a/output-x64/System.Diagnostics.Tracing.dll b/output-x64/System.Diagnostics.Tracing.dll new file mode 100644 index 0000000..c421cf9 Binary files /dev/null and b/output-x64/System.Diagnostics.Tracing.dll differ diff --git a/output-x64/System.Drawing.Primitives.dll b/output-x64/System.Drawing.Primitives.dll new file mode 100644 index 0000000..b7e9384 Binary files /dev/null and b/output-x64/System.Drawing.Primitives.dll differ diff --git a/output-x64/System.Drawing.dll b/output-x64/System.Drawing.dll new file mode 100644 index 0000000..5acdf6f Binary files /dev/null and b/output-x64/System.Drawing.dll differ diff --git a/output-x64/System.Dynamic.Runtime.dll b/output-x64/System.Dynamic.Runtime.dll new file mode 100644 index 0000000..2fd45a9 Binary files /dev/null and b/output-x64/System.Dynamic.Runtime.dll differ diff --git a/output-x64/System.Formats.Asn1.dll b/output-x64/System.Formats.Asn1.dll new file mode 100644 index 0000000..642f146 Binary files /dev/null and b/output-x64/System.Formats.Asn1.dll differ diff --git a/output-x64/System.Formats.Tar.dll b/output-x64/System.Formats.Tar.dll new file mode 100644 index 0000000..28b4c1f Binary files /dev/null and b/output-x64/System.Formats.Tar.dll differ diff --git a/output-x64/System.Globalization.Calendars.dll b/output-x64/System.Globalization.Calendars.dll new file mode 100644 index 0000000..0214d46 Binary files /dev/null and b/output-x64/System.Globalization.Calendars.dll differ diff --git a/output-x64/System.Globalization.Extensions.dll b/output-x64/System.Globalization.Extensions.dll new file mode 100644 index 0000000..d954a98 Binary files /dev/null and b/output-x64/System.Globalization.Extensions.dll differ diff --git a/output-x64/System.Globalization.dll b/output-x64/System.Globalization.dll new file mode 100644 index 0000000..b6b4635 Binary files /dev/null and b/output-x64/System.Globalization.dll differ diff --git a/output-x64/System.IO.Compression.Brotli.dll b/output-x64/System.IO.Compression.Brotli.dll new file mode 100644 index 0000000..6917637 Binary files /dev/null and b/output-x64/System.IO.Compression.Brotli.dll differ diff --git a/output-x64/System.IO.Compression.FileSystem.dll b/output-x64/System.IO.Compression.FileSystem.dll new file mode 100644 index 0000000..4c48869 Binary files /dev/null and b/output-x64/System.IO.Compression.FileSystem.dll differ diff --git a/output-x64/System.IO.Compression.ZipFile.dll b/output-x64/System.IO.Compression.ZipFile.dll new file mode 100644 index 0000000..655ba00 Binary files /dev/null and b/output-x64/System.IO.Compression.ZipFile.dll differ diff --git a/output-x64/System.IO.Compression.dll b/output-x64/System.IO.Compression.dll new file mode 100644 index 0000000..1383c50 Binary files /dev/null and b/output-x64/System.IO.Compression.dll differ diff --git a/output-x64/System.IO.FileSystem.AccessControl.dll b/output-x64/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 0000000..775cd13 Binary files /dev/null and b/output-x64/System.IO.FileSystem.AccessControl.dll differ diff --git a/output-x64/System.IO.FileSystem.DriveInfo.dll b/output-x64/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 0000000..1999e8b Binary files /dev/null and b/output-x64/System.IO.FileSystem.DriveInfo.dll differ diff --git a/output-x64/System.IO.FileSystem.Primitives.dll b/output-x64/System.IO.FileSystem.Primitives.dll new file mode 100644 index 0000000..ddc300d Binary files /dev/null and b/output-x64/System.IO.FileSystem.Primitives.dll differ diff --git a/output-x64/System.IO.FileSystem.Watcher.dll b/output-x64/System.IO.FileSystem.Watcher.dll new file mode 100644 index 0000000..3a45700 Binary files /dev/null and b/output-x64/System.IO.FileSystem.Watcher.dll differ diff --git a/output-x64/System.IO.FileSystem.dll b/output-x64/System.IO.FileSystem.dll new file mode 100644 index 0000000..f8db8bb Binary files /dev/null and b/output-x64/System.IO.FileSystem.dll differ diff --git a/output-x64/System.IO.IsolatedStorage.dll b/output-x64/System.IO.IsolatedStorage.dll new file mode 100644 index 0000000..e63c484 Binary files /dev/null and b/output-x64/System.IO.IsolatedStorage.dll differ diff --git a/output-x64/System.IO.MemoryMappedFiles.dll b/output-x64/System.IO.MemoryMappedFiles.dll new file mode 100644 index 0000000..fc933be Binary files /dev/null and b/output-x64/System.IO.MemoryMappedFiles.dll differ diff --git a/output-x64/System.IO.Pipelines.dll b/output-x64/System.IO.Pipelines.dll new file mode 100644 index 0000000..3f5ddbd Binary files /dev/null and b/output-x64/System.IO.Pipelines.dll differ diff --git a/output-x64/System.IO.Pipes.AccessControl.dll b/output-x64/System.IO.Pipes.AccessControl.dll new file mode 100644 index 0000000..1621ee3 Binary files /dev/null and b/output-x64/System.IO.Pipes.AccessControl.dll differ diff --git a/output-x64/System.IO.Pipes.dll b/output-x64/System.IO.Pipes.dll new file mode 100644 index 0000000..ecb43cc Binary files /dev/null and b/output-x64/System.IO.Pipes.dll differ diff --git a/output-x64/System.IO.UnmanagedMemoryStream.dll b/output-x64/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 0000000..1771a28 Binary files /dev/null and b/output-x64/System.IO.UnmanagedMemoryStream.dll differ diff --git a/output-x64/System.IO.dll b/output-x64/System.IO.dll new file mode 100644 index 0000000..c552e60 Binary files /dev/null and b/output-x64/System.IO.dll differ diff --git a/output-x64/System.Linq.AsyncEnumerable.dll b/output-x64/System.Linq.AsyncEnumerable.dll new file mode 100644 index 0000000..85b2c5a Binary files /dev/null and b/output-x64/System.Linq.AsyncEnumerable.dll differ diff --git a/output-x64/System.Linq.Expressions.dll b/output-x64/System.Linq.Expressions.dll new file mode 100644 index 0000000..0604ed5 Binary files /dev/null and b/output-x64/System.Linq.Expressions.dll differ diff --git a/output-x64/System.Linq.Parallel.dll b/output-x64/System.Linq.Parallel.dll new file mode 100644 index 0000000..4c3e3f4 Binary files /dev/null and b/output-x64/System.Linq.Parallel.dll differ diff --git a/output-x64/System.Linq.Queryable.dll b/output-x64/System.Linq.Queryable.dll new file mode 100644 index 0000000..8e3057d Binary files /dev/null and b/output-x64/System.Linq.Queryable.dll differ diff --git a/output-x64/System.Linq.dll b/output-x64/System.Linq.dll new file mode 100644 index 0000000..234250f Binary files /dev/null and b/output-x64/System.Linq.dll differ diff --git a/output-x64/System.Memory.dll b/output-x64/System.Memory.dll new file mode 100644 index 0000000..60ae29f Binary files /dev/null and b/output-x64/System.Memory.dll differ diff --git a/output-x64/System.Net.Http.Json.dll b/output-x64/System.Net.Http.Json.dll new file mode 100644 index 0000000..52207e4 Binary files /dev/null and b/output-x64/System.Net.Http.Json.dll differ diff --git a/output-x64/System.Net.Http.dll b/output-x64/System.Net.Http.dll new file mode 100644 index 0000000..a6470d0 Binary files /dev/null and b/output-x64/System.Net.Http.dll differ diff --git a/output-x64/System.Net.HttpListener.dll b/output-x64/System.Net.HttpListener.dll new file mode 100644 index 0000000..9bb5429 Binary files /dev/null and b/output-x64/System.Net.HttpListener.dll differ diff --git a/output-x64/System.Net.Mail.dll b/output-x64/System.Net.Mail.dll new file mode 100644 index 0000000..1d8d007 Binary files /dev/null and b/output-x64/System.Net.Mail.dll differ diff --git a/output-x64/System.Net.NameResolution.dll b/output-x64/System.Net.NameResolution.dll new file mode 100644 index 0000000..15f88b6 Binary files /dev/null and b/output-x64/System.Net.NameResolution.dll differ diff --git a/output-x64/System.Net.NetworkInformation.dll b/output-x64/System.Net.NetworkInformation.dll new file mode 100644 index 0000000..648aa3d Binary files /dev/null and b/output-x64/System.Net.NetworkInformation.dll differ diff --git a/output-x64/System.Net.Ping.dll b/output-x64/System.Net.Ping.dll new file mode 100644 index 0000000..893e7d0 Binary files /dev/null and b/output-x64/System.Net.Ping.dll differ diff --git a/output-x64/System.Net.Primitives.dll b/output-x64/System.Net.Primitives.dll new file mode 100644 index 0000000..9f79588 Binary files /dev/null and b/output-x64/System.Net.Primitives.dll differ diff --git a/output-x64/System.Net.Quic.dll b/output-x64/System.Net.Quic.dll new file mode 100644 index 0000000..c09c334 Binary files /dev/null and b/output-x64/System.Net.Quic.dll differ diff --git a/output-x64/System.Net.Requests.dll b/output-x64/System.Net.Requests.dll new file mode 100644 index 0000000..abc5b8f Binary files /dev/null and b/output-x64/System.Net.Requests.dll differ diff --git a/output-x64/System.Net.Security.dll b/output-x64/System.Net.Security.dll new file mode 100644 index 0000000..48307b5 Binary files /dev/null and b/output-x64/System.Net.Security.dll differ diff --git a/output-x64/System.Net.ServerSentEvents.dll b/output-x64/System.Net.ServerSentEvents.dll new file mode 100644 index 0000000..a57743b Binary files /dev/null and b/output-x64/System.Net.ServerSentEvents.dll differ diff --git a/output-x64/System.Net.ServicePoint.dll b/output-x64/System.Net.ServicePoint.dll new file mode 100644 index 0000000..94f2fcb Binary files /dev/null and b/output-x64/System.Net.ServicePoint.dll differ diff --git a/output-x64/System.Net.Sockets.dll b/output-x64/System.Net.Sockets.dll new file mode 100644 index 0000000..2cbec61 Binary files /dev/null and b/output-x64/System.Net.Sockets.dll differ diff --git a/output-x64/System.Net.WebClient.dll b/output-x64/System.Net.WebClient.dll new file mode 100644 index 0000000..404e9e3 Binary files /dev/null and b/output-x64/System.Net.WebClient.dll differ diff --git a/output-x64/System.Net.WebHeaderCollection.dll b/output-x64/System.Net.WebHeaderCollection.dll new file mode 100644 index 0000000..29c316a Binary files /dev/null and b/output-x64/System.Net.WebHeaderCollection.dll differ diff --git a/output-x64/System.Net.WebProxy.dll b/output-x64/System.Net.WebProxy.dll new file mode 100644 index 0000000..94c542e Binary files /dev/null and b/output-x64/System.Net.WebProxy.dll differ diff --git a/output-x64/System.Net.WebSockets.Client.dll b/output-x64/System.Net.WebSockets.Client.dll new file mode 100644 index 0000000..861785f Binary files /dev/null and b/output-x64/System.Net.WebSockets.Client.dll differ diff --git a/output-x64/System.Net.WebSockets.dll b/output-x64/System.Net.WebSockets.dll new file mode 100644 index 0000000..c270bd0 Binary files /dev/null and b/output-x64/System.Net.WebSockets.dll differ diff --git a/output-x64/System.Net.dll b/output-x64/System.Net.dll new file mode 100644 index 0000000..02c969f Binary files /dev/null and b/output-x64/System.Net.dll differ diff --git a/output-x64/System.Numerics.Vectors.dll b/output-x64/System.Numerics.Vectors.dll new file mode 100644 index 0000000..1ceb0cf Binary files /dev/null and b/output-x64/System.Numerics.Vectors.dll differ diff --git a/output-x64/System.Numerics.dll b/output-x64/System.Numerics.dll new file mode 100644 index 0000000..e848ada Binary files /dev/null and b/output-x64/System.Numerics.dll differ diff --git a/output-x64/System.ObjectModel.dll b/output-x64/System.ObjectModel.dll new file mode 100644 index 0000000..e5c58fe Binary files /dev/null and b/output-x64/System.ObjectModel.dll differ diff --git a/output-x64/System.Private.CoreLib.dll b/output-x64/System.Private.CoreLib.dll new file mode 100644 index 0000000..52984ea Binary files /dev/null and b/output-x64/System.Private.CoreLib.dll differ diff --git a/output-x64/System.Private.DataContractSerialization.dll b/output-x64/System.Private.DataContractSerialization.dll new file mode 100644 index 0000000..bdc237a Binary files /dev/null and b/output-x64/System.Private.DataContractSerialization.dll differ diff --git a/output-x64/System.Private.Uri.dll b/output-x64/System.Private.Uri.dll new file mode 100644 index 0000000..92dcc2a Binary files /dev/null and b/output-x64/System.Private.Uri.dll differ diff --git a/output-x64/System.Private.Xml.Linq.dll b/output-x64/System.Private.Xml.Linq.dll new file mode 100644 index 0000000..296b26c Binary files /dev/null and b/output-x64/System.Private.Xml.Linq.dll differ diff --git a/output-x64/System.Private.Xml.dll b/output-x64/System.Private.Xml.dll new file mode 100644 index 0000000..6db8fe5 Binary files /dev/null and b/output-x64/System.Private.Xml.dll differ diff --git a/output-x64/System.Reflection.DispatchProxy.dll b/output-x64/System.Reflection.DispatchProxy.dll new file mode 100644 index 0000000..0561c5a Binary files /dev/null and b/output-x64/System.Reflection.DispatchProxy.dll differ diff --git a/output-x64/System.Reflection.Emit.ILGeneration.dll b/output-x64/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 0000000..8413b05 Binary files /dev/null and b/output-x64/System.Reflection.Emit.ILGeneration.dll differ diff --git a/output-x64/System.Reflection.Emit.Lightweight.dll b/output-x64/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 0000000..eb95fea Binary files /dev/null and b/output-x64/System.Reflection.Emit.Lightweight.dll differ diff --git a/output-x64/System.Reflection.Emit.dll b/output-x64/System.Reflection.Emit.dll new file mode 100644 index 0000000..de4a988 Binary files /dev/null and b/output-x64/System.Reflection.Emit.dll differ diff --git a/output-x64/System.Reflection.Extensions.dll b/output-x64/System.Reflection.Extensions.dll new file mode 100644 index 0000000..a2ec7e7 Binary files /dev/null and b/output-x64/System.Reflection.Extensions.dll differ diff --git a/output-x64/System.Reflection.Metadata.dll b/output-x64/System.Reflection.Metadata.dll new file mode 100644 index 0000000..67dcf27 Binary files /dev/null and b/output-x64/System.Reflection.Metadata.dll differ diff --git a/output-x64/System.Reflection.Primitives.dll b/output-x64/System.Reflection.Primitives.dll new file mode 100644 index 0000000..9674102 Binary files /dev/null and b/output-x64/System.Reflection.Primitives.dll differ diff --git a/output-x64/System.Reflection.TypeExtensions.dll b/output-x64/System.Reflection.TypeExtensions.dll new file mode 100644 index 0000000..172e7af Binary files /dev/null and b/output-x64/System.Reflection.TypeExtensions.dll differ diff --git a/output-x64/System.Reflection.dll b/output-x64/System.Reflection.dll new file mode 100644 index 0000000..9e8142b Binary files /dev/null and b/output-x64/System.Reflection.dll differ diff --git a/output-x64/System.Resources.Reader.dll b/output-x64/System.Resources.Reader.dll new file mode 100644 index 0000000..4136940 Binary files /dev/null and b/output-x64/System.Resources.Reader.dll differ diff --git a/output-x64/System.Resources.ResourceManager.dll b/output-x64/System.Resources.ResourceManager.dll new file mode 100644 index 0000000..d8ae06b Binary files /dev/null and b/output-x64/System.Resources.ResourceManager.dll differ diff --git a/output-x64/System.Resources.Writer.dll b/output-x64/System.Resources.Writer.dll new file mode 100644 index 0000000..57c9da3 Binary files /dev/null and b/output-x64/System.Resources.Writer.dll differ diff --git a/output-x64/System.Runtime.CompilerServices.Unsafe.dll b/output-x64/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 0000000..17a2b82 Binary files /dev/null and b/output-x64/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/output-x64/System.Runtime.CompilerServices.VisualC.dll b/output-x64/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 0000000..c94b155 Binary files /dev/null and b/output-x64/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/output-x64/System.Runtime.Extensions.dll b/output-x64/System.Runtime.Extensions.dll new file mode 100644 index 0000000..700a522 Binary files /dev/null and b/output-x64/System.Runtime.Extensions.dll differ diff --git a/output-x64/System.Runtime.Handles.dll b/output-x64/System.Runtime.Handles.dll new file mode 100644 index 0000000..dab2c08 Binary files /dev/null and b/output-x64/System.Runtime.Handles.dll differ diff --git a/output-x64/System.Runtime.InteropServices.JavaScript.dll b/output-x64/System.Runtime.InteropServices.JavaScript.dll new file mode 100644 index 0000000..088b4d1 Binary files /dev/null and b/output-x64/System.Runtime.InteropServices.JavaScript.dll differ diff --git a/output-x64/System.Runtime.InteropServices.RuntimeInformation.dll b/output-x64/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 0000000..fc3ae12 Binary files /dev/null and b/output-x64/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/output-x64/System.Runtime.InteropServices.dll b/output-x64/System.Runtime.InteropServices.dll new file mode 100644 index 0000000..a6092f1 Binary files /dev/null and b/output-x64/System.Runtime.InteropServices.dll differ diff --git a/output-x64/System.Runtime.Intrinsics.dll b/output-x64/System.Runtime.Intrinsics.dll new file mode 100644 index 0000000..8e35fe6 Binary files /dev/null and b/output-x64/System.Runtime.Intrinsics.dll differ diff --git a/output-x64/System.Runtime.Loader.dll b/output-x64/System.Runtime.Loader.dll new file mode 100644 index 0000000..2864923 Binary files /dev/null and b/output-x64/System.Runtime.Loader.dll differ diff --git a/output-x64/System.Runtime.Numerics.dll b/output-x64/System.Runtime.Numerics.dll new file mode 100644 index 0000000..686b966 Binary files /dev/null and b/output-x64/System.Runtime.Numerics.dll differ diff --git a/output-x64/System.Runtime.Serialization.Formatters.dll b/output-x64/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 0000000..3d6b719 Binary files /dev/null and b/output-x64/System.Runtime.Serialization.Formatters.dll differ diff --git a/output-x64/System.Runtime.Serialization.Json.dll b/output-x64/System.Runtime.Serialization.Json.dll new file mode 100644 index 0000000..4b429b4 Binary files /dev/null and b/output-x64/System.Runtime.Serialization.Json.dll differ diff --git a/output-x64/System.Runtime.Serialization.Primitives.dll b/output-x64/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 0000000..88057d6 Binary files /dev/null and b/output-x64/System.Runtime.Serialization.Primitives.dll differ diff --git a/output-x64/System.Runtime.Serialization.Xml.dll b/output-x64/System.Runtime.Serialization.Xml.dll new file mode 100644 index 0000000..457a762 Binary files /dev/null and b/output-x64/System.Runtime.Serialization.Xml.dll differ diff --git a/output-x64/System.Runtime.Serialization.dll b/output-x64/System.Runtime.Serialization.dll new file mode 100644 index 0000000..53eb2e8 Binary files /dev/null and b/output-x64/System.Runtime.Serialization.dll differ diff --git a/output-x64/System.Runtime.dll b/output-x64/System.Runtime.dll new file mode 100644 index 0000000..7e11839 Binary files /dev/null and b/output-x64/System.Runtime.dll differ diff --git a/output-x64/System.Security.AccessControl.dll b/output-x64/System.Security.AccessControl.dll new file mode 100644 index 0000000..2b48ba9 Binary files /dev/null and b/output-x64/System.Security.AccessControl.dll differ diff --git a/output-x64/System.Security.Claims.dll b/output-x64/System.Security.Claims.dll new file mode 100644 index 0000000..b81d9c0 Binary files /dev/null and b/output-x64/System.Security.Claims.dll differ diff --git a/output-x64/System.Security.Cryptography.Algorithms.dll b/output-x64/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 0000000..16591bd Binary files /dev/null and b/output-x64/System.Security.Cryptography.Algorithms.dll differ diff --git a/output-x64/System.Security.Cryptography.Cng.dll b/output-x64/System.Security.Cryptography.Cng.dll new file mode 100644 index 0000000..68babe6 Binary files /dev/null and b/output-x64/System.Security.Cryptography.Cng.dll differ diff --git a/output-x64/System.Security.Cryptography.Csp.dll b/output-x64/System.Security.Cryptography.Csp.dll new file mode 100644 index 0000000..119cbeb Binary files /dev/null and b/output-x64/System.Security.Cryptography.Csp.dll differ diff --git a/output-x64/System.Security.Cryptography.Encoding.dll b/output-x64/System.Security.Cryptography.Encoding.dll new file mode 100644 index 0000000..07b3948 Binary files /dev/null and b/output-x64/System.Security.Cryptography.Encoding.dll differ diff --git a/output-x64/System.Security.Cryptography.OpenSsl.dll b/output-x64/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 0000000..d276fcb Binary files /dev/null and b/output-x64/System.Security.Cryptography.OpenSsl.dll differ diff --git a/output-x64/System.Security.Cryptography.Primitives.dll b/output-x64/System.Security.Cryptography.Primitives.dll new file mode 100644 index 0000000..66e1108 Binary files /dev/null and b/output-x64/System.Security.Cryptography.Primitives.dll differ diff --git a/output-x64/System.Security.Cryptography.X509Certificates.dll b/output-x64/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 0000000..06b385e Binary files /dev/null and b/output-x64/System.Security.Cryptography.X509Certificates.dll differ diff --git a/output-x64/System.Security.Cryptography.dll b/output-x64/System.Security.Cryptography.dll new file mode 100644 index 0000000..ce6781b Binary files /dev/null and b/output-x64/System.Security.Cryptography.dll differ diff --git a/output-x64/System.Security.Principal.Windows.dll b/output-x64/System.Security.Principal.Windows.dll new file mode 100644 index 0000000..ea092c9 Binary files /dev/null and b/output-x64/System.Security.Principal.Windows.dll differ diff --git a/output-x64/System.Security.Principal.dll b/output-x64/System.Security.Principal.dll new file mode 100644 index 0000000..a993be7 Binary files /dev/null and b/output-x64/System.Security.Principal.dll differ diff --git a/output-x64/System.Security.SecureString.dll b/output-x64/System.Security.SecureString.dll new file mode 100644 index 0000000..f1dfc2a Binary files /dev/null and b/output-x64/System.Security.SecureString.dll differ diff --git a/output-x64/System.Security.dll b/output-x64/System.Security.dll new file mode 100644 index 0000000..f767c49 Binary files /dev/null and b/output-x64/System.Security.dll differ diff --git a/output-x64/System.ServiceModel.Web.dll b/output-x64/System.ServiceModel.Web.dll new file mode 100644 index 0000000..2ca5815 Binary files /dev/null and b/output-x64/System.ServiceModel.Web.dll differ diff --git a/output-x64/System.ServiceProcess.dll b/output-x64/System.ServiceProcess.dll new file mode 100644 index 0000000..88d99f1 Binary files /dev/null and b/output-x64/System.ServiceProcess.dll differ diff --git a/output-x64/System.Text.Encoding.CodePages.dll b/output-x64/System.Text.Encoding.CodePages.dll new file mode 100644 index 0000000..7af3c87 Binary files /dev/null and b/output-x64/System.Text.Encoding.CodePages.dll differ diff --git a/output-x64/System.Text.Encoding.Extensions.dll b/output-x64/System.Text.Encoding.Extensions.dll new file mode 100644 index 0000000..ae10443 Binary files /dev/null and b/output-x64/System.Text.Encoding.Extensions.dll differ diff --git a/output-x64/System.Text.Encoding.dll b/output-x64/System.Text.Encoding.dll new file mode 100644 index 0000000..8b187eb Binary files /dev/null and b/output-x64/System.Text.Encoding.dll differ diff --git a/output-x64/System.Text.Encodings.Web.dll b/output-x64/System.Text.Encodings.Web.dll new file mode 100644 index 0000000..dffe799 Binary files /dev/null and b/output-x64/System.Text.Encodings.Web.dll differ diff --git a/output-x64/System.Text.Json.dll b/output-x64/System.Text.Json.dll new file mode 100644 index 0000000..3c7ef19 Binary files /dev/null and b/output-x64/System.Text.Json.dll differ diff --git a/output-x64/System.Text.RegularExpressions.dll b/output-x64/System.Text.RegularExpressions.dll new file mode 100644 index 0000000..a718571 Binary files /dev/null and b/output-x64/System.Text.RegularExpressions.dll differ diff --git a/output-x64/System.Threading.AccessControl.dll b/output-x64/System.Threading.AccessControl.dll new file mode 100644 index 0000000..3a6c455 Binary files /dev/null and b/output-x64/System.Threading.AccessControl.dll differ diff --git a/output-x64/System.Threading.Channels.dll b/output-x64/System.Threading.Channels.dll new file mode 100644 index 0000000..f6fb4dc Binary files /dev/null and b/output-x64/System.Threading.Channels.dll differ diff --git a/output-x64/System.Threading.Overlapped.dll b/output-x64/System.Threading.Overlapped.dll new file mode 100644 index 0000000..170af8f Binary files /dev/null and b/output-x64/System.Threading.Overlapped.dll differ diff --git a/output-x64/System.Threading.Tasks.Dataflow.dll b/output-x64/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 0000000..9bbef4a Binary files /dev/null and b/output-x64/System.Threading.Tasks.Dataflow.dll differ diff --git a/output-x64/System.Threading.Tasks.Extensions.dll b/output-x64/System.Threading.Tasks.Extensions.dll new file mode 100644 index 0000000..b31bbfe Binary files /dev/null and b/output-x64/System.Threading.Tasks.Extensions.dll differ diff --git a/output-x64/System.Threading.Tasks.Parallel.dll b/output-x64/System.Threading.Tasks.Parallel.dll new file mode 100644 index 0000000..9a5e49e Binary files /dev/null and b/output-x64/System.Threading.Tasks.Parallel.dll differ diff --git a/output-x64/System.Threading.Tasks.dll b/output-x64/System.Threading.Tasks.dll new file mode 100644 index 0000000..b4e3f7f Binary files /dev/null and b/output-x64/System.Threading.Tasks.dll differ diff --git a/output-x64/System.Threading.Thread.dll b/output-x64/System.Threading.Thread.dll new file mode 100644 index 0000000..57f09f7 Binary files /dev/null and b/output-x64/System.Threading.Thread.dll differ diff --git a/output-x64/System.Threading.ThreadPool.dll b/output-x64/System.Threading.ThreadPool.dll new file mode 100644 index 0000000..867f93c Binary files /dev/null and b/output-x64/System.Threading.ThreadPool.dll differ diff --git a/output-x64/System.Threading.Timer.dll b/output-x64/System.Threading.Timer.dll new file mode 100644 index 0000000..2e57c85 Binary files /dev/null and b/output-x64/System.Threading.Timer.dll differ diff --git a/output-x64/System.Threading.dll b/output-x64/System.Threading.dll new file mode 100644 index 0000000..092904e Binary files /dev/null and b/output-x64/System.Threading.dll differ diff --git a/output-x64/System.Transactions.Local.dll b/output-x64/System.Transactions.Local.dll new file mode 100644 index 0000000..54e1fa4 Binary files /dev/null and b/output-x64/System.Transactions.Local.dll differ diff --git a/output-x64/System.Transactions.dll b/output-x64/System.Transactions.dll new file mode 100644 index 0000000..f2e0797 Binary files /dev/null and b/output-x64/System.Transactions.dll differ diff --git a/output-x64/System.ValueTuple.dll b/output-x64/System.ValueTuple.dll new file mode 100644 index 0000000..01400f8 Binary files /dev/null and b/output-x64/System.ValueTuple.dll differ diff --git a/output-x64/System.Web.HttpUtility.dll b/output-x64/System.Web.HttpUtility.dll new file mode 100644 index 0000000..d0959c6 Binary files /dev/null and b/output-x64/System.Web.HttpUtility.dll differ diff --git a/output-x64/System.Web.dll b/output-x64/System.Web.dll new file mode 100644 index 0000000..aee2bb5 Binary files /dev/null and b/output-x64/System.Web.dll differ diff --git a/output-x64/System.Windows.dll b/output-x64/System.Windows.dll new file mode 100644 index 0000000..0bae424 Binary files /dev/null and b/output-x64/System.Windows.dll differ diff --git a/output-x64/System.Xml.Linq.dll b/output-x64/System.Xml.Linq.dll new file mode 100644 index 0000000..3500159 Binary files /dev/null and b/output-x64/System.Xml.Linq.dll differ diff --git a/output-x64/System.Xml.ReaderWriter.dll b/output-x64/System.Xml.ReaderWriter.dll new file mode 100644 index 0000000..9a4d6bb Binary files /dev/null and b/output-x64/System.Xml.ReaderWriter.dll differ diff --git a/output-x64/System.Xml.Serialization.dll b/output-x64/System.Xml.Serialization.dll new file mode 100644 index 0000000..1644753 Binary files /dev/null and b/output-x64/System.Xml.Serialization.dll differ diff --git a/output-x64/System.Xml.XDocument.dll b/output-x64/System.Xml.XDocument.dll new file mode 100644 index 0000000..352d505 Binary files /dev/null and b/output-x64/System.Xml.XDocument.dll differ diff --git a/output-x64/System.Xml.XPath.XDocument.dll b/output-x64/System.Xml.XPath.XDocument.dll new file mode 100644 index 0000000..e139adf Binary files /dev/null and b/output-x64/System.Xml.XPath.XDocument.dll differ diff --git a/output-x64/System.Xml.XPath.dll b/output-x64/System.Xml.XPath.dll new file mode 100644 index 0000000..879c399 Binary files /dev/null and b/output-x64/System.Xml.XPath.dll differ diff --git a/output-x64/System.Xml.XmlDocument.dll b/output-x64/System.Xml.XmlDocument.dll new file mode 100644 index 0000000..4c0f2d9 Binary files /dev/null and b/output-x64/System.Xml.XmlDocument.dll differ diff --git a/output-x64/System.Xml.XmlSerializer.dll b/output-x64/System.Xml.XmlSerializer.dll new file mode 100644 index 0000000..6b1da74 Binary files /dev/null and b/output-x64/System.Xml.XmlSerializer.dll differ diff --git a/output-x64/System.Xml.dll b/output-x64/System.Xml.dll new file mode 100644 index 0000000..be514ad Binary files /dev/null and b/output-x64/System.Xml.dll differ diff --git a/output-x64/System.dll b/output-x64/System.dll new file mode 100644 index 0000000..789cb6a Binary files /dev/null and b/output-x64/System.dll differ diff --git a/output-x64/WindowsBase.dll b/output-x64/WindowsBase.dll new file mode 100644 index 0000000..bbbd075 Binary files /dev/null and b/output-x64/WindowsBase.dll differ diff --git a/output-x64/createdump b/output-x64/createdump new file mode 100644 index 0000000..97fda58 Binary files /dev/null and b/output-x64/createdump differ diff --git a/output-x64/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..7e5c7a8 Binary files /dev/null and b/output-x64/cs/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/cs/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/cs/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..fbb9d8c Binary files /dev/null and b/output-x64/cs/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..1ae7213 Binary files /dev/null and b/output-x64/cs/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/cs/Microsoft.CodeAnalysis.resources.dll b/output-x64/cs/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..c16401c Binary files /dev/null and b/output-x64/cs/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..39049e7 Binary files /dev/null and b/output-x64/de/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/de/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/de/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..8229839 Binary files /dev/null and b/output-x64/de/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/de/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/de/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..c4d4550 Binary files /dev/null and b/output-x64/de/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/de/Microsoft.CodeAnalysis.resources.dll b/output-x64/de/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..a3ab03d Binary files /dev/null and b/output-x64/de/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..79cb378 Binary files /dev/null and b/output-x64/es/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/es/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/es/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..92fede6 Binary files /dev/null and b/output-x64/es/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/es/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/es/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..bfa60db Binary files /dev/null and b/output-x64/es/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/es/Microsoft.CodeAnalysis.resources.dll b/output-x64/es/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..3255be3 Binary files /dev/null and b/output-x64/es/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..d214140 Binary files /dev/null and b/output-x64/fr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/fr/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/fr/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..f42ab22 Binary files /dev/null and b/output-x64/fr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..eb50c8d Binary files /dev/null and b/output-x64/fr/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/fr/Microsoft.CodeAnalysis.resources.dll b/output-x64/fr/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..9c222a0 Binary files /dev/null and b/output-x64/fr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..c5b1943 Binary files /dev/null and b/output-x64/it/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/it/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/it/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..c907e89 Binary files /dev/null and b/output-x64/it/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/it/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/it/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..8217ac0 Binary files /dev/null and b/output-x64/it/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/it/Microsoft.CodeAnalysis.resources.dll b/output-x64/it/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..f71f4de Binary files /dev/null and b/output-x64/it/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..a0b1af1 Binary files /dev/null and b/output-x64/ja/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/ja/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/ja/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..f71989e Binary files /dev/null and b/output-x64/ja/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..454c42c Binary files /dev/null and b/output-x64/ja/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/ja/Microsoft.CodeAnalysis.resources.dll b/output-x64/ja/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..52af814 Binary files /dev/null and b/output-x64/ja/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..0dcfaaa Binary files /dev/null and b/output-x64/ko/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/ko/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/ko/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..3f4420a Binary files /dev/null and b/output-x64/ko/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..21a9cfb Binary files /dev/null and b/output-x64/ko/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/ko/Microsoft.CodeAnalysis.resources.dll b/output-x64/ko/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..889da69 Binary files /dev/null and b/output-x64/ko/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/libSystem.Globalization.Native.so b/output-x64/libSystem.Globalization.Native.so new file mode 100644 index 0000000..54c5f2c Binary files /dev/null and b/output-x64/libSystem.Globalization.Native.so differ diff --git a/output-x64/libSystem.IO.Compression.Native.so b/output-x64/libSystem.IO.Compression.Native.so new file mode 100644 index 0000000..29ed6ba Binary files /dev/null and b/output-x64/libSystem.IO.Compression.Native.so differ diff --git a/output-x64/libSystem.Native.so b/output-x64/libSystem.Native.so new file mode 100644 index 0000000..c2c163c Binary files /dev/null and b/output-x64/libSystem.Native.so differ diff --git a/output-x64/libSystem.Net.Security.Native.so b/output-x64/libSystem.Net.Security.Native.so new file mode 100644 index 0000000..31170a9 Binary files /dev/null and b/output-x64/libSystem.Net.Security.Native.so differ diff --git a/output-x64/libSystem.Security.Cryptography.Native.OpenSsl.so b/output-x64/libSystem.Security.Cryptography.Native.OpenSsl.so new file mode 100644 index 0000000..70ac832 Binary files /dev/null and b/output-x64/libSystem.Security.Cryptography.Native.OpenSsl.so differ diff --git a/output-x64/libclrgc.so b/output-x64/libclrgc.so new file mode 100644 index 0000000..3139bf8 Binary files /dev/null and b/output-x64/libclrgc.so differ diff --git a/output-x64/libclrgcexp.so b/output-x64/libclrgcexp.so new file mode 100644 index 0000000..34ba3d0 Binary files /dev/null and b/output-x64/libclrgcexp.so differ diff --git a/output-x64/libclrjit.so b/output-x64/libclrjit.so new file mode 100644 index 0000000..4b79258 Binary files /dev/null and b/output-x64/libclrjit.so differ diff --git a/output-x64/libcoreclr.so b/output-x64/libcoreclr.so new file mode 100644 index 0000000..c3209f5 Binary files /dev/null and b/output-x64/libcoreclr.so differ diff --git a/output-x64/libcoreclrtraceptprovider.so b/output-x64/libcoreclrtraceptprovider.so new file mode 100644 index 0000000..3645e95 Binary files /dev/null and b/output-x64/libcoreclrtraceptprovider.so differ diff --git a/output-x64/libhostfxr.so b/output-x64/libhostfxr.so new file mode 100644 index 0000000..453b4ca Binary files /dev/null and b/output-x64/libhostfxr.so differ diff --git a/output-x64/libhostpolicy.so b/output-x64/libhostpolicy.so new file mode 100644 index 0000000..69900a2 Binary files /dev/null and b/output-x64/libhostpolicy.so differ diff --git a/output-x64/libmscordaccore.so b/output-x64/libmscordaccore.so new file mode 100644 index 0000000..4d5708d Binary files /dev/null and b/output-x64/libmscordaccore.so differ diff --git a/output-x64/libmscordbi.so b/output-x64/libmscordbi.so new file mode 100644 index 0000000..d52cda6 Binary files /dev/null and b/output-x64/libmscordbi.so differ diff --git a/output-x64/mscorlib.dll b/output-x64/mscorlib.dll new file mode 100644 index 0000000..83cc2e8 Binary files /dev/null and b/output-x64/mscorlib.dll differ diff --git a/output-x64/netstandard.dll b/output-x64/netstandard.dll new file mode 100644 index 0000000..06fa441 Binary files /dev/null and b/output-x64/netstandard.dll differ diff --git a/output-x64/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..0c4d8ce Binary files /dev/null and b/output-x64/pl/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/pl/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/pl/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..f6ee255 Binary files /dev/null and b/output-x64/pl/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..65696d4 Binary files /dev/null and b/output-x64/pl/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/pl/Microsoft.CodeAnalysis.resources.dll b/output-x64/pl/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..356b64a Binary files /dev/null and b/output-x64/pl/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..5aafbb8 Binary files /dev/null and b/output-x64/pt-BR/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..855b11a Binary files /dev/null and b/output-x64/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..7da04cb Binary files /dev/null and b/output-x64/pt-BR/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/pt-BR/Microsoft.CodeAnalysis.resources.dll b/output-x64/pt-BR/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..e064beb Binary files /dev/null and b/output-x64/pt-BR/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..80408af Binary files /dev/null and b/output-x64/ru/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/ru/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/ru/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..171d38e Binary files /dev/null and b/output-x64/ru/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..6e40041 Binary files /dev/null and b/output-x64/ru/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/ru/Microsoft.CodeAnalysis.resources.dll b/output-x64/ru/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..5a93bd4 Binary files /dev/null and b/output-x64/ru/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..acad49c Binary files /dev/null and b/output-x64/tr/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/tr/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/tr/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..1c74b2d Binary files /dev/null and b/output-x64/tr/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..4e8704e Binary files /dev/null and b/output-x64/tr/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/tr/Microsoft.CodeAnalysis.resources.dll b/output-x64/tr/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..06464b4 Binary files /dev/null and b/output-x64/tr/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..7ef207e Binary files /dev/null and b/output-x64/zh-Hans/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..9c4e387 Binary files /dev/null and b/output-x64/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..1e09e22 Binary files /dev/null and b/output-x64/zh-Hans/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/zh-Hans/Microsoft.CodeAnalysis.resources.dll b/output-x64/zh-Hans/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..0afaa03 Binary files /dev/null and b/output-x64/zh-Hans/Microsoft.CodeAnalysis.resources.dll differ diff --git a/output-x64/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll b/output-x64/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll new file mode 100644 index 0000000..7390629 Binary files /dev/null and b/output-x64/zh-Hant/Microsoft.CodeAnalysis.CSharp.Workspaces.resources.dll differ diff --git a/output-x64/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll b/output-x64/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll new file mode 100644 index 0000000..6fad2bc Binary files /dev/null and b/output-x64/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll differ diff --git a/output-x64/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll b/output-x64/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll new file mode 100644 index 0000000..f559f3b Binary files /dev/null and b/output-x64/zh-Hant/Microsoft.CodeAnalysis.Workspaces.resources.dll differ diff --git a/output-x64/zh-Hant/Microsoft.CodeAnalysis.resources.dll b/output-x64/zh-Hant/Microsoft.CodeAnalysis.resources.dll new file mode 100644 index 0000000..774b6c8 Binary files /dev/null and b/output-x64/zh-Hant/Microsoft.CodeAnalysis.resources.dll differ diff --git a/src/C/.gitkeep b/src/C/.gitkeep new file mode 100644 index 0000000..20a1aae --- /dev/null +++ b/src/C/.gitkeep @@ -0,0 +1,3 @@ +# This directory is for native C files that will be compiled with GCC. +# Place your .c and .h files here. +# They will be automatically compiled and linked into your kernel.