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.