diff --git a/.gitignore b/.gitignore index 58e30b8d..f24530d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ + Binaries DerivedDataCache Intermediate diff --git a/Config/DefaultEngine.ini b/Config/DefaultEngine.ini index 54840c6b..e65231da 100644 --- a/Config/DefaultEngine.ini +++ b/Config/DefaultEngine.ini @@ -95,3 +95,21 @@ DefaultGraphicsRHI=DefaultGraphicsRHI_DX11 [/Script/Engine.StreamingSettings] s.UseBackgroundLevelStreaming=False +[/Script/NavigationSystem.NavigationSystemV1] +DefaultAgentName=None +CrowdManagerClass=/Script/AIModule.CrowdManager +bAutoCreateNavigationData=True +bSpawnNavDataInNavBoundsLevel=False +bAllowClientSideNavigation=False +bShouldDiscardSubLevelNavData=True +bTickWhilePaused=False +bInitialBuildingLocked=False +bSkipAgentHeightCheckWhenPickingNavData=False +bGenerateNavigationOnlyAroundNavigationInvokers=False +ActiveTilesUpdateInterval=1.000000 +DataGatheringMode=Instant +DirtyAreaWarningSizeThreshold=-1.000000 ++SupportedAgents=(Name="Default",Color=(B=0,G=255,R=140,A=164),DefaultQueryExtent=(X=50.000000,Y=50.000000,Z=250.000000),NavDataClass=/Script/NavigationSystem.RecastNavMesh,AgentRadius=15.000000,AgentHeight=144.000000,AgentStepHeight=-1.000000,NavWalkingSearchHeightScale=0.500000,PreferredNavData=None,bCanCrouch=False,bCanJump=False,bCanWalk=False,bCanSwim=False,bCanFly=False) +SupportedAgentsMask=(bSupportsAgent0=True,bSupportsAgent1=True,bSupportsAgent2=True,bSupportsAgent3=True,bSupportsAgent4=True,bSupportsAgent5=True,bSupportsAgent6=True,bSupportsAgent7=True,bSupportsAgent8=True,bSupportsAgent9=True,bSupportsAgent10=True,bSupportsAgent11=True,bSupportsAgent12=True,bSupportsAgent13=True,bSupportsAgent14=True,bSupportsAgent15=True) +DirtyAreasUpdateFreq=60.000000 + diff --git a/Content/Blueprints/Player/GI.uasset b/Content/Blueprints/Player/GI.uasset index 9333d3ec..409f5894 100644 Binary files a/Content/Blueprints/Player/GI.uasset and b/Content/Blueprints/Player/GI.uasset differ diff --git a/Content/Blueprints/Player/GameplayFunctions.uasset b/Content/Blueprints/Player/GameplayFunctions.uasset index 2edbe8c0..57bee163 100644 Binary files a/Content/Blueprints/Player/GameplayFunctions.uasset and b/Content/Blueprints/Player/GameplayFunctions.uasset differ diff --git a/Content/Blueprints/Player/MathAndConvertFns.uasset b/Content/Blueprints/Player/MathAndConvertFns.uasset index 4b205943..9f1532ae 100644 Binary files a/Content/Blueprints/Player/MathAndConvertFns.uasset and b/Content/Blueprints/Player/MathAndConvertFns.uasset differ diff --git a/Content/Blueprints/Player/MyPC.uasset b/Content/Blueprints/Player/MyPC.uasset index 1ab52c66..95bd9368 100644 Binary files a/Content/Blueprints/Player/MyPC.uasset and b/Content/Blueprints/Player/MyPC.uasset differ diff --git a/Content/Blueprints/Player/MyPawn.uasset b/Content/Blueprints/Player/MyPawn.uasset index c7cc0853..1aac0f9b 100644 Binary files a/Content/Blueprints/Player/MyPawn.uasset and b/Content/Blueprints/Player/MyPawn.uasset differ diff --git a/Content/Blueprints/Player/VR/VRPawn.uasset b/Content/Blueprints/Player/VR/VRPawn.uasset index ac420cb6..61505058 100644 Binary files a/Content/Blueprints/Player/VR/VRPawn.uasset and b/Content/Blueprints/Player/VR/VRPawn.uasset differ diff --git a/Content/Blueprints/Player/VR/VRinterface.uasset b/Content/Blueprints/Player/VR/VRinterface.uasset index 782d80df..87ad8533 100644 Binary files a/Content/Blueprints/Player/VR/VRinterface.uasset and b/Content/Blueprints/Player/VR/VRinterface.uasset differ diff --git a/Content/Blueprints/Player/WalkingPawn.uasset b/Content/Blueprints/Player/WalkingPawn.uasset index 0cd68090..451d32a6 100644 Binary files a/Content/Blueprints/Player/WalkingPawn.uasset and b/Content/Blueprints/Player/WalkingPawn.uasset differ diff --git a/Content/Blueprints/Player/getFunctions.uasset b/Content/Blueprints/Player/getFunctions.uasset index 5f7b860a..d94d4db9 100644 Binary files a/Content/Blueprints/Player/getFunctions.uasset and b/Content/Blueprints/Player/getFunctions.uasset differ diff --git a/Content/Blueprints/Player/myGM.uasset b/Content/Blueprints/Player/myGM.uasset index 6d32e728..c1da164c 100644 Binary files a/Content/Blueprints/Player/myGM.uasset and b/Content/Blueprints/Player/myGM.uasset differ diff --git a/Content/Blueprints/UI/Actors/FlatPoint.uasset b/Content/Blueprints/UI/Actors/FlatPoint.uasset index 21486dd7..57931fde 100644 Binary files a/Content/Blueprints/UI/Actors/FlatPoint.uasset and b/Content/Blueprints/UI/Actors/FlatPoint.uasset differ diff --git a/Content/Blueprints/UI/Actors/FloorPoint.uasset b/Content/Blueprints/UI/Actors/FloorPoint.uasset index bfb83d91..a8d657ab 100644 Binary files a/Content/Blueprints/UI/Actors/FloorPoint.uasset and b/Content/Blueprints/UI/Actors/FloorPoint.uasset differ diff --git a/Content/Blueprints/UI/Actors/HousePoint.uasset b/Content/Blueprints/UI/Actors/HousePoint.uasset index fce506f2..6e02e4b2 100644 Binary files a/Content/Blueprints/UI/Actors/HousePoint.uasset and b/Content/Blueprints/UI/Actors/HousePoint.uasset differ diff --git a/Content/Blueprints/UI/Actors/KPmaker.uasset b/Content/Blueprints/UI/Actors/KPmaker.uasset index ec52ad1e..668e8733 100644 Binary files a/Content/Blueprints/UI/Actors/KPmaker.uasset and b/Content/Blueprints/UI/Actors/KPmaker.uasset differ diff --git a/Content/Blueprints/UI/Materials/textMasked.uasset b/Content/Blueprints/UI/Materials/textMasked.uasset index a1892736..dd61a392 100644 Binary files a/Content/Blueprints/UI/Materials/textMasked.uasset and b/Content/Blueprints/UI/Materials/textMasked.uasset differ diff --git a/Content/Blueprints/UI/Others/FavoriteStruct.uasset b/Content/Blueprints/UI/Others/FavoriteStruct.uasset index 73eb6b50..84aae967 100644 Binary files a/Content/Blueprints/UI/Others/FavoriteStruct.uasset and b/Content/Blueprints/UI/Others/FavoriteStruct.uasset differ diff --git a/Content/Blueprints/UI/Others/FlatData.uasset b/Content/Blueprints/UI/Others/FlatData.uasset index cf4b5c9a..41b12ccc 100644 Binary files a/Content/Blueprints/UI/Others/FlatData.uasset and b/Content/Blueprints/UI/Others/FlatData.uasset differ diff --git a/Content/Blueprints/UI/Others/FlatInfo.uasset b/Content/Blueprints/UI/Others/FlatInfo.uasset index 2051a9f7..df87fb04 100644 Binary files a/Content/Blueprints/UI/Others/FlatInfo.uasset and b/Content/Blueprints/UI/Others/FlatInfo.uasset differ diff --git a/Content/Blueprints/UI/Others/roomNames.uasset b/Content/Blueprints/UI/Others/roomNames.uasset index ba2336fe..473c7079 100644 Binary files a/Content/Blueprints/UI/Others/roomNames.uasset and b/Content/Blueprints/UI/Others/roomNames.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Imgs/MapHints/HintBase/HintBase1.uasset b/Content/Blueprints/UI/WBPS/Imgs/MapHints/HintBase/HintBase1.uasset new file mode 100644 index 00000000..faa1e6ba Binary files /dev/null and b/Content/Blueprints/UI/WBPS/Imgs/MapHints/HintBase/HintBase1.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Imgs/button/Icons/lock.uasset b/Content/Blueprints/UI/WBPS/Imgs/button/Icons/lock.uasset new file mode 100644 index 00000000..ef5d0269 Binary files /dev/null and b/Content/Blueprints/UI/WBPS/Imgs/button/Icons/lock.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Imgs/button/Icons/replay.uasset b/Content/Blueprints/UI/WBPS/Imgs/button/Icons/replay.uasset new file mode 100644 index 00000000..3721fdd6 Binary files /dev/null and b/Content/Blueprints/UI/WBPS/Imgs/button/Icons/replay.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Imgs/input/noconnect.uasset b/Content/Blueprints/UI/WBPS/Imgs/input/noconnect.uasset new file mode 100644 index 00000000..168f3da6 Binary files /dev/null and b/Content/Blueprints/UI/WBPS/Imgs/input/noconnect.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Imgs/input/saveDatabg.uasset b/Content/Blueprints/UI/WBPS/Imgs/input/saveDatabg.uasset index e734d60b..19097cac 100644 Binary files a/Content/Blueprints/UI/WBPS/Imgs/input/saveDatabg.uasset and b/Content/Blueprints/UI/WBPS/Imgs/input/saveDatabg.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Imgs/input/startSession_03bg.uasset b/Content/Blueprints/UI/WBPS/Imgs/input/startSession_03bg.uasset index 6eae5c8d..c7afd87e 100644 Binary files a/Content/Blueprints/UI/WBPS/Imgs/input/startSession_03bg.uasset and b/Content/Blueprints/UI/WBPS/Imgs/input/startSession_03bg.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Imgs/input/wait.uasset b/Content/Blueprints/UI/WBPS/Imgs/input/wait.uasset new file mode 100644 index 00000000..bb0fde00 Binary files /dev/null and b/Content/Blueprints/UI/WBPS/Imgs/input/wait.uasset differ diff --git a/Content/Blueprints/UI/WBPS/KPWidget.uasset b/Content/Blueprints/UI/WBPS/KPWidget.uasset index 607e175d..3539dda5 100644 Binary files a/Content/Blueprints/UI/WBPS/KPWidget.uasset and b/Content/Blueprints/UI/WBPS/KPWidget.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/MainMenu.uasset b/Content/Blueprints/UI/WBPS/Menu/MainMenu.uasset index 3b7afce7..80eaea7a 100644 Binary files a/Content/Blueprints/UI/WBPS/Menu/MainMenu.uasset and b/Content/Blueprints/UI/WBPS/Menu/MainMenu.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/MenuBtn.uasset b/Content/Blueprints/UI/WBPS/Menu/MenuBtn.uasset index ed837974..c2627251 100644 Binary files a/Content/Blueprints/UI/WBPS/Menu/MenuBtn.uasset and b/Content/Blueprints/UI/WBPS/Menu/MenuBtn.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/inputBox.uasset b/Content/Blueprints/UI/WBPS/Menu/inputBox.uasset index e700e1ce..48ba43a7 100644 Binary files a/Content/Blueprints/UI/WBPS/Menu/inputBox.uasset and b/Content/Blueprints/UI/WBPS/Menu/inputBox.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/managerList.uasset b/Content/Blueprints/UI/WBPS/Menu/managerList.uasset new file mode 100644 index 00000000..48309df9 Binary files /dev/null and b/Content/Blueprints/UI/WBPS/Menu/managerList.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/menuSecondLine.uasset b/Content/Blueprints/UI/WBPS/Menu/menuSecondLine.uasset index 52fc78ff..f84c58a7 100644 Binary files a/Content/Blueprints/UI/WBPS/Menu/menuSecondLine.uasset and b/Content/Blueprints/UI/WBPS/Menu/menuSecondLine.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/saveData.uasset b/Content/Blueprints/UI/WBPS/Menu/saveData.uasset index 391e9937..ddec2b47 100644 Binary files a/Content/Blueprints/UI/WBPS/Menu/saveData.uasset and b/Content/Blueprints/UI/WBPS/Menu/saveData.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/sessionEnd.uasset b/Content/Blueprints/UI/WBPS/Menu/sessionEnd.uasset index 5319e137..28682b4b 100644 Binary files a/Content/Blueprints/UI/WBPS/Menu/sessionEnd.uasset and b/Content/Blueprints/UI/WBPS/Menu/sessionEnd.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Menu/welcomeData.uasset b/Content/Blueprints/UI/WBPS/Menu/welcomeData.uasset index 1ce4aa79..29290d4e 100644 Binary files a/Content/Blueprints/UI/WBPS/Menu/welcomeData.uasset and b/Content/Blueprints/UI/WBPS/Menu/welcomeData.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Pointers/FlatPointer.uasset b/Content/Blueprints/UI/WBPS/Pointers/FlatPointer.uasset index 2954891d..d6707f99 100644 Binary files a/Content/Blueprints/UI/WBPS/Pointers/FlatPointer.uasset and b/Content/Blueprints/UI/WBPS/Pointers/FlatPointer.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Pointers/FloorPointer.uasset b/Content/Blueprints/UI/WBPS/Pointers/FloorPointer.uasset new file mode 100644 index 00000000..41dee006 Binary files /dev/null and b/Content/Blueprints/UI/WBPS/Pointers/FloorPointer.uasset differ diff --git a/Content/Blueprints/UI/WBPS/Pointers/InfraPointer.uasset b/Content/Blueprints/UI/WBPS/Pointers/InfraPointer.uasset index f966313b..27fa4a7e 100644 Binary files a/Content/Blueprints/UI/WBPS/Pointers/InfraPointer.uasset and b/Content/Blueprints/UI/WBPS/Pointers/InfraPointer.uasset differ diff --git a/Content/Blueprints/UI/WBPS/filter/Filter.uasset b/Content/Blueprints/UI/WBPS/filter/Filter.uasset index 2d27cbb2..a51526ba 100644 Binary files a/Content/Blueprints/UI/WBPS/filter/Filter.uasset and b/Content/Blueprints/UI/WBPS/filter/Filter.uasset differ diff --git a/Content/Blueprints/UI/WBPS/filter/FlatCard.uasset b/Content/Blueprints/UI/WBPS/filter/FlatCard.uasset index 24d16b3c..a098dbcd 100644 Binary files a/Content/Blueprints/UI/WBPS/filter/FlatCard.uasset and b/Content/Blueprints/UI/WBPS/filter/FlatCard.uasset differ diff --git a/Content/Blueprints/Utils/levelStruct.uasset b/Content/Blueprints/Utils/levelStruct.uasset index 066ac237..55717cea 100644 Binary files a/Content/Blueprints/Utils/levelStruct.uasset and b/Content/Blueprints/Utils/levelStruct.uasset differ diff --git a/Content/Maps/Interiors/H4_F1.umap b/Content/Maps/Interiors/H4_F1.umap new file mode 100644 index 00000000..955ec206 Binary files /dev/null and b/Content/Maps/Interiors/H4_F1.umap differ diff --git a/Content/Maps/Interiors/H4_F2.umap b/Content/Maps/Interiors/H4_F2.umap new file mode 100644 index 00000000..b63903e7 Binary files /dev/null and b/Content/Maps/Interiors/H4_F2.umap differ diff --git a/Content/Maps/Interiors/H4_F3.umap b/Content/Maps/Interiors/H4_F3.umap new file mode 100644 index 00000000..bfa27d2d Binary files /dev/null and b/Content/Maps/Interiors/H4_F3.umap differ diff --git a/Content/Maps/MainScene.umap b/Content/Maps/MainScene.umap index 274e5390..bc42336f 100644 Binary files a/Content/Maps/MainScene.umap and b/Content/Maps/MainScene.umap differ diff --git a/Content/Meshes/test_import_SM_S04F01.uasset b/Content/Meshes/test_import_SM_S04F01.uasset index 3dfb26f9..fd99fc86 100644 Binary files a/Content/Meshes/test_import_SM_S04F01.uasset and b/Content/Meshes/test_import_SM_S04F01.uasset differ diff --git a/Content/Meshes/test_import_SM_S04F02.uasset b/Content/Meshes/test_import_SM_S04F02.uasset index 5376de6d..e5a84b3e 100644 Binary files a/Content/Meshes/test_import_SM_S04F02.uasset and b/Content/Meshes/test_import_SM_S04F02.uasset differ diff --git a/Content/Meshes/test_import_SM_S04FTip.uasset b/Content/Meshes/test_import_SM_S04FTip.uasset index 692c60e7..5fd6c62c 100644 Binary files a/Content/Meshes/test_import_SM_S04FTip.uasset and b/Content/Meshes/test_import_SM_S04FTip.uasset differ diff --git a/Content/UltraDynamicSky/Blueprints/Ultra_Dynamic_Sky.uasset b/Content/UltraDynamicSky/Blueprints/Ultra_Dynamic_Sky.uasset index ac0c83a2..4767946b 100644 Binary files a/Content/UltraDynamicSky/Blueprints/Ultra_Dynamic_Sky.uasset and b/Content/UltraDynamicSky/Blueprints/Ultra_Dynamic_Sky.uasset differ diff --git a/Content/UltraDynamicSky/Materials/Color_Curves/Ambient_Curves/skylightCubemapTintting.uasset b/Content/UltraDynamicSky/Materials/Color_Curves/Ambient_Curves/skylightCubemapTintting.uasset new file mode 100644 index 00000000..ca78135f Binary files /dev/null and b/Content/UltraDynamicSky/Materials/Color_Curves/Ambient_Curves/skylightCubemapTintting.uasset differ diff --git a/Managed/DeviceId.dll b/Managed/DeviceId.dll new file mode 100644 index 00000000..2eaaf6d6 Binary files /dev/null and b/Managed/DeviceId.dll differ diff --git a/Managed/GraffLicenceValidation.dll b/Managed/GraffLicenceValidation.dll new file mode 100644 index 00000000..aacc0e90 Binary files /dev/null and b/Managed/GraffLicenceValidation.dll differ diff --git a/Managed/Microsoft.AspNetCore.Connections.Abstractions.dll b/Managed/Microsoft.AspNetCore.Connections.Abstractions.dll new file mode 100644 index 00000000..21771d9d Binary files /dev/null and b/Managed/Microsoft.AspNetCore.Connections.Abstractions.dll differ diff --git a/Managed/Microsoft.AspNetCore.Http.Connections.Client.dll b/Managed/Microsoft.AspNetCore.Http.Connections.Client.dll new file mode 100644 index 00000000..ccb545dd Binary files /dev/null and b/Managed/Microsoft.AspNetCore.Http.Connections.Client.dll differ diff --git a/Managed/Microsoft.AspNetCore.Http.Connections.Common.dll b/Managed/Microsoft.AspNetCore.Http.Connections.Common.dll new file mode 100644 index 00000000..2e1193d0 Binary files /dev/null and b/Managed/Microsoft.AspNetCore.Http.Connections.Common.dll differ diff --git a/Managed/Microsoft.AspNetCore.SignalR.Client.Core.dll b/Managed/Microsoft.AspNetCore.SignalR.Client.Core.dll new file mode 100644 index 00000000..6a6e01f1 Binary files /dev/null and b/Managed/Microsoft.AspNetCore.SignalR.Client.Core.dll differ diff --git a/Managed/Microsoft.AspNetCore.SignalR.Client.dll b/Managed/Microsoft.AspNetCore.SignalR.Client.dll new file mode 100644 index 00000000..259c69e8 Binary files /dev/null and b/Managed/Microsoft.AspNetCore.SignalR.Client.dll differ diff --git a/Managed/Microsoft.AspNetCore.SignalR.Common.dll b/Managed/Microsoft.AspNetCore.SignalR.Common.dll new file mode 100644 index 00000000..81cf0fb4 Binary files /dev/null and b/Managed/Microsoft.AspNetCore.SignalR.Common.dll differ diff --git a/Managed/Microsoft.AspNetCore.SignalR.Protocols.Json.dll b/Managed/Microsoft.AspNetCore.SignalR.Protocols.Json.dll new file mode 100644 index 00000000..794b8584 Binary files /dev/null and b/Managed/Microsoft.AspNetCore.SignalR.Protocols.Json.dll differ diff --git a/Managed/Microsoft.Bcl.AsyncInterfaces.dll b/Managed/Microsoft.Bcl.AsyncInterfaces.dll new file mode 100644 index 00000000..e5e9f27f Binary files /dev/null and b/Managed/Microsoft.Bcl.AsyncInterfaces.dll differ diff --git a/Managed/Microsoft.DotNet.PlatformAbstractions.dll b/Managed/Microsoft.DotNet.PlatformAbstractions.dll new file mode 100644 index 00000000..558229b6 Binary files /dev/null and b/Managed/Microsoft.DotNet.PlatformAbstractions.dll differ diff --git a/Managed/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/Managed/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 00000000..d7f903b0 Binary files /dev/null and b/Managed/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/Managed/Microsoft.Extensions.DependencyInjection.dll b/Managed/Microsoft.Extensions.DependencyInjection.dll new file mode 100644 index 00000000..a659204f Binary files /dev/null and b/Managed/Microsoft.Extensions.DependencyInjection.dll differ diff --git a/Managed/Microsoft.Extensions.Features.dll b/Managed/Microsoft.Extensions.Features.dll new file mode 100644 index 00000000..f08ebe8f Binary files /dev/null and b/Managed/Microsoft.Extensions.Features.dll differ diff --git a/Managed/Microsoft.Extensions.Logging.Abstractions.dll b/Managed/Microsoft.Extensions.Logging.Abstractions.dll new file mode 100644 index 00000000..78ce0ef8 Binary files /dev/null and b/Managed/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/Managed/Microsoft.Extensions.Logging.dll b/Managed/Microsoft.Extensions.Logging.dll new file mode 100644 index 00000000..984b02c3 Binary files /dev/null and b/Managed/Microsoft.Extensions.Logging.dll differ diff --git a/Managed/Microsoft.Extensions.Options.dll b/Managed/Microsoft.Extensions.Options.dll new file mode 100644 index 00000000..9ef05fcc Binary files /dev/null and b/Managed/Microsoft.Extensions.Options.dll differ diff --git a/Managed/Microsoft.Extensions.Primitives.dll b/Managed/Microsoft.Extensions.Primitives.dll new file mode 100644 index 00000000..5822b186 Binary files /dev/null and b/Managed/Microsoft.Extensions.Primitives.dll differ diff --git a/Managed/System.Buffers.dll b/Managed/System.Buffers.dll new file mode 100644 index 00000000..c0970c07 Binary files /dev/null and b/Managed/System.Buffers.dll differ diff --git a/Managed/System.Diagnostics.DiagnosticSource.dll b/Managed/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 00000000..db0c8d23 Binary files /dev/null and b/Managed/System.Diagnostics.DiagnosticSource.dll differ diff --git a/Managed/System.IO.Pipelines.dll b/Managed/System.IO.Pipelines.dll new file mode 100644 index 00000000..5b06c150 Binary files /dev/null and b/Managed/System.IO.Pipelines.dll differ diff --git a/Managed/System.Memory.dll b/Managed/System.Memory.dll new file mode 100644 index 00000000..953a9d2e Binary files /dev/null and b/Managed/System.Memory.dll differ diff --git a/Managed/System.Runtime.CompilerServices.Unsafe.dll b/Managed/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 00000000..1e3860da Binary files /dev/null and b/Managed/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/Managed/System.Text.Encodings.Web.dll b/Managed/System.Text.Encodings.Web.dll new file mode 100644 index 00000000..cd6a25e8 Binary files /dev/null and b/Managed/System.Text.Encodings.Web.dll differ diff --git a/Managed/System.Text.Json.dll b/Managed/System.Text.Json.dll new file mode 100644 index 00000000..aee05051 Binary files /dev/null and b/Managed/System.Text.Json.dll differ diff --git a/Managed/System.Threading.Channels.dll b/Managed/System.Threading.Channels.dll new file mode 100644 index 00000000..ab871399 Binary files /dev/null and b/Managed/System.Threading.Channels.dll differ diff --git a/Managed/System.Threading.Tasks.Extensions.dll b/Managed/System.Threading.Tasks.Extensions.dll new file mode 100644 index 00000000..dfab2347 Binary files /dev/null and b/Managed/System.Threading.Tasks.Extensions.dll differ diff --git a/Managed/UnrealCLR.dll b/Managed/UnrealCLR.dll new file mode 100644 index 00000000..cad66118 Binary files /dev/null and b/Managed/UnrealCLR.dll differ diff --git a/Managed/UnrealEngine.Framework.dll b/Managed/UnrealEngine.Framework.dll new file mode 100644 index 00000000..8422dee6 Binary files /dev/null and b/Managed/UnrealEngine.Framework.dll differ diff --git a/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.dll b/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.dll index 464c905b..d0ef1c3d 100644 Binary files a/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.dll and b/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.dll differ diff --git a/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.pdb b/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.pdb index cae083cc..29db8c12 100644 Binary files a/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.pdb and b/plugins/JPrinter/Binaries/Win64/UE4Editor-JPrinter.pdb differ diff --git a/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Development/JPrinter/UE4Editor-JPrinter.lib b/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Development/JPrinter/UE4Editor-JPrinter.lib index a100eb43..3221bace 100644 Binary files a/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Development/JPrinter/UE4Editor-JPrinter.lib and b/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Development/JPrinter/UE4Editor-JPrinter.lib differ diff --git a/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/JPrinterBPLibrary.generated.h b/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/JPrinterBPLibrary.generated.h index be35eab1..857f7258 100644 --- a/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/JPrinterBPLibrary.generated.h +++ b/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/JPrinterBPLibrary.generated.h @@ -15,8 +15,8 @@ enum class EPaperSize : uint8; #endif #define JPRINTER_JPrinterBPLibrary_generated_h -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_SPARSE_DATA -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_SPARSE_DATA +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS \ \ DECLARE_FUNCTION(execprintTexture2D); \ DECLARE_FUNCTION(execprintImage); \ @@ -24,7 +24,7 @@ enum class EPaperSize : uint8; DECLARE_FUNCTION(execgetPrinterList); -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS_NO_PURE_DECLS \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS_NO_PURE_DECLS \ \ DECLARE_FUNCTION(execprintTexture2D); \ DECLARE_FUNCTION(execprintImage); \ @@ -32,7 +32,7 @@ enum class EPaperSize : uint8; DECLARE_FUNCTION(execgetPrinterList); -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS_NO_PURE_DECLS \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS_NO_PURE_DECLS \ private: \ static void StaticRegisterNativesUJPrinterBPLibrary(); \ friend struct Z_Construct_UClass_UJPrinterBPLibrary_Statics; \ @@ -41,7 +41,7 @@ public: \ DECLARE_SERIALIZER(UJPrinterBPLibrary) -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS \ private: \ static void StaticRegisterNativesUJPrinterBPLibrary(); \ friend struct Z_Construct_UClass_UJPrinterBPLibrary_Statics; \ @@ -50,7 +50,7 @@ public: \ DECLARE_SERIALIZER(UJPrinterBPLibrary) -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_STANDARD_CONSTRUCTORS \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_STANDARD_CONSTRUCTORS \ /** Standard constructor, called after all reflected properties have been initialized */ \ NO_API UJPrinterBPLibrary(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()); \ DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(UJPrinterBPLibrary) \ @@ -63,7 +63,7 @@ private: \ public: -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_ENHANCED_CONSTRUCTORS \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_ENHANCED_CONSTRUCTORS \ /** Standard constructor, called after all reflected properties have been initialized */ \ NO_API UJPrinterBPLibrary(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()) : Super(ObjectInitializer) { }; \ private: \ @@ -76,28 +76,28 @@ public: \ DEFINE_DEFAULT_OBJECT_INITIALIZER_CONSTRUCTOR_CALL(UJPrinterBPLibrary) -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_PRIVATE_PROPERTY_OFFSET -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_43_PROLOG -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_GENERATED_BODY_LEGACY \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_PRIVATE_PROPERTY_OFFSET +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_43_PROLOG +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_GENERATED_BODY_LEGACY \ PRAGMA_DISABLE_DEPRECATION_WARNINGS \ public: \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_PRIVATE_PROPERTY_OFFSET \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_SPARSE_DATA \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_STANDARD_CONSTRUCTORS \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_PRIVATE_PROPERTY_OFFSET \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_SPARSE_DATA \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_STANDARD_CONSTRUCTORS \ public: \ PRAGMA_ENABLE_DEPRECATION_WARNINGS -#define HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_GENERATED_BODY \ +#define Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_GENERATED_BODY \ PRAGMA_DISABLE_DEPRECATION_WARNINGS \ public: \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_PRIVATE_PROPERTY_OFFSET \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_SPARSE_DATA \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS_NO_PURE_DECLS \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS_NO_PURE_DECLS \ - HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_ENHANCED_CONSTRUCTORS \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_PRIVATE_PROPERTY_OFFSET \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_SPARSE_DATA \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_RPC_WRAPPERS_NO_PURE_DECLS \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_INCLASS_NO_PURE_DECLS \ + Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h_46_ENHANCED_CONSTRUCTORS \ static_assert(false, "Unknown access specifier for GENERATED_BODY() macro in class JPrinterBPLibrary."); \ PRAGMA_ENABLE_DEPRECATION_WARNINGS @@ -105,7 +105,7 @@ PRAGMA_ENABLE_DEPRECATION_WARNINGS template<> JPRINTER_API UClass* StaticClass(); #undef CURRENT_FILE_ID -#define CURRENT_FILE_ID HostProject_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h +#define CURRENT_FILE_ID Ivazowsky_Plugins_JPrinter_Source_JPrinter_Public_JPrinterBPLibrary_h #define FOREACH_ENUM_EPAPERSIZE(op) \ diff --git a/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/Timestamp b/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/Timestamp index 5630c382..ad1d15de 100644 --- a/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/Timestamp +++ b/plugins/JPrinter/Intermediate/Build/Win64/UE4Editor/Inc/JPrinter/Timestamp @@ -1 +1 @@ -E:\Projects\das\JPrinter\HostProject\Plugins\JPrinter\Source\JPrinter\Public\JPrinterBPLibrary.h +E:\Projects\Ivazowsky\Plugins\JPrinter\Source\JPrinter\Public\JPrinterBPLibrary.h diff --git a/plugins/UnrealCLR/Binaries/Win64/UE4Editor-UnrealCLR.dll b/plugins/UnrealCLR/Binaries/Win64/UE4Editor-UnrealCLR.dll new file mode 100644 index 00000000..fc536d8a Binary files /dev/null and b/plugins/UnrealCLR/Binaries/Win64/UE4Editor-UnrealCLR.dll differ diff --git a/plugins/UnrealCLR/Binaries/Win64/UE4Editor-UnrealCLR.pdb b/plugins/UnrealCLR/Binaries/Win64/UE4Editor-UnrealCLR.pdb new file mode 100644 index 00000000..e04b362d Binary files /dev/null and b/plugins/UnrealCLR/Binaries/Win64/UE4Editor-UnrealCLR.pdb differ diff --git a/plugins/UnrealCLR/Binaries/Win64/UE4Editor.modules b/plugins/UnrealCLR/Binaries/Win64/UE4Editor.modules new file mode 100644 index 00000000..706e8d51 --- /dev/null +++ b/plugins/UnrealCLR/Binaries/Win64/UE4Editor.modules @@ -0,0 +1,7 @@ +{ + "BuildId": "17155196", + "Modules": + { + "UnrealCLR": "UE4Editor-UnrealCLR.dll" + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Managed/Microsoft.DotNet.PlatformAbstractions.dll b/plugins/UnrealCLR/Managed/Microsoft.DotNet.PlatformAbstractions.dll new file mode 100644 index 00000000..558229b6 Binary files /dev/null and b/plugins/UnrealCLR/Managed/Microsoft.DotNet.PlatformAbstractions.dll differ diff --git a/plugins/UnrealCLR/Managed/Microsoft.Extensions.DependencyModel.dll b/plugins/UnrealCLR/Managed/Microsoft.Extensions.DependencyModel.dll new file mode 100644 index 00000000..921622d5 Binary files /dev/null and b/plugins/UnrealCLR/Managed/Microsoft.Extensions.DependencyModel.dll differ diff --git a/plugins/UnrealCLR/Managed/UnrealEngine.Plugins.dll b/plugins/UnrealCLR/Managed/UnrealEngine.Plugins.dll new file mode 100644 index 00000000..e9df7e11 Binary files /dev/null and b/plugins/UnrealCLR/Managed/UnrealEngine.Plugins.dll differ diff --git a/plugins/UnrealCLR/Managed/UnrealEngine.Plugins.pdb b/plugins/UnrealCLR/Managed/UnrealEngine.Plugins.pdb new file mode 100644 index 00000000..d6ed6328 Binary files /dev/null and b/plugins/UnrealCLR/Managed/UnrealEngine.Plugins.pdb differ diff --git a/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.deps.json b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.deps.json new file mode 100644 index 00000000..c1cf0890 --- /dev/null +++ b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.deps.json @@ -0,0 +1,74 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v5.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v5.0": { + "UnrealEngine.Runtime/1.0.0": { + "dependencies": { + "Microsoft.CodeAnalysis.NetAnalyzers": "5.0.3", + "UnrealEngine.Plugins": "1.0.0.0" + }, + "runtime": { + "UnrealEngine.Runtime.dll": {} + } + }, + "Microsoft.CodeAnalysis.NetAnalyzers/5.0.3": {}, + "UnrealEngine.Plugins/1.0.0.0": { + "runtime": { + "UnrealEngine.Plugins.dll": { + "assemblyVersion": "1.0.0.0", + "fileVersion": "1.0.0.0" + } + } + }, + "Microsoft.Extensions.DependencyModel/5.0.0.0": { + "runtime": { + "Microsoft.Extensions.DependencyModel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.20.51904" + } + } + }, + "Microsoft.DotNet.PlatformAbstractions/3.1.6.0": { + "runtime": { + "Microsoft.DotNet.PlatformAbstractions.dll": { + "assemblyVersion": "3.1.6.0", + "fileVersion": "3.100.620.31604" + } + } + } + } + }, + "libraries": { + "UnrealEngine.Runtime/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.CodeAnalysis.NetAnalyzers/5.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7rw0JUPSAVGR0HPekQiQvwGPor44p/Ek21+wZABraG4bVYNrSkx98ZZsxSxG5jJ4oqjACJxea8E62UO0dsKDBw==", + "path": "microsoft.codeanalysis.netanalyzers/5.0.3", + "hashPath": "microsoft.codeanalysis.netanalyzers.5.0.3.nupkg.sha512" + }, + "UnrealEngine.Plugins/1.0.0.0": { + "type": "reference", + "serviceable": false, + "sha512": "" + }, + "Microsoft.Extensions.DependencyModel/5.0.0.0": { + "type": "reference", + "serviceable": false, + "sha512": "" + }, + "Microsoft.DotNet.PlatformAbstractions/3.1.6.0": { + "type": "reference", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.dll b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.dll new file mode 100644 index 00000000..95be6eaa Binary files /dev/null and b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.dll differ diff --git a/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.pdb b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.pdb new file mode 100644 index 00000000..889d5b7b Binary files /dev/null and b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.pdb differ diff --git a/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.runtimeconfig.json b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.runtimeconfig.json new file mode 100644 index 00000000..ebf64f4d --- /dev/null +++ b/plugins/UnrealCLR/Managed/UnrealEngine.Runtime.runtimeconfig.json @@ -0,0 +1,14 @@ +{ + "runtimeOptions": { + "tfm": "net5.0", + "rollForward": "LatestMinor", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "5.0.0" + }, + "configProperties": { + "System.GC.Server": false, + "System.Runtime.TieredCompilation": false + } + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Resources/Icon128.png b/plugins/UnrealCLR/Resources/Icon128.png new file mode 100644 index 00000000..d409f7d7 Binary files /dev/null and b/plugins/UnrealCLR/Resources/Icon128.png differ diff --git a/plugins/UnrealCLR/Runtime/Linux/LICENSE.txt b/plugins/UnrealCLR/Runtime/Linux/LICENSE.txt new file mode 100644 index 00000000..984713a4 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Linux/LICENSE.txt @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/UnrealCLR/Runtime/Linux/ThirdPartyNotices.txt b/plugins/UnrealCLR/Runtime/Linux/ThirdPartyNotices.txt new file mode 100644 index 00000000..b8d644c4 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Linux/ThirdPartyNotices.txt @@ -0,0 +1,1219 @@ +.NET Runtime uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Runtime software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + +License notice for Unicode data +------------------------------- + +https://www.unicode.org/license.html + +Copyright © 1991-2020 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for RFC 3492 +--------------------------- + +The punycode implementation is based on the sample code in RFC 3492 + +Copyright (C) The Internet Society (2003). All Rights Reserved. + +This document and translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it +or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any +kind, provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to the Internet Society or other +Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for +copyrights defined in the Internet Standards process must be +followed, or as required to translate it into languages other than +English. + +The limited permissions granted above are perpetual and will not be +revoked by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an +"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +License notice for Algorithm from Internet Draft document "UUIDs and GUIDs" +--------------------------------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, or Digital Equipment Corporation be used in advertising +or publicity pertaining to distribution of the software without +specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment +Corporation makes any representations about the suitability of +this software for any purpose. + +Copyright(C) The Internet Society 1997. All Rights Reserved. + +This document and translations of it may be copied and furnished to others, +and derivative works that comment on or otherwise explain it or assist in +its implementation may be prepared, copied, published and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this paragraph are included on all such copies and +derivative works.However, this document itself may not be modified in any +way, such as by removing the copyright notice or references to the Internet +Society or other Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for copyrights +defined in the Internet Standards process must be followed, or as required +to translate it into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked +by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +License notice for Algorithm from RFC 4122 - +A Universally Unique IDentifier (UUID) URN Namespace +---------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +Copyright (c) 1998 Microsoft. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, Microsoft, or Digital Equipment Corporation be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital +Equipment Corporation makes any representations about the +suitability of this software for any purpose." + +License notice for The LLVM Compiler Infrastructure +--------------------------------------------------- + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +License notice for Bob Jenkins +------------------------------ + +By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this +code any way you wish, private, educational, or commercial. It's free. + +License notice for Greg Parker +------------------------------ + +Greg Parker gparker@cs.stanford.edu December 2000 +This code is in the public domain and may be copied or modified without +permission. + +License notice for libunwind based code +---------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Printing Floating-Point Numbers (Dragon4) +------------------------------------------------------------ + +/****************************************************************************** + Copyright (c) 2014 Ryan Juckett + http://www.ryanjuckett.com/ + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +******************************************************************************/ + +License notice for Printing Floating-point Numbers (Grisu3) +----------------------------------------------------------- + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xxHash +------------------------- + +xxHash Library +Copyright (c) 2012-2014, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Berkeley SoftFloat Release 3e +------------------------------------------------ + +https://github.com/ucb-bar/berkeley-softfloat-3 +https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt + +License for Berkeley SoftFloat Release 3e + +John R. Hauser +2018 January 20 + +The following applies to the whole of SoftFloat Release 3e as well as to +each source file individually. + +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the +University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xorshift RNGs +-------------------------------- + +George Marsaglia +2003-07-04 +Journal of Statistical Software +License: http://creativecommons.org/licenses/by/3.0/ + +https://www.jstatsoft.org/article/view/v008i14 +https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf + +License notice for Xorshift (Wikipedia) +--------------------------------------- + +https://en.wikipedia.org/wiki/Xorshift +License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License + +License for fastmod (https://github.com/lemire/fastmod) +-------------------------------------- + + Copyright 2018 Daniel Lemire + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +License notice for The C++ REST SDK +----------------------------------- + +C++ REST SDK + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MessagePack-CSharp +------------------------------------- + +MessagePack for C# + +MIT License + +Copyright (c) 2017 Yoshifumi Kawai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for lz4net +------------------------------------- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Nerdbank.Streams +----------------------------------- + +The MIT License (MIT) + +Copyright (c) Andrew Arnott + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for RapidJSON +---------------------------- + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +Licensed under the MIT License (the "License"); you may not use this file except +in compliance with the License. You may obtain a copy of the License at + +http://opensource.org/licenses/MIT + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for DirectX Math Library +--------------------------------------- + +https://github.com/microsoft/DirectXMath/blob/master/LICENSE + + The MIT License (MIT) + +Copyright (c) 2011-2020 Microsoft Corp + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for ldap4net +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2018 Alexander Chermyanin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized sorting code +------------------------------------------ + +MIT License + +Copyright (c) 2020 Dan Shechter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for Angular v8.0 +-------------------------------------------- +The MIT License (MIT) +===================== + +Copyright (c) 2010-2019 Google LLC. http://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +License notice for corefx + +License notice for BedrockFramework +=================================== + +MIT License + +Copyright (c) 2019 David Fowler + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for Swashbuckle +=================================== + +The MIT License (MIT) + +Copyright (c) 2016 Richard Morris + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for cli-spinners +============================================= + +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for dotnet-deb-tool +------------------------------------ + +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for IIS-Common +------------------------------------ + +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +License notice for IIS-Setup +------------------------------------ + +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +License notice for LZMA SDK +--------------------------- + +http://7-zip.org/sdk.html + +LZMA SDK is placed in the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute the +original LZMA SDK code, either in source code form or as a compiled binary, +for any purpose, commercial or non-commercial, and by any means. + +License notice for MonoDevelop +------------------------------ + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +License notice for Nuget.Client +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +these files except in compliance with the License. You may obtain a copy of the +License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for Ookie.Dialogs +-------------------------------- + +http://www.ookii.org/software/dialogs/ + +Copyright © Sven Groot (Ookii.org) 2009 +All rights reserved. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1) Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +2) Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3) Neither the name of the ORGANIZATION nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +License notice for viz.js +------------------------------------ + +Copyright (c) 2014-2018 Michael Daines + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for West Wind Live Reload ASP.NET Core Middleware +============================================= + + + +--- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +MIT License +----------- + +Copyright (c) 2019-2020 West Wind Technologies + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/plugins/UnrealCLR/Runtime/Linux/host/fxr/5.0.9/libhostfxr.so b/plugins/UnrealCLR/Runtime/Linux/host/fxr/5.0.9/libhostfxr.so new file mode 100644 index 00000000..758a5ab2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/host/fxr/5.0.9/libhostfxr.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/.version b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/.version new file mode 100644 index 00000000..aaa309c1 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/.version @@ -0,0 +1,2 @@ +208e377a5329ad6eb1db5e5fb9d4590fa50beadd +5.0.9 diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll new file mode 100644 index 00000000..b1f0bec7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json new file mode 100644 index 00000000..493ef01b --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json @@ -0,0 +1,5755 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v5.0/linux-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v5.0": {}, + ".NETCoreApp,Version=v5.0/linux-x64": { + "Microsoft.Build.Tasks.Git/1.1.0-beta-20206-02": {}, + "Microsoft.DiaSymReader.Native/1.7.0": {}, + "Microsoft.DotNet.Build.Tasks.Installers/5.0.0-beta.21328.3": {}, + "Microsoft.DotNet.Build.Tasks.Packaging/5.0.0-beta.21328.3": {}, + "Microsoft.Net.Compilers.Toolset/3.8.0-4.20503.2": {}, + "Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + } + }, + "Microsoft.NETCore.App.Internal/5.0.9-servicing.21359.8": { + "dependencies": { + "Microsoft.NETCore.DotNetHostPolicy": "5.0.9", + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "5.0.0", + "NETStandard.Library": "2.2.0-prerelease.19564.1", + "runtime.linux-x64.Microsoft.NETCore.App": "5.0.9-servicing.21359.8" + } + }, + "Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "dependencies": { + "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy": "5.0.9" + } + }, + "Microsoft.NETCore.Platforms/5.0.0": {}, + "Microsoft.NETCore.Targets/5.0.0": {}, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": {}, + "Microsoft.SourceLink.AzureRepos.Git/1.1.0-beta-20206-02": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.0-beta-20206-02", + "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" + } + }, + "Microsoft.SourceLink.Common/1.1.0-beta-20206-02": {}, + "Microsoft.SourceLink.GitHub/1.1.0-beta-20206-02": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.0-beta-20206-02", + "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" + } + }, + "NETStandard.Library/2.2.0-prerelease.19564.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + } + }, + "runtime.linux-x64.Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "runtime": { + "runtimes/linux-x64/lib/net5.0/Microsoft.CSharp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "10.0.6.0", + "fileVersion": "11.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/Microsoft.Win32.Registry.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.AppContext.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Buffers.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Collections.Concurrent.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Collections.Immutable.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Collections.NonGeneric.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Collections.Specialized.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Collections.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ComponentModel.Annotations.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ComponentModel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Console.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Data.Common.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Data.DataSetExtensions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.Contracts.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.Debug.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.Process.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.Tools.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Diagnostics.Tracing.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Drawing.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Dynamic.Runtime.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Formats.Asn1.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Globalization.Calendars.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Globalization.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Globalization.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.Compression.Brotli.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.Compression.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.FileSystem.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.IsolatedStorage.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.Pipes.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.IO.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Linq.Expressions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Linq.Parallel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Linq.Queryable.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Linq.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Memory.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Http.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Http.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.HttpListener.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Mail.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.NameResolution.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.NetworkInformation.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Ping.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Requests.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Security.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.ServicePoint.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.Sockets.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.WebClient.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.WebProxy.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.WebSockets.Client.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.WebSockets.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ObjectModel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Private.DataContractSerialization.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Private.Uri.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Private.Xml.Linq.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Private.Xml.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.Emit.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.Metadata.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Reflection.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Resources.Reader.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Resources.ResourceManager.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Resources.Writer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Handles.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.InteropServices.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Intrinsics.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Loader.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Numerics.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Runtime.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Claims.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Principal.Windows.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.Principal.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.SecureString.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Text.Encoding.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "5.0.0.1", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Text.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Text.RegularExpressions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Channels.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Overlapped.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Tasks.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Thread.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.ThreadPool.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.Timer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Threading.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Transactions.Local.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.ValueTuple.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Web.HttpUtility.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.XDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.XPath.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.XmlDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.XmlSerializer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/lib/net5.0/netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "5.0.921.35908" + } + }, + "native": { + "runtimes/linux-x64/native/System.Private.CoreLib.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/linux-x64/native/createdump": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.IO.Compression.Native.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.IO.Compression.Native.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.Native.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.Native.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.Net.Security.Native.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.Net.Security.Native.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.Security.Cryptography.Native.OpenSsl.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libSystem.Security.Cryptography.Native.OpenSsl.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libclrjit.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libcoreclr.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libcoreclrtraceptprovider.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libdbgshim.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libmscordaccore.so": { + "fileVersion": "0.0.0.0" + }, + "runtimes/linux-x64/native/libmscordbi.so": { + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "native": { + "runtimes/linux-x64/native/libhostpolicy.so": { + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Microsoft.Build.Tasks.Git/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hZ9leS9Yd9MHpqvviMftSJFDcLYu2h1DrapW1TDm1s1fgOy71c8HvArNMd3fseVkXmp3VTfGnkgcw0FR+TI6xw==", + "path": "microsoft.build.tasks.git/1.1.0-beta-20206-02", + "hashPath": "microsoft.build.tasks.git.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.DiaSymReader.Native/1.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vIzndj0MoWW2Mp/iztUSKvmR9vZTqOVQ6PBvwA57+CDoiz7eUMU15rrAX+/QA0bkmwQ08GRibFBB9LNOl0EiBA==", + "path": "microsoft.diasymreader.native/1.7.0", + "hashPath": "microsoft.diasymreader.native.1.7.0.nupkg.sha512" + }, + "Microsoft.DotNet.Build.Tasks.Installers/5.0.0-beta.21328.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-68fxMTtraSXCUYZx7vNVb9PvIJ9FhPjymbvrkl/6h7S/NlQz6bxyZksTd6ghMs4gyQLHRCuDX/O/dT6Gd6qIag==", + "path": "microsoft.dotnet.build.tasks.installers/5.0.0-beta.21328.3", + "hashPath": "microsoft.dotnet.build.tasks.installers.5.0.0-beta.21328.3.nupkg.sha512" + }, + "Microsoft.DotNet.Build.Tasks.Packaging/5.0.0-beta.21328.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswwdycY3QmJ3DvyOGVMHDdZxxnE76MQFWZWqhniJqgbXPefQnXvDF4YXgCPnAENDYtsjohpaav1XDEyt84UHw==", + "path": "microsoft.dotnet.build.tasks.packaging/5.0.0-beta.21328.3", + "hashPath": "microsoft.dotnet.build.tasks.packaging.5.0.0-beta.21328.3.nupkg.sha512" + }, + "Microsoft.Net.Compilers.Toolset/3.8.0-4.20503.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jfscID/5IHHPVVEbFCAJEUEWCeWNZCLwyBcUFG3/u44oiRd/aseDOYRzl3OnIIvcwzi0U2lSAs6Lt2+rdRIDMg==", + "path": "microsoft.net.compilers.toolset/3.8.0-4.20503.2", + "hashPath": "microsoft.net.compilers.toolset.3.8.0-4.20503.2.nupkg.sha512" + }, + "Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dNmmZC388Q68OmuVYXyqSJBRuDRxsdLvbXeg2CSi6E27HqkkZH06rcDzgr/UH+o4GctsGSwAGbSVjEDigXFbog==", + "path": "microsoft.netcore.app/5.0.9-servicing.21359.8", + "hashPath": "microsoft.netcore.app.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "Microsoft.NETCore.App.Internal/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-87X5XiPwSaqvFP68pYvzk3FCufsWUzSL95F7Qudx2fcfwhr/Hu4A90AUhfFHftShB4Ai3jFnTKURz79fwpiBlQ==", + "path": "microsoft.netcore.app.internal/5.0.9-servicing.21359.8", + "hashPath": "microsoft.netcore.app.internal.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-/4xBihn6RZ0hVIOYfUkovhXFw/ScMJ/On81sUHdGdau06/c/aD8abz7ulzbeaN469kkTy3ZqzuLPromTvuXBIQ==" + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "path": "microsoft.netcore.platforms/5.0.0", + "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XpSaRv9/+V4KQ5KPbvRoArKy1o9WHizFEdOXPBLHXRZ0zwPGK5cTcWo1SveD7uayrfhod1uAAscip65qLeAjCw==", + "path": "microsoft.netcore.targets/5.0.0", + "hashPath": "microsoft.netcore.targets.5.0.0.nupkg.sha512" + }, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-m+pJPEO7HyXvrOna5Sr3s77ewXonjYWJTNL6drh8xACnMNxnlqUDKx9HfGeSE9wmfY0lQwppaeZpFTPGaH7kZg==", + "path": "microsoft.netframework.referenceassemblies/1.0.0-preview.2", + "hashPath": "microsoft.netframework.referenceassemblies.1.0.0-preview.2.nupkg.sha512" + }, + "Microsoft.SourceLink.AzureRepos.Git/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vVYhSds9TfraTQkGHHMDMVWnr3kCkTZ7vmqUmrXQBDJFXiWTuMoP5RRa9s1M/KmgB4szi5TOb7sOaHWKDT9qDA==", + "path": "microsoft.sourcelink.azurerepos.git/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.azurerepos.git.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.SourceLink.Common/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aek0RTQ+4Bf11WvqaXajwYoaBWkX2edBjAr5XJOvhAsHX6/9vPOb7IpHAiE/NyCse7IcpGWslJZHNkv4UBEFqw==", + "path": "microsoft.sourcelink.common/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.common.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.SourceLink.GitHub/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7A7P0EwL+lypaI/CEvG4IcpAlQeAt04uPPw1SO6Q9Jwz2nE9309pQXJ4TfP/RLL8IOObACidN66+gVR+bJDZHw==", + "path": "microsoft.sourcelink.github/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.github.1.1.0-beta-20206-02.nupkg.sha512" + }, + "NETStandard.Library/2.2.0-prerelease.19564.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y7Z0OKA/O5mW8aPEI4oXTSjinUTwGDwKEZMKTGdzb+vLgGRuvrZrs1YidcFN2kIKOo/11bOSNfKn4lsOLUWHkQ==", + "path": "netstandard.library/2.2.0-prerelease.19564.1", + "hashPath": "netstandard.library.2.2.0-prerelease.19564.1.nupkg.sha512" + }, + "runtime.linux-x64.Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-iLyxdBhbBxLe09HRhVRG883+QBdkwNhoNwKP8Nqpkg+OJpZ6iaIRnXgDt31g348siOIh89+IjnGeh0YmLlqylg==", + "path": "runtime.linux-x64.microsoft.netcore.app/5.0.9-servicing.21359.8", + "hashPath": "runtime.linux-x64.microsoft.netcore.app.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-IgeixSzmtJfCwGPRZ1AhjLOP+j/8j9r/qq5sX1FtEI9iAmgEhJMnRd1C5D+WuWbgZPxcXlMYtq/jy7ZOF9T/kQ==" + } + }, + "runtimes": { + "linux-arm": [ + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "linux-arm64": [ + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "linux-musl-arm": [ + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "linux-musl-arm64": [ + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "linux-musl-x64": [ + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linux-x64": [ + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "tizen.4.0.0-armel": [ + "tizen.4.0.0", + "tizen-armel", + "tizen", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "tizen.5.0.0-armel": [ + "tizen.5.0.0", + "tizen.4.0.0-armel", + "tizen.4.0.0", + "tizen-armel", + "tizen", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "alpine": [ + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine-arm": [ + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine-arm64": [ + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine-x64": [ + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "alpine.3.10": [ + "alpine.3.9", + "alpine.3.8", + "alpine.3.7", + "alpine.3.6", + "alpine", + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine.3.10-arm": [ + "alpine.3.10", + "alpine.3.9-arm", + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine.3.10-arm64": [ + "alpine.3.10", + "alpine.3.9-arm64", + "alpine.3.9", + "alpine.3.8-arm64", + "alpine.3.8", + "alpine.3.7-arm64", + "alpine.3.7", + "alpine.3.6-arm64", + "alpine.3.6", + "alpine-arm64", + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine.3.10-x64": [ + "alpine.3.10", + "alpine.3.9-x64", + "alpine.3.9", + "alpine.3.8-x64", + "alpine.3.8", + "alpine.3.7-x64", + "alpine.3.7", + "alpine.3.6-x64", + "alpine.3.6", + "alpine-x64", + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "alpine.3.11": [ + "alpine.3.10", + "alpine.3.9", + "alpine.3.8", + "alpine.3.7", + "alpine.3.6", + "alpine", + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine.3.11-arm": [ + "alpine.3.11", + "alpine.3.10-arm", + "alpine.3.10", + "alpine.3.9-arm", + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine.3.11-arm64": [ + "alpine.3.11", + "alpine.3.10-arm64", + "alpine.3.10", + "alpine.3.9-arm64", + "alpine.3.9", + "alpine.3.8-arm64", + "alpine.3.8", + "alpine.3.7-arm64", + "alpine.3.7", + "alpine.3.6-arm64", + "alpine.3.6", + "alpine-arm64", + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine.3.11-x64": [ + "alpine.3.11", + "alpine.3.10-x64", + "alpine.3.10", + "alpine.3.9-x64", + "alpine.3.9", + "alpine.3.8-x64", + "alpine.3.8", + "alpine.3.7-x64", + "alpine.3.7", + "alpine.3.6-x64", + "alpine.3.6", + "alpine-x64", + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "alpine.3.12": [ + "alpine.3.11", + "alpine.3.10", + "alpine.3.9", + "alpine.3.8", + "alpine.3.7", + "alpine.3.6", + "alpine", + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine.3.12-arm": [ + "alpine.3.12", + "alpine.3.11-arm", + "alpine.3.11", + "alpine.3.10-arm", + "alpine.3.10", + "alpine.3.9-arm", + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine.3.12-arm64": [ + "alpine.3.12", + "alpine.3.11-arm64", + "alpine.3.11", + "alpine.3.10-arm64", + "alpine.3.10", + "alpine.3.9-arm64", + "alpine.3.9", + "alpine.3.8-arm64", + "alpine.3.8", + "alpine.3.7-arm64", + "alpine.3.7", + "alpine.3.6-arm64", + "alpine.3.6", + "alpine-arm64", + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine.3.12-x64": [ + "alpine.3.12", + "alpine.3.11-x64", + "alpine.3.11", + "alpine.3.10-x64", + "alpine.3.10", + "alpine.3.9-x64", + "alpine.3.9", + "alpine.3.8-x64", + "alpine.3.8", + "alpine.3.7-x64", + "alpine.3.7", + "alpine.3.6-x64", + "alpine.3.6", + "alpine-x64", + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "alpine.3.6": [ + "alpine", + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine.3.6-arm": [ + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine.3.6-arm64": [ + "alpine.3.6", + "alpine-arm64", + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine.3.6-x64": [ + "alpine.3.6", + "alpine-x64", + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "alpine.3.7": [ + "alpine.3.6", + "alpine", + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine.3.7-arm": [ + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine.3.7-arm64": [ + "alpine.3.7", + "alpine.3.6-arm64", + "alpine.3.6", + "alpine-arm64", + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine.3.7-x64": [ + "alpine.3.7", + "alpine.3.6-x64", + "alpine.3.6", + "alpine-x64", + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "alpine.3.8": [ + "alpine.3.7", + "alpine.3.6", + "alpine", + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine.3.8-arm": [ + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine.3.8-arm64": [ + "alpine.3.8", + "alpine.3.7-arm64", + "alpine.3.7", + "alpine.3.6-arm64", + "alpine.3.6", + "alpine-arm64", + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine.3.8-x64": [ + "alpine.3.8", + "alpine.3.7-x64", + "alpine.3.7", + "alpine.3.6-x64", + "alpine.3.6", + "alpine-x64", + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "alpine.3.9": [ + "alpine.3.8", + "alpine.3.7", + "alpine.3.6", + "alpine", + "linux-musl", + "linux", + "unix", + "any", + "base" + ], + "alpine.3.9-arm": [ + "alpine.3.9", + "alpine.3.8-arm", + "alpine.3.8", + "alpine.3.7-arm", + "alpine.3.7", + "alpine.3.6-arm", + "alpine.3.6", + "alpine-arm", + "alpine", + "linux-musl-arm", + "linux-musl", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "alpine.3.9-arm64": [ + "alpine.3.9", + "alpine.3.8-arm64", + "alpine.3.8", + "alpine.3.7-arm64", + "alpine.3.7", + "alpine.3.6-arm64", + "alpine.3.6", + "alpine-arm64", + "alpine", + "linux-musl-arm64", + "linux-musl", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "alpine.3.9-x64": [ + "alpine.3.9", + "alpine.3.8-x64", + "alpine.3.8", + "alpine.3.7-x64", + "alpine.3.7", + "alpine.3.6-x64", + "alpine.3.6", + "alpine-x64", + "alpine", + "linux-musl-x64", + "linux-musl", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android": [ + "linux", + "unix", + "any", + "base" + ], + "android-arm": [ + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android-arm64": [ + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android-x64": [ + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android-x86": [ + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.21": [ + "android", + "linux", + "unix", + "any", + "base" + ], + "android.21-arm": [ + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.21-arm64": [ + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.21-x64": [ + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.21-x86": [ + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.22": [ + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.22-arm": [ + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.22-arm64": [ + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.22-x64": [ + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.22-x86": [ + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.23": [ + "android.22", + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.23-arm": [ + "android.23", + "android.22-arm", + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.23-arm64": [ + "android.23", + "android.22-arm64", + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.23-x64": [ + "android.23", + "android.22-x64", + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.23-x86": [ + "android.23", + "android.22-x86", + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.24": [ + "android.23", + "android.22", + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.24-arm": [ + "android.24", + "android.23-arm", + "android.23", + "android.22-arm", + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.24-arm64": [ + "android.24", + "android.23-arm64", + "android.23", + "android.22-arm64", + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.24-x64": [ + "android.24", + "android.23-x64", + "android.23", + "android.22-x64", + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.24-x86": [ + "android.24", + "android.23-x86", + "android.23", + "android.22-x86", + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.25": [ + "android.24", + "android.23", + "android.22", + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.25-arm": [ + "android.25", + "android.24-arm", + "android.24", + "android.23-arm", + "android.23", + "android.22-arm", + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.25-arm64": [ + "android.25", + "android.24-arm64", + "android.24", + "android.23-arm64", + "android.23", + "android.22-arm64", + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.25-x64": [ + "android.25", + "android.24-x64", + "android.24", + "android.23-x64", + "android.23", + "android.22-x64", + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.25-x86": [ + "android.25", + "android.24-x86", + "android.24", + "android.23-x86", + "android.23", + "android.22-x86", + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.26": [ + "android.25", + "android.24", + "android.23", + "android.22", + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.26-arm": [ + "android.26", + "android.25-arm", + "android.25", + "android.24-arm", + "android.24", + "android.23-arm", + "android.23", + "android.22-arm", + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.26-arm64": [ + "android.26", + "android.25-arm64", + "android.25", + "android.24-arm64", + "android.24", + "android.23-arm64", + "android.23", + "android.22-arm64", + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.26-x64": [ + "android.26", + "android.25-x64", + "android.25", + "android.24-x64", + "android.24", + "android.23-x64", + "android.23", + "android.22-x64", + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.26-x86": [ + "android.26", + "android.25-x86", + "android.25", + "android.24-x86", + "android.24", + "android.23-x86", + "android.23", + "android.22-x86", + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.27": [ + "android.26", + "android.25", + "android.24", + "android.23", + "android.22", + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.27-arm": [ + "android.27", + "android.26-arm", + "android.26", + "android.25-arm", + "android.25", + "android.24-arm", + "android.24", + "android.23-arm", + "android.23", + "android.22-arm", + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.27-arm64": [ + "android.27", + "android.26-arm64", + "android.26", + "android.25-arm64", + "android.25", + "android.24-arm64", + "android.24", + "android.23-arm64", + "android.23", + "android.22-arm64", + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.27-x64": [ + "android.27", + "android.26-x64", + "android.26", + "android.25-x64", + "android.25", + "android.24-x64", + "android.24", + "android.23-x64", + "android.23", + "android.22-x64", + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.27-x86": [ + "android.27", + "android.26-x86", + "android.26", + "android.25-x86", + "android.25", + "android.24-x86", + "android.24", + "android.23-x86", + "android.23", + "android.22-x86", + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.28": [ + "android.27", + "android.26", + "android.25", + "android.24", + "android.23", + "android.22", + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.28-arm": [ + "android.28", + "android.27-arm", + "android.27", + "android.26-arm", + "android.26", + "android.25-arm", + "android.25", + "android.24-arm", + "android.24", + "android.23-arm", + "android.23", + "android.22-arm", + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.28-arm64": [ + "android.28", + "android.27-arm64", + "android.27", + "android.26-arm64", + "android.26", + "android.25-arm64", + "android.25", + "android.24-arm64", + "android.24", + "android.23-arm64", + "android.23", + "android.22-arm64", + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.28-x64": [ + "android.28", + "android.27-x64", + "android.27", + "android.26-x64", + "android.26", + "android.25-x64", + "android.25", + "android.24-x64", + "android.24", + "android.23-x64", + "android.23", + "android.22-x64", + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.28-x86": [ + "android.28", + "android.27-x86", + "android.27", + "android.26-x86", + "android.26", + "android.25-x86", + "android.25", + "android.24-x86", + "android.24", + "android.23-x86", + "android.23", + "android.22-x86", + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "android.29": [ + "android.28", + "android.27", + "android.26", + "android.25", + "android.24", + "android.23", + "android.22", + "android.21", + "android", + "linux", + "unix", + "any", + "base" + ], + "android.29-arm": [ + "android.29", + "android.28-arm", + "android.28", + "android.27-arm", + "android.27", + "android.26-arm", + "android.26", + "android.25-arm", + "android.25", + "android.24-arm", + "android.24", + "android.23-arm", + "android.23", + "android.22-arm", + "android.22", + "android.21-arm", + "android.21", + "android-arm", + "android", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "android.29-arm64": [ + "android.29", + "android.28-arm64", + "android.28", + "android.27-arm64", + "android.27", + "android.26-arm64", + "android.26", + "android.25-arm64", + "android.25", + "android.24-arm64", + "android.24", + "android.23-arm64", + "android.23", + "android.22-arm64", + "android.22", + "android.21-arm64", + "android.21", + "android-arm64", + "android", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "android.29-x64": [ + "android.29", + "android.28-x64", + "android.28", + "android.27-x64", + "android.27", + "android.26-x64", + "android.26", + "android.25-x64", + "android.25", + "android.24-x64", + "android.24", + "android.23-x64", + "android.23", + "android.22-x64", + "android.22", + "android.21-x64", + "android.21", + "android-x64", + "android", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "android.29-x86": [ + "android.29", + "android.28-x86", + "android.28", + "android.27-x86", + "android.27", + "android.26-x86", + "android.26", + "android.25-x86", + "android.25", + "android.24-x86", + "android.24", + "android.23-x86", + "android.23", + "android.22-x86", + "android.22", + "android.21-x86", + "android.21", + "android-x86", + "android", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "arch": [ + "linux", + "unix", + "any", + "base" + ], + "arch-x64": [ + "arch", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "centos": [ + "rhel", + "linux", + "unix", + "any", + "base" + ], + "centos-arm64": [ + "centos", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "centos-x64": [ + "centos", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "centos.7": [ + "centos", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "centos.7-x64": [ + "centos.7", + "centos-x64", + "rhel.7-x64", + "centos", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "centos.8": [ + "centos", + "rhel.8", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "centos.8-arm64": [ + "centos.8", + "centos-arm64", + "rhel.8-arm64", + "centos", + "rhel.8", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "centos.8-x64": [ + "centos.8", + "centos-x64", + "rhel.8-x64", + "centos", + "rhel.8", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "centos.9": [ + "centos", + "rhel.9", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "centos.9-arm64": [ + "centos.9", + "centos-arm64", + "rhel.9-arm64", + "centos", + "rhel.9", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "centos.9-x64": [ + "centos.9", + "centos-x64", + "rhel.9-x64", + "centos", + "rhel.9", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "debian": [ + "linux", + "unix", + "any", + "base" + ], + "debian-arm": [ + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "debian-arm64": [ + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "debian-armel": [ + "debian", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "debian-x64": [ + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "debian-x86": [ + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "debian.10": [ + "debian", + "linux", + "unix", + "any", + "base" + ], + "debian.10-arm": [ + "debian.10", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "debian.10-arm64": [ + "debian.10", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "debian.10-armel": [ + "debian.10", + "debian-armel", + "debian", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "debian.10-x64": [ + "debian.10", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "debian.10-x86": [ + "debian.10", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "debian.8": [ + "debian", + "linux", + "unix", + "any", + "base" + ], + "debian.8-arm": [ + "debian.8", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "debian.8-arm64": [ + "debian.8", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "debian.8-armel": [ + "debian.8", + "debian-armel", + "debian", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "debian.8-x64": [ + "debian.8", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "debian.8-x86": [ + "debian.8", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "debian.9": [ + "debian", + "linux", + "unix", + "any", + "base" + ], + "debian.9-arm": [ + "debian.9", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "debian.9-arm64": [ + "debian.9", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "debian.9-armel": [ + "debian.9", + "debian-armel", + "debian", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "debian.9-x64": [ + "debian.9", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "debian.9-x86": [ + "debian.9", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "fedora": [ + "linux", + "unix", + "any", + "base" + ], + "fedora-arm64": [ + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora-x64": [ + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.23": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.23-arm64": [ + "fedora.23", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.23-x64": [ + "fedora.23", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.24": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.24-arm64": [ + "fedora.24", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.24-x64": [ + "fedora.24", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.25": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.25-arm64": [ + "fedora.25", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.25-x64": [ + "fedora.25", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.26": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.26-arm64": [ + "fedora.26", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.26-x64": [ + "fedora.26", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.27": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.27-arm64": [ + "fedora.27", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.27-x64": [ + "fedora.27", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.28": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.28-arm64": [ + "fedora.28", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.28-x64": [ + "fedora.28", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.29": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.29-arm64": [ + "fedora.29", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.29-x64": [ + "fedora.29", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.30": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.30-arm64": [ + "fedora.30", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.30-x64": [ + "fedora.30", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.31": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.31-arm64": [ + "fedora.31", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.31-x64": [ + "fedora.31", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.32": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.32-arm64": [ + "fedora.32", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.32-x64": [ + "fedora.32", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.33": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.33-arm64": [ + "fedora.33", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.33-x64": [ + "fedora.33", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "fedora.34": [ + "fedora", + "linux", + "unix", + "any", + "base" + ], + "fedora.34-arm64": [ + "fedora.34", + "fedora-arm64", + "fedora", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "fedora.34-x64": [ + "fedora.34", + "fedora-x64", + "fedora", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "gentoo": [ + "linux", + "unix", + "any", + "base" + ], + "gentoo-x64": [ + "gentoo", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linux": [ + "unix", + "any", + "base" + ], + "linux-armel": [ + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "linux-musl": [ + "linux", + "unix", + "any", + "base" + ], + "linux-musl-armel": [ + "linux-musl", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "linux-musl-x86": [ + "linux-musl", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "linux-x86": [ + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "linuxmint.17": [ + "ubuntu.14.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.17-x64": [ + "linuxmint.17", + "ubuntu.14.04-x64", + "ubuntu.14.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.17.1": [ + "linuxmint.17", + "ubuntu.14.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.17.1-x64": [ + "linuxmint.17.1", + "linuxmint.17-x64", + "linuxmint.17", + "ubuntu.14.04-x64", + "ubuntu.14.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.17.2": [ + "linuxmint.17.1", + "linuxmint.17", + "ubuntu.14.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.17.2-x64": [ + "linuxmint.17.2", + "linuxmint.17.1-x64", + "linuxmint.17.1", + "linuxmint.17-x64", + "linuxmint.17", + "ubuntu.14.04-x64", + "ubuntu.14.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.17.3": [ + "linuxmint.17.2", + "linuxmint.17.1", + "linuxmint.17", + "ubuntu.14.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.17.3-x64": [ + "linuxmint.17.3", + "linuxmint.17.2-x64", + "linuxmint.17.2", + "linuxmint.17.1-x64", + "linuxmint.17.1", + "linuxmint.17-x64", + "linuxmint.17", + "ubuntu.14.04-x64", + "ubuntu.14.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.18": [ + "ubuntu.16.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.18-x64": [ + "linuxmint.18", + "ubuntu.16.04-x64", + "ubuntu.16.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.18.1": [ + "linuxmint.18", + "ubuntu.16.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.18.1-x64": [ + "linuxmint.18.1", + "linuxmint.18-x64", + "linuxmint.18", + "ubuntu.16.04-x64", + "ubuntu.16.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.18.2": [ + "linuxmint.18.1", + "linuxmint.18", + "ubuntu.16.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.18.2-x64": [ + "linuxmint.18.2", + "linuxmint.18.1-x64", + "linuxmint.18.1", + "linuxmint.18-x64", + "linuxmint.18", + "ubuntu.16.04-x64", + "ubuntu.16.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.18.3": [ + "linuxmint.18.2", + "linuxmint.18.1", + "linuxmint.18", + "ubuntu.16.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.18.3-x64": [ + "linuxmint.18.3", + "linuxmint.18.2-x64", + "linuxmint.18.2", + "linuxmint.18.1-x64", + "linuxmint.18.1", + "linuxmint.18-x64", + "linuxmint.18", + "ubuntu.16.04-x64", + "ubuntu.16.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.19": [ + "ubuntu.18.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.19-x64": [ + "linuxmint.19", + "ubuntu.18.04-x64", + "ubuntu.18.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.19.1": [ + "linuxmint.19", + "ubuntu.18.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.19.1-x64": [ + "linuxmint.19.1", + "linuxmint.19-x64", + "linuxmint.19", + "ubuntu.18.04-x64", + "ubuntu.18.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "linuxmint.19.2": [ + "linuxmint.19.1", + "linuxmint.19", + "ubuntu.18.04", + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "linuxmint.19.2-x64": [ + "linuxmint.19.2", + "linuxmint.19.1-x64", + "linuxmint.19.1", + "linuxmint.19-x64", + "linuxmint.19", + "ubuntu.18.04-x64", + "ubuntu.18.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol": [ + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol-x64": [ + "ol", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7": [ + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7-x64": [ + "ol.7", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7.0": [ + "ol.7", + "rhel.7.0", + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7.0-x64": [ + "ol.7.0", + "ol.7-x64", + "rhel.7.0-x64", + "ol.7", + "rhel.7.0", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7.1": [ + "ol.7.0", + "rhel.7.1", + "ol.7", + "rhel.7.0", + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7.1-x64": [ + "ol.7.1", + "ol.7.0-x64", + "rhel.7.1-x64", + "ol.7.0", + "rhel.7.1", + "ol.7-x64", + "rhel.7.0-x64", + "ol.7", + "rhel.7.0", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7.2": [ + "ol.7.1", + "rhel.7.2", + "ol.7.0", + "rhel.7.1", + "ol.7", + "rhel.7.0", + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7.2-x64": [ + "ol.7.2", + "ol.7.1-x64", + "rhel.7.2-x64", + "ol.7.1", + "rhel.7.2", + "ol.7.0-x64", + "rhel.7.1-x64", + "ol.7.0", + "rhel.7.1", + "ol.7-x64", + "rhel.7.0-x64", + "ol.7", + "rhel.7.0", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7.3": [ + "ol.7.2", + "rhel.7.3", + "ol.7.1", + "rhel.7.2", + "ol.7.0", + "rhel.7.1", + "ol.7", + "rhel.7.0", + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7.3-x64": [ + "ol.7.3", + "ol.7.2-x64", + "rhel.7.3-x64", + "ol.7.2", + "rhel.7.3", + "ol.7.1-x64", + "rhel.7.2-x64", + "ol.7.1", + "rhel.7.2", + "ol.7.0-x64", + "rhel.7.1-x64", + "ol.7.0", + "rhel.7.1", + "ol.7-x64", + "rhel.7.0-x64", + "ol.7", + "rhel.7.0", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7.4": [ + "ol.7.3", + "rhel.7.4", + "ol.7.2", + "rhel.7.3", + "ol.7.1", + "rhel.7.2", + "ol.7.0", + "rhel.7.1", + "ol.7", + "rhel.7.0", + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7.4-x64": [ + "ol.7.4", + "ol.7.3-x64", + "rhel.7.4-x64", + "ol.7.3", + "rhel.7.4", + "ol.7.2-x64", + "rhel.7.3-x64", + "ol.7.2", + "rhel.7.3", + "ol.7.1-x64", + "rhel.7.2-x64", + "ol.7.1", + "rhel.7.2", + "ol.7.0-x64", + "rhel.7.1-x64", + "ol.7.0", + "rhel.7.1", + "ol.7-x64", + "rhel.7.0-x64", + "ol.7", + "rhel.7.0", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7.5": [ + "ol.7.4", + "rhel.7.5", + "ol.7.3", + "rhel.7.4", + "ol.7.2", + "rhel.7.3", + "ol.7.1", + "rhel.7.2", + "ol.7.0", + "rhel.7.1", + "ol.7", + "rhel.7.0", + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7.5-x64": [ + "ol.7.5", + "ol.7.4-x64", + "rhel.7.5-x64", + "ol.7.4", + "rhel.7.5", + "ol.7.3-x64", + "rhel.7.4-x64", + "ol.7.3", + "rhel.7.4", + "ol.7.2-x64", + "rhel.7.3-x64", + "ol.7.2", + "rhel.7.3", + "ol.7.1-x64", + "rhel.7.2-x64", + "ol.7.1", + "rhel.7.2", + "ol.7.0-x64", + "rhel.7.1-x64", + "ol.7.0", + "rhel.7.1", + "ol.7-x64", + "rhel.7.0-x64", + "ol.7", + "rhel.7.0", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.7.6": [ + "ol.7.5", + "rhel.7.6", + "ol.7.4", + "rhel.7.5", + "ol.7.3", + "rhel.7.4", + "ol.7.2", + "rhel.7.3", + "ol.7.1", + "rhel.7.2", + "ol.7.0", + "rhel.7.1", + "ol.7", + "rhel.7.0", + "ol", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.7.6-x64": [ + "ol.7.6", + "ol.7.5-x64", + "rhel.7.6-x64", + "ol.7.5", + "rhel.7.6", + "ol.7.4-x64", + "rhel.7.5-x64", + "ol.7.4", + "rhel.7.5", + "ol.7.3-x64", + "rhel.7.4-x64", + "ol.7.3", + "rhel.7.4", + "ol.7.2-x64", + "rhel.7.3-x64", + "ol.7.2", + "rhel.7.3", + "ol.7.1-x64", + "rhel.7.2-x64", + "ol.7.1", + "rhel.7.2", + "ol.7.0-x64", + "rhel.7.1-x64", + "ol.7.0", + "rhel.7.1", + "ol.7-x64", + "rhel.7.0-x64", + "ol.7", + "rhel.7.0", + "ol-x64", + "rhel.7-x64", + "ol", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.8": [ + "ol", + "rhel.8", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.8-x64": [ + "ol.8", + "ol-x64", + "rhel.8-x64", + "ol", + "rhel.8", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ol.8.0": [ + "ol.8", + "rhel.8.0", + "ol", + "rhel.8", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "ol.8.0-x64": [ + "ol.8.0", + "ol.8-x64", + "rhel.8.0-x64", + "ol.8", + "rhel.8.0", + "ol-x64", + "rhel.8-x64", + "ol", + "rhel.8", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "opensuse": [ + "linux", + "unix", + "any", + "base" + ], + "opensuse-x64": [ + "opensuse", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "opensuse.13.2": [ + "opensuse", + "linux", + "unix", + "any", + "base" + ], + "opensuse.13.2-x64": [ + "opensuse.13.2", + "opensuse-x64", + "opensuse", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "opensuse.15.0": [ + "opensuse", + "linux", + "unix", + "any", + "base" + ], + "opensuse.15.0-x64": [ + "opensuse.15.0", + "opensuse-x64", + "opensuse", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "opensuse.15.1": [ + "opensuse", + "linux", + "unix", + "any", + "base" + ], + "opensuse.15.1-x64": [ + "opensuse.15.1", + "opensuse-x64", + "opensuse", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "opensuse.42.1": [ + "opensuse", + "linux", + "unix", + "any", + "base" + ], + "opensuse.42.1-x64": [ + "opensuse.42.1", + "opensuse-x64", + "opensuse", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "opensuse.42.2": [ + "opensuse", + "linux", + "unix", + "any", + "base" + ], + "opensuse.42.2-x64": [ + "opensuse.42.2", + "opensuse-x64", + "opensuse", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "opensuse.42.3": [ + "opensuse", + "linux", + "unix", + "any", + "base" + ], + "opensuse.42.3-x64": [ + "opensuse.42.3", + "opensuse-x64", + "opensuse", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel": [ + "linux", + "unix", + "any", + "base" + ], + "rhel-arm64": [ + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "rhel-x64": [ + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.6": [ + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.6-x64": [ + "rhel.6", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7": [ + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7-x64": [ + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7.0": [ + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7.0-x64": [ + "rhel.7.0", + "rhel.7-x64", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7.1": [ + "rhel.7.0", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7.1-x64": [ + "rhel.7.1", + "rhel.7.0-x64", + "rhel.7.0", + "rhel.7-x64", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7.2": [ + "rhel.7.1", + "rhel.7.0", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7.2-x64": [ + "rhel.7.2", + "rhel.7.1-x64", + "rhel.7.1", + "rhel.7.0-x64", + "rhel.7.0", + "rhel.7-x64", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7.3": [ + "rhel.7.2", + "rhel.7.1", + "rhel.7.0", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7.3-x64": [ + "rhel.7.3", + "rhel.7.2-x64", + "rhel.7.2", + "rhel.7.1-x64", + "rhel.7.1", + "rhel.7.0-x64", + "rhel.7.0", + "rhel.7-x64", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7.4": [ + "rhel.7.3", + "rhel.7.2", + "rhel.7.1", + "rhel.7.0", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7.4-x64": [ + "rhel.7.4", + "rhel.7.3-x64", + "rhel.7.3", + "rhel.7.2-x64", + "rhel.7.2", + "rhel.7.1-x64", + "rhel.7.1", + "rhel.7.0-x64", + "rhel.7.0", + "rhel.7-x64", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7.5": [ + "rhel.7.4", + "rhel.7.3", + "rhel.7.2", + "rhel.7.1", + "rhel.7.0", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7.5-x64": [ + "rhel.7.5", + "rhel.7.4-x64", + "rhel.7.4", + "rhel.7.3-x64", + "rhel.7.3", + "rhel.7.2-x64", + "rhel.7.2", + "rhel.7.1-x64", + "rhel.7.1", + "rhel.7.0-x64", + "rhel.7.0", + "rhel.7-x64", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.7.6": [ + "rhel.7.5", + "rhel.7.4", + "rhel.7.3", + "rhel.7.2", + "rhel.7.1", + "rhel.7.0", + "rhel.7", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.7.6-x64": [ + "rhel.7.6", + "rhel.7.5-x64", + "rhel.7.5", + "rhel.7.4-x64", + "rhel.7.4", + "rhel.7.3-x64", + "rhel.7.3", + "rhel.7.2-x64", + "rhel.7.2", + "rhel.7.1-x64", + "rhel.7.1", + "rhel.7.0-x64", + "rhel.7.0", + "rhel.7-x64", + "rhel.7", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.8": [ + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.8-arm64": [ + "rhel.8", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "rhel.8-x64": [ + "rhel.8", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.8.0": [ + "rhel.8", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.8.0-arm64": [ + "rhel.8.0", + "rhel.8-arm64", + "rhel.8", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "rhel.8.0-x64": [ + "rhel.8.0", + "rhel.8-x64", + "rhel.8", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.8.1": [ + "rhel.8.0", + "rhel.8", + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.8.1-arm64": [ + "rhel.8.1", + "rhel.8.0-arm64", + "rhel.8.0", + "rhel.8-arm64", + "rhel.8", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "rhel.8.1-x64": [ + "rhel.8.1", + "rhel.8.0-x64", + "rhel.8.0", + "rhel.8-x64", + "rhel.8", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "rhel.9": [ + "rhel", + "linux", + "unix", + "any", + "base" + ], + "rhel.9-arm64": [ + "rhel.9", + "rhel-arm64", + "rhel", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "rhel.9-x64": [ + "rhel.9", + "rhel-x64", + "rhel", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles": [ + "linux", + "unix", + "any", + "base" + ], + "sles-x64": [ + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles.12": [ + "sles", + "linux", + "unix", + "any", + "base" + ], + "sles.12-x64": [ + "sles.12", + "sles-x64", + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles.12.1": [ + "sles.12", + "sles", + "linux", + "unix", + "any", + "base" + ], + "sles.12.1-x64": [ + "sles.12.1", + "sles.12-x64", + "sles.12", + "sles-x64", + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles.12.2": [ + "sles.12.1", + "sles.12", + "sles", + "linux", + "unix", + "any", + "base" + ], + "sles.12.2-x64": [ + "sles.12.2", + "sles.12.1-x64", + "sles.12.1", + "sles.12-x64", + "sles.12", + "sles-x64", + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles.12.3": [ + "sles.12.2", + "sles.12.1", + "sles.12", + "sles", + "linux", + "unix", + "any", + "base" + ], + "sles.12.3-x64": [ + "sles.12.3", + "sles.12.2-x64", + "sles.12.2", + "sles.12.1-x64", + "sles.12.1", + "sles.12-x64", + "sles.12", + "sles-x64", + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles.12.4": [ + "sles.12.3", + "sles.12.2", + "sles.12.1", + "sles.12", + "sles", + "linux", + "unix", + "any", + "base" + ], + "sles.12.4-x64": [ + "sles.12.4", + "sles.12.3-x64", + "sles.12.3", + "sles.12.2-x64", + "sles.12.2", + "sles.12.1-x64", + "sles.12.1", + "sles.12-x64", + "sles.12", + "sles-x64", + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles.15": [ + "sles.12.4", + "sles.12.3", + "sles.12.2", + "sles.12.1", + "sles.12", + "sles", + "linux", + "unix", + "any", + "base" + ], + "sles.15-x64": [ + "sles.15", + "sles.12.4-x64", + "sles.12.4", + "sles.12.3-x64", + "sles.12.3", + "sles.12.2-x64", + "sles.12.2", + "sles.12.1-x64", + "sles.12.1", + "sles.12-x64", + "sles.12", + "sles-x64", + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "sles.15.1": [ + "sles.15", + "sles.12.4", + "sles.12.3", + "sles.12.2", + "sles.12.1", + "sles.12", + "sles", + "linux", + "unix", + "any", + "base" + ], + "sles.15.1-x64": [ + "sles.15.1", + "sles.15-x64", + "sles.15", + "sles.12.4-x64", + "sles.12.4", + "sles.12.3-x64", + "sles.12.3", + "sles.12.2-x64", + "sles.12.2", + "sles.12.1-x64", + "sles.12.1", + "sles.12-x64", + "sles.12", + "sles-x64", + "sles", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "tizen": [ + "linux", + "unix", + "any", + "base" + ], + "tizen-arm64": [ + "tizen", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "tizen-armel": [ + "tizen", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "tizen-x86": [ + "tizen", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "tizen.4.0.0": [ + "tizen", + "linux", + "unix", + "any", + "base" + ], + "tizen.4.0.0-arm64": [ + "tizen.4.0.0", + "tizen-arm64", + "tizen", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "tizen.4.0.0-x86": [ + "tizen.4.0.0", + "tizen-x86", + "tizen", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "tizen.5.0.0": [ + "tizen.4.0.0", + "tizen", + "linux", + "unix", + "any", + "base" + ], + "tizen.5.0.0-arm64": [ + "tizen.5.0.0", + "tizen.4.0.0-arm64", + "tizen.4.0.0", + "tizen-arm64", + "tizen", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "tizen.5.0.0-x86": [ + "tizen.5.0.0", + "tizen.4.0.0-x86", + "tizen.4.0.0", + "tizen-x86", + "tizen", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "tizen.5.5.0": [ + "tizen.5.0.0", + "tizen.4.0.0", + "tizen", + "linux", + "unix", + "any", + "base" + ], + "tizen.5.5.0-arm64": [ + "tizen.5.5.0", + "tizen.5.0.0-arm64", + "tizen.5.0.0", + "tizen.4.0.0-arm64", + "tizen.4.0.0", + "tizen-arm64", + "tizen", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "tizen.5.5.0-armel": [ + "tizen.5.5.0", + "tizen.5.0.0-armel", + "tizen.5.0.0", + "tizen.4.0.0-armel", + "tizen.4.0.0", + "tizen-armel", + "tizen", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "tizen.5.5.0-x86": [ + "tizen.5.5.0", + "tizen.5.0.0-x86", + "tizen.5.0.0", + "tizen.4.0.0-x86", + "tizen.4.0.0", + "tizen-x86", + "tizen", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "tizen.6.0.0": [ + "tizen.5.5.0", + "tizen.5.0.0", + "tizen.4.0.0", + "tizen", + "linux", + "unix", + "any", + "base" + ], + "tizen.6.0.0-arm64": [ + "tizen.6.0.0", + "tizen.5.5.0-arm64", + "tizen.5.5.0", + "tizen.5.0.0-arm64", + "tizen.5.0.0", + "tizen.4.0.0-arm64", + "tizen.4.0.0", + "tizen-arm64", + "tizen", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "tizen.6.0.0-armel": [ + "tizen.6.0.0", + "tizen.5.5.0-armel", + "tizen.5.5.0", + "tizen.5.0.0-armel", + "tizen.5.0.0", + "tizen.4.0.0-armel", + "tizen.4.0.0", + "tizen-armel", + "tizen", + "linux-armel", + "linux", + "unix-armel", + "unix", + "any", + "base" + ], + "tizen.6.0.0-x86": [ + "tizen.6.0.0", + "tizen.5.5.0-x86", + "tizen.5.5.0", + "tizen.5.0.0-x86", + "tizen.5.0.0", + "tizen.4.0.0-x86", + "tizen.4.0.0", + "tizen-x86", + "tizen", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu": [ + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu-arm": [ + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu-arm64": [ + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu-x64": [ + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu-x86": [ + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.14.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.14.04-arm": [ + "ubuntu.14.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.14.04-x64": [ + "ubuntu.14.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.14.04-x86": [ + "ubuntu.14.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.14.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.14.10-arm": [ + "ubuntu.14.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.14.10-x64": [ + "ubuntu.14.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.14.10-x86": [ + "ubuntu.14.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.15.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.15.04-arm": [ + "ubuntu.15.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.15.04-x64": [ + "ubuntu.15.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.15.04-x86": [ + "ubuntu.15.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.15.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.15.10-arm": [ + "ubuntu.15.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.15.10-x64": [ + "ubuntu.15.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.15.10-x86": [ + "ubuntu.15.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.16.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.16.04-arm": [ + "ubuntu.16.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.16.04-arm64": [ + "ubuntu.16.04", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.16.04-x64": [ + "ubuntu.16.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.16.04-x86": [ + "ubuntu.16.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.16.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.16.10-arm": [ + "ubuntu.16.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.16.10-arm64": [ + "ubuntu.16.10", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.16.10-x64": [ + "ubuntu.16.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.16.10-x86": [ + "ubuntu.16.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.17.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.17.04-arm": [ + "ubuntu.17.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.17.04-arm64": [ + "ubuntu.17.04", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.17.04-x64": [ + "ubuntu.17.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.17.04-x86": [ + "ubuntu.17.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.17.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.17.10-arm": [ + "ubuntu.17.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.17.10-arm64": [ + "ubuntu.17.10", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.17.10-x64": [ + "ubuntu.17.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.17.10-x86": [ + "ubuntu.17.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.18.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.18.04-arm": [ + "ubuntu.18.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.18.04-arm64": [ + "ubuntu.18.04", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.18.04-x64": [ + "ubuntu.18.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.18.04-x86": [ + "ubuntu.18.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.18.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.18.10-arm": [ + "ubuntu.18.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.18.10-arm64": [ + "ubuntu.18.10", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.18.10-x64": [ + "ubuntu.18.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.18.10-x86": [ + "ubuntu.18.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.19.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.19.04-arm": [ + "ubuntu.19.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.19.04-arm64": [ + "ubuntu.19.04", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.19.04-x64": [ + "ubuntu.19.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.19.04-x86": [ + "ubuntu.19.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.19.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.19.10-arm": [ + "ubuntu.19.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.19.10-arm64": [ + "ubuntu.19.10", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.19.10-x64": [ + "ubuntu.19.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.19.10-x86": [ + "ubuntu.19.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.20.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.20.04-arm": [ + "ubuntu.20.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.20.04-arm64": [ + "ubuntu.20.04", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.20.04-x64": [ + "ubuntu.20.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.20.04-x86": [ + "ubuntu.20.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.20.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.20.10-arm": [ + "ubuntu.20.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.20.10-arm64": [ + "ubuntu.20.10", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.20.10-x64": [ + "ubuntu.20.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.20.10-x86": [ + "ubuntu.20.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.21.04": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.21.04-arm": [ + "ubuntu.21.04", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.21.04-arm64": [ + "ubuntu.21.04", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.21.04-x64": [ + "ubuntu.21.04", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.21.04-x86": [ + "ubuntu.21.04", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ], + "ubuntu.21.10": [ + "ubuntu", + "debian", + "linux", + "unix", + "any", + "base" + ], + "ubuntu.21.10-arm": [ + "ubuntu.21.10", + "ubuntu-arm", + "ubuntu", + "debian-arm", + "debian", + "linux-arm", + "linux", + "unix-arm", + "unix", + "any", + "base" + ], + "ubuntu.21.10-arm64": [ + "ubuntu.21.10", + "ubuntu-arm64", + "ubuntu", + "debian-arm64", + "debian", + "linux-arm64", + "linux", + "unix-arm64", + "unix", + "any", + "base" + ], + "ubuntu.21.10-x64": [ + "ubuntu.21.10", + "ubuntu-x64", + "ubuntu", + "debian-x64", + "debian", + "linux-x64", + "linux", + "unix-x64", + "unix", + "any", + "base" + ], + "ubuntu.21.10-x86": [ + "ubuntu.21.10", + "ubuntu-x86", + "ubuntu", + "debian-x86", + "debian", + "linux-x86", + "linux", + "unix-x86", + "unix", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll new file mode 100644 index 00000000..4495cac8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll new file mode 100644 index 00000000..7fe23e07 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll new file mode 100644 index 00000000..f99a1197 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll new file mode 100644 index 00000000..335557b9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll new file mode 100644 index 00000000..6b17fd4b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll new file mode 100644 index 00000000..931db0a8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll new file mode 100644 index 00000000..3dfd4db8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll new file mode 100644 index 00000000..525c1d7d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll new file mode 100644 index 00000000..2f42cd2b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll new file mode 100644 index 00000000..a1e78dcf Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll new file mode 100644 index 00000000..40fa0acc Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll new file mode 100644 index 00000000..7557164f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 00000000..6064512b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 00000000..37d7c1b4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll new file mode 100644 index 00000000..a9ea14f4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll new file mode 100644 index 00000000..2245b739 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll new file mode 100644 index 00000000..b8f9d575 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll new file mode 100644 index 00000000..7a0d53c3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll new file mode 100644 index 00000000..1040ddb0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll new file mode 100644 index 00000000..5f7d73f5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll new file mode 100644 index 00000000..8f04f510 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll new file mode 100644 index 00000000..736c9deb Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll new file mode 100644 index 00000000..69e21022 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll new file mode 100644 index 00000000..aa369b82 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll new file mode 100644 index 00000000..8d872833 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 00000000..f1a4d786 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 00000000..435ca1a8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll new file mode 100644 index 00000000..13feeca4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll new file mode 100644 index 00000000..2be32c7e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 00000000..bd3bd149 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll new file mode 100644 index 00000000..5350bf39 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll new file mode 100644 index 00000000..ce360b08 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll new file mode 100644 index 00000000..bef6678f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll new file mode 100644 index 00000000..0f571792 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll new file mode 100644 index 00000000..5d529fc6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll new file mode 100644 index 00000000..68b00044 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll new file mode 100644 index 00000000..7cd893d5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll new file mode 100644 index 00000000..438314b7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll new file mode 100644 index 00000000..b8a9d05f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll new file mode 100644 index 00000000..fbc8614d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll new file mode 100644 index 00000000..705e8054 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll new file mode 100644 index 00000000..dac6fcf4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll new file mode 100644 index 00000000..5aa8de56 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll new file mode 100644 index 00000000..6de00e28 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 00000000..b9410f60 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 00000000..d1255944 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll new file mode 100644 index 00000000..33ee91c7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll new file mode 100644 index 00000000..4a53b66c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll new file mode 100644 index 00000000..79155c7e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll new file mode 100644 index 00000000..10f51011 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll new file mode 100644 index 00000000..7afcd2df Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll new file mode 100644 index 00000000..077ff728 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll new file mode 100644 index 00000000..289f1a63 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 00000000..7fcda977 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll new file mode 100644 index 00000000..10f8d28c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll new file mode 100644 index 00000000..e02233fd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll new file mode 100644 index 00000000..46812cf3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll new file mode 100644 index 00000000..d54a64cc Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll new file mode 100644 index 00000000..fdfbd892 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll new file mode 100644 index 00000000..8046cbfb Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll new file mode 100644 index 00000000..1d4e2750 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll new file mode 100644 index 00000000..2c400386 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll new file mode 100644 index 00000000..89ade373 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll new file mode 100644 index 00000000..bd780037 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll new file mode 100644 index 00000000..1d5a1408 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll new file mode 100644 index 00000000..028ae732 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll new file mode 100644 index 00000000..a8241079 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll new file mode 100644 index 00000000..82dea1ed Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll new file mode 100644 index 00000000..f290f7bd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll new file mode 100644 index 00000000..38c5e6ad Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll new file mode 100644 index 00000000..abdf8508 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll new file mode 100644 index 00000000..f961452f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll new file mode 100644 index 00000000..7f9e94ec Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll new file mode 100644 index 00000000..6a504ca7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll new file mode 100644 index 00000000..93089df3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll new file mode 100644 index 00000000..fd9f160f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll new file mode 100644 index 00000000..8743ce5d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll new file mode 100644 index 00000000..a11597da Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll new file mode 100644 index 00000000..5d5036aa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll new file mode 100644 index 00000000..4476efdd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll new file mode 100644 index 00000000..cd3c426e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll new file mode 100644 index 00000000..b937023b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll new file mode 100644 index 00000000..9704ee98 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll new file mode 100644 index 00000000..9375fa8b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll new file mode 100644 index 00000000..58ed14f9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll new file mode 100644 index 00000000..132bfa3b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll new file mode 100644 index 00000000..92e8b891 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 00000000..0c40c684 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 00000000..a2b5f3c8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll new file mode 100644 index 00000000..cf635048 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll new file mode 100644 index 00000000..d0600d56 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll new file mode 100644 index 00000000..8dc0133e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll new file mode 100644 index 00000000..4ba7ebdd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll new file mode 100644 index 00000000..337b77e5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll new file mode 100644 index 00000000..3e419e9b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll new file mode 100644 index 00000000..36c68a2d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll new file mode 100644 index 00000000..62996a6a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll new file mode 100644 index 00000000..d587da73 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 00000000..e0d3a01a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 00000000..de493c5f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll new file mode 100644 index 00000000..1c056e29 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll new file mode 100644 index 00000000..0b269993 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 00000000..c01c6071 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll new file mode 100644 index 00000000..ef13508b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll new file mode 100644 index 00000000..f5d7d297 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll new file mode 100644 index 00000000..42b35778 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll new file mode 100644 index 00000000..f6911503 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 00000000..d3ffe2b8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll new file mode 100644 index 00000000..cfc968c3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 00000000..a2a078c6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll new file mode 100644 index 00000000..dec58ac2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll new file mode 100644 index 00000000..894973b4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll new file mode 100644 index 00000000..30e75c27 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll new file mode 100644 index 00000000..1acc5cb2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll new file mode 100644 index 00000000..8d00e3b5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 00000000..bea40847 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll new file mode 100644 index 00000000..f515863f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll new file mode 100644 index 00000000..142ead00 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll new file mode 100644 index 00000000..2e4d71ef Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 00000000..d45ccaf0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll new file mode 100644 index 00000000..d4d0532c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 00000000..10a7efe0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll new file mode 100644 index 00000000..aa272ac5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll new file mode 100644 index 00000000..d1b06ae4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll new file mode 100644 index 00000000..9a39a5af Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll new file mode 100644 index 00000000..d479498d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll new file mode 100644 index 00000000..b2a6143e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll new file mode 100644 index 00000000..62898043 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll new file mode 100644 index 00000000..ab757a62 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll new file mode 100644 index 00000000..2f2922a0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll new file mode 100644 index 00000000..1be729bd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll new file mode 100644 index 00000000..be442db1 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll new file mode 100644 index 00000000..760d72d1 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll new file mode 100644 index 00000000..6cb7b270 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll new file mode 100644 index 00000000..3a9600b5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll new file mode 100644 index 00000000..cfce14ba Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 00000000..61a0979d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll new file mode 100644 index 00000000..1bf05f96 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll new file mode 100644 index 00000000..00199242 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll new file mode 100644 index 00000000..49ea14b8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll new file mode 100644 index 00000000..1cbe44c9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll new file mode 100644 index 00000000..3db728a5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll new file mode 100644 index 00000000..15475d8f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll new file mode 100644 index 00000000..09c0d577 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll new file mode 100644 index 00000000..561ae66a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll new file mode 100644 index 00000000..b2aa2ee9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll new file mode 100644 index 00000000..5d5ca8b0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll new file mode 100644 index 00000000..d260db05 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll new file mode 100644 index 00000000..de83b308 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll new file mode 100644 index 00000000..45bbaedd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll new file mode 100644 index 00000000..821b205f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll new file mode 100644 index 00000000..e31dc4aa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll new file mode 100644 index 00000000..5fd1c77a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll new file mode 100644 index 00000000..97228e3a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll new file mode 100644 index 00000000..4e8ad697 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll new file mode 100644 index 00000000..fb8a2fe5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll new file mode 100644 index 00000000..c291d87b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll new file mode 100644 index 00000000..b3096a54 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll new file mode 100644 index 00000000..4e155a26 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.dll new file mode 100644 index 00000000..fc60079e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/System.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll new file mode 100644 index 00000000..9c9b0685 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h new file mode 100644 index 00000000..914ab592 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __CORECLR_DELEGATES_H__ +#define __CORECLR_DELEGATES_H__ + +#include + +#if defined(_WIN32) + #define CORECLR_DELEGATE_CALLTYPE __stdcall + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define CORECLR_DELEGATE_CALLTYPE + typedef char char_t; +#endif + +#define UNMANAGEDCALLERSONLY_METHOD ((const char_t*)-1) + +// Signature of delegate returned by coreclr_delegate_type::load_assembly_and_get_function_pointer +typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_and_get_function_pointer_fn)( + const char_t *assembly_path /* Fully qualified path to assembly */, + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +// Signature of delegate returned by load_assembly_and_get_function_pointer_fn when delegate_type_name == null (default) +typedef int (CORECLR_DELEGATE_CALLTYPE *component_entry_point_fn)(void *arg, int32_t arg_size_in_bytes); + +typedef int (CORECLR_DELEGATE_CALLTYPE *get_function_pointer_fn)( + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null, + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *load_context /* Extensibility parameter (currently unused and must be 0) */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +#endif // __CORECLR_DELEGATES_H__ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/createdump b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/createdump new file mode 100644 index 00000000..91eeed91 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/createdump differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h new file mode 100644 index 00000000..e062193c --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h @@ -0,0 +1,288 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __HOSTFXR_H__ +#define __HOSTFXR_H__ + +#include +#include + +#if defined(_WIN32) + #define HOSTFXR_CALLTYPE __cdecl + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define HOSTFXR_CALLTYPE + typedef char char_t; +#endif + +enum hostfxr_delegate_type +{ + hdt_com_activation, + hdt_load_in_memory_assembly, + hdt_winrt_activation, + hdt_com_register, + hdt_com_unregister, + hdt_load_assembly_and_get_function_pointer, + hdt_get_function_pointer, +}; + +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_fn)(const int argc, const char_t **argv); +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_startupinfo_fn)( + const int argc, + const char_t **argv, + const char_t *host_path, + const char_t *dotnet_root, + const char_t *app_path); +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_bundle_startupinfo_fn)( + const int argc, + const char_t** argv, + const char_t* host_path, + const char_t* dotnet_root, + const char_t* app_path, + int64_t bundle_header_offset); + +typedef void(HOSTFXR_CALLTYPE *hostfxr_error_writer_fn)(const char_t *message); + +// +// Sets a callback which is to be used to write errors to. +// +// Parameters: +// error_writer +// A callback function which will be invoked every time an error is to be reported. +// Or nullptr to unregister previously registered callback and return to the default behavior. +// Return value: +// The previously registered callback (which is now unregistered), or nullptr if no previous callback +// was registered +// +// The error writer is registered per-thread, so the registration is thread-local. On each thread +// only one callback can be registered. Subsequent registrations overwrite the previous ones. +// +// By default no callback is registered in which case the errors are written to stderr. +// +// Each call to the error writer is sort of like writing a single line (the EOL character is omitted). +// Multiple calls to the error writer may occure for one failure. +// +// If the hostfxr invokes functions in hostpolicy as part of its operation, the error writer +// will be propagated to hostpolicy for the duration of the call. This means that errors from +// both hostfxr and hostpolicy will be reporter through the same error writer. +// +typedef hostfxr_error_writer_fn(HOSTFXR_CALLTYPE *hostfxr_set_error_writer_fn)(hostfxr_error_writer_fn error_writer); + +typedef void* hostfxr_handle; +struct hostfxr_initialize_parameters +{ + size_t size; + const char_t *host_path; + const char_t *dotnet_root; +}; + +// +// Initializes the hosting components for a dotnet command line running an application +// +// Parameters: +// argc +// Number of argv arguments +// argv +// Command-line arguments for running an application (as if through the dotnet executable). +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// HostInvalidState - Hosting components are already initialized +// +// This function parses the specified command-line arguments to determine the application to run. It will +// then find the corresponding .runtimeconfig.json and .deps.json with which to resolve frameworks and +// dependencies and prepare everything needed to load the runtime. +// +// This function only supports arguments for running an application. It does not support SDK commands. +// +// This function does not load the runtime. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_dotnet_command_line_fn)( + int argc, + const char_t **argv, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Initializes the hosting components using a .runtimeconfig.json file +// +// Parameters: +// runtime_config_path +// Path to the .runtimeconfig.json file +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// Success_HostAlreadyInitialized - Config is compatible with already initialized hosting components +// Success_DifferentRuntimeProperties - Config has runtime properties that differ from already initialized hosting components +// CoreHostIncompatibleConfig - Config is incompatible with already initialized hosting components +// +// This function will process the .runtimeconfig.json to resolve frameworks and prepare everything needed +// to load the runtime. It will only process the .deps.json from frameworks (not any app/component that +// may be next to the .runtimeconfig.json). +// +// This function does not load the runtime. +// +// If called when the runtime has already been loaded, this function will check if the specified runtime +// config is compatible with the existing runtime. +// +// Both Success_HostAlreadyInitialized and Success_DifferentRuntimeProperties codes are considered successful +// initializations. In the case of Success_DifferentRuntimeProperties, it is left to the consumer to verify that +// the difference in properties is acceptable. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_runtime_config_fn)( + const char_t *runtime_config_path, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Gets the runtime property value for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Out parameter. Pointer to a buffer with the property value. +// +// Return value: +// The error code result. +// +// The buffer pointed to by value is owned by the host context. The lifetime of the buffer is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// property value for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + /*out*/ const char_t **value); + +// +// Sets the value of a runtime property for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Value to set +// +// Return value: +// The error code result. +// +// Setting properties is only supported for the first host context, before the runtime has been loaded. +// +// If the property already exists in the host context, it will be overwritten. If value is nullptr, the +// property will be removed. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_set_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + const char_t *value); + +// +// Gets all the runtime properties for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// count +// [in] Size of the keys and values buffers +// [out] Number of properties returned (size of keys/values buffers used). If the input value is too +// small or keys/values is nullptr, this is populated with the number of available properties +// keys +// Array of pointers to buffers with runtime property keys +// values +// Array of pointers to buffers with runtime property values +// +// Return value: +// The error code result. +// +// The buffers pointed to by keys and values are owned by the host context. The lifetime of the buffers is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// properties for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_properties_fn)( + const hostfxr_handle host_context_handle, + /*inout*/ size_t * count, + /*out*/ const char_t **keys, + /*out*/ const char_t **values); + +// +// Load CoreCLR and run the application for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// If the app was successfully run, the exit code of the application. Otherwise, the error code result. +// +// The host_context_handle must have been initialized using hostfxr_initialize_for_dotnet_command_line. +// +// This function will not return until the managed application exits. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_run_app_fn)(const hostfxr_handle host_context_handle); + +// +// Gets a typed delegate from the currently loaded CoreCLR or from a newly created one. +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// type +// Type of runtime delegate requested +// delegate +// An out parameter that will be assigned the delegate. +// +// Return value: +// The error code result. +// +// If the host_context_handle was initialized using hostfxr_initialize_for_runtime_config, +// then all delegate types are supported. +// If the host_context_handle was initialized using hostfxr_initialize_for_dotnet_command_line, +// then only the following delegate types are currently supported: +// hdt_load_assembly_and_get_function_pointer +// hdt_get_function_pointer +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_delegate_fn)( + const hostfxr_handle host_context_handle, + enum hostfxr_delegate_type type, + /*out*/ void **delegate); + +// +// Closes an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// The error code result. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_close_fn)(const hostfxr_handle host_context_handle); + +#endif //__HOSTFXR_H__ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.a b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.a new file mode 100644 index 00000000..9729f545 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.a differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.so new file mode 100644 index 00000000..042c487f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.a b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.a new file mode 100644 index 00000000..3263d00e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.a differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.so new file mode 100644 index 00000000..f3b007f3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.a b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.a new file mode 100644 index 00000000..e6854c38 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.a differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.so new file mode 100644 index 00000000..218e1100 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.a b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.a new file mode 100644 index 00000000..1b5f6d07 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.a differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.so new file mode 100644 index 00000000..02d1d666 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libclrjit.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libclrjit.so new file mode 100644 index 00000000..60bf7c6c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libclrjit.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libcoreclr.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libcoreclr.so new file mode 100644 index 00000000..865f1709 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libcoreclr.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libcoreclrtraceptprovider.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libcoreclrtraceptprovider.so new file mode 100644 index 00000000..f8e7ba74 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libcoreclrtraceptprovider.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libdbgshim.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libdbgshim.so new file mode 100644 index 00000000..131f78b3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libdbgshim.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libhostpolicy.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libhostpolicy.so new file mode 100644 index 00000000..055504f1 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libhostpolicy.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libmscordaccore.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libmscordaccore.so new file mode 100644 index 00000000..884501e7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libmscordaccore.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libmscordbi.so b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libmscordbi.so new file mode 100644 index 00000000..e5c5c4df Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libmscordbi.so differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libnethost.a b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libnethost.a new file mode 100644 index 00000000..496d7bef Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/libnethost.a differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll new file mode 100644 index 00000000..02b38ea6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll differ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/nethost.h b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/nethost.h new file mode 100644 index 00000000..31adde5e --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/nethost.h @@ -0,0 +1,99 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __NETHOST_H__ +#define __NETHOST_H__ + +#include + +#ifdef _WIN32 + #ifdef NETHOST_EXPORT + #define NETHOST_API __declspec(dllexport) + #else + // Consuming the nethost as a static library + // Shouldn't export attempt to dllimport. + #ifdef NETHOST_USE_AS_STATIC + #define NETHOST_API + #else + #define NETHOST_API __declspec(dllimport) + #endif + #endif + + #define NETHOST_CALLTYPE __stdcall + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #ifdef NETHOST_EXPORT + #define NETHOST_API __attribute__((__visibility__("default"))) + #else + #define NETHOST_API + #endif + + #define NETHOST_CALLTYPE + typedef char char_t; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// Parameters for get_hostfxr_path +// +// Fields: +// size +// Size of the struct. This is used for versioning. +// +// assembly_path +// Path to the compenent's assembly. +// If specified, hostfxr is located as if the assembly_path is the apphost +// +// dotnet_root +// Path to directory containing the dotnet executable. +// If specified, hostfxr is located as if an application is started using +// 'dotnet app.dll', which means it will be searched for under the dotnet_root +// path and the assembly_path is ignored. +// +struct get_hostfxr_parameters { + size_t size; + const char_t *assembly_path; + const char_t *dotnet_root; +}; + +// +// Get the path to the hostfxr library +// +// Parameters: +// buffer +// Buffer that will be populated with the hostfxr path, including a null terminator. +// +// buffer_size +// [in] Size of buffer in char_t units. +// [out] Size of buffer used in char_t units. If the input value is too small +// or buffer is nullptr, this is populated with the minimum required size +// in char_t units for a buffer to hold the hostfxr path +// +// get_hostfxr_parameters +// Optional. Parameters that modify the behaviour for locating the hostfxr library. +// If nullptr, hostfxr is located using the enviroment variable or global registration +// +// Return value: +// 0 on success, otherwise failure +// 0x80008098 - buffer is too small (HostApiBufferTooSmall) +// +// Remarks: +// The full search for the hostfxr library is done on every call. To minimize the need +// to call this function multiple times, pass a large buffer (e.g. PATH_MAX). +// +NETHOST_API int NETHOST_CALLTYPE get_hostfxr_path( + char_t * buffer, + size_t * buffer_size, + const struct get_hostfxr_parameters *parameters); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // __NETHOST_H__ diff --git a/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll new file mode 100644 index 00000000..1a65cf65 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Linux/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/LICENSE.txt b/plugins/UnrealCLR/Runtime/Mac/LICENSE.txt new file mode 100644 index 00000000..984713a4 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Mac/LICENSE.txt @@ -0,0 +1,23 @@ +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/UnrealCLR/Runtime/Mac/ThirdPartyNotices.txt b/plugins/UnrealCLR/Runtime/Mac/ThirdPartyNotices.txt new file mode 100644 index 00000000..b8d644c4 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Mac/ThirdPartyNotices.txt @@ -0,0 +1,1219 @@ +.NET Runtime uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Runtime software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + +License notice for Unicode data +------------------------------- + +https://www.unicode.org/license.html + +Copyright © 1991-2020 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for RFC 3492 +--------------------------- + +The punycode implementation is based on the sample code in RFC 3492 + +Copyright (C) The Internet Society (2003). All Rights Reserved. + +This document and translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it +or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any +kind, provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to the Internet Society or other +Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for +copyrights defined in the Internet Standards process must be +followed, or as required to translate it into languages other than +English. + +The limited permissions granted above are perpetual and will not be +revoked by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an +"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +License notice for Algorithm from Internet Draft document "UUIDs and GUIDs" +--------------------------------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, or Digital Equipment Corporation be used in advertising +or publicity pertaining to distribution of the software without +specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment +Corporation makes any representations about the suitability of +this software for any purpose. + +Copyright(C) The Internet Society 1997. All Rights Reserved. + +This document and translations of it may be copied and furnished to others, +and derivative works that comment on or otherwise explain it or assist in +its implementation may be prepared, copied, published and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this paragraph are included on all such copies and +derivative works.However, this document itself may not be modified in any +way, such as by removing the copyright notice or references to the Internet +Society or other Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for copyrights +defined in the Internet Standards process must be followed, or as required +to translate it into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked +by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +License notice for Algorithm from RFC 4122 - +A Universally Unique IDentifier (UUID) URN Namespace +---------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +Copyright (c) 1998 Microsoft. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, Microsoft, or Digital Equipment Corporation be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital +Equipment Corporation makes any representations about the +suitability of this software for any purpose." + +License notice for The LLVM Compiler Infrastructure +--------------------------------------------------- + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +License notice for Bob Jenkins +------------------------------ + +By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this +code any way you wish, private, educational, or commercial. It's free. + +License notice for Greg Parker +------------------------------ + +Greg Parker gparker@cs.stanford.edu December 2000 +This code is in the public domain and may be copied or modified without +permission. + +License notice for libunwind based code +---------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Printing Floating-Point Numbers (Dragon4) +------------------------------------------------------------ + +/****************************************************************************** + Copyright (c) 2014 Ryan Juckett + http://www.ryanjuckett.com/ + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +******************************************************************************/ + +License notice for Printing Floating-point Numbers (Grisu3) +----------------------------------------------------------- + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xxHash +------------------------- + +xxHash Library +Copyright (c) 2012-2014, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Berkeley SoftFloat Release 3e +------------------------------------------------ + +https://github.com/ucb-bar/berkeley-softfloat-3 +https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt + +License for Berkeley SoftFloat Release 3e + +John R. Hauser +2018 January 20 + +The following applies to the whole of SoftFloat Release 3e as well as to +each source file individually. + +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the +University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xorshift RNGs +-------------------------------- + +George Marsaglia +2003-07-04 +Journal of Statistical Software +License: http://creativecommons.org/licenses/by/3.0/ + +https://www.jstatsoft.org/article/view/v008i14 +https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf + +License notice for Xorshift (Wikipedia) +--------------------------------------- + +https://en.wikipedia.org/wiki/Xorshift +License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License + +License for fastmod (https://github.com/lemire/fastmod) +-------------------------------------- + + Copyright 2018 Daniel Lemire + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +License notice for The C++ REST SDK +----------------------------------- + +C++ REST SDK + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MessagePack-CSharp +------------------------------------- + +MessagePack for C# + +MIT License + +Copyright (c) 2017 Yoshifumi Kawai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for lz4net +------------------------------------- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Nerdbank.Streams +----------------------------------- + +The MIT License (MIT) + +Copyright (c) Andrew Arnott + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for RapidJSON +---------------------------- + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +Licensed under the MIT License (the "License"); you may not use this file except +in compliance with the License. You may obtain a copy of the License at + +http://opensource.org/licenses/MIT + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for DirectX Math Library +--------------------------------------- + +https://github.com/microsoft/DirectXMath/blob/master/LICENSE + + The MIT License (MIT) + +Copyright (c) 2011-2020 Microsoft Corp + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for ldap4net +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2018 Alexander Chermyanin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized sorting code +------------------------------------------ + +MIT License + +Copyright (c) 2020 Dan Shechter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for Angular v8.0 +-------------------------------------------- +The MIT License (MIT) +===================== + +Copyright (c) 2010-2019 Google LLC. http://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +License notice for corefx + +License notice for BedrockFramework +=================================== + +MIT License + +Copyright (c) 2019 David Fowler + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for Swashbuckle +=================================== + +The MIT License (MIT) + +Copyright (c) 2016 Richard Morris + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for cli-spinners +============================================= + +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for dotnet-deb-tool +------------------------------------ + +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for IIS-Common +------------------------------------ + +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +License notice for IIS-Setup +------------------------------------ + +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +License notice for LZMA SDK +--------------------------- + +http://7-zip.org/sdk.html + +LZMA SDK is placed in the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute the +original LZMA SDK code, either in source code form or as a compiled binary, +for any purpose, commercial or non-commercial, and by any means. + +License notice for MonoDevelop +------------------------------ + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +License notice for Nuget.Client +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +these files except in compliance with the License. You may obtain a copy of the +License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for Ookie.Dialogs +-------------------------------- + +http://www.ookii.org/software/dialogs/ + +Copyright © Sven Groot (Ookii.org) 2009 +All rights reserved. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1) Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +2) Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3) Neither the name of the ORGANIZATION nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +License notice for viz.js +------------------------------------ + +Copyright (c) 2014-2018 Michael Daines + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for West Wind Live Reload ASP.NET Core Middleware +============================================= + + + +--- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +MIT License +----------- + +Copyright (c) 2019-2020 West Wind Technologies + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/plugins/UnrealCLR/Runtime/Mac/host/fxr/5.0.9/libhostfxr.dylib b/plugins/UnrealCLR/Runtime/Mac/host/fxr/5.0.9/libhostfxr.dylib new file mode 100644 index 00000000..080cef41 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/host/fxr/5.0.9/libhostfxr.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/.version b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/.version new file mode 100644 index 00000000..aaa309c1 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/.version @@ -0,0 +1,2 @@ +208e377a5329ad6eb1db5e5fb9d4590fa50beadd +5.0.9 diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll new file mode 100644 index 00000000..db31a63c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json new file mode 100644 index 00000000..cd6220a6 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json @@ -0,0 +1,1100 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v5.0/osx-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v5.0": {}, + ".NETCoreApp,Version=v5.0/osx-x64": { + "Microsoft.Build.Tasks.Git/1.1.0-beta-20206-02": {}, + "Microsoft.DiaSymReader.Native/1.7.0": {}, + "Microsoft.DotNet.Build.Tasks.Installers/5.0.0-beta.21328.3": {}, + "Microsoft.DotNet.Build.Tasks.Packaging/5.0.0-beta.21328.3": {}, + "Microsoft.Net.Compilers.Toolset/3.8.0-4.20503.2": {}, + "Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + } + }, + "Microsoft.NETCore.App.Internal/5.0.9-servicing.21359.8": { + "dependencies": { + "Microsoft.NETCore.DotNetHostPolicy": "5.0.9", + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "5.0.0", + "NETStandard.Library": "2.2.0-prerelease.19564.1", + "runtime.osx-x64.Microsoft.NETCore.App": "5.0.9-servicing.21359.8" + } + }, + "Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "dependencies": { + "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy": "5.0.9" + } + }, + "Microsoft.NETCore.Platforms/5.0.0": {}, + "Microsoft.NETCore.Targets/5.0.0": {}, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": {}, + "Microsoft.SourceLink.AzureRepos.Git/1.1.0-beta-20206-02": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.0-beta-20206-02", + "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" + } + }, + "Microsoft.SourceLink.Common/1.1.0-beta-20206-02": {}, + "Microsoft.SourceLink.GitHub/1.1.0-beta-20206-02": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.0-beta-20206-02", + "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" + } + }, + "NETStandard.Library/2.2.0-prerelease.19564.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + } + }, + "runtime.osx-x64.Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "runtime": { + "runtimes/osx-x64/lib/net5.0/Microsoft.CSharp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "10.0.6.0", + "fileVersion": "11.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/Microsoft.Win32.Registry.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.AppContext.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Buffers.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Collections.Concurrent.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Collections.Immutable.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Collections.NonGeneric.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Collections.Specialized.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Collections.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ComponentModel.Annotations.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ComponentModel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Console.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Data.Common.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Data.DataSetExtensions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.Contracts.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.Debug.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.Process.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.Tools.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Diagnostics.Tracing.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Drawing.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Dynamic.Runtime.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Formats.Asn1.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Globalization.Calendars.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Globalization.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Globalization.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.Compression.Brotli.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.Compression.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.FileSystem.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.IsolatedStorage.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.Pipes.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.IO.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Linq.Expressions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Linq.Parallel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Linq.Queryable.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Linq.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Memory.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Http.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Http.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.HttpListener.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Mail.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.NameResolution.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.NetworkInformation.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Ping.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Requests.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Security.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.ServicePoint.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.Sockets.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.WebClient.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.WebProxy.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.WebSockets.Client.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.WebSockets.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ObjectModel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Private.DataContractSerialization.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Private.Uri.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Private.Xml.Linq.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Private.Xml.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.Emit.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.Metadata.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Reflection.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Resources.Reader.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Resources.ResourceManager.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Resources.Writer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Handles.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.InteropServices.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Intrinsics.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Loader.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Numerics.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Runtime.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Claims.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Principal.Windows.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.Principal.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.SecureString.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Text.Encoding.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "5.0.0.1", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Text.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Text.RegularExpressions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Channels.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Overlapped.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Tasks.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Thread.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.ThreadPool.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.Timer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Threading.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Transactions.Local.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.ValueTuple.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Web.HttpUtility.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.XDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.XPath.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.XmlDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.XmlSerializer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/lib/net5.0/netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "5.0.921.35908" + } + }, + "native": { + "runtimes/osx-x64/native/System.Private.CoreLib.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/osx-x64/native/createdump": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.IO.Compression.Native.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.IO.Compression.Native.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Native.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Native.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Net.Security.Native.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Net.Security.Native.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Security.Cryptography.Native.Apple.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Security.Cryptography.Native.Apple.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Security.Cryptography.Native.OpenSsl.a": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libSystem.Security.Cryptography.Native.OpenSsl.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libclrjit.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libcoreclr.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libdbgshim.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libmscordaccore.dylib": { + "fileVersion": "0.0.0.0" + }, + "runtimes/osx-x64/native/libmscordbi.dylib": { + "fileVersion": "0.0.0.0" + } + } + }, + "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "native": { + "runtimes/osx-x64/native/libhostpolicy.dylib": { + "fileVersion": "0.0.0.0" + } + } + } + } + }, + "libraries": { + "Microsoft.Build.Tasks.Git/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hZ9leS9Yd9MHpqvviMftSJFDcLYu2h1DrapW1TDm1s1fgOy71c8HvArNMd3fseVkXmp3VTfGnkgcw0FR+TI6xw==", + "path": "microsoft.build.tasks.git/1.1.0-beta-20206-02", + "hashPath": "microsoft.build.tasks.git.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.DiaSymReader.Native/1.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vIzndj0MoWW2Mp/iztUSKvmR9vZTqOVQ6PBvwA57+CDoiz7eUMU15rrAX+/QA0bkmwQ08GRibFBB9LNOl0EiBA==", + "path": "microsoft.diasymreader.native/1.7.0", + "hashPath": "microsoft.diasymreader.native.1.7.0.nupkg.sha512" + }, + "Microsoft.DotNet.Build.Tasks.Installers/5.0.0-beta.21328.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-68fxMTtraSXCUYZx7vNVb9PvIJ9FhPjymbvrkl/6h7S/NlQz6bxyZksTd6ghMs4gyQLHRCuDX/O/dT6Gd6qIag==", + "path": "microsoft.dotnet.build.tasks.installers/5.0.0-beta.21328.3", + "hashPath": "microsoft.dotnet.build.tasks.installers.5.0.0-beta.21328.3.nupkg.sha512" + }, + "Microsoft.DotNet.Build.Tasks.Packaging/5.0.0-beta.21328.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswwdycY3QmJ3DvyOGVMHDdZxxnE76MQFWZWqhniJqgbXPefQnXvDF4YXgCPnAENDYtsjohpaav1XDEyt84UHw==", + "path": "microsoft.dotnet.build.tasks.packaging/5.0.0-beta.21328.3", + "hashPath": "microsoft.dotnet.build.tasks.packaging.5.0.0-beta.21328.3.nupkg.sha512" + }, + "Microsoft.Net.Compilers.Toolset/3.8.0-4.20503.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jfscID/5IHHPVVEbFCAJEUEWCeWNZCLwyBcUFG3/u44oiRd/aseDOYRzl3OnIIvcwzi0U2lSAs6Lt2+rdRIDMg==", + "path": "microsoft.net.compilers.toolset/3.8.0-4.20503.2", + "hashPath": "microsoft.net.compilers.toolset.3.8.0-4.20503.2.nupkg.sha512" + }, + "Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lw8nlujo0dtZbVGbCpxlGclGQwpMeHLCJhwwFSPtWTeIPMJP0k96FC4NxoMTliPrWD+0J+kH4uG5LXb6ZlNmmQ==", + "path": "microsoft.netcore.app/5.0.9-servicing.21359.8", + "hashPath": "microsoft.netcore.app.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "Microsoft.NETCore.App.Internal/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-M63GPtpGW91KKcdkL9J9r40q/PedKGM2r2oq1d7ySCtpzun5G59Grd0xLKiXnE/E8Qdwp5G7o+ltOEMShZap/A==", + "path": "microsoft.netcore.app.internal/5.0.9-servicing.21359.8", + "hashPath": "microsoft.netcore.app.internal.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-LW9pW4NnQgkya5PbC1pWgFRcOINTW/oUd+aBp57kCnAzAMGcOOkIdRq65mbWAYO7iSvmI08IlE0/mMOBeb4KQA==" + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "path": "microsoft.netcore.platforms/5.0.0", + "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XpSaRv9/+V4KQ5KPbvRoArKy1o9WHizFEdOXPBLHXRZ0zwPGK5cTcWo1SveD7uayrfhod1uAAscip65qLeAjCw==", + "path": "microsoft.netcore.targets/5.0.0", + "hashPath": "microsoft.netcore.targets.5.0.0.nupkg.sha512" + }, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-m+pJPEO7HyXvrOna5Sr3s77ewXonjYWJTNL6drh8xACnMNxnlqUDKx9HfGeSE9wmfY0lQwppaeZpFTPGaH7kZg==", + "path": "microsoft.netframework.referenceassemblies/1.0.0-preview.2", + "hashPath": "microsoft.netframework.referenceassemblies.1.0.0-preview.2.nupkg.sha512" + }, + "Microsoft.SourceLink.AzureRepos.Git/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vVYhSds9TfraTQkGHHMDMVWnr3kCkTZ7vmqUmrXQBDJFXiWTuMoP5RRa9s1M/KmgB4szi5TOb7sOaHWKDT9qDA==", + "path": "microsoft.sourcelink.azurerepos.git/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.azurerepos.git.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.SourceLink.Common/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aek0RTQ+4Bf11WvqaXajwYoaBWkX2edBjAr5XJOvhAsHX6/9vPOb7IpHAiE/NyCse7IcpGWslJZHNkv4UBEFqw==", + "path": "microsoft.sourcelink.common/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.common.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.SourceLink.GitHub/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7A7P0EwL+lypaI/CEvG4IcpAlQeAt04uPPw1SO6Q9Jwz2nE9309pQXJ4TfP/RLL8IOObACidN66+gVR+bJDZHw==", + "path": "microsoft.sourcelink.github/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.github.1.1.0-beta-20206-02.nupkg.sha512" + }, + "NETStandard.Library/2.2.0-prerelease.19564.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y7Z0OKA/O5mW8aPEI4oXTSjinUTwGDwKEZMKTGdzb+vLgGRuvrZrs1YidcFN2kIKOo/11bOSNfKn4lsOLUWHkQ==", + "path": "netstandard.library/2.2.0-prerelease.19564.1", + "hashPath": "netstandard.library.2.2.0-prerelease.19564.1.nupkg.sha512" + }, + "runtime.osx-x64.Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-C/rb6+Z9wc6vzZOAGvQHeW72lIku46eA6GyOQSHKNibcK7bEKA5LszqOdTykDYMZPNb7GCeG1SLQSTE7Uo4Lqg==", + "path": "runtime.osx-x64.microsoft.netcore.app/5.0.9-servicing.21359.8", + "hashPath": "runtime.osx-x64.microsoft.netcore.app.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "runtime.osx-x64.Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-WmIZnGivOuoFmBCBGeM7WILtTwb+x8Ahv62b6k241pjqlVomHFb2aJ4STUgM/XUdM+0gilIkQA4rq2ZPhXTygg==" + } + }, + "runtimes": { + "osx-x64": [ + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx": [ + "unix", + "any", + "base" + ], + "osx-arm64": [ + "osx", + "unix-arm64", + "unix", + "any", + "base" + ], + "osx.10.10": [ + "osx", + "unix", + "any", + "base" + ], + "osx.10.10-x64": [ + "osx.10.10", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx.10.11": [ + "osx.10.10", + "osx", + "unix", + "any", + "base" + ], + "osx.10.11-x64": [ + "osx.10.11", + "osx.10.10-x64", + "osx.10.10", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx.10.12": [ + "osx.10.11", + "osx.10.10", + "osx", + "unix", + "any", + "base" + ], + "osx.10.12-x64": [ + "osx.10.12", + "osx.10.11-x64", + "osx.10.11", + "osx.10.10-x64", + "osx.10.10", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx.10.13": [ + "osx.10.12", + "osx.10.11", + "osx.10.10", + "osx", + "unix", + "any", + "base" + ], + "osx.10.13-x64": [ + "osx.10.13", + "osx.10.12-x64", + "osx.10.12", + "osx.10.11-x64", + "osx.10.11", + "osx.10.10-x64", + "osx.10.10", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx.10.14": [ + "osx.10.13", + "osx.10.12", + "osx.10.11", + "osx.10.10", + "osx", + "unix", + "any", + "base" + ], + "osx.10.14-x64": [ + "osx.10.14", + "osx.10.13-x64", + "osx.10.13", + "osx.10.12-x64", + "osx.10.12", + "osx.10.11-x64", + "osx.10.11", + "osx.10.10-x64", + "osx.10.10", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx.10.15": [ + "osx.10.14", + "osx.10.13", + "osx.10.12", + "osx.10.11", + "osx.10.10", + "osx", + "unix", + "any", + "base" + ], + "osx.10.15-x64": [ + "osx.10.15", + "osx.10.14-x64", + "osx.10.14", + "osx.10.13-x64", + "osx.10.13", + "osx.10.12-x64", + "osx.10.12", + "osx.10.11-x64", + "osx.10.11", + "osx.10.10-x64", + "osx.10.10", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx.11": [ + "osx", + "unix", + "any", + "base" + ], + "osx.11-arm64": [ + "osx.11", + "osx-arm64", + "osx", + "unix-arm64", + "unix", + "any", + "base" + ], + "osx.11-x64": [ + "osx.11", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ], + "osx.11.0": [ + "osx.11", + "osx", + "unix", + "any", + "base" + ], + "osx.11.0-arm64": [ + "osx.11.0", + "osx.11-arm64", + "osx.11", + "osx-arm64", + "osx", + "unix-arm64", + "unix", + "any", + "base" + ], + "osx.11.0-x64": [ + "osx.11.0", + "osx.11-x64", + "osx.11", + "osx-x64", + "osx", + "unix-x64", + "unix", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll new file mode 100644 index 00000000..39c495a7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll new file mode 100644 index 00000000..703864ce Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll new file mode 100644 index 00000000..4dd2d5d3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll new file mode 100644 index 00000000..7c438970 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll new file mode 100644 index 00000000..483be75f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll new file mode 100644 index 00000000..e6e103ce Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll new file mode 100644 index 00000000..4c8b1131 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll new file mode 100644 index 00000000..346391c8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll new file mode 100644 index 00000000..1c923e71 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll new file mode 100644 index 00000000..276fb832 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll new file mode 100644 index 00000000..cf7dcdf4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll new file mode 100644 index 00000000..52e75d1d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 00000000..1ba0ba0a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 00000000..12ce9425 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll new file mode 100644 index 00000000..65f21106 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll new file mode 100644 index 00000000..0791769a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll new file mode 100644 index 00000000..9c15f5a2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll new file mode 100644 index 00000000..e662bdb3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll new file mode 100644 index 00000000..efe0f467 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll new file mode 100644 index 00000000..c59b0520 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll new file mode 100644 index 00000000..a7613112 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll new file mode 100644 index 00000000..b2647cbc Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll new file mode 100644 index 00000000..c4760a8b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll new file mode 100644 index 00000000..372068b5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll new file mode 100644 index 00000000..cb9a2c49 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 00000000..3a240469 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 00000000..0e2fd806 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll new file mode 100644 index 00000000..ca65f958 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll new file mode 100644 index 00000000..27489472 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 00000000..e8012b07 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll new file mode 100644 index 00000000..a2cfb1b8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll new file mode 100644 index 00000000..61e5e33c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll new file mode 100644 index 00000000..e1f43a24 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll new file mode 100644 index 00000000..78448ea0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll new file mode 100644 index 00000000..2b46c936 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll new file mode 100644 index 00000000..33a1a639 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll new file mode 100644 index 00000000..c0236740 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll new file mode 100644 index 00000000..f9b3442a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll new file mode 100644 index 00000000..d3d60495 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll new file mode 100644 index 00000000..30dc126e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll new file mode 100644 index 00000000..51c9f58b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll new file mode 100644 index 00000000..8da36f52 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll new file mode 100644 index 00000000..25a46ac1 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll new file mode 100644 index 00000000..9c76249d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 00000000..0a777aa7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 00000000..4220043d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll new file mode 100644 index 00000000..633d80d3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll new file mode 100644 index 00000000..c9a9853c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll new file mode 100644 index 00000000..a566302f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll new file mode 100644 index 00000000..7f20cc51 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll new file mode 100644 index 00000000..f194e267 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll new file mode 100644 index 00000000..89de68e7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll new file mode 100644 index 00000000..d833c406 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 00000000..b6f5494f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll new file mode 100644 index 00000000..b3a0ef1f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll new file mode 100644 index 00000000..3b20a1c4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll new file mode 100644 index 00000000..2500830b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll new file mode 100644 index 00000000..c9f33acc Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll new file mode 100644 index 00000000..8de7a27f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll new file mode 100644 index 00000000..264b7484 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll new file mode 100644 index 00000000..06d968aa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll new file mode 100644 index 00000000..95c93073 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll new file mode 100644 index 00000000..2a2b8d41 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll new file mode 100644 index 00000000..10d47f61 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll new file mode 100644 index 00000000..dea6ee2d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll new file mode 100644 index 00000000..1459a145 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll new file mode 100644 index 00000000..f991756d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll new file mode 100644 index 00000000..c1698785 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll new file mode 100644 index 00000000..33b47f85 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll new file mode 100644 index 00000000..1ed087a6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll new file mode 100644 index 00000000..adb8af13 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll new file mode 100644 index 00000000..a403d4fa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll new file mode 100644 index 00000000..3fbae84f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll new file mode 100644 index 00000000..0f69edcd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll new file mode 100644 index 00000000..07a38f09 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll new file mode 100644 index 00000000..ed67c1e4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll new file mode 100644 index 00000000..8f0aa540 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll new file mode 100644 index 00000000..4a9577cd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll new file mode 100644 index 00000000..aa3e2a1f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll new file mode 100644 index 00000000..d923e6cf Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll new file mode 100644 index 00000000..070e828a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll new file mode 100644 index 00000000..764ad036 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll new file mode 100644 index 00000000..5449f879 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll new file mode 100644 index 00000000..5400e948 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll new file mode 100644 index 00000000..80c54108 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll new file mode 100644 index 00000000..be956f53 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll new file mode 100644 index 00000000..2da4d167 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 00000000..2c03d345 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 00000000..3a9b6477 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll new file mode 100644 index 00000000..7a66d07c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll new file mode 100644 index 00000000..7052d86d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll new file mode 100644 index 00000000..5c988aa9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll new file mode 100644 index 00000000..c73cef4c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll new file mode 100644 index 00000000..0e3331c7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll new file mode 100644 index 00000000..50d30d22 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll new file mode 100644 index 00000000..43d93267 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll new file mode 100644 index 00000000..5045e08e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll new file mode 100644 index 00000000..476a33b6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 00000000..5384d059 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 00000000..0aa5f202 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll new file mode 100644 index 00000000..5ee58806 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll new file mode 100644 index 00000000..7a21aac6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 00000000..94512d7c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll new file mode 100644 index 00000000..afe14d2e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll new file mode 100644 index 00000000..81844967 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll new file mode 100644 index 00000000..0c9801ff Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll new file mode 100644 index 00000000..c6d0391d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 00000000..aa2f173e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll new file mode 100644 index 00000000..41d7482a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 00000000..9a992a8f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll new file mode 100644 index 00000000..e5039edf Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll new file mode 100644 index 00000000..a63829e2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll new file mode 100644 index 00000000..746b9b76 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll new file mode 100644 index 00000000..ba4c3b8a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll new file mode 100644 index 00000000..d4e30999 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 00000000..60aacf8f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll new file mode 100644 index 00000000..20c785ce Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll new file mode 100644 index 00000000..4da9efb7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll new file mode 100644 index 00000000..0a45dd6a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 00000000..1cde9bec Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll new file mode 100644 index 00000000..6806b95c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 00000000..eaf17a77 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll new file mode 100644 index 00000000..2a9fe933 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll new file mode 100644 index 00000000..ad481be9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll new file mode 100644 index 00000000..ba0281d0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll new file mode 100644 index 00000000..e01419a9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll new file mode 100644 index 00000000..8a47fd30 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll new file mode 100644 index 00000000..d8a207a7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll new file mode 100644 index 00000000..d5da1f1e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll new file mode 100644 index 00000000..ad69edca Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll new file mode 100644 index 00000000..80448d74 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll new file mode 100644 index 00000000..2d170ab0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll new file mode 100644 index 00000000..d6473a4f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll new file mode 100644 index 00000000..a1afa604 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll new file mode 100644 index 00000000..dd3fae6d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll new file mode 100644 index 00000000..f0049b31 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 00000000..9a6e490a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll new file mode 100644 index 00000000..67681fcf Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll new file mode 100644 index 00000000..8a9b5ea1 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll new file mode 100644 index 00000000..53e0ba1f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll new file mode 100644 index 00000000..884de054 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll new file mode 100644 index 00000000..ce372bb2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll new file mode 100644 index 00000000..9a060d78 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll new file mode 100644 index 00000000..28ce059e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll new file mode 100644 index 00000000..4cb41f83 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll new file mode 100644 index 00000000..b3d1092f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll new file mode 100644 index 00000000..4b109924 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll new file mode 100644 index 00000000..491f0deb Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll new file mode 100644 index 00000000..18ffaa74 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll new file mode 100644 index 00000000..24e46d49 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll new file mode 100644 index 00000000..b797f840 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll new file mode 100644 index 00000000..b6d8d2c6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll new file mode 100644 index 00000000..0392683a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll new file mode 100644 index 00000000..939e937d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll new file mode 100644 index 00000000..f5d8bf86 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll new file mode 100644 index 00000000..3e41bb18 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll new file mode 100644 index 00000000..c8bd064c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll new file mode 100644 index 00000000..aa4dd253 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll new file mode 100644 index 00000000..8a8d1e2b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.dll new file mode 100644 index 00000000..2783ae63 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/System.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll new file mode 100644 index 00000000..5a266c65 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h new file mode 100644 index 00000000..914ab592 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __CORECLR_DELEGATES_H__ +#define __CORECLR_DELEGATES_H__ + +#include + +#if defined(_WIN32) + #define CORECLR_DELEGATE_CALLTYPE __stdcall + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define CORECLR_DELEGATE_CALLTYPE + typedef char char_t; +#endif + +#define UNMANAGEDCALLERSONLY_METHOD ((const char_t*)-1) + +// Signature of delegate returned by coreclr_delegate_type::load_assembly_and_get_function_pointer +typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_and_get_function_pointer_fn)( + const char_t *assembly_path /* Fully qualified path to assembly */, + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +// Signature of delegate returned by load_assembly_and_get_function_pointer_fn when delegate_type_name == null (default) +typedef int (CORECLR_DELEGATE_CALLTYPE *component_entry_point_fn)(void *arg, int32_t arg_size_in_bytes); + +typedef int (CORECLR_DELEGATE_CALLTYPE *get_function_pointer_fn)( + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null, + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *load_context /* Extensibility parameter (currently unused and must be 0) */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +#endif // __CORECLR_DELEGATES_H__ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/createdump b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/createdump new file mode 100644 index 00000000..8c837381 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/createdump differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h new file mode 100644 index 00000000..e062193c --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h @@ -0,0 +1,288 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __HOSTFXR_H__ +#define __HOSTFXR_H__ + +#include +#include + +#if defined(_WIN32) + #define HOSTFXR_CALLTYPE __cdecl + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define HOSTFXR_CALLTYPE + typedef char char_t; +#endif + +enum hostfxr_delegate_type +{ + hdt_com_activation, + hdt_load_in_memory_assembly, + hdt_winrt_activation, + hdt_com_register, + hdt_com_unregister, + hdt_load_assembly_and_get_function_pointer, + hdt_get_function_pointer, +}; + +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_fn)(const int argc, const char_t **argv); +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_startupinfo_fn)( + const int argc, + const char_t **argv, + const char_t *host_path, + const char_t *dotnet_root, + const char_t *app_path); +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_bundle_startupinfo_fn)( + const int argc, + const char_t** argv, + const char_t* host_path, + const char_t* dotnet_root, + const char_t* app_path, + int64_t bundle_header_offset); + +typedef void(HOSTFXR_CALLTYPE *hostfxr_error_writer_fn)(const char_t *message); + +// +// Sets a callback which is to be used to write errors to. +// +// Parameters: +// error_writer +// A callback function which will be invoked every time an error is to be reported. +// Or nullptr to unregister previously registered callback and return to the default behavior. +// Return value: +// The previously registered callback (which is now unregistered), or nullptr if no previous callback +// was registered +// +// The error writer is registered per-thread, so the registration is thread-local. On each thread +// only one callback can be registered. Subsequent registrations overwrite the previous ones. +// +// By default no callback is registered in which case the errors are written to stderr. +// +// Each call to the error writer is sort of like writing a single line (the EOL character is omitted). +// Multiple calls to the error writer may occure for one failure. +// +// If the hostfxr invokes functions in hostpolicy as part of its operation, the error writer +// will be propagated to hostpolicy for the duration of the call. This means that errors from +// both hostfxr and hostpolicy will be reporter through the same error writer. +// +typedef hostfxr_error_writer_fn(HOSTFXR_CALLTYPE *hostfxr_set_error_writer_fn)(hostfxr_error_writer_fn error_writer); + +typedef void* hostfxr_handle; +struct hostfxr_initialize_parameters +{ + size_t size; + const char_t *host_path; + const char_t *dotnet_root; +}; + +// +// Initializes the hosting components for a dotnet command line running an application +// +// Parameters: +// argc +// Number of argv arguments +// argv +// Command-line arguments for running an application (as if through the dotnet executable). +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// HostInvalidState - Hosting components are already initialized +// +// This function parses the specified command-line arguments to determine the application to run. It will +// then find the corresponding .runtimeconfig.json and .deps.json with which to resolve frameworks and +// dependencies and prepare everything needed to load the runtime. +// +// This function only supports arguments for running an application. It does not support SDK commands. +// +// This function does not load the runtime. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_dotnet_command_line_fn)( + int argc, + const char_t **argv, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Initializes the hosting components using a .runtimeconfig.json file +// +// Parameters: +// runtime_config_path +// Path to the .runtimeconfig.json file +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// Success_HostAlreadyInitialized - Config is compatible with already initialized hosting components +// Success_DifferentRuntimeProperties - Config has runtime properties that differ from already initialized hosting components +// CoreHostIncompatibleConfig - Config is incompatible with already initialized hosting components +// +// This function will process the .runtimeconfig.json to resolve frameworks and prepare everything needed +// to load the runtime. It will only process the .deps.json from frameworks (not any app/component that +// may be next to the .runtimeconfig.json). +// +// This function does not load the runtime. +// +// If called when the runtime has already been loaded, this function will check if the specified runtime +// config is compatible with the existing runtime. +// +// Both Success_HostAlreadyInitialized and Success_DifferentRuntimeProperties codes are considered successful +// initializations. In the case of Success_DifferentRuntimeProperties, it is left to the consumer to verify that +// the difference in properties is acceptable. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_runtime_config_fn)( + const char_t *runtime_config_path, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Gets the runtime property value for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Out parameter. Pointer to a buffer with the property value. +// +// Return value: +// The error code result. +// +// The buffer pointed to by value is owned by the host context. The lifetime of the buffer is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// property value for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + /*out*/ const char_t **value); + +// +// Sets the value of a runtime property for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Value to set +// +// Return value: +// The error code result. +// +// Setting properties is only supported for the first host context, before the runtime has been loaded. +// +// If the property already exists in the host context, it will be overwritten. If value is nullptr, the +// property will be removed. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_set_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + const char_t *value); + +// +// Gets all the runtime properties for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// count +// [in] Size of the keys and values buffers +// [out] Number of properties returned (size of keys/values buffers used). If the input value is too +// small or keys/values is nullptr, this is populated with the number of available properties +// keys +// Array of pointers to buffers with runtime property keys +// values +// Array of pointers to buffers with runtime property values +// +// Return value: +// The error code result. +// +// The buffers pointed to by keys and values are owned by the host context. The lifetime of the buffers is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// properties for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_properties_fn)( + const hostfxr_handle host_context_handle, + /*inout*/ size_t * count, + /*out*/ const char_t **keys, + /*out*/ const char_t **values); + +// +// Load CoreCLR and run the application for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// If the app was successfully run, the exit code of the application. Otherwise, the error code result. +// +// The host_context_handle must have been initialized using hostfxr_initialize_for_dotnet_command_line. +// +// This function will not return until the managed application exits. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_run_app_fn)(const hostfxr_handle host_context_handle); + +// +// Gets a typed delegate from the currently loaded CoreCLR or from a newly created one. +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// type +// Type of runtime delegate requested +// delegate +// An out parameter that will be assigned the delegate. +// +// Return value: +// The error code result. +// +// If the host_context_handle was initialized using hostfxr_initialize_for_runtime_config, +// then all delegate types are supported. +// If the host_context_handle was initialized using hostfxr_initialize_for_dotnet_command_line, +// then only the following delegate types are currently supported: +// hdt_load_assembly_and_get_function_pointer +// hdt_get_function_pointer +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_delegate_fn)( + const hostfxr_handle host_context_handle, + enum hostfxr_delegate_type type, + /*out*/ void **delegate); + +// +// Closes an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// The error code result. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_close_fn)(const hostfxr_handle host_context_handle); + +#endif //__HOSTFXR_H__ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.a b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.a new file mode 100644 index 00000000..286abb9d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.a differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.dylib new file mode 100644 index 00000000..75485d12 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.IO.Compression.Native.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.a b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.a new file mode 100644 index 00000000..73b0ea72 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.a differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.dylib new file mode 100644 index 00000000..dca3be6c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Native.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.a b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.a new file mode 100644 index 00000000..f53070a7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.a differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.dylib new file mode 100644 index 00000000..25afff51 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Net.Security.Native.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.Apple.a b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.Apple.a new file mode 100644 index 00000000..7b52d920 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.Apple.a differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.Apple.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.Apple.dylib new file mode 100644 index 00000000..30e7fe49 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.Apple.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.a b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.a new file mode 100644 index 00000000..6d5f997c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.a differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.dylib new file mode 100644 index 00000000..a4a41dfa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libSystem.Security.Cryptography.Native.OpenSsl.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libclrjit.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libclrjit.dylib new file mode 100644 index 00000000..2fd5ce6f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libclrjit.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libcoreclr.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libcoreclr.dylib new file mode 100644 index 00000000..c729f495 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libcoreclr.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libdbgshim.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libdbgshim.dylib new file mode 100644 index 00000000..0f8044b7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libdbgshim.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libhostpolicy.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libhostpolicy.dylib new file mode 100644 index 00000000..af0601bd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libhostpolicy.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libmscordaccore.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libmscordaccore.dylib new file mode 100644 index 00000000..801b7296 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libmscordaccore.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libmscordbi.dylib b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libmscordbi.dylib new file mode 100644 index 00000000..fc6ec693 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libmscordbi.dylib differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libnethost.a b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libnethost.a new file mode 100644 index 00000000..a0b5662c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/libnethost.a differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll new file mode 100644 index 00000000..d8ba91dc Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll differ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/nethost.h b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/nethost.h new file mode 100644 index 00000000..31adde5e --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/nethost.h @@ -0,0 +1,99 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __NETHOST_H__ +#define __NETHOST_H__ + +#include + +#ifdef _WIN32 + #ifdef NETHOST_EXPORT + #define NETHOST_API __declspec(dllexport) + #else + // Consuming the nethost as a static library + // Shouldn't export attempt to dllimport. + #ifdef NETHOST_USE_AS_STATIC + #define NETHOST_API + #else + #define NETHOST_API __declspec(dllimport) + #endif + #endif + + #define NETHOST_CALLTYPE __stdcall + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #ifdef NETHOST_EXPORT + #define NETHOST_API __attribute__((__visibility__("default"))) + #else + #define NETHOST_API + #endif + + #define NETHOST_CALLTYPE + typedef char char_t; +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +// Parameters for get_hostfxr_path +// +// Fields: +// size +// Size of the struct. This is used for versioning. +// +// assembly_path +// Path to the compenent's assembly. +// If specified, hostfxr is located as if the assembly_path is the apphost +// +// dotnet_root +// Path to directory containing the dotnet executable. +// If specified, hostfxr is located as if an application is started using +// 'dotnet app.dll', which means it will be searched for under the dotnet_root +// path and the assembly_path is ignored. +// +struct get_hostfxr_parameters { + size_t size; + const char_t *assembly_path; + const char_t *dotnet_root; +}; + +// +// Get the path to the hostfxr library +// +// Parameters: +// buffer +// Buffer that will be populated with the hostfxr path, including a null terminator. +// +// buffer_size +// [in] Size of buffer in char_t units. +// [out] Size of buffer used in char_t units. If the input value is too small +// or buffer is nullptr, this is populated with the minimum required size +// in char_t units for a buffer to hold the hostfxr path +// +// get_hostfxr_parameters +// Optional. Parameters that modify the behaviour for locating the hostfxr library. +// If nullptr, hostfxr is located using the enviroment variable or global registration +// +// Return value: +// 0 on success, otherwise failure +// 0x80008098 - buffer is too small (HostApiBufferTooSmall) +// +// Remarks: +// The full search for the hostfxr library is done on every call. To minimize the need +// to call this function multiple times, pass a large buffer (e.g. PATH_MAX). +// +NETHOST_API int NETHOST_CALLTYPE get_hostfxr_path( + char_t * buffer, + size_t * buffer_size, + const struct get_hostfxr_parameters *parameters); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // __NETHOST_H__ diff --git a/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll new file mode 100644 index 00000000..008e8ccd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Mac/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/LICENSE.txt b/plugins/UnrealCLR/Runtime/Win64/LICENSE.txt new file mode 100644 index 00000000..c69e3631 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Win64/LICENSE.txt @@ -0,0 +1,64 @@ +MICROSOFT SOFTWARE LICENSE TERMS +MICROSOFT .NET LIBRARY +These license terms are an agreement between Microsoft Corporation (or based on where you live, one of its affiliates) and you. Please read them. They apply to the software named above, which includes the media on which you received it, if any. The terms also apply to any Microsoft + * updates, + * supplements, + * Internet-based services, and + * support services +for this software, unless other terms accompany those items. If so, those terms apply. +BY USING THE SOFTWARE, YOU ACCEPT THESE TERMS. IF YOU DO NOT ACCEPT THEM, DO NOT USE THE SOFTWARE. +IF YOU COMPLY WITH THESE LICENSE TERMS, YOU HAVE THE PERPETUAL RIGHTS BELOW. +1. INSTALLATION AND USE RIGHTS. + a. Installation and Use. You may install and use any number of copies of the software to design, develop and test your programs. + b. Third Party Programs. The software may include third party programs that Microsoft, not the third party, licenses to you under this agreement. Notices, if any, for the third party program are included for your information only. +2. DATA. The software may collect information about you and your use of the software, and send that to Microsoft. Microsoft may use this information to improve our products and services. You can learn more about data collection and use in the help documentation and the privacy statement at https://go.microsoft.com/fwlink/?LinkId=528096. Your use of the software operates as your consent to these practices. +3. ADDITIONAL LICENSING REQUIREMENTS AND/OR USE RIGHTS. + a. DISTRIBUTABLE CODE. The software is comprised of Distributable Code. "Distributable Code" is code that you are permitted to distribute in programs you develop if you comply with the terms below. + i. Right to Use and Distribute. + * You may copy and distribute the object code form of the software. + * Third Party Distribution. You may permit distributors of your programs to copy and distribute the Distributable Code as part of those programs. + ii. Distribution Requirements. For any Distributable Code you distribute, you must + * add significant primary functionality to it in your programs; + * require distributors and external end users to agree to terms that protect it at least as much as this agreement; + * display your valid copyright notice on your programs; and + * indemnify, defend, and hold harmless Microsoft from any claims, including attorneys' fees, related to the distribution or use of your programs. + iii. Distribution Restrictions. You may not + * alter any copyright, trademark or patent notice in the Distributable Code; + * use Microsoft's trademarks in your programs' names or in a way that suggests your programs come from or are endorsed by Microsoft; + * include Distributable Code in malicious, deceptive or unlawful programs; or + * modify or distribute the source code of any Distributable Code so that any part of it becomes subject to an Excluded License. An Excluded License is one that requires, as a condition of use, modification or distribution, that + * the code be disclosed or distributed in source code form; or + * others have the right to modify it. +4. SCOPE OF LICENSE. The software is licensed, not sold. This agreement only gives you some rights to use the software. Microsoft reserves all other rights. Unless applicable law gives you more rights despite this limitation, you may use the software only as expressly permitted in this agreement. In doing so, you must comply with any technical limitations in the software that only allow you to use it in certain ways. You may not + * work around any technical limitations in the software; + * reverse engineer, decompile or disassemble the software, except and only to the extent that applicable law expressly permits, despite this limitation; + * publish the software for others to copy; + * rent, lease or lend the software; + * transfer the software or this agreement to any third party; or + * use the software for commercial software hosting services. +5. BACKUP COPY. You may make one backup copy of the software. You may use it only to reinstall the software. +6. DOCUMENTATION. Any person that has valid access to your computer or internal network may copy and use the documentation for your internal, reference purposes. +7. EXPORT RESTRICTIONS. The software is subject to United States export laws and regulations. You must comply with all domestic and international export laws and regulations that apply to the software. These laws include restrictions on destinations, end users and end use. For additional information, see www.microsoft.com/exporting. +8. SUPPORT SERVICES. Because this software is "as is," we may not provide support services for it. +9. ENTIRE AGREEMENT. This agreement, and the terms for supplements, updates, Internet-based services and support services that you use, are the entire agreement for the software and support services. +10. APPLICABLE LAW. + a. United States. If you acquired the software in the United States, Washington state law governs the interpretation of this agreement and applies to claims for breach of it, regardless of conflict of laws principles. The laws of the state where you live govern all other claims, including claims under state consumer protection laws, unfair competition laws, and in tort. + b. Outside the United States. If you acquired the software in any other country, the laws of that country apply. +11. LEGAL EFFECT. This agreement describes certain legal rights. You may have other rights under the laws of your country. You may also have rights with respect to the party from whom you acquired the software. This agreement does not change your rights under the laws of your country if the laws of your country do not permit it to do so. +12. DISCLAIMER OF WARRANTY. THE SOFTWARE IS LICENSED "AS-IS." YOU BEAR THE RISK OF USING IT. MICROSOFT GIVES NO EXPRESS WARRANTIES, GUARANTEES OR CONDITIONS. YOU MAY HAVE ADDITIONAL CONSUMER RIGHTS OR STATUTORY GUARANTEES UNDER YOUR LOCAL LAWS WHICH THIS AGREEMENT CANNOT CHANGE. TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAWS, MICROSOFT EXCLUDES THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +FOR AUSTRALIA - YOU HAVE STATUTORY GUARANTEES UNDER THE AUSTRALIAN CONSUMER LAW AND NOTHING IN THESE TERMS IS INTENDED TO AFFECT THOSE RIGHTS. +13. LIMITATION ON AND EXCLUSION OF REMEDIES AND DAMAGES. YOU CAN RECOVER FROM MICROSOFT AND ITS SUPPLIERS ONLY DIRECT DAMAGES UP TO U.S. $5.00. YOU CANNOT RECOVER ANY OTHER DAMAGES, INCLUDING CONSEQUENTIAL, LOST PROFITS, SPECIAL, INDIRECT OR INCIDENTAL DAMAGES. +This limitation applies to + * anything related to the software, services, content (including code) on third party Internet sites, or third party programs; and + * claims for breach of contract, breach of warranty, guarantee or condition, strict liability, negligence, or other tort to the extent permitted by applicable law. +It also applies even if Microsoft knew or should have known about the possibility of the damages. The above limitation or exclusion may not apply to you because your country may not allow the exclusion or limitation of incidental, consequential or other damages. +Please note: As this software is distributed in Quebec, Canada, some of the clauses in this agreement are provided below in French. +Remarque : Ce logiciel étant distribué au Québec, Canada, certaines des clauses dans ce contrat sont fournies ci-dessous en français. +EXONÉRATION DE GARANTIE. Le logiciel visé par une licence est offert « tel quel ». Toute utilisation de ce logiciel est à votre seule risque et péril. Microsoft n'accorde aucune autre garantie expresse. Vous pouvez bénéficier de droits additionnels en vertu du droit local sur la protection des consommateurs, que ce contrat ne peut modifier. La ou elles sont permises par le droit locale, les garanties implicites de qualité marchande, d'adéquation à un usage particulier et d'absence de contrefaçon sont exclues. +LIMITATION DES DOMMAGES-INTÉRÊTS ET EXCLUSION DE RESPONSABILITÉ POUR LES DOMMAGES. Vous pouvez obtenir de Microsoft et de ses fournisseurs une indemnisation en cas de dommages directs uniquement à hauteur de 5,00 $ US. Vous ne pouvez prétendre à aucune indemnisation pour les autres dommages, y compris les dommages spéciaux, indirects ou accessoires et pertes de bénéfices. +Cette limitation concerne : + * tout ce qui est relié au logiciel, aux services ou au contenu (y compris le code) figurant sur des sites Internet tiers ou dans des programmes tiers ; et + * les réclamations au titre de violation de contrat ou de garantie, ou au titre de responsabilité stricte, de négligence ou d'une autre faute dans la limite autorisée par la loi en vigueur. +Elle s'applique également, même si Microsoft connaissait ou devrait connaître l'éventualité d'un tel dommage. Si votre pays n'autorise pas l'exclusion ou la limitation de responsabilité pour les dommages indirects, accessoires ou de quelque nature que ce soit, il se peut que la limitation ou l'exclusion ci-dessus ne s'appliquera pas à votre égard. +EFFET JURIDIQUE. Le présent contrat décrit certains droits juridiques. Vous pourriez avoir d'autres droits prévus par les lois de votre pays. Le présent contrat ne modifie pas les droits que vous confèrent les lois de votre pays si celles-ci ne le permettent pas. + diff --git a/plugins/UnrealCLR/Runtime/Win64/ThirdPartyNotices.txt b/plugins/UnrealCLR/Runtime/Win64/ThirdPartyNotices.txt new file mode 100644 index 00000000..b8d644c4 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Win64/ThirdPartyNotices.txt @@ -0,0 +1,1219 @@ +.NET Runtime uses third-party libraries or other resources that may be +distributed under licenses different than the .NET Runtime software. + +In the event that we accidentally failed to list a required notice, please +bring it to our attention. Post an issue or email us: + + dotnet@microsoft.com + +The attached notices are provided for information only. + +License notice for ASP.NET +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. +Licensed under the Apache License, Version 2.0. + +Available at +https://github.com/aspnet/AspNetCore/blob/master/LICENSE.txt + +License notice for Slicing-by-8 +------------------------------- + +http://sourceforge.net/projects/slicing-by-8/ + +Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + +This software program is licensed subject to the BSD License, available at +http://www.opensource.org/licenses/bsd-license.html. + +License notice for Unicode data +------------------------------- + +https://www.unicode.org/license.html + +Copyright © 1991-2020 Unicode, Inc. All rights reserved. +Distributed under the Terms of Use in https://www.unicode.org/copyright.html. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Unicode data files and any associated documentation +(the "Data Files") or Unicode software and any associated documentation +(the "Software") to deal in the Data Files or Software +without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, and/or sell copies of +the Data Files or Software, and to permit persons to whom the Data Files +or Software are furnished to do so, provided that either +(a) this copyright and permission notice appear with all copies +of the Data Files or Software, or +(b) this copyright and permission notice appear in associated +Documentation. + +THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT OF THIRD PARTY RIGHTS. +IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS +NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL +DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THE DATA FILES OR SOFTWARE. + +Except as contained in this notice, the name of a copyright holder +shall not be used in advertising or otherwise to promote the sale, +use or other dealings in these Data Files or Software without prior +written authorization of the copyright holder. + +License notice for Zlib +----------------------- + +https://github.com/madler/zlib +http://zlib.net/zlib_license.html + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.11, January 15th, 2017 + + Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu + +*/ + +License notice for Mono +------------------------------- + +http://www.mono-project.com/docs/about-mono/ + +Copyright (c) .NET Foundation Contributors + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for International Organization for Standardization +----------------------------------------------------------------- + +Portions (C) International Organization for Standardization 1986: + Permission to copy in any form is granted for use with + conforming SGML systems and applications as defined in + ISO 8879, provided this notice is included in all copies. + +License notice for Intel +------------------------ + +"Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xamarin and Novell +------------------------------------- + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Third party notice for W3C +-------------------------- + +"W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE +Status: This license takes effect 13 May, 2015. +This work is being provided by the copyright holders under the following license. +License +By obtaining and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions. +Permission to copy, modify, and distribute this work, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the work or portions thereof, including modifications: +The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. +Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, the W3C Software and Document Short Notice should be included. +Notice of any changes or modifications, through a copyright statement on the new code or document such as "This software or document includes material copied from or derived from [title and URI of the W3C document]. Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." +Disclaimers +THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. +COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT. +The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the work without specific, written prior permission. Title to copyright in this work will at all times remain with copyright holders." + +License notice for Bit Twiddling Hacks +-------------------------------------- + +Bit Twiddling Hacks + +By Sean Eron Anderson +seander@cs.stanford.edu + +Individually, the code snippets here are in the public domain (unless otherwise +noted) — feel free to use them however you please. The aggregate collection and +descriptions are © 1997-2005 Sean Eron Anderson. The code and descriptions are +distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY and +without even the implied warranty of merchantability or fitness for a particular +purpose. + +License notice for Brotli +-------------------------------------- + +Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +compress_fragment.c: +Copyright (c) 2011, Google Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +decode_fuzzer.c: +Copyright (c) 2015 The Chromium Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +""AS IS"" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + +License notice for Json.NET +------------------------------- + +https://github.com/JamesNK/Newtonsoft.Json/blob/master/LICENSE.md + +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized base64 encoding / decoding +-------------------------------------------------------- + +Copyright (c) 2005-2007, Nick Galbreath +Copyright (c) 2013-2017, Alfred Klomp +Copyright (c) 2015-2017, Wojciech Mula +Copyright (c) 2016-2017, Matthieu Darbois +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +- Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS +IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED +TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for RFC 3492 +--------------------------- + +The punycode implementation is based on the sample code in RFC 3492 + +Copyright (C) The Internet Society (2003). All Rights Reserved. + +This document and translations of it may be copied and furnished to +others, and derivative works that comment on or otherwise explain it +or assist in its implementation may be prepared, copied, published +and distributed, in whole or in part, without restriction of any +kind, provided that the above copyright notice and this paragraph are +included on all such copies and derivative works. However, this +document itself may not be modified in any way, such as by removing +the copyright notice or references to the Internet Society or other +Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for +copyrights defined in the Internet Standards process must be +followed, or as required to translate it into languages other than +English. + +The limited permissions granted above are perpetual and will not be +revoked by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an +"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING +TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING +BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION +HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +License notice for Algorithm from Internet Draft document "UUIDs and GUIDs" +--------------------------------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, or Digital Equipment Corporation be used in advertising +or publicity pertaining to distribution of the software without +specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital Equipment +Corporation makes any representations about the suitability of +this software for any purpose. + +Copyright(C) The Internet Society 1997. All Rights Reserved. + +This document and translations of it may be copied and furnished to others, +and derivative works that comment on or otherwise explain it or assist in +its implementation may be prepared, copied, published and distributed, in +whole or in part, without restriction of any kind, provided that the above +copyright notice and this paragraph are included on all such copies and +derivative works.However, this document itself may not be modified in any +way, such as by removing the copyright notice or references to the Internet +Society or other Internet organizations, except as needed for the purpose of +developing Internet standards in which case the procedures for copyrights +defined in the Internet Standards process must be followed, or as required +to translate it into languages other than English. + +The limited permissions granted above are perpetual and will not be revoked +by the Internet Society or its successors or assigns. + +This document and the information contained herein is provided on an "AS IS" +basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE +DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO +ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY +RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +PARTICULAR PURPOSE. + +License notice for Algorithm from RFC 4122 - +A Universally Unique IDentifier (UUID) URN Namespace +---------------------------------------------------- + +Copyright (c) 1990- 1993, 1996 Open Software Foundation, Inc. +Copyright (c) 1989 by Hewlett-Packard Company, Palo Alto, Ca. & +Digital Equipment Corporation, Maynard, Mass. +Copyright (c) 1998 Microsoft. +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: permission to use, copy, +modify, and distribute this file for any purpose is hereby +granted without fee, provided that the above copyright notices and +this notice appears in all source code copies, and that none of +the names of Open Software Foundation, Inc., Hewlett-Packard +Company, Microsoft, or Digital Equipment Corporation be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. Neither Open Software +Foundation, Inc., Hewlett-Packard Company, Microsoft, nor Digital +Equipment Corporation makes any representations about the +suitability of this software for any purpose." + +License notice for The LLVM Compiler Infrastructure +--------------------------------------------------- + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +License notice for Bob Jenkins +------------------------------ + +By Bob Jenkins, 1996. bob_jenkins@burtleburtle.net. You may use this +code any way you wish, private, educational, or commercial. It's free. + +License notice for Greg Parker +------------------------------ + +Greg Parker gparker@cs.stanford.edu December 2000 +This code is in the public domain and may be copied or modified without +permission. + +License notice for libunwind based code +---------------------------------------- + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for Printing Floating-Point Numbers (Dragon4) +------------------------------------------------------------ + +/****************************************************************************** + Copyright (c) 2014 Ryan Juckett + http://www.ryanjuckett.com/ + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source + distribution. +******************************************************************************/ + +License notice for Printing Floating-point Numbers (Grisu3) +----------------------------------------------------------- + +Copyright 2012 the V8 project authors. All rights reserved. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + * Neither the name of Google Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for xxHash +------------------------- + +xxHash Library +Copyright (c) 2012-2014, Yann Collet +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this + list of conditions and the following disclaimer in the documentation and/or + other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Berkeley SoftFloat Release 3e +------------------------------------------------ + +https://github.com/ucb-bar/berkeley-softfloat-3 +https://github.com/ucb-bar/berkeley-softfloat-3/blob/master/COPYING.txt + +License for Berkeley SoftFloat Release 3e + +John R. Hauser +2018 January 20 + +The following applies to the whole of SoftFloat Release 3e as well as to +each source file individually. + +Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the +University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE +DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Xorshift RNGs +-------------------------------- + +George Marsaglia +2003-07-04 +Journal of Statistical Software +License: http://creativecommons.org/licenses/by/3.0/ + +https://www.jstatsoft.org/article/view/v008i14 +https://www.jstatsoft.org/index.php/jss/article/view/v008i14/xorshift.pdf + +License notice for Xorshift (Wikipedia) +--------------------------------------- + +https://en.wikipedia.org/wiki/Xorshift +License: https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License + +License for fastmod (https://github.com/lemire/fastmod) +-------------------------------------- + + Copyright 2018 Daniel Lemire + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +License notice for The C++ REST SDK +----------------------------------- + +C++ REST SDK + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for MessagePack-CSharp +------------------------------------- + +MessagePack for C# + +MIT License + +Copyright (c) 2017 Yoshifumi Kawai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for lz4net +------------------------------------- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License notice for Nerdbank.Streams +----------------------------------- + +The MIT License (MIT) + +Copyright (c) Andrew Arnott + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for RapidJSON +---------------------------- + +Tencent is pleased to support the open source community by making RapidJSON available. + +Copyright (C) 2015 THL A29 Limited, a Tencent company, and Milo Yip. All rights reserved. + +Licensed under the MIT License (the "License"); you may not use this file except +in compliance with the License. You may obtain a copy of the License at + +http://opensource.org/licenses/MIT + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for DirectX Math Library +--------------------------------------- + +https://github.com/microsoft/DirectXMath/blob/master/LICENSE + + The MIT License (MIT) + +Copyright (c) 2011-2020 Microsoft Corp + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be included in all copies +or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF +CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for ldap4net +--------------------------- + +The MIT License (MIT) + +Copyright (c) 2018 Alexander Chermyanin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for vectorized sorting code +------------------------------------------ + +MIT License + +Copyright (c) 2020 Dan Shechter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for Angular v8.0 +-------------------------------------------- +The MIT License (MIT) +===================== + +Copyright (c) 2010-2019 Google LLC. http://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +License notice for corefx + +License notice for BedrockFramework +=================================== + +MIT License + +Copyright (c) 2019 David Fowler + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for Swashbuckle +=================================== + +The MIT License (MIT) + +Copyright (c) 2016 Richard Morris + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for cli-spinners +============================================= + +MIT License + +Copyright (c) Sindre Sorhus (https://sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for dotnet-deb-tool +------------------------------------ + +The MIT License (MIT) + +Copyright (c) .NET Foundation and Contributors + +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +License notice for IIS-Common +------------------------------------ + +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +License notice for IIS-Setup +------------------------------------ + +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE + +License notice for LZMA SDK +--------------------------- + +http://7-zip.org/sdk.html + +LZMA SDK is placed in the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or distribute the +original LZMA SDK code, either in source code form or as a compiled binary, +for any purpose, commercial or non-commercial, and by any means. + +License notice for MonoDevelop +------------------------------ + +Copyright (c) 2015 Xamarin, Inc (http://www.xamarin.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Copyright (c) 2011 Novell, Inc (http://www.novell.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +License notice for Nuget.Client +------------------------------- + +Copyright (c) .NET Foundation. All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +these files except in compliance with the License. You may obtain a copy of the +License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software distributed +under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, either express or implied. See the License for the +specific language governing permissions and limitations under the License. + +License notice for Ookie.Dialogs +-------------------------------- + +http://www.ookii.org/software/dialogs/ + +Copyright © Sven Groot (Ookii.org) 2009 +All rights reserved. + + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1) Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. +2) Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. +3) Neither the name of the ORGANIZATION nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGE. + +License notice for viz.js +------------------------------------ + +Copyright (c) 2014-2018 Michael Daines + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +License notice for West Wind Live Reload ASP.NET Core Middleware +============================================= + + + +--- + +lz4net + +Copyright (c) 2013-2017, Milosz Krajewski + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +MIT License +----------- + +Copyright (c) 2019-2020 West Wind Technologies + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/plugins/UnrealCLR/Runtime/Win64/host/fxr/5.0.9/hostfxr.dll b/plugins/UnrealCLR/Runtime/Win64/host/fxr/5.0.9/hostfxr.dll new file mode 100644 index 00000000..f5a55d15 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/host/fxr/5.0.9/hostfxr.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/.version b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/.version new file mode 100644 index 00000000..aaa309c1 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/.version @@ -0,0 +1,2 @@ +208e377a5329ad6eb1db5e5fb9d4590fa50beadd +5.0.9 diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll new file mode 100644 index 00000000..7500e908 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.CSharp.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.DiaSymReader.Native.amd64.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.DiaSymReader.Native.amd64.dll new file mode 100644 index 00000000..e376a203 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.DiaSymReader.Native.amd64.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json new file mode 100644 index 00000000..c216b0af --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.NETCore.App.deps.json @@ -0,0 +1,1592 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v5.0/win-x64", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v5.0": {}, + ".NETCoreApp,Version=v5.0/win-x64": { + "Microsoft.Build.Tasks.Git/1.1.0-beta-20206-02": {}, + "Microsoft.DiaSymReader.Native/1.7.0": {}, + "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": {}, + "Microsoft.DotNet.Build.Tasks.Installers/5.0.0-beta.21328.3": {}, + "Microsoft.DotNet.Build.Tasks.Packaging/5.0.0-beta.21328.3": {}, + "Microsoft.Net.Compilers.Toolset/3.8.0-4.20503.2": {}, + "Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + } + }, + "Microsoft.NETCore.App.Internal/5.0.9-servicing.21359.8": { + "dependencies": { + "Microsoft.NETCore.DotNetHostPolicy": "5.0.9", + "Microsoft.NETCore.Platforms": "5.0.0", + "Microsoft.NETCore.Targets": "5.0.0", + "NETStandard.Library": "2.2.0-prerelease.19564.1", + "runtime.win-x64.Microsoft.NETCore.App": "5.0.9-servicing.21359.8" + } + }, + "Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "dependencies": { + "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy": "5.0.9" + } + }, + "Microsoft.NETCore.Platforms/5.0.0": {}, + "Microsoft.NETCore.Targets/5.0.0": {}, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": {}, + "Microsoft.SourceLink.AzureRepos.Git/1.1.0-beta-20206-02": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.0-beta-20206-02", + "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" + } + }, + "Microsoft.SourceLink.Common/1.1.0-beta-20206-02": {}, + "Microsoft.SourceLink.GitHub/1.1.0-beta-20206-02": { + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.0-beta-20206-02", + "Microsoft.SourceLink.Common": "1.1.0-beta-20206-02" + } + }, + "NETStandard.Library/2.2.0-prerelease.19564.1": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0" + } + }, + "runtime.win-x64.Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "runtime": { + "runtimes/win-x64/lib/net5.0/Microsoft.CSharp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/Microsoft.VisualBasic.Core.dll": { + "assemblyVersion": "10.0.6.0", + "fileVersion": "11.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/Microsoft.VisualBasic.dll": { + "assemblyVersion": "10.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/Microsoft.Win32.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/Microsoft.Win32.Registry.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.AppContext.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Buffers.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Collections.Concurrent.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Collections.Immutable.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Collections.NonGeneric.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Collections.Specialized.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Collections.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ComponentModel.Annotations.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ComponentModel.DataAnnotations.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ComponentModel.EventBasedAsync.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ComponentModel.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ComponentModel.TypeConverter.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ComponentModel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Configuration.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Console.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Core.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Data.Common.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Data.DataSetExtensions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Data.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.Contracts.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.Debug.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.DiagnosticSource.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.FileVersionInfo.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.Process.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.StackTrace.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.TextWriterTraceListener.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.Tools.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.TraceSource.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Diagnostics.Tracing.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Drawing.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Drawing.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Dynamic.Runtime.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Formats.Asn1.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Globalization.Calendars.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Globalization.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Globalization.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.Compression.Brotli.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.Compression.FileSystem.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.Compression.ZipFile.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.Compression.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.FileSystem.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.FileSystem.DriveInfo.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.FileSystem.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.FileSystem.Watcher.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.FileSystem.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.IsolatedStorage.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.MemoryMappedFiles.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.Pipes.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.Pipes.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.UnmanagedMemoryStream.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.IO.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Linq.Expressions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Linq.Parallel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Linq.Queryable.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Linq.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Memory.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Http.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Http.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.HttpListener.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Mail.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.NameResolution.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.NetworkInformation.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Ping.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Requests.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Security.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.ServicePoint.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.Sockets.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.WebClient.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.WebHeaderCollection.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.WebProxy.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.WebSockets.Client.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.WebSockets.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Net.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Numerics.Vectors.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Numerics.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ObjectModel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Private.DataContractSerialization.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Private.Uri.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Private.Xml.Linq.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Private.Xml.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.DispatchProxy.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.Emit.ILGeneration.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.Emit.Lightweight.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.Emit.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.Metadata.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.TypeExtensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Reflection.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Resources.Reader.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Resources.ResourceManager.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Resources.Writer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.CompilerServices.Unsafe.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.CompilerServices.VisualC.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Handles.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.InteropServices.RuntimeInformation.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.InteropServices.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Intrinsics.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Loader.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Numerics.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Serialization.Formatters.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Serialization.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Serialization.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Serialization.Xml.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Runtime.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.AccessControl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Claims.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Cryptography.Algorithms.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Cryptography.Cng.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Cryptography.Csp.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Cryptography.Encoding.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Cryptography.OpenSsl.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Cryptography.Primitives.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Cryptography.X509Certificates.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Principal.Windows.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.Principal.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.SecureString.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Security.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ServiceModel.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ServiceProcess.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Text.Encoding.CodePages.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Text.Encoding.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Text.Encoding.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Text.Encodings.Web.dll": { + "assemblyVersion": "5.0.0.1", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Text.Json.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Text.RegularExpressions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Channels.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Overlapped.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Tasks.Dataflow.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Tasks.Extensions.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Tasks.Parallel.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Tasks.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Thread.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.ThreadPool.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.Timer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Threading.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Transactions.Local.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Transactions.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.ValueTuple.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Web.HttpUtility.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Web.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Windows.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.Linq.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.ReaderWriter.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.Serialization.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.XDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.XPath.XDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.XPath.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.XmlDocument.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.XmlSerializer.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.Xml.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/System.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/WindowsBase.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/mscorlib.dll": { + "assemblyVersion": "4.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/lib/net5.0/netstandard.dll": { + "assemblyVersion": "2.1.0.0", + "fileVersion": "5.0.921.35908" + } + }, + "native": { + "runtimes/win-x64/native/Microsoft.DiaSymReader.Native.amd64.dll": { + "fileVersion": "14.12.25830.2" + }, + "runtimes/win-x64/native/System.Private.CoreLib.dll": { + "assemblyVersion": "5.0.0.0", + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/api-ms-win-core-console-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-console-l1-2-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-datetime-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-debug-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-errorhandling-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-file-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-file-l1-2-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-file-l2-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-handle-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-heap-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-interlocked-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-libraryloader-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-localization-l1-2-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-memory-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-namedpipe-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-processenvironment-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-processthreads-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-processthreads-l1-1-1.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-profile-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-rtlsupport-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-string-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-synch-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-synch-l1-2-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-sysinfo-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-timezone-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-core-util-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-conio-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-convert-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-environment-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-filesystem-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-heap-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-locale-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-math-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-multibyte-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-private-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-process-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-runtime-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-stdio-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-string-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-time-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/api-ms-win-crt-utility-l1-1-0.dll": { + "fileVersion": "10.0.19041.685" + }, + "runtimes/win-x64/native/clrcompression.dll": { + "fileVersion": "42.42.42.42424" + }, + "runtimes/win-x64/native/clretwrc.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/clrjit.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/coreclr.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/createdump.exe": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/dbgshim.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/mscordaccore.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/mscordaccore_amd64_amd64_5.0.921.35908.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/mscordbi.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/mscorrc.dll": { + "fileVersion": "5.0.921.35908" + }, + "runtimes/win-x64/native/ucrtbase.dll": { + "fileVersion": "10.0.19041.685" + } + } + }, + "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "native": { + "runtimes/win-x64/native/hostpolicy.dll": { + "fileVersion": "5.0.921.35908" + } + } + } + } + }, + "libraries": { + "Microsoft.Build.Tasks.Git/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hZ9leS9Yd9MHpqvviMftSJFDcLYu2h1DrapW1TDm1s1fgOy71c8HvArNMd3fseVkXmp3VTfGnkgcw0FR+TI6xw==", + "path": "microsoft.build.tasks.git/1.1.0-beta-20206-02", + "hashPath": "microsoft.build.tasks.git.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.DiaSymReader.Native/1.7.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vIzndj0MoWW2Mp/iztUSKvmR9vZTqOVQ6PBvwA57+CDoiz7eUMU15rrAX+/QA0bkmwQ08GRibFBB9LNOl0EiBA==", + "path": "microsoft.diasymreader.native/1.7.0", + "hashPath": "microsoft.diasymreader.native.1.7.0.nupkg.sha512" + }, + "Microsoft.DiaSymReader.Pdb2Pdb/1.1.0-beta2-19575-01": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kY6eTNkeWLHvfOjg97Q7tgQKrPpX+Y3fR6fS4nyfpgFLHBxHriLBR4v3e9t71it91gIMEeKUqOqrFJ7Pj48eHA==", + "path": "microsoft.diasymreader.pdb2pdb/1.1.0-beta2-19575-01", + "hashPath": "microsoft.diasymreader.pdb2pdb.1.1.0-beta2-19575-01.nupkg.sha512" + }, + "Microsoft.DotNet.Build.Tasks.Installers/5.0.0-beta.21328.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-68fxMTtraSXCUYZx7vNVb9PvIJ9FhPjymbvrkl/6h7S/NlQz6bxyZksTd6ghMs4gyQLHRCuDX/O/dT6Gd6qIag==", + "path": "microsoft.dotnet.build.tasks.installers/5.0.0-beta.21328.3", + "hashPath": "microsoft.dotnet.build.tasks.installers.5.0.0-beta.21328.3.nupkg.sha512" + }, + "Microsoft.DotNet.Build.Tasks.Packaging/5.0.0-beta.21328.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rswwdycY3QmJ3DvyOGVMHDdZxxnE76MQFWZWqhniJqgbXPefQnXvDF4YXgCPnAENDYtsjohpaav1XDEyt84UHw==", + "path": "microsoft.dotnet.build.tasks.packaging/5.0.0-beta.21328.3", + "hashPath": "microsoft.dotnet.build.tasks.packaging.5.0.0-beta.21328.3.nupkg.sha512" + }, + "Microsoft.Net.Compilers.Toolset/3.8.0-4.20503.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-jfscID/5IHHPVVEbFCAJEUEWCeWNZCLwyBcUFG3/u44oiRd/aseDOYRzl3OnIIvcwzi0U2lSAs6Lt2+rdRIDMg==", + "path": "microsoft.net.compilers.toolset/3.8.0-4.20503.2", + "hashPath": "microsoft.net.compilers.toolset.3.8.0-4.20503.2.nupkg.sha512" + }, + "Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-oYiMUcecaDmS0VJJPCAh/SSEnKAGH6dOwjRyXPEKiUqh8XNmcwLIFHA/i8zVuxrCYkCPpWyjw0bOHJsPrMiaqA==", + "path": "microsoft.netcore.app/5.0.9-servicing.21359.8", + "hashPath": "microsoft.netcore.app.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "Microsoft.NETCore.App.Internal/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-5PNSlvpzpJ3Uq+MuLFG6ajoDamaHvlQ3/Zwx1Af2aT2l11uvSVWxvQwUJTE/QzUXT7CO/UmYrbWHoeInWqo/cg==", + "path": "microsoft.netcore.app.internal/5.0.9-servicing.21359.8", + "hashPath": "microsoft.netcore.app.internal.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-a99qgfcfnXXv2f14/GkIr5tEejf6C2Z1M1vQVPlpbRhQHKqrGfsIuBb9TOOArWcn8JRynClMI4wYXrv6hzdxUg==" + }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "path": "microsoft.netcore.platforms/5.0.0", + "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" + }, + "Microsoft.NETCore.Targets/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-XpSaRv9/+V4KQ5KPbvRoArKy1o9WHizFEdOXPBLHXRZ0zwPGK5cTcWo1SveD7uayrfhod1uAAscip65qLeAjCw==", + "path": "microsoft.netcore.targets/5.0.0", + "hashPath": "microsoft.netcore.targets.5.0.0.nupkg.sha512" + }, + "Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-m+pJPEO7HyXvrOna5Sr3s77ewXonjYWJTNL6drh8xACnMNxnlqUDKx9HfGeSE9wmfY0lQwppaeZpFTPGaH7kZg==", + "path": "microsoft.netframework.referenceassemblies/1.0.0-preview.2", + "hashPath": "microsoft.netframework.referenceassemblies.1.0.0-preview.2.nupkg.sha512" + }, + "Microsoft.SourceLink.AzureRepos.Git/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-vVYhSds9TfraTQkGHHMDMVWnr3kCkTZ7vmqUmrXQBDJFXiWTuMoP5RRa9s1M/KmgB4szi5TOb7sOaHWKDT9qDA==", + "path": "microsoft.sourcelink.azurerepos.git/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.azurerepos.git.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.SourceLink.Common/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-aek0RTQ+4Bf11WvqaXajwYoaBWkX2edBjAr5XJOvhAsHX6/9vPOb7IpHAiE/NyCse7IcpGWslJZHNkv4UBEFqw==", + "path": "microsoft.sourcelink.common/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.common.1.1.0-beta-20206-02.nupkg.sha512" + }, + "Microsoft.SourceLink.GitHub/1.1.0-beta-20206-02": { + "type": "package", + "serviceable": true, + "sha512": "sha512-7A7P0EwL+lypaI/CEvG4IcpAlQeAt04uPPw1SO6Q9Jwz2nE9309pQXJ4TfP/RLL8IOObACidN66+gVR+bJDZHw==", + "path": "microsoft.sourcelink.github/1.1.0-beta-20206-02", + "hashPath": "microsoft.sourcelink.github.1.1.0-beta-20206-02.nupkg.sha512" + }, + "NETStandard.Library/2.2.0-prerelease.19564.1": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y7Z0OKA/O5mW8aPEI4oXTSjinUTwGDwKEZMKTGdzb+vLgGRuvrZrs1YidcFN2kIKOo/11bOSNfKn4lsOLUWHkQ==", + "path": "netstandard.library/2.2.0-prerelease.19564.1", + "hashPath": "netstandard.library.2.2.0-prerelease.19564.1.nupkg.sha512" + }, + "runtime.win-x64.Microsoft.NETCore.App/5.0.9-servicing.21359.8": { + "type": "package", + "serviceable": true, + "sha512": "sha512-rGs3Hez+pKeeGXMdR+ohmiLNvuimGLZEy0vg01H0X79FELHAKsh1695bP6xeE87ZqDapvO+HmRfBnnkafKaQmw==", + "path": "runtime.win-x64.microsoft.netcore.app/5.0.9-servicing.21359.8", + "hashPath": "runtime.win-x64.microsoft.netcore.app.5.0.9-servicing.21359.8.nupkg.sha512" + }, + "runtime.win-x64.Microsoft.NETCore.DotNetHostPolicy/5.0.9": { + "type": "package", + "serviceable": true, + "sha512": "sha512-I3nuVVCu98BQLcnCKaLnik3P9I97otKIBmYVYK5kfZ8oDtxEzJR6zpWx2zo6daGCj1fw2+aQBE3w50FqLG65pw==" + } + }, + "runtimes": { + "win-arm": [ + "win", + "any", + "base" + ], + "win-arm64": [ + "win", + "any", + "base" + ], + "win-x64": [ + "win", + "any", + "base" + ], + "win-x86": [ + "win", + "any", + "base" + ], + "win": [ + "any", + "base" + ], + "win-aot": [ + "win", + "aot", + "any", + "base" + ], + "win-arm-aot": [ + "win-aot", + "win-arm", + "win", + "aot", + "any", + "base" + ], + "win-arm64-aot": [ + "win-aot", + "win-arm64", + "win", + "aot", + "any", + "base" + ], + "win-x64-aot": [ + "win-aot", + "win-x64", + "win", + "aot", + "any", + "base" + ], + "win-x86-aot": [ + "win-aot", + "win-x86", + "win", + "aot", + "any", + "base" + ], + "win10": [ + "win81", + "win8", + "win7", + "win", + "any", + "base" + ], + "win10-aot": [ + "win10", + "win81-aot", + "win81", + "win8-aot", + "win8", + "win7-aot", + "win7", + "win-aot", + "win", + "aot", + "any", + "base" + ], + "win10-arm": [ + "win10", + "win81-arm", + "win81", + "win8-arm", + "win8", + "win7-arm", + "win7", + "win-arm", + "win", + "any", + "base" + ], + "win10-arm-aot": [ + "win10-aot", + "win10-arm", + "win10", + "win81-arm-aot", + "win81-aot", + "win81-arm", + "win81", + "win8-arm-aot", + "win8-aot", + "win8-arm", + "win8", + "win7-arm-aot", + "win7-aot", + "win7-arm", + "win7", + "win-arm-aot", + "win-aot", + "win-arm", + "win", + "aot", + "any", + "base" + ], + "win10-arm64": [ + "win10", + "win81-arm64", + "win81", + "win8-arm64", + "win8", + "win7-arm64", + "win7", + "win-arm64", + "win", + "any", + "base" + ], + "win10-arm64-aot": [ + "win10-aot", + "win10-arm64", + "win10", + "win81-arm64-aot", + "win81-aot", + "win81-arm64", + "win81", + "win8-arm64-aot", + "win8-aot", + "win8-arm64", + "win8", + "win7-arm64-aot", + "win7-aot", + "win7-arm64", + "win7", + "win-arm64-aot", + "win-aot", + "win-arm64", + "win", + "aot", + "any", + "base" + ], + "win10-x64": [ + "win10", + "win81-x64", + "win81", + "win8-x64", + "win8", + "win7-x64", + "win7", + "win-x64", + "win", + "any", + "base" + ], + "win10-x64-aot": [ + "win10-aot", + "win10-x64", + "win10", + "win81-x64-aot", + "win81-aot", + "win81-x64", + "win81", + "win8-x64-aot", + "win8-aot", + "win8-x64", + "win8", + "win7-x64-aot", + "win7-aot", + "win7-x64", + "win7", + "win-x64-aot", + "win-aot", + "win-x64", + "win", + "aot", + "any", + "base" + ], + "win10-x86": [ + "win10", + "win81-x86", + "win81", + "win8-x86", + "win8", + "win7-x86", + "win7", + "win-x86", + "win", + "any", + "base" + ], + "win10-x86-aot": [ + "win10-aot", + "win10-x86", + "win10", + "win81-x86-aot", + "win81-aot", + "win81-x86", + "win81", + "win8-x86-aot", + "win8-aot", + "win8-x86", + "win8", + "win7-x86-aot", + "win7-aot", + "win7-x86", + "win7", + "win-x86-aot", + "win-aot", + "win-x86", + "win", + "aot", + "any", + "base" + ], + "win7": [ + "win", + "any", + "base" + ], + "win7-aot": [ + "win7", + "win-aot", + "win", + "aot", + "any", + "base" + ], + "win7-arm": [ + "win7", + "win-arm", + "win", + "any", + "base" + ], + "win7-arm-aot": [ + "win7-aot", + "win7-arm", + "win7", + "win-arm-aot", + "win-aot", + "win-arm", + "win", + "aot", + "any", + "base" + ], + "win7-arm64": [ + "win7", + "win-arm64", + "win", + "any", + "base" + ], + "win7-arm64-aot": [ + "win7-aot", + "win7-arm64", + "win7", + "win-arm64-aot", + "win-aot", + "win-arm64", + "win", + "aot", + "any", + "base" + ], + "win7-x64": [ + "win7", + "win-x64", + "win", + "any", + "base" + ], + "win7-x64-aot": [ + "win7-aot", + "win7-x64", + "win7", + "win-x64-aot", + "win-aot", + "win-x64", + "win", + "aot", + "any", + "base" + ], + "win7-x86": [ + "win7", + "win-x86", + "win", + "any", + "base" + ], + "win7-x86-aot": [ + "win7-aot", + "win7-x86", + "win7", + "win-x86-aot", + "win-aot", + "win-x86", + "win", + "aot", + "any", + "base" + ], + "win8": [ + "win7", + "win", + "any", + "base" + ], + "win8-aot": [ + "win8", + "win7-aot", + "win7", + "win-aot", + "win", + "aot", + "any", + "base" + ], + "win8-arm": [ + "win8", + "win7-arm", + "win7", + "win-arm", + "win", + "any", + "base" + ], + "win8-arm-aot": [ + "win8-aot", + "win8-arm", + "win8", + "win7-arm-aot", + "win7-aot", + "win7-arm", + "win7", + "win-arm-aot", + "win-aot", + "win-arm", + "win", + "aot", + "any", + "base" + ], + "win8-arm64": [ + "win8", + "win7-arm64", + "win7", + "win-arm64", + "win", + "any", + "base" + ], + "win8-arm64-aot": [ + "win8-aot", + "win8-arm64", + "win8", + "win7-arm64-aot", + "win7-aot", + "win7-arm64", + "win7", + "win-arm64-aot", + "win-aot", + "win-arm64", + "win", + "aot", + "any", + "base" + ], + "win8-x64": [ + "win8", + "win7-x64", + "win7", + "win-x64", + "win", + "any", + "base" + ], + "win8-x64-aot": [ + "win8-aot", + "win8-x64", + "win8", + "win7-x64-aot", + "win7-aot", + "win7-x64", + "win7", + "win-x64-aot", + "win-aot", + "win-x64", + "win", + "aot", + "any", + "base" + ], + "win8-x86": [ + "win8", + "win7-x86", + "win7", + "win-x86", + "win", + "any", + "base" + ], + "win8-x86-aot": [ + "win8-aot", + "win8-x86", + "win8", + "win7-x86-aot", + "win7-aot", + "win7-x86", + "win7", + "win-x86-aot", + "win-aot", + "win-x86", + "win", + "aot", + "any", + "base" + ], + "win81": [ + "win8", + "win7", + "win", + "any", + "base" + ], + "win81-aot": [ + "win81", + "win8-aot", + "win8", + "win7-aot", + "win7", + "win-aot", + "win", + "aot", + "any", + "base" + ], + "win81-arm": [ + "win81", + "win8-arm", + "win8", + "win7-arm", + "win7", + "win-arm", + "win", + "any", + "base" + ], + "win81-arm-aot": [ + "win81-aot", + "win81-arm", + "win81", + "win8-arm-aot", + "win8-aot", + "win8-arm", + "win8", + "win7-arm-aot", + "win7-aot", + "win7-arm", + "win7", + "win-arm-aot", + "win-aot", + "win-arm", + "win", + "aot", + "any", + "base" + ], + "win81-arm64": [ + "win81", + "win8-arm64", + "win8", + "win7-arm64", + "win7", + "win-arm64", + "win", + "any", + "base" + ], + "win81-arm64-aot": [ + "win81-aot", + "win81-arm64", + "win81", + "win8-arm64-aot", + "win8-aot", + "win8-arm64", + "win8", + "win7-arm64-aot", + "win7-aot", + "win7-arm64", + "win7", + "win-arm64-aot", + "win-aot", + "win-arm64", + "win", + "aot", + "any", + "base" + ], + "win81-x64": [ + "win81", + "win8-x64", + "win8", + "win7-x64", + "win7", + "win-x64", + "win", + "any", + "base" + ], + "win81-x64-aot": [ + "win81-aot", + "win81-x64", + "win81", + "win8-x64-aot", + "win8-aot", + "win8-x64", + "win8", + "win7-x64-aot", + "win7-aot", + "win7-x64", + "win7", + "win-x64-aot", + "win-aot", + "win-x64", + "win", + "aot", + "any", + "base" + ], + "win81-x86": [ + "win81", + "win8-x86", + "win8", + "win7-x86", + "win7", + "win-x86", + "win", + "any", + "base" + ], + "win81-x86-aot": [ + "win81-aot", + "win81-x86", + "win81", + "win8-x86-aot", + "win8-aot", + "win8-x86", + "win8", + "win7-x86-aot", + "win7-aot", + "win7-x86", + "win7", + "win-x86-aot", + "win-aot", + "win-x86", + "win", + "aot", + "any", + "base" + ] + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll new file mode 100644 index 00000000..5d20fcd5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.Core.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll new file mode 100644 index 00000000..9763bc86 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.VisualBasic.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll new file mode 100644 index 00000000..8bb7f009 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll new file mode 100644 index 00000000..fdb545fa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/Microsoft.Win32.Registry.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll new file mode 100644 index 00000000..b60e60cb Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.AppContext.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll new file mode 100644 index 00000000..6b4a2b7c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Buffers.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll new file mode 100644 index 00000000..7a12114d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Concurrent.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll new file mode 100644 index 00000000..2e9dc9e2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Immutable.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll new file mode 100644 index 00000000..c818eaae Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.NonGeneric.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll new file mode 100644 index 00000000..28138e9b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.Specialized.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll new file mode 100644 index 00000000..89a5ee89 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Collections.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll new file mode 100644 index 00000000..bd3f694f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Annotations.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll new file mode 100644 index 00000000..019f5924 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.DataAnnotations.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll new file mode 100644 index 00000000..fe8ba88d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.EventBasedAsync.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll new file mode 100644 index 00000000..d46ff850 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll new file mode 100644 index 00000000..15999456 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.TypeConverter.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll new file mode 100644 index 00000000..46448a3e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ComponentModel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll new file mode 100644 index 00000000..624b3f3f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Configuration.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll new file mode 100644 index 00000000..b71d9ce5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Console.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll new file mode 100644 index 00000000..27c6266b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Core.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll new file mode 100644 index 00000000..83633bfa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.Common.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll new file mode 100644 index 00000000..1e54d4f6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.DataSetExtensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll new file mode 100644 index 00000000..03b5386d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Data.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll new file mode 100644 index 00000000..83eb4b3d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Contracts.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll new file mode 100644 index 00000000..3b8da7f7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Debug.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll new file mode 100644 index 00000000..28cff94a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.DiagnosticSource.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll new file mode 100644 index 00000000..b2f4e111 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.FileVersionInfo.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll new file mode 100644 index 00000000..ba6afd2d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Process.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll new file mode 100644 index 00000000..c7484ac4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.StackTrace.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll new file mode 100644 index 00000000..9f38e2a3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TextWriterTraceListener.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll new file mode 100644 index 00000000..c930782b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tools.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll new file mode 100644 index 00000000..9cf10ea2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.TraceSource.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll new file mode 100644 index 00000000..24ae6f4e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Diagnostics.Tracing.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll new file mode 100644 index 00000000..6bb6704c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll new file mode 100644 index 00000000..c1f30b3c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Drawing.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll new file mode 100644 index 00000000..728b5f76 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Dynamic.Runtime.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll new file mode 100644 index 00000000..f5e1b9da Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Formats.Asn1.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll new file mode 100644 index 00000000..ab95331c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Calendars.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll new file mode 100644 index 00000000..96b8535c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll new file mode 100644 index 00000000..4495834d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Globalization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll new file mode 100644 index 00000000..0e2b4f8d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.Brotli.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll new file mode 100644 index 00000000..c26bc914 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.FileSystem.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll new file mode 100644 index 00000000..97645a90 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.ZipFile.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll new file mode 100644 index 00000000..ddb17fda Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Compression.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll new file mode 100644 index 00000000..c9fa2e69 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll new file mode 100644 index 00000000..c4d91481 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.DriveInfo.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll new file mode 100644 index 00000000..ffb7128e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll new file mode 100644 index 00000000..3449484b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.Watcher.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll new file mode 100644 index 00000000..04ebaed6 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.FileSystem.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll new file mode 100644 index 00000000..d47396a3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.IsolatedStorage.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll new file mode 100644 index 00000000..0aeaa62d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.MemoryMappedFiles.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll new file mode 100644 index 00000000..01fc9248 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll new file mode 100644 index 00000000..1467bd60 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.Pipes.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll new file mode 100644 index 00000000..543c3057 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.UnmanagedMemoryStream.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll new file mode 100644 index 00000000..0ff58d84 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.IO.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll new file mode 100644 index 00000000..96fb37d8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Expressions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll new file mode 100644 index 00000000..d09889de Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Parallel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll new file mode 100644 index 00000000..aa721884 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.Queryable.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll new file mode 100644 index 00000000..03450cbe Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll new file mode 100644 index 00000000..d00c59a5 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Memory.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll new file mode 100644 index 00000000..38299890 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll new file mode 100644 index 00000000..185bf84e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Http.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll new file mode 100644 index 00000000..db65f583 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.HttpListener.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll new file mode 100644 index 00000000..d18b6407 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Mail.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll new file mode 100644 index 00000000..c1fdcefd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.NameResolution.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll new file mode 100644 index 00000000..dd1fc7a8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.NetworkInformation.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll new file mode 100644 index 00000000..d5b63ff7 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Ping.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll new file mode 100644 index 00000000..aa53ffaa Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll new file mode 100644 index 00000000..d36ce6ea Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Requests.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll new file mode 100644 index 00000000..79909481 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Security.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll new file mode 100644 index 00000000..77604dce Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.ServicePoint.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll new file mode 100644 index 00000000..a057b5e9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.Sockets.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll new file mode 100644 index 00000000..27d60473 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebClient.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll new file mode 100644 index 00000000..66786473 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebHeaderCollection.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll new file mode 100644 index 00000000..7be8e961 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebProxy.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll new file mode 100644 index 00000000..8e61f3fb Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.Client.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll new file mode 100644 index 00000000..978b283e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.WebSockets.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll new file mode 100644 index 00000000..911be4fe Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Net.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll new file mode 100644 index 00000000..989d4533 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.Vectors.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll new file mode 100644 index 00000000..97f21029 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Numerics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll new file mode 100644 index 00000000..aaacc6d3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ObjectModel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll new file mode 100644 index 00000000..584211bd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.CoreLib.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll new file mode 100644 index 00000000..75a83b44 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.DataContractSerialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll new file mode 100644 index 00000000..df566944 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Uri.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll new file mode 100644 index 00000000..6d7aa122 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll new file mode 100644 index 00000000..246107c8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Private.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll new file mode 100644 index 00000000..9884f32d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.DispatchProxy.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll new file mode 100644 index 00000000..4f9d8c62 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.ILGeneration.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll new file mode 100644 index 00000000..e5d8f502 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.Lightweight.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll new file mode 100644 index 00000000..ca57917c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Emit.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll new file mode 100644 index 00000000..be949156 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll new file mode 100644 index 00000000..438c7717 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Metadata.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll new file mode 100644 index 00000000..90459a6b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll new file mode 100644 index 00000000..0f61d76a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.TypeExtensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll new file mode 100644 index 00000000..84a16ec4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Reflection.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll new file mode 100644 index 00000000..2ae2ca93 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Reader.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll new file mode 100644 index 00000000..79c23407 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.ResourceManager.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll new file mode 100644 index 00000000..927efb6a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Resources.Writer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll new file mode 100644 index 00000000..df834730 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll new file mode 100644 index 00000000..9257f705 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.CompilerServices.VisualC.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll new file mode 100644 index 00000000..e025004f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll new file mode 100644 index 00000000..43b02f28 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Handles.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll new file mode 100644 index 00000000..6de10830 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.RuntimeInformation.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll new file mode 100644 index 00000000..c1d0942d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.InteropServices.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll new file mode 100644 index 00000000..9f72a188 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Intrinsics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll new file mode 100644 index 00000000..8548aceb Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Loader.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll new file mode 100644 index 00000000..b5d9c612 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Numerics.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll new file mode 100644 index 00000000..52bf111a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Formatters.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll new file mode 100644 index 00000000..67d5ece3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll new file mode 100644 index 00000000..5bdd7398 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll new file mode 100644 index 00000000..5b7f8ce3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll new file mode 100644 index 00000000..b8ef0b71 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.Serialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll new file mode 100644 index 00000000..f7156068 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Runtime.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll new file mode 100644 index 00000000..d556ca63 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.AccessControl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll new file mode 100644 index 00000000..5cd035cf Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Claims.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll new file mode 100644 index 00000000..a55dae66 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Algorithms.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll new file mode 100644 index 00000000..348a9774 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Cng.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll new file mode 100644 index 00000000..0c308006 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Csp.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll new file mode 100644 index 00000000..4be13b35 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Encoding.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll new file mode 100644 index 00000000..527c9a69 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.OpenSsl.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll new file mode 100644 index 00000000..23b17fc2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.Primitives.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll new file mode 100644 index 00000000..b81bffd0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Cryptography.X509Certificates.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll new file mode 100644 index 00000000..ce71dca8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.Windows.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll new file mode 100644 index 00000000..6c5f43e0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.Principal.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll new file mode 100644 index 00000000..f54c49e9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.SecureString.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll new file mode 100644 index 00000000..b38d9834 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Security.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll new file mode 100644 index 00000000..0f750ed4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ServiceModel.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll new file mode 100644 index 00000000..22d930c2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ServiceProcess.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll new file mode 100644 index 00000000..533466e9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.CodePages.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll new file mode 100644 index 00000000..f95322e4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll new file mode 100644 index 00000000..c991b905 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encoding.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll new file mode 100644 index 00000000..45e0a531 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Encodings.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll new file mode 100644 index 00000000..5cef116b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.Json.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll new file mode 100644 index 00000000..fdb98cdd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Text.RegularExpressions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll new file mode 100644 index 00000000..6cfd7609 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Channels.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll new file mode 100644 index 00000000..a1bba65e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Overlapped.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll new file mode 100644 index 00000000..8327bd56 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Dataflow.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll new file mode 100644 index 00000000..ba3a52f2 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Extensions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll new file mode 100644 index 00000000..dd6ff840 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.Parallel.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll new file mode 100644 index 00000000..23b6c32b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Tasks.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll new file mode 100644 index 00000000..9027233b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Thread.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll new file mode 100644 index 00000000..1065305c Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.ThreadPool.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll new file mode 100644 index 00000000..c9a22a5a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.Timer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll new file mode 100644 index 00000000..2cc83e43 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Threading.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll new file mode 100644 index 00000000..91999b58 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.Local.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll new file mode 100644 index 00000000..56ff8af9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Transactions.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll new file mode 100644 index 00000000..203a8cbf Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.ValueTuple.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll new file mode 100644 index 00000000..47e59089 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Web.HttpUtility.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll new file mode 100644 index 00000000..22fec5a1 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Web.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll new file mode 100644 index 00000000..cbd9d523 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Windows.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll new file mode 100644 index 00000000..85866d7f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Linq.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll new file mode 100644 index 00000000..e2b2d661 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.ReaderWriter.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll new file mode 100644 index 00000000..5cbf4b47 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.Serialization.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll new file mode 100644 index 00000000..80979389 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll new file mode 100644 index 00000000..c66d41c9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.XDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll new file mode 100644 index 00000000..65bf1e38 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XPath.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll new file mode 100644 index 00000000..ecdea1c9 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlDocument.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll new file mode 100644 index 00000000..f7191aaf Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.XmlSerializer.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll new file mode 100644 index 00000000..1eed1c8b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.Xml.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.dll new file mode 100644 index 00000000..e52c4447 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/System.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll new file mode 100644 index 00000000..387e2d8b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/WindowsBase.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-console-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-console-l1-1-0.dll new file mode 100644 index 00000000..59df9b70 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-console-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-console-l1-2-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-console-l1-2-0.dll new file mode 100644 index 00000000..255602a3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-console-l1-2-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-datetime-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-datetime-l1-1-0.dll new file mode 100644 index 00000000..770ae176 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-datetime-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-debug-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-debug-l1-1-0.dll new file mode 100644 index 00000000..cf936c96 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-debug-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-errorhandling-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-errorhandling-l1-1-0.dll new file mode 100644 index 00000000..31d9e308 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-errorhandling-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l1-1-0.dll new file mode 100644 index 00000000..9a6c49fd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l1-2-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l1-2-0.dll new file mode 100644 index 00000000..4166dc5a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l1-2-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l2-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l2-1-0.dll new file mode 100644 index 00000000..c3730d5a Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-file-l2-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-handle-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-handle-l1-1-0.dll new file mode 100644 index 00000000..c6d92b28 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-handle-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-heap-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-heap-l1-1-0.dll new file mode 100644 index 00000000..71419b91 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-heap-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-interlocked-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-interlocked-l1-1-0.dll new file mode 100644 index 00000000..69b7ad1d Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-interlocked-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-libraryloader-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-libraryloader-l1-1-0.dll new file mode 100644 index 00000000..f37503ed Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-libraryloader-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-localization-l1-2-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-localization-l1-2-0.dll new file mode 100644 index 00000000..5f938cca Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-localization-l1-2-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-memory-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-memory-l1-1-0.dll new file mode 100644 index 00000000..d3f895ae Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-memory-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-namedpipe-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-namedpipe-l1-1-0.dll new file mode 100644 index 00000000..1d731299 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-namedpipe-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processenvironment-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processenvironment-l1-1-0.dll new file mode 100644 index 00000000..fa2d53df Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processenvironment-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processthreads-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processthreads-l1-1-0.dll new file mode 100644 index 00000000..13fc5dca Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processthreads-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processthreads-l1-1-1.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processthreads-l1-1-1.dll new file mode 100644 index 00000000..551ef210 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-processthreads-l1-1-1.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-profile-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-profile-l1-1-0.dll new file mode 100644 index 00000000..8f0fde38 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-profile-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-rtlsupport-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-rtlsupport-l1-1-0.dll new file mode 100644 index 00000000..89f12452 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-rtlsupport-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-string-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-string-l1-1-0.dll new file mode 100644 index 00000000..f2ee6dbb Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-string-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-synch-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-synch-l1-1-0.dll new file mode 100644 index 00000000..b9541f0f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-synch-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-synch-l1-2-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-synch-l1-2-0.dll new file mode 100644 index 00000000..2f1a432b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-synch-l1-2-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-sysinfo-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-sysinfo-l1-1-0.dll new file mode 100644 index 00000000..1d1a3761 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-sysinfo-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-timezone-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-timezone-l1-1-0.dll new file mode 100644 index 00000000..95d4fc2e Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-timezone-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-util-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-util-l1-1-0.dll new file mode 100644 index 00000000..fb2fc919 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-core-util-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-conio-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-conio-l1-1-0.dll new file mode 100644 index 00000000..771a68c1 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-conio-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-convert-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-convert-l1-1-0.dll new file mode 100644 index 00000000..44fea9ab Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-convert-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-environment-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-environment-l1-1-0.dll new file mode 100644 index 00000000..d8a73990 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-environment-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-filesystem-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-filesystem-l1-1-0.dll new file mode 100644 index 00000000..4a283712 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-filesystem-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-heap-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-heap-l1-1-0.dll new file mode 100644 index 00000000..0ab3a324 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-heap-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-locale-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-locale-l1-1-0.dll new file mode 100644 index 00000000..79d46f60 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-locale-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-math-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-math-l1-1-0.dll new file mode 100644 index 00000000..f8b20922 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-math-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-multibyte-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-multibyte-l1-1-0.dll new file mode 100644 index 00000000..31afd5a4 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-multibyte-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-private-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-private-l1-1-0.dll new file mode 100644 index 00000000..240bf464 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-private-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-process-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-process-l1-1-0.dll new file mode 100644 index 00000000..2b517e4b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-process-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-runtime-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-runtime-l1-1-0.dll new file mode 100644 index 00000000..0b1da812 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-runtime-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-stdio-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-stdio-l1-1-0.dll new file mode 100644 index 00000000..74e6f6c3 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-stdio-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-string-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-string-l1-1-0.dll new file mode 100644 index 00000000..c366ed38 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-string-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-time-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-time-l1-1-0.dll new file mode 100644 index 00000000..72c5a14b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-time-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-utility-l1-1-0.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-utility-l1-1-0.dll new file mode 100644 index 00000000..860f8789 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/api-ms-win-crt-utility-l1-1-0.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clrcompression.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clrcompression.dll new file mode 100644 index 00000000..9d956fbe Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clrcompression.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clretwrc.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clretwrc.dll new file mode 100644 index 00000000..d4870827 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clretwrc.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clrjit.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clrjit.dll new file mode 100644 index 00000000..f65c9b7b Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/clrjit.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/coreclr.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/coreclr.dll new file mode 100644 index 00000000..477e2195 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/coreclr.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h new file mode 100644 index 00000000..914ab592 --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/coreclr_delegates.h @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __CORECLR_DELEGATES_H__ +#define __CORECLR_DELEGATES_H__ + +#include + +#if defined(_WIN32) + #define CORECLR_DELEGATE_CALLTYPE __stdcall + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define CORECLR_DELEGATE_CALLTYPE + typedef char char_t; +#endif + +#define UNMANAGEDCALLERSONLY_METHOD ((const char_t*)-1) + +// Signature of delegate returned by coreclr_delegate_type::load_assembly_and_get_function_pointer +typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_and_get_function_pointer_fn)( + const char_t *assembly_path /* Fully qualified path to assembly */, + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +// Signature of delegate returned by load_assembly_and_get_function_pointer_fn when delegate_type_name == null (default) +typedef int (CORECLR_DELEGATE_CALLTYPE *component_entry_point_fn)(void *arg, int32_t arg_size_in_bytes); + +typedef int (CORECLR_DELEGATE_CALLTYPE *get_function_pointer_fn)( + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null, + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *load_context /* Extensibility parameter (currently unused and must be 0) */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +#endif // __CORECLR_DELEGATES_H__ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/createdump.exe b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/createdump.exe new file mode 100644 index 00000000..611c26a0 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/createdump.exe differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/dbgshim.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/dbgshim.dll new file mode 100644 index 00000000..4016fd8f Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/dbgshim.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h new file mode 100644 index 00000000..e062193c --- /dev/null +++ b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/hostfxr.h @@ -0,0 +1,288 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __HOSTFXR_H__ +#define __HOSTFXR_H__ + +#include +#include + +#if defined(_WIN32) + #define HOSTFXR_CALLTYPE __cdecl + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define HOSTFXR_CALLTYPE + typedef char char_t; +#endif + +enum hostfxr_delegate_type +{ + hdt_com_activation, + hdt_load_in_memory_assembly, + hdt_winrt_activation, + hdt_com_register, + hdt_com_unregister, + hdt_load_assembly_and_get_function_pointer, + hdt_get_function_pointer, +}; + +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_fn)(const int argc, const char_t **argv); +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_startupinfo_fn)( + const int argc, + const char_t **argv, + const char_t *host_path, + const char_t *dotnet_root, + const char_t *app_path); +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_bundle_startupinfo_fn)( + const int argc, + const char_t** argv, + const char_t* host_path, + const char_t* dotnet_root, + const char_t* app_path, + int64_t bundle_header_offset); + +typedef void(HOSTFXR_CALLTYPE *hostfxr_error_writer_fn)(const char_t *message); + +// +// Sets a callback which is to be used to write errors to. +// +// Parameters: +// error_writer +// A callback function which will be invoked every time an error is to be reported. +// Or nullptr to unregister previously registered callback and return to the default behavior. +// Return value: +// The previously registered callback (which is now unregistered), or nullptr if no previous callback +// was registered +// +// The error writer is registered per-thread, so the registration is thread-local. On each thread +// only one callback can be registered. Subsequent registrations overwrite the previous ones. +// +// By default no callback is registered in which case the errors are written to stderr. +// +// Each call to the error writer is sort of like writing a single line (the EOL character is omitted). +// Multiple calls to the error writer may occure for one failure. +// +// If the hostfxr invokes functions in hostpolicy as part of its operation, the error writer +// will be propagated to hostpolicy for the duration of the call. This means that errors from +// both hostfxr and hostpolicy will be reporter through the same error writer. +// +typedef hostfxr_error_writer_fn(HOSTFXR_CALLTYPE *hostfxr_set_error_writer_fn)(hostfxr_error_writer_fn error_writer); + +typedef void* hostfxr_handle; +struct hostfxr_initialize_parameters +{ + size_t size; + const char_t *host_path; + const char_t *dotnet_root; +}; + +// +// Initializes the hosting components for a dotnet command line running an application +// +// Parameters: +// argc +// Number of argv arguments +// argv +// Command-line arguments for running an application (as if through the dotnet executable). +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// HostInvalidState - Hosting components are already initialized +// +// This function parses the specified command-line arguments to determine the application to run. It will +// then find the corresponding .runtimeconfig.json and .deps.json with which to resolve frameworks and +// dependencies and prepare everything needed to load the runtime. +// +// This function only supports arguments for running an application. It does not support SDK commands. +// +// This function does not load the runtime. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_dotnet_command_line_fn)( + int argc, + const char_t **argv, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Initializes the hosting components using a .runtimeconfig.json file +// +// Parameters: +// runtime_config_path +// Path to the .runtimeconfig.json file +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// Success_HostAlreadyInitialized - Config is compatible with already initialized hosting components +// Success_DifferentRuntimeProperties - Config has runtime properties that differ from already initialized hosting components +// CoreHostIncompatibleConfig - Config is incompatible with already initialized hosting components +// +// This function will process the .runtimeconfig.json to resolve frameworks and prepare everything needed +// to load the runtime. It will only process the .deps.json from frameworks (not any app/component that +// may be next to the .runtimeconfig.json). +// +// This function does not load the runtime. +// +// If called when the runtime has already been loaded, this function will check if the specified runtime +// config is compatible with the existing runtime. +// +// Both Success_HostAlreadyInitialized and Success_DifferentRuntimeProperties codes are considered successful +// initializations. In the case of Success_DifferentRuntimeProperties, it is left to the consumer to verify that +// the difference in properties is acceptable. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_runtime_config_fn)( + const char_t *runtime_config_path, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Gets the runtime property value for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Out parameter. Pointer to a buffer with the property value. +// +// Return value: +// The error code result. +// +// The buffer pointed to by value is owned by the host context. The lifetime of the buffer is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// property value for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + /*out*/ const char_t **value); + +// +// Sets the value of a runtime property for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Value to set +// +// Return value: +// The error code result. +// +// Setting properties is only supported for the first host context, before the runtime has been loaded. +// +// If the property already exists in the host context, it will be overwritten. If value is nullptr, the +// property will be removed. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_set_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + const char_t *value); + +// +// Gets all the runtime properties for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// count +// [in] Size of the keys and values buffers +// [out] Number of properties returned (size of keys/values buffers used). If the input value is too +// small or keys/values is nullptr, this is populated with the number of available properties +// keys +// Array of pointers to buffers with runtime property keys +// values +// Array of pointers to buffers with runtime property values +// +// Return value: +// The error code result. +// +// The buffers pointed to by keys and values are owned by the host context. The lifetime of the buffers is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// properties for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_properties_fn)( + const hostfxr_handle host_context_handle, + /*inout*/ size_t * count, + /*out*/ const char_t **keys, + /*out*/ const char_t **values); + +// +// Load CoreCLR and run the application for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// If the app was successfully run, the exit code of the application. Otherwise, the error code result. +// +// The host_context_handle must have been initialized using hostfxr_initialize_for_dotnet_command_line. +// +// This function will not return until the managed application exits. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_run_app_fn)(const hostfxr_handle host_context_handle); + +// +// Gets a typed delegate from the currently loaded CoreCLR or from a newly created one. +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// type +// Type of runtime delegate requested +// delegate +// An out parameter that will be assigned the delegate. +// +// Return value: +// The error code result. +// +// If the host_context_handle was initialized using hostfxr_initialize_for_runtime_config, +// then all delegate types are supported. +// If the host_context_handle was initialized using hostfxr_initialize_for_dotnet_command_line, +// then only the following delegate types are currently supported: +// hdt_load_assembly_and_get_function_pointer +// hdt_get_function_pointer +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_delegate_fn)( + const hostfxr_handle host_context_handle, + enum hostfxr_delegate_type type, + /*out*/ void **delegate); + +// +// Closes an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// The error code result. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_close_fn)(const hostfxr_handle host_context_handle); + +#endif //__HOSTFXR_H__ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/hostpolicy.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/hostpolicy.dll new file mode 100644 index 00000000..05c28f80 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/hostpolicy.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordaccore.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordaccore.dll new file mode 100644 index 00000000..0ce8b875 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordaccore.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordaccore_amd64_amd64_5.0.921.35908.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordaccore_amd64_amd64_5.0.921.35908.dll new file mode 100644 index 00000000..af86a021 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordaccore_amd64_amd64_5.0.921.35908.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordbi.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordbi.dll new file mode 100644 index 00000000..0ed09ed8 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscordbi.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll new file mode 100644 index 00000000..01d1d0fd Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscorlib.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscorrc.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscorrc.dll new file mode 100644 index 00000000..18013b70 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/mscorrc.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll new file mode 100644 index 00000000..f25c0595 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/netstandard.dll differ diff --git a/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/ucrtbase.dll b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/ucrtbase.dll new file mode 100644 index 00000000..b6625752 Binary files /dev/null and b/plugins/UnrealCLR/Runtime/Win64/shared/Microsoft.NETCore.App/5.0.9/ucrtbase.dll differ diff --git a/plugins/UnrealCLR/Source/Dependencies/CoreCLR/includes/coreclr_delegates.h b/plugins/UnrealCLR/Source/Dependencies/CoreCLR/includes/coreclr_delegates.h new file mode 100644 index 00000000..914ab592 --- /dev/null +++ b/plugins/UnrealCLR/Source/Dependencies/CoreCLR/includes/coreclr_delegates.h @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __CORECLR_DELEGATES_H__ +#define __CORECLR_DELEGATES_H__ + +#include + +#if defined(_WIN32) + #define CORECLR_DELEGATE_CALLTYPE __stdcall + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define CORECLR_DELEGATE_CALLTYPE + typedef char char_t; +#endif + +#define UNMANAGEDCALLERSONLY_METHOD ((const char_t*)-1) + +// Signature of delegate returned by coreclr_delegate_type::load_assembly_and_get_function_pointer +typedef int (CORECLR_DELEGATE_CALLTYPE *load_assembly_and_get_function_pointer_fn)( + const char_t *assembly_path /* Fully qualified path to assembly */, + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +// Signature of delegate returned by load_assembly_and_get_function_pointer_fn when delegate_type_name == null (default) +typedef int (CORECLR_DELEGATE_CALLTYPE *component_entry_point_fn)(void *arg, int32_t arg_size_in_bytes); + +typedef int (CORECLR_DELEGATE_CALLTYPE *get_function_pointer_fn)( + const char_t *type_name /* Assembly qualified type name */, + const char_t *method_name /* Public static method name compatible with delegateType */, + const char_t *delegate_type_name /* Assembly qualified delegate type name or null, + or UNMANAGEDCALLERSONLY_METHOD if the method is marked with + the UnmanagedCallersOnlyAttribute. */, + void *load_context /* Extensibility parameter (currently unused and must be 0) */, + void *reserved /* Extensibility parameter (currently unused and must be 0) */, + /*out*/ void **delegate /* Pointer where to store the function pointer result */); + +#endif // __CORECLR_DELEGATES_H__ diff --git a/plugins/UnrealCLR/Source/Dependencies/CoreCLR/includes/hostfxr.h b/plugins/UnrealCLR/Source/Dependencies/CoreCLR/includes/hostfxr.h new file mode 100644 index 00000000..e062193c --- /dev/null +++ b/plugins/UnrealCLR/Source/Dependencies/CoreCLR/includes/hostfxr.h @@ -0,0 +1,288 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +#ifndef __HOSTFXR_H__ +#define __HOSTFXR_H__ + +#include +#include + +#if defined(_WIN32) + #define HOSTFXR_CALLTYPE __cdecl + #ifdef _WCHAR_T_DEFINED + typedef wchar_t char_t; + #else + typedef unsigned short char_t; + #endif +#else + #define HOSTFXR_CALLTYPE + typedef char char_t; +#endif + +enum hostfxr_delegate_type +{ + hdt_com_activation, + hdt_load_in_memory_assembly, + hdt_winrt_activation, + hdt_com_register, + hdt_com_unregister, + hdt_load_assembly_and_get_function_pointer, + hdt_get_function_pointer, +}; + +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_fn)(const int argc, const char_t **argv); +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_main_startupinfo_fn)( + const int argc, + const char_t **argv, + const char_t *host_path, + const char_t *dotnet_root, + const char_t *app_path); +typedef int32_t(HOSTFXR_CALLTYPE* hostfxr_main_bundle_startupinfo_fn)( + const int argc, + const char_t** argv, + const char_t* host_path, + const char_t* dotnet_root, + const char_t* app_path, + int64_t bundle_header_offset); + +typedef void(HOSTFXR_CALLTYPE *hostfxr_error_writer_fn)(const char_t *message); + +// +// Sets a callback which is to be used to write errors to. +// +// Parameters: +// error_writer +// A callback function which will be invoked every time an error is to be reported. +// Or nullptr to unregister previously registered callback and return to the default behavior. +// Return value: +// The previously registered callback (which is now unregistered), or nullptr if no previous callback +// was registered +// +// The error writer is registered per-thread, so the registration is thread-local. On each thread +// only one callback can be registered. Subsequent registrations overwrite the previous ones. +// +// By default no callback is registered in which case the errors are written to stderr. +// +// Each call to the error writer is sort of like writing a single line (the EOL character is omitted). +// Multiple calls to the error writer may occure for one failure. +// +// If the hostfxr invokes functions in hostpolicy as part of its operation, the error writer +// will be propagated to hostpolicy for the duration of the call. This means that errors from +// both hostfxr and hostpolicy will be reporter through the same error writer. +// +typedef hostfxr_error_writer_fn(HOSTFXR_CALLTYPE *hostfxr_set_error_writer_fn)(hostfxr_error_writer_fn error_writer); + +typedef void* hostfxr_handle; +struct hostfxr_initialize_parameters +{ + size_t size; + const char_t *host_path; + const char_t *dotnet_root; +}; + +// +// Initializes the hosting components for a dotnet command line running an application +// +// Parameters: +// argc +// Number of argv arguments +// argv +// Command-line arguments for running an application (as if through the dotnet executable). +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// HostInvalidState - Hosting components are already initialized +// +// This function parses the specified command-line arguments to determine the application to run. It will +// then find the corresponding .runtimeconfig.json and .deps.json with which to resolve frameworks and +// dependencies and prepare everything needed to load the runtime. +// +// This function only supports arguments for running an application. It does not support SDK commands. +// +// This function does not load the runtime. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_dotnet_command_line_fn)( + int argc, + const char_t **argv, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Initializes the hosting components using a .runtimeconfig.json file +// +// Parameters: +// runtime_config_path +// Path to the .runtimeconfig.json file +// parameters +// Optional. Additional parameters for initialization +// host_context_handle +// On success, this will be populated with an opaque value representing the initialized host context +// +// Return value: +// Success - Hosting components were successfully initialized +// Success_HostAlreadyInitialized - Config is compatible with already initialized hosting components +// Success_DifferentRuntimeProperties - Config has runtime properties that differ from already initialized hosting components +// CoreHostIncompatibleConfig - Config is incompatible with already initialized hosting components +// +// This function will process the .runtimeconfig.json to resolve frameworks and prepare everything needed +// to load the runtime. It will only process the .deps.json from frameworks (not any app/component that +// may be next to the .runtimeconfig.json). +// +// This function does not load the runtime. +// +// If called when the runtime has already been loaded, this function will check if the specified runtime +// config is compatible with the existing runtime. +// +// Both Success_HostAlreadyInitialized and Success_DifferentRuntimeProperties codes are considered successful +// initializations. In the case of Success_DifferentRuntimeProperties, it is left to the consumer to verify that +// the difference in properties is acceptable. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_initialize_for_runtime_config_fn)( + const char_t *runtime_config_path, + const struct hostfxr_initialize_parameters *parameters, + /*out*/ hostfxr_handle *host_context_handle); + +// +// Gets the runtime property value for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Out parameter. Pointer to a buffer with the property value. +// +// Return value: +// The error code result. +// +// The buffer pointed to by value is owned by the host context. The lifetime of the buffer is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// property value for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + /*out*/ const char_t **value); + +// +// Sets the value of a runtime property for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// name +// Runtime property name +// value +// Value to set +// +// Return value: +// The error code result. +// +// Setting properties is only supported for the first host context, before the runtime has been loaded. +// +// If the property already exists in the host context, it will be overwritten. If value is nullptr, the +// property will be removed. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_set_runtime_property_value_fn)( + const hostfxr_handle host_context_handle, + const char_t *name, + const char_t *value); + +// +// Gets all the runtime properties for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// count +// [in] Size of the keys and values buffers +// [out] Number of properties returned (size of keys/values buffers used). If the input value is too +// small or keys/values is nullptr, this is populated with the number of available properties +// keys +// Array of pointers to buffers with runtime property keys +// values +// Array of pointers to buffers with runtime property values +// +// Return value: +// The error code result. +// +// The buffers pointed to by keys and values are owned by the host context. The lifetime of the buffers is only +// guaranteed until any of the below occur: +// - a 'run' method is called for the host context +// - properties are changed via hostfxr_set_runtime_property_value +// - the host context is closed via 'hostfxr_close' +// +// If host_context_handle is nullptr and an active host context exists, this function will get the +// properties for the active host context. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_properties_fn)( + const hostfxr_handle host_context_handle, + /*inout*/ size_t * count, + /*out*/ const char_t **keys, + /*out*/ const char_t **values); + +// +// Load CoreCLR and run the application for an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// If the app was successfully run, the exit code of the application. Otherwise, the error code result. +// +// The host_context_handle must have been initialized using hostfxr_initialize_for_dotnet_command_line. +// +// This function will not return until the managed application exits. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_run_app_fn)(const hostfxr_handle host_context_handle); + +// +// Gets a typed delegate from the currently loaded CoreCLR or from a newly created one. +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// type +// Type of runtime delegate requested +// delegate +// An out parameter that will be assigned the delegate. +// +// Return value: +// The error code result. +// +// If the host_context_handle was initialized using hostfxr_initialize_for_runtime_config, +// then all delegate types are supported. +// If the host_context_handle was initialized using hostfxr_initialize_for_dotnet_command_line, +// then only the following delegate types are currently supported: +// hdt_load_assembly_and_get_function_pointer +// hdt_get_function_pointer +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_get_runtime_delegate_fn)( + const hostfxr_handle host_context_handle, + enum hostfxr_delegate_type type, + /*out*/ void **delegate); + +// +// Closes an initialized host context +// +// Parameters: +// host_context_handle +// Handle to the initialized host context +// +// Return value: +// The error code result. +// +typedef int32_t(HOSTFXR_CALLTYPE *hostfxr_close_fn)(const hostfxr_handle host_context_handle); + +#endif //__HOSTFXR_H__ diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLR.cpp b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLR.cpp new file mode 100644 index 00000000..d451ba5e --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLR.cpp @@ -0,0 +1,1512 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "UnrealCLR.h" + +#define LOCTEXT_NAMESPACE "UnrealCLR" + +DEFINE_LOG_CATEGORY(LogUnrealCLR); + +void UnrealCLR::Module::StartupModule() { + #define HOSTFXR_VERSION "5.0.9" + #define HOSTFXR_WINDOWS "/hostfxr.dll" + #define HOSTFXR_MAC "/libhostfxr.dylib" + #define HOSTFXR_LINUX "/libhostfxr.so" + + #ifdef UNREALCLR_WINDOWS + #define HOSTFXR_PATH "Plugins/UnrealCLR/Runtime/Win64/host/fxr/" HOSTFXR_VERSION HOSTFXR_WINDOWS + #define UNREALCLR_PLATFORM_STRING(string) string + #elif defined(UNREALCLR_MAC) + #define HOSTFXR_PATH "Plugins/UnrealCLR/Runtime/Mac/host/fxr/" HOSTFXR_VERSION HOSTFXR_MAC + #define UNREALCLR_PLATFORM_STRING(string) TCHAR_TO_ANSI(string) + #elif defined(UNREALCLR_UNIX) + #define HOSTFXR_PATH "Plugins/UnrealCLR/Runtime/Linux/host/fxr/" HOSTFXR_VERSION HOSTFXR_LINUX + #define UNREALCLR_PLATFORM_STRING(string) TCHAR_TO_ANSI(string) + #else + #error "Unknown platform" + #endif + + UnrealCLR::Status = UnrealCLR::StatusType::Stopped; + UnrealCLR::ProjectPath = FPaths::ConvertRelativePathToFull(FPaths::ProjectDir()); + UnrealCLR::UserAssembliesPath = UnrealCLR::ProjectPath + TEXT("Managed/"); + + OnWorldPostInitializationHandle = FWorldDelegates::OnPostWorldInitialization.AddRaw(this, &UnrealCLR::Module::OnWorldPostInitialization); + OnWorldCleanupHandle = FWorldDelegates::OnWorldCleanup.AddRaw(this, &UnrealCLR::Module::OnWorldCleanup); + + const FString hostfxrPath = UnrealCLR::ProjectPath + TEXT(HOSTFXR_PATH); + const FString assembliesPath = UnrealCLR::ProjectPath + TEXT("Plugins/UnrealCLR/Managed/"); + const FString runtimeConfigPath = assembliesPath + TEXT("UnrealEngine.Runtime.runtimeconfig.json"); + const FString runtimeAssemblyPath = assembliesPath + TEXT("UnrealEngine.Runtime.dll"); + const FString runtimeTypeName = TEXT("UnrealEngine.Runtime.Core, UnrealEngine.Runtime"); + const FString runtimeMethodName = TEXT("ManagedCommand"); + + UE_LOG(LogUnrealCLR, Display, TEXT("%s: Host path set to \"%s\""), ANSI_TO_TCHAR(__FUNCTION__), *hostfxrPath); + + HostfxrLibrary = FPlatformProcess::GetDllHandle(*hostfxrPath); + + if (HostfxrLibrary) { + UE_LOG(LogUnrealCLR, Display, TEXT("%s: Host library loaded successfuly!"), ANSI_TO_TCHAR(__FUNCTION__)); + + hostfxr_set_error_writer_fn HostfxrSetErrorWriter = (hostfxr_set_error_writer_fn)FPlatformProcess::GetDllExport(HostfxrLibrary, TEXT("hostfxr_set_error_writer")); + + if (!HostfxrSetErrorWriter) { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Unable to locate hostfxr_set_error_writer entry point!"), ANSI_TO_TCHAR(__FUNCTION__)); + + return; + } + + hostfxr_initialize_for_runtime_config_fn HostfxrInitializeForRuntimeConfig = (hostfxr_initialize_for_runtime_config_fn)FPlatformProcess::GetDllExport(HostfxrLibrary, TEXT("hostfxr_initialize_for_runtime_config")); + + if (!HostfxrInitializeForRuntimeConfig) { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Unable to locate hostfxr_initialize_for_runtime_config entry point!"), ANSI_TO_TCHAR(__FUNCTION__)); + + return; + } + + hostfxr_get_runtime_delegate_fn HostfxrGetRuntimeDelegate = (hostfxr_get_runtime_delegate_fn)FPlatformProcess::GetDllExport(HostfxrLibrary, TEXT("hostfxr_get_runtime_delegate")); + + if (!HostfxrGetRuntimeDelegate) { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Unable to locate hostfxr_get_runtime_delegate entry point!"), ANSI_TO_TCHAR(__FUNCTION__)); + + return; + } + + hostfxr_close_fn HostfxrClose = (hostfxr_close_fn)FPlatformProcess::GetDllExport(HostfxrLibrary, TEXT("hostfxr_close")); + + if (!HostfxrClose) { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Unable to locate hostfxr_close entry point!"), ANSI_TO_TCHAR(__FUNCTION__)); + + return; + } + + HostfxrSetErrorWriter(HostError); + + hostfxr_handle HostfxrContext = nullptr; + + if (HostfxrInitializeForRuntimeConfig(UNREALCLR_PLATFORM_STRING(*runtimeConfigPath), nullptr, &HostfxrContext) != 0 || !HostfxrContext) { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Unable to initialize the host! Please, try to restart the engine."), ANSI_TO_TCHAR(__FUNCTION__)); + + HostfxrClose(HostfxrContext); + + return; + } + + void* hostfxrLoadAssemblyAndGetFunctionPointer = nullptr; + + if (HostfxrGetRuntimeDelegate(HostfxrContext, hdt_load_assembly_and_get_function_pointer, &hostfxrLoadAssemblyAndGetFunctionPointer) != 0 || !HostfxrGetRuntimeDelegate) { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Unable to get hdt_load_assembly_and_get_function_pointer runtime delegate!"), ANSI_TO_TCHAR(__FUNCTION__)); + + HostfxrClose(HostfxrContext); + + return; + } + + HostfxrClose(HostfxrContext); + + UE_LOG(LogUnrealCLR, Display, TEXT("%s: Host functions loaded successfuly!"), ANSI_TO_TCHAR(__FUNCTION__)); + + load_assembly_and_get_function_pointer_fn HostfxrLoadAssemblyAndGetFunctionPointer = (load_assembly_and_get_function_pointer_fn)hostfxrLoadAssemblyAndGetFunctionPointer; + + if (HostfxrLoadAssemblyAndGetFunctionPointer && HostfxrLoadAssemblyAndGetFunctionPointer(UNREALCLR_PLATFORM_STRING(*runtimeAssemblyPath), UNREALCLR_PLATFORM_STRING(*runtimeTypeName), UNREALCLR_PLATFORM_STRING(*runtimeMethodName), UNMANAGEDCALLERSONLY_METHOD, nullptr, (void**)&UnrealCLR::ManagedCommand) == 0) { + UE_LOG(LogUnrealCLR, Display, TEXT("%s: Host runtime assembly loaded succesfuly!"), ANSI_TO_TCHAR(__FUNCTION__)); + } else { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Host runtime assembly loading failed!"), ANSI_TO_TCHAR(__FUNCTION__)); + + return; + } + + #if WITH_EDITOR + IPlatformFile& platformFile = FPlatformFileManager::Get().GetPlatformFile(); + + if (!platformFile.DirectoryExists(*UnrealCLR::UserAssembliesPath)) { + platformFile.CreateDirectory(*UnrealCLR::UserAssembliesPath); + + if (!platformFile.DirectoryExists(*UnrealCLR::UserAssembliesPath)) + UE_LOG(LogUnrealCLR, Warning, TEXT("%s: Unable to create a folder for managed assemblies at %s."), ANSI_TO_TCHAR(__FUNCTION__), *UnrealCLR::UserAssembliesPath); + } + #endif + + if (UnrealCLR::ManagedCommand) { + // Framework pointers + + int32 position = 0; + int32 checksum = 0; + + { + int32 head = 0; + Shared::Functions[position++] = Shared::AssertFunctions; + + Shared::AssertFunctions[head++] = (void*)&UnrealCLRFramework::Assert::OutputMessage; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::CommandLineFunctions; + + Shared::CommandLineFunctions[head++] = (void*)&UnrealCLRFramework::CommandLine::Get; + Shared::CommandLineFunctions[head++] = (void*)&UnrealCLRFramework::CommandLine::Set; + Shared::CommandLineFunctions[head++] = (void*)&UnrealCLRFramework::CommandLine::Append; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::DebugFunctions; + + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::Log; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::Exception; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::AddOnScreenMessage; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::ClearOnScreenMessages; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::DrawBox; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::DrawCapsule; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::DrawCone; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::DrawCylinder; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::DrawSphere; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::DrawLine; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::DrawPoint; + Shared::DebugFunctions[head++] = (void*)&UnrealCLRFramework::Debug::FlushPersistentLines; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ObjectFunctions; + + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::IsPendingKill; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::IsValid; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::Load; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::Rename; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::Invoke; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::ToActor; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::ToComponent; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetID; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetName; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetBool; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetByte; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetShort; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetInt; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetLong; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetUShort; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetUInt; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetULong; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetFloat; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetDouble; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetEnum; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetString; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::GetText; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetBool; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetByte; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetShort; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetInt; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetLong; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetUShort; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetUInt; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetULong; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetFloat; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetDouble; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetEnum; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetString; + Shared::ObjectFunctions[head++] = (void*)&UnrealCLRFramework::Object::SetText; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ApplicationFunctions; + + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::IsCanEverRender; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::IsPackagedForDistribution; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::IsPackagedForShipping; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::GetProjectDirectory; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::GetDefaultLanguage; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::GetProjectName; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::GetVolumeMultiplier; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::SetProjectName; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::SetVolumeMultiplier; + Shared::ApplicationFunctions[head++] = (void*)&UnrealCLRFramework::Application::RequestExit; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ConsoleManagerFunctions; + + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::IsRegisteredVariable; + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::FindVariable; + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::RegisterVariableBool; + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::RegisterVariableInt; + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::RegisterVariableFloat; + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::RegisterVariableString; + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::RegisterCommand; + Shared::ConsoleManagerFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleManager::UnregisterObject; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::EngineFunctions; + + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::IsSplitScreen; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::IsEditor; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::IsForegroundWindow; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::IsExitRequested; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::GetNetMode; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::GetFrameNumber; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::GetViewportSize; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::GetScreenResolution; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::GetWindowMode; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::GetVersion; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::GetMaxFPS; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::SetMaxFPS; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::SetTitle; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::AddActionMapping; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::AddAxisMapping; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::ForceGarbageCollection; + Shared::EngineFunctions[head++] = (void*)&UnrealCLRFramework::Engine::DelayGarbageCollection; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::HeadMountedDisplayFunctions; + + Shared::HeadMountedDisplayFunctions[head++] = (void*)&UnrealCLRFramework::HeadMountedDisplay::IsConnected; + Shared::HeadMountedDisplayFunctions[head++] = (void*)&UnrealCLRFramework::HeadMountedDisplay::GetEnabled; + Shared::HeadMountedDisplayFunctions[head++] = (void*)&UnrealCLRFramework::HeadMountedDisplay::GetLowPersistenceMode; + Shared::HeadMountedDisplayFunctions[head++] = (void*)&UnrealCLRFramework::HeadMountedDisplay::GetDeviceName; + Shared::HeadMountedDisplayFunctions[head++] = (void*)&UnrealCLRFramework::HeadMountedDisplay::SetEnable; + Shared::HeadMountedDisplayFunctions[head++] = (void*)&UnrealCLRFramework::HeadMountedDisplay::SetLowPersistenceMode; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::WorldFunctions; + + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::ForEachActor; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetActorCount; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetDeltaSeconds; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetRealTimeSeconds; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetTimeSeconds; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetCurrentLevelName; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetSimulatePhysics; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetWorldOrigin; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetActor; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetActorByTag; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetActorByID; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetFirstPlayerController; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::GetGameMode; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnActorBeginOverlapCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnActorBeginCursorOverCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnActorEndCursorOverCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnActorClickedCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnActorReleasedCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnActorEndOverlapCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnActorHitCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnComponentBeginOverlapCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnComponentEndOverlapCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnComponentHitCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnComponentBeginCursorOverCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnComponentEndCursorOverCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnComponentClickedCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetOnComponentReleasedCallback; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetSimulatePhysics; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetGravity; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SetWorldOrigin; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::OpenLevel; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::LineTraceTestByChannel; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::LineTraceTestByProfile; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::LineTraceSingleByChannel; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::LineTraceSingleByProfile; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SweepTestByChannel; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SweepTestByProfile; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SweepSingleByChannel; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::SweepSingleByProfile; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::OverlapAnyTestByChannel; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::OverlapAnyTestByProfile; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::OverlapBlockingTestByChannel; + Shared::WorldFunctions[head++] = (void*)&UnrealCLRFramework::World::OverlapBlockingTestByProfile; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::AssetFunctions; + + Shared::AssetFunctions[head++] = (void*)&UnrealCLRFramework::Asset::IsValid; + Shared::AssetFunctions[head++] = (void*)&UnrealCLRFramework::Asset::GetName; + Shared::AssetFunctions[head++] = (void*)&UnrealCLRFramework::Asset::GetPath; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::AssetRegistryFunctions; + + Shared::AssetRegistryFunctions[head++] = (void*)&UnrealCLRFramework::AssetRegistry::Get; + Shared::AssetRegistryFunctions[head++] = (void*)&UnrealCLRFramework::AssetRegistry::HasAssets; + Shared::AssetRegistryFunctions[head++] = (void*)&UnrealCLRFramework::AssetRegistry::ForEachAsset; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::BlueprintFunctions; + + Shared::BlueprintFunctions[head++] = (void*)&UnrealCLRFramework::Blueprint::IsValidActorClass; + Shared::BlueprintFunctions[head++] = (void*)&UnrealCLRFramework::Blueprint::IsValidComponentClass; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ConsoleObjectFunctions; + + Shared::ConsoleObjectFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleObject::IsBool; + Shared::ConsoleObjectFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleObject::IsInt; + Shared::ConsoleObjectFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleObject::IsFloat; + Shared::ConsoleObjectFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleObject::IsString; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ConsoleVariableFunctions; + + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::GetBool; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::GetInt; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::GetFloat; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::GetString; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::SetBool; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::SetInt; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::SetFloat; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::SetString; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::SetOnChangedCallback; + Shared::ConsoleVariableFunctions[head++] = (void*)&UnrealCLRFramework::ConsoleVariable::ClearOnChangedCallback; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ActorFunctions; + + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::IsPendingKill; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::IsRootComponentMovable; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::IsOverlappingActor; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::ForEachComponent; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::ForEachAttachedActor; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::ForEachChildActor; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::ForEachOverlappingActor; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::Spawn; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::Destroy; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::Rename; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::Hide; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::TeleportTo; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetComponent; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetComponentByTag; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetComponentByID; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetRootComponent; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetInputComponent; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetCreationTime; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetBlockInput; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetDistanceTo; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetHorizontalDistanceTo; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetBounds; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::GetEyesViewPoint; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::SetRootComponent; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::SetInputComponent; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::SetBlockInput; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::SetLifeSpan; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::SetEnableInput; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::SetEnableCollision; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::AddTag; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::RemoveTag; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::HasTag; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::RegisterEvent; + Shared::ActorFunctions[head++] = (void*)&UnrealCLRFramework::Actor::UnregisterEvent; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::GameModeBaseFunctions; + + Shared::GameModeBaseFunctions[head++] = (void*)&UnrealCLRFramework::GameModeBase::GetUseSeamlessTravel; + Shared::GameModeBaseFunctions[head++] = (void*)&UnrealCLRFramework::GameModeBase::SetUseSeamlessTravel; + Shared::GameModeBaseFunctions[head++] = (void*)&UnrealCLRFramework::GameModeBase::SwapPlayerControllers; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::PawnFunctions; + + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::IsControlled; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::IsPlayerControlled; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetAutoPossessAI; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetAutoPossessPlayer; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetUseControllerRotationYaw; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetUseControllerRotationPitch; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetUseControllerRotationRoll; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetGravityDirection; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetAIController; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::GetPlayerController; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::SetAutoPossessAI; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::SetAutoPossessPlayer; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::SetUseControllerRotationYaw; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::SetUseControllerRotationPitch; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::SetUseControllerRotationRoll; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::AddControllerYawInput; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::AddControllerPitchInput; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::AddControllerRollInput; + Shared::PawnFunctions[head++] = (void*)&UnrealCLRFramework::Pawn::AddMovementInput; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::CharacterFunctions; + + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::IsCrouched; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::CanCrouch; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::CanJump; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::CheckJumpInput; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::ClearJumpInput; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::Launch; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::Crouch; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::StopCrouching; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::Jump; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::StopJumping; + Shared::CharacterFunctions[head++] = (void*)&UnrealCLRFramework::Character::SetOnLandedCallback; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ControllerFunctions; + + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::IsLookInputIgnored; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::IsMoveInputIgnored; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::IsPlayerController; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::GetPawn; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::GetCharacter; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::GetViewTarget; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::GetControlRotation; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::GetDesiredRotation; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::LineOfSightTo; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::SetControlRotation; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::SetInitialLocationAndRotation; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::SetIgnoreLookInput; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::SetIgnoreMoveInput; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::ResetIgnoreLookInput; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::ResetIgnoreMoveInput; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::Possess; + Shared::ControllerFunctions[head++] = (void*)&UnrealCLRFramework::Controller::Unpossess; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::AIControllerFunctions; + + Shared::AIControllerFunctions[head++] = (void*)&UnrealCLRFramework::AIController::ClearFocus; + Shared::AIControllerFunctions[head++] = (void*)&UnrealCLRFramework::AIController::GetFocalPoint; + Shared::AIControllerFunctions[head++] = (void*)&UnrealCLRFramework::AIController::SetFocalPoint; + Shared::AIControllerFunctions[head++] = (void*)&UnrealCLRFramework::AIController::GetFocusActor; + Shared::AIControllerFunctions[head++] = (void*)&UnrealCLRFramework::AIController::GetAllowStrafe; + Shared::AIControllerFunctions[head++] = (void*)&UnrealCLRFramework::AIController::SetAllowStrafe; + Shared::AIControllerFunctions[head++] = (void*)&UnrealCLRFramework::AIController::SetFocus; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::PlayerControllerFunctions; + + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::IsPaused; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetShowMouseCursor; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetEnableClickEvents; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetEnableMouseOverEvents; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetMousePosition; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetPlayer; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetPlayerInput; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetHitResultAtScreenPosition; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::GetHitResultUnderCursor; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::SetShowMouseCursor; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::SetEnableClickEvents; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::SetEnableMouseOverEvents; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::SetMousePosition; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::ConsoleCommand; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::SetPause; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::SetViewTarget; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::SetViewTargetWithBlend; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::AddYawInput; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::AddPitchInput; + Shared::PlayerControllerFunctions[head++] = (void*)&UnrealCLRFramework::PlayerController::AddRollInput; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::VolumeFunctions; + + Shared::VolumeFunctions[head++] = (void*)&UnrealCLRFramework::Volume::EncompassesPoint; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::PostProcessVolumeFunctions; + + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::GetEnabled; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::GetBlendRadius; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::GetBlendWeight; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::GetUnbound; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::GetPriority; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::SetEnabled; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::SetBlendRadius; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::SetBlendWeight; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::SetUnbound; + Shared::PostProcessVolumeFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessVolume::SetPriority; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SoundBaseFunctions; + + Shared::SoundBaseFunctions[head++] = (void*)&UnrealCLRFramework::SoundBase::GetDuration; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SoundWaveFunctions; + + Shared::SoundWaveFunctions[head++] = (void*)&UnrealCLRFramework::SoundWave::GetLoop; + Shared::SoundWaveFunctions[head++] = (void*)&UnrealCLRFramework::SoundWave::SetLoop; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::AnimationInstanceFunctions; + + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::GetCurrentActiveMontage; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::IsPlaying; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::GetPlayRate; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::GetPosition; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::GetBlendTime; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::GetCurrentSection; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::SetPlayRate; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::SetPosition; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::SetNextSection; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::PlayMontage; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::PauseMontage; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::ResumeMontage; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::StopMontage; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::JumpToSection; + Shared::AnimationInstanceFunctions[head++] = (void*)&UnrealCLRFramework::AnimationInstance::JumpToSectionsEnd; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::PlayerFunctions; + + Shared::PlayerFunctions[head++] = (void*)&UnrealCLRFramework::Player::GetPlayerController; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::PlayerInputFunctions; + + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::IsKeyPressed; + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::GetTimeKeyPressed; + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::GetMouseSensitivity; + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::SetMouseSensitivity; + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::AddActionMapping; + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::AddAxisMapping; + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::RemoveActionMapping; + Shared::PlayerInputFunctions[head++] = (void*)&UnrealCLRFramework::PlayerInput::RemoveAxisMapping; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::FontFunctions; + + Shared::FontFunctions[head++] = (void*)&UnrealCLRFramework::Font::GetStringSize; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::Texture2DFunctions; + + Shared::Texture2DFunctions[head++] = (void*)&UnrealCLRFramework::Texture2D::CreateFromFile; + Shared::Texture2DFunctions[head++] = (void*)&UnrealCLRFramework::Texture2D::CreateFromBuffer; + Shared::Texture2DFunctions[head++] = (void*)&UnrealCLRFramework::Texture2D::HasAlphaChannel; + Shared::Texture2DFunctions[head++] = (void*)&UnrealCLRFramework::Texture2D::GetSize; + Shared::Texture2DFunctions[head++] = (void*)&UnrealCLRFramework::Texture2D::GetPixelFormat; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ActorComponentFunctions; + + Shared::ActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ActorComponent::IsOwnerSelected; + Shared::ActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ActorComponent::GetOwner; + Shared::ActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ActorComponent::Destroy; + Shared::ActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ActorComponent::AddTag; + Shared::ActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ActorComponent::RemoveTag; + Shared::ActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ActorComponent::HasTag; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::InputComponentFunctions; + + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::HasBindings; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::GetActionBindingsNumber; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::ClearActionBindings; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::BindAction; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::BindAxis; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::RemoveActionBinding; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::GetBlockInput; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::SetBlockInput; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::GetPriority; + Shared::InputComponentFunctions[head++] = (void*)&UnrealCLRFramework::InputComponent::SetPriority; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SceneComponentFunctions; + + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::IsAttachedToComponent; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::IsAttachedToActor; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::IsVisible; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::IsSocketExists; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::HasAnySockets; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::CanAttachAsChild; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::ForEachAttachedChild; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::Create; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AttachToComponent; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::DetachFromComponent; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::Activate; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::Deactivate; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::UpdateToWorld; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddLocalOffset; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddLocalRotation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddRelativeLocation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddRelativeRotation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddLocalTransform; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddWorldOffset; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddWorldRotation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::AddWorldTransform; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetAttachedSocketName; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetBounds; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetSocketLocation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetSocketRotation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetComponentVelocity; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetComponentLocation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetComponentRotation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetComponentScale; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetComponentTransform; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetForwardVector; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetRightVector; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::GetUpVector; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetMobility; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetVisibility; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetRelativeLocation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetRelativeRotation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetRelativeTransform; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetWorldLocation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetWorldRotation; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetWorldScale; + Shared::SceneComponentFunctions[head++] = (void*)&UnrealCLRFramework::SceneComponent::SetWorldTransform; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::AudioComponentFunctions; + + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::IsPlaying; + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::GetPaused; + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::SetSound; + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::SetPaused; + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::Play; + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::Stop; + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::FadeIn; + Shared::AudioComponentFunctions[head++] = (void*)&UnrealCLRFramework::AudioComponent::FadeOut; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::CameraComponentFunctions; + + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::GetConstrainAspectRatio; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::GetAspectRatio; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::GetFieldOfView; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::GetOrthoFarClipPlane; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::GetOrthoNearClipPlane; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::GetOrthoWidth; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::GetLockToHeadMountedDisplay; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetProjectionMode; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetConstrainAspectRatio; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetAspectRatio; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetFieldOfView; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetOrthoFarClipPlane; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetOrthoNearClipPlane; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetOrthoWidth; + Shared::CameraComponentFunctions[head++] = (void*)&UnrealCLRFramework::CameraComponent::SetLockToHeadMountedDisplay; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ChildActorComponentFunctions; + + Shared::ChildActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ChildActorComponent::GetChildActor; + Shared::ChildActorComponentFunctions[head++] = (void*)&UnrealCLRFramework::ChildActorComponent::SetChildActor; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SpringArmComponentFunctions; + + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::IsCollisionFixApplied; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetDrawDebugLagMarkers; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCollisionTest; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCameraPositionLag; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCameraRotationLag; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCameraLagSubstepping; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetInheritPitch; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetInheritRoll; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetInheritYaw; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCameraLagMaxDistance; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCameraLagMaxTimeStep; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCameraPositionLagSpeed; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetCameraRotationLagSpeed; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetProbeChannel; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetProbeSize; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetSocketOffset; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetTargetArmLength; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetTargetOffset; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetUnfixedCameraPosition; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetDesiredRotation; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetTargetRotation; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::GetUsePawnControlRotation; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetDrawDebugLagMarkers; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCollisionTest; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCameraPositionLag; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCameraRotationLag; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCameraLagSubstepping; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetInheritPitch; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetInheritRoll; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetInheritYaw; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCameraLagMaxDistance; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCameraLagMaxTimeStep; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCameraPositionLagSpeed; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetCameraRotationLagSpeed; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetProbeChannel; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetProbeSize; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetSocketOffset; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetTargetArmLength; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetTargetOffset; + Shared::SpringArmComponentFunctions[head++] = (void*)&UnrealCLRFramework::SpringArmComponent::SetUsePawnControlRotation; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::PostProcessComponentFunctions; + + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::GetEnabled; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::GetBlendRadius; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::GetBlendWeight; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::GetUnbound; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::GetPriority; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::SetEnabled; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::SetBlendRadius; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::SetBlendWeight; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::SetUnbound; + Shared::PostProcessComponentFunctions[head++] = (void*)&UnrealCLRFramework::PostProcessComponent::SetPriority; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::PrimitiveComponentFunctions; + + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::IsGravityEnabled; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::IsOverlappingComponent; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::ForEachOverlappingComponent; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddAngularImpulseInDegrees; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddAngularImpulseInRadians; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddForce; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddForceAtLocation; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddImpulse; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddImpulseAtLocation; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddRadialForce; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddRadialImpulse; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddTorqueInDegrees; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::AddTorqueInRadians; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetMass; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetPhysicsLinearVelocity; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetPhysicsLinearVelocityAtPoint; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetPhysicsAngularVelocityInDegrees; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetPhysicsAngularVelocityInRadians; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetCastShadow; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetOnlyOwnerSee; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetOwnerNoSee; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetIgnoreRadialForce; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetIgnoreRadialImpulse; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetMaterial; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetMaterialsNumber; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetDistanceToCollision; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetSquaredDistanceToCollision; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetAngularDamping; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::GetLinearDamping; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetGenerateOverlapEvents; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetGenerateHitEvents; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetMass; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetCenterOfMass; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetPhysicsLinearVelocity; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetPhysicsAngularVelocityInDegrees; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetPhysicsAngularVelocityInRadians; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetPhysicsMaxAngularVelocityInDegrees; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetPhysicsMaxAngularVelocityInRadians; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetCastShadow; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetOnlyOwnerSee; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetOwnerNoSee; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetIgnoreRadialForce; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetIgnoreRadialImpulse; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetMaterial; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetSimulatePhysics; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetAngularDamping; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetLinearDamping; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetEnableGravity; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetCollisionMode; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetCollisionChannel; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetCollisionProfileName; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetCollisionResponseToChannel; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetCollisionResponseToAllChannels; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetIgnoreActorWhenMoving; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::SetIgnoreComponentWhenMoving; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::ClearMoveIgnoreActors; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::ClearMoveIgnoreComponents; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::CreateAndSetMaterialInstanceDynamic; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::RegisterEvent; + Shared::PrimitiveComponentFunctions[head++] = (void*)&UnrealCLRFramework::PrimitiveComponent::UnregisterEvent; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::ShapeComponentFunctions; + + Shared::ShapeComponentFunctions[head++] = (void*)&UnrealCLRFramework::ShapeComponent::GetDynamicObstacle; + Shared::ShapeComponentFunctions[head++] = (void*)&UnrealCLRFramework::ShapeComponent::GetShapeColor; + Shared::ShapeComponentFunctions[head++] = (void*)&UnrealCLRFramework::ShapeComponent::SetDynamicObstacle; + Shared::ShapeComponentFunctions[head++] = (void*)&UnrealCLRFramework::ShapeComponent::SetShapeColor; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::BoxComponentFunctions; + + Shared::BoxComponentFunctions[head++] = (void*)&UnrealCLRFramework::BoxComponent::GetScaledBoxExtent; + Shared::BoxComponentFunctions[head++] = (void*)&UnrealCLRFramework::BoxComponent::GetUnscaledBoxExtent; + Shared::BoxComponentFunctions[head++] = (void*)&UnrealCLRFramework::BoxComponent::SetBoxExtent; + Shared::BoxComponentFunctions[head++] = (void*)&UnrealCLRFramework::BoxComponent::InitBoxExtent; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SphereComponentFunctions; + + Shared::SphereComponentFunctions[head++] = (void*)&UnrealCLRFramework::SphereComponent::GetScaledSphereRadius; + Shared::SphereComponentFunctions[head++] = (void*)&UnrealCLRFramework::SphereComponent::GetUnscaledSphereRadius; + Shared::SphereComponentFunctions[head++] = (void*)&UnrealCLRFramework::SphereComponent::GetShapeScale; + Shared::SphereComponentFunctions[head++] = (void*)&UnrealCLRFramework::SphereComponent::SetSphereRadius; + Shared::SphereComponentFunctions[head++] = (void*)&UnrealCLRFramework::SphereComponent::InitSphereRadius; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::CapsuleComponentFunctions; + + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::GetScaledCapsuleRadius; + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::GetUnscaledCapsuleRadius; + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::GetShapeScale; + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::GetScaledCapsuleSize; + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::GetUnscaledCapsuleSize; + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::SetCapsuleRadius; + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::SetCapsuleSize; + Shared::CapsuleComponentFunctions[head++] = (void*)&UnrealCLRFramework::CapsuleComponent::InitCapsuleSize; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::MeshComponentFunctions; + + Shared::MeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::MeshComponent::IsValidMaterialSlotName; + Shared::MeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::MeshComponent::GetMaterialIndex; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::TextRenderComponentFunctions; + + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetFont; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetText; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetTextMaterial; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetTextRenderColor; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetHorizontalAlignment; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetHorizontalSpacingAdjustment; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetVerticalAlignment; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetVerticalSpacingAdjustment; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetScale; + Shared::TextRenderComponentFunctions[head++] = (void*)&UnrealCLRFramework::TextRenderComponent::SetWorldSize; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::LightComponentBaseFunctions; + + Shared::LightComponentBaseFunctions[head++] = (void*)&UnrealCLRFramework::LightComponentBase::GetIntensity; + Shared::LightComponentBaseFunctions[head++] = (void*)&UnrealCLRFramework::LightComponentBase::GetCastShadows; + Shared::LightComponentBaseFunctions[head++] = (void*)&UnrealCLRFramework::LightComponentBase::SetCastShadows; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::LightComponentFunctions; + + Shared::LightComponentFunctions[head++] = (void*)&UnrealCLRFramework::LightComponent::SetIntensity; + Shared::LightComponentFunctions[head++] = (void*)&UnrealCLRFramework::LightComponent::SetLightColor; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::MotionControllerComponentFunctions; + + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::IsTracked; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::GetDisplayDeviceModel; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::GetDisableLowLatencyUpdate; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::GetTrackingSource; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::SetDisplayDeviceModel; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::SetDisableLowLatencyUpdate; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::SetTrackingSource; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::SetTrackingMotionSource; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::SetAssociatedPlayerIndex; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::SetCustomDisplayMesh; + Shared::MotionControllerComponentFunctions[head++] = (void*)&UnrealCLRFramework::MotionControllerComponent::SetDisplayModelSource; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::StaticMeshComponentFunctions; + + Shared::StaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::StaticMeshComponent::GetLocalBounds; + Shared::StaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::StaticMeshComponent::GetStaticMesh; + Shared::StaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::StaticMeshComponent::SetStaticMesh; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::InstancedStaticMeshComponentFunctions; + + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::GetInstanceCount; + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::GetInstanceTransform; + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::AddInstance; + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::AddInstances; + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::UpdateInstanceTransform; + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::BatchUpdateInstanceTransforms; + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::RemoveInstance; + Shared::InstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::InstancedStaticMeshComponent::ClearInstances; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::HierarchicalInstancedStaticMeshComponentFunctions; + + Shared::HierarchicalInstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::HierarchicalInstancedStaticMeshComponent::GetDisableCollision; + Shared::HierarchicalInstancedStaticMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::HierarchicalInstancedStaticMeshComponent::SetDisableCollision; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SkinnedMeshComponentFunctions; + + Shared::SkinnedMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkinnedMeshComponent::GetBonesNumber; + Shared::SkinnedMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkinnedMeshComponent::GetBoneIndex; + Shared::SkinnedMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkinnedMeshComponent::GetBoneName; + Shared::SkinnedMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkinnedMeshComponent::GetBoneTransform; + Shared::SkinnedMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkinnedMeshComponent::SetSkeletalMesh; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SkeletalMeshComponentFunctions; + + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::IsPlaying; + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::GetAnimationInstance; + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::SetAnimation; + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::SetAnimationMode; + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::SetAnimationBlueprint; + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::Play; + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::PlayAnimation; + Shared::SkeletalMeshComponentFunctions[head++] = (void*)&UnrealCLRFramework::SkeletalMeshComponent::Stop; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::SplineComponentFunctions; + + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::IsClosedLoop; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetDuration; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetSplinePointType; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetSplinePointsNumber; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetSplineSegmentsNumber; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetTangentAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetTangentAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetTangentAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetTransformAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetTransformAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetArriveTangentAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetDefaultUpVector; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetDirectionAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetDirectionAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetDirectionAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetDistanceAlongSplineAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetLeaveTangentAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetLocationAndTangentAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetLocationAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetLocationAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetLocationAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRightVectorAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRightVectorAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRightVectorAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRollAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRollAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRollAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRotationAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRotationAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetRotationAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetScaleAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetScaleAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetScaleAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetSplineLength; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetTransformAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetUpVectorAtDistanceAlongSpline; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetUpVectorAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::GetUpVectorAtTime; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetDuration; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetSplinePointType; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetClosedLoop; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetDefaultUpVector; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetLocationAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetTangentAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetTangentsAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::SetUpVectorAtSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::AddSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::AddSplinePointAtIndex; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::ClearSplinePoints; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindDirectionClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindLocationClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindUpVectorClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindRightVectorClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindRollClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindScaleClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindTangentClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::FindTransformClosestToWorldLocation; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::RemoveSplinePoint; + Shared::SplineComponentFunctions[head++] = (void*)&UnrealCLRFramework::SplineComponent::UpdateSpline; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::RadialForceComponentFunctions; + + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::GetIgnoreOwningActor; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::GetImpulseVelocityChange; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::GetLinearFalloff; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::GetForceStrength; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::GetImpulseStrength; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::GetRadius; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::SetIgnoreOwningActor; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::SetImpulseVelocityChange; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::SetLinearFalloff; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::SetForceStrength; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::SetImpulseStrength; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::SetRadius; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::AddCollisionChannelToAffect; + Shared::RadialForceComponentFunctions[head++] = (void*)&UnrealCLRFramework::RadialForceComponent::FireImpulse; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::MaterialInterfaceFunctions; + + Shared::MaterialInterfaceFunctions[head++] = (void*)&UnrealCLRFramework::MaterialInterface::IsTwoSided; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::MaterialFunctions; + + Shared::MaterialFunctions[head++] = (void*)&UnrealCLRFramework::Material::IsDefaultMaterial; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::MaterialInstanceFunctions; + + Shared::MaterialInstanceFunctions[head++] = (void*)&UnrealCLRFramework::MaterialInstance::IsChildOf; + Shared::MaterialInstanceFunctions[head++] = (void*)&UnrealCLRFramework::MaterialInstance::GetParent; + + checksum += head; + } + + { + int32 head = 0; + Shared::Functions[position++] = Shared::MaterialInstanceDynamicFunctions; + + Shared::MaterialInstanceDynamicFunctions[head++] = (void*)&UnrealCLRFramework::MaterialInstanceDynamic::ClearParameterValues; + Shared::MaterialInstanceDynamicFunctions[head++] = (void*)&UnrealCLRFramework::MaterialInstanceDynamic::SetTextureParameterValue; + Shared::MaterialInstanceDynamicFunctions[head++] = (void*)&UnrealCLRFramework::MaterialInstanceDynamic::SetVectorParameterValue; + Shared::MaterialInstanceDynamicFunctions[head++] = (void*)&UnrealCLRFramework::MaterialInstanceDynamic::SetScalarParameterValue; + + checksum += head; + } + + checksum += position; + + // Runtime pointers + + Shared::RuntimeFunctions[0] = (void*)&UnrealCLR::Module::Exception; + Shared::RuntimeFunctions[1] = (void*)&UnrealCLR::Module::Log; + + constexpr void* functions[3] = { + Shared::RuntimeFunctions, + Shared::Events, + Shared::Functions + }; + + if (reinterpret_cast(UnrealCLR::ManagedCommand(UnrealCLR::Command(functions, checksum))) == 0xF) { + UE_LOG(LogUnrealCLR, Display, TEXT("%s: Host runtime assembly initialized succesfuly!"), ANSI_TO_TCHAR(__FUNCTION__)); + } else { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Host runtime assembly initialization failed!"), ANSI_TO_TCHAR(__FUNCTION__)); + + return; + } + + UnrealCLR::Engine::Manager = NewObject(); + UnrealCLR::Engine::Manager->AddToRoot(); + UnrealCLR::Status = UnrealCLR::StatusType::Idle; + + UE_LOG(LogUnrealCLR, Display, TEXT("%s: Host loaded succesfuly!"), ANSI_TO_TCHAR(__FUNCTION__)); + } else { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Host runtime assembly unable to load the initialization function!"), ANSI_TO_TCHAR(__FUNCTION__)); + + return; + } + } else { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: Host loading failed!"), ANSI_TO_TCHAR(__FUNCTION__)); + } +} + +void UnrealCLR::Module::ShutdownModule() { + if (UnrealCLR::Engine::Manager) { + UnrealCLR::Engine::Manager->RemoveFromRoot(); + UnrealCLR::Engine::Manager = nullptr; + } + + FWorldDelegates::OnPostWorldInitialization.Remove(OnWorldPostInitializationHandle); + FWorldDelegates::OnWorldCleanup.Remove(OnWorldCleanupHandle); + + FPlatformProcess::FreeDllHandle(HostfxrLibrary); +} + +void UnrealCLR::Module::OnWorldPostInitialization(UWorld* World, const UWorld::InitializationValues InitializationValues) { + if (World->IsGameWorld()) { + if (UnrealCLR::WorldTickState == TickState::Stopped) { + UnrealCLR::Engine::World = World; + + if (UnrealCLR::Status != UnrealCLR::StatusType::Stopped) { + UnrealCLR::ManagedCommand(UnrealCLR::Command(CommandType::LoadAssemblies)); + UnrealCLR::Status = UnrealCLR::StatusType::Running; + + for (TActorIterator currentActor(UnrealCLR::Engine::World); currentActor; ++currentActor) { + RegisterTickFunction(OnPrePhysicsTickFunction, TG_PrePhysics, *currentActor); + RegisterTickFunction(OnDuringPhysicsTickFunction, TG_DuringPhysics, *currentActor); + RegisterTickFunction(OnPostPhysicsTickFunction, TG_PostPhysics, *currentActor); + RegisterTickFunction(OnPostUpdateTickFunction, TG_PostUpdateWork, *currentActor); + + UnrealCLR::WorldTickState = UnrealCLR::TickState::Registered; + + if (UnrealCLR::Shared::Events[OnWorldBegin]) + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[OnWorldBegin])); + + break; + } + } else { + #if WITH_EDITOR + FNotificationInfo notificationInfo(FText::FromString(TEXT("UnrealCLR host is not initialized! Please, check logs and try to restart the engine."))); + + notificationInfo.ExpireDuration = 5.0f; + + FSlateNotificationManager::Get().AddNotification(notificationInfo); + #endif + } + } + } +} + +void UnrealCLR::Module::OnWorldCleanup(UWorld* World, bool SessionEnded, bool CleanupResources) { + if (World->IsGameWorld() && World == UnrealCLR::Engine::World && UnrealCLR::WorldTickState != UnrealCLR::TickState::Stopped) { + if (UnrealCLR::Status != UnrealCLR::StatusType::Stopped) { + if (UnrealCLR::Shared::Events[OnWorldEnd]) + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[OnWorldEnd])); + + OnPrePhysicsTickFunction.UnRegisterTickFunction(); + OnDuringPhysicsTickFunction.UnRegisterTickFunction(); + OnPostPhysicsTickFunction.UnRegisterTickFunction(); + OnPostUpdateTickFunction.UnRegisterTickFunction(); + + UnrealCLR::ManagedCommand(UnrealCLR::Command(CommandType::UnloadAssemblies)); + UnrealCLR::Status = UnrealCLR::StatusType::Idle; + } + + UnrealCLR::Engine::World = nullptr; + UnrealCLR::WorldTickState = UnrealCLR::TickState::Stopped; + + FMemory::Memset(UnrealCLR::Shared::Events, 0, sizeof(UnrealCLR::Shared::Events)); + } +} + +void UnrealCLR::Module::RegisterTickFunction(FTickFunction& TickFunction, ETickingGroup TickGroup, AWorldSettings* LevelActor) { + TickFunction.bCanEverTick = true; + TickFunction.bTickEvenWhenPaused = false; + TickFunction.bStartWithTickEnabled = true; + TickFunction.bHighPriority = true; + TickFunction.bAllowTickOnDedicatedServer = true; + TickFunction.bRunOnAnyThread = false; + TickFunction.TickGroup = TickGroup; + TickFunction.RegisterTickFunction(UnrealCLR::Engine::World->PersistentLevel); + LevelActor->PrimaryActorTick.AddPrerequisite(UnrealCLR::Engine::Manager, TickFunction); +} + +void UnrealCLR::Module::HostError(const char_t* Message) { + UE_LOG(LogUnrealCLR, Error, TEXT("%s: %s"), ANSI_TO_TCHAR(__FUNCTION__), *FString(Message)); +} + +void UnrealCLR::Module::Exception(const char* Message) { + FString message(ANSI_TO_TCHAR(Message)); + + UE_LOG(LogUnrealCLR, Error, TEXT("%s: %s"), ANSI_TO_TCHAR(__FUNCTION__), *message); + + GEngine->AddOnScreenDebugMessage((uint64)-1, 10.0f, FColor::Red, *message); +} + +void UnrealCLR::Module::Log(UnrealCLR::LogLevel Level, const char* Message) { + #define UNREALCLR_LOG(Verbosity) UE_LOG(LogUnrealCLR, Verbosity, TEXT("%s: %s"), ANSI_TO_TCHAR(__FUNCTION__), *message); + + FString message(ANSI_TO_TCHAR(Message)); + + if (Level == UnrealCLR::LogLevel::Display) { + UNREALCLR_LOG(Display); + } else if (Level == UnrealCLR::LogLevel::Warning) { + UNREALCLR_LOG(Warning); + + GEngine->AddOnScreenDebugMessage((uint64)-1, 60.0f, FColor::Yellow, *message); + } else if (Level == UnrealCLR::LogLevel::Error) { + UNREALCLR_LOG(Error); + + GEngine->AddOnScreenDebugMessage((uint64)-1, 60.0f, FColor::Red, *message); + } else if (Level == UnrealCLR::LogLevel::Fatal) { + UNREALCLR_LOG(Error); + + GEngine->AddOnScreenDebugMessage((uint64)-1, 60.0f, FColor::Red, *message); + + UnrealCLR::Status = UnrealCLR::StatusType::Idle; + } +} + +void UnrealCLR::PrePhysicsTickFunction::ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) { + if (UnrealCLR::WorldTickState != UnrealCLR::TickState::Started && UnrealCLR::Shared::Events[OnWorldPostBegin]) { + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[OnWorldPostBegin])); + UnrealCLR::WorldTickState = UnrealCLR::TickState::Started; + } + + if (UnrealCLR::Shared::Events[OnWorldPrePhysicsTick]) + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[OnWorldPrePhysicsTick], DeltaTime)); +} + +void UnrealCLR::DuringPhysicsTickFunction::ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) { + if (UnrealCLR::Shared::Events[OnWorldDuringPhysicsTick]) + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[OnWorldDuringPhysicsTick], DeltaTime)); +} + +void UnrealCLR::PostPhysicsTickFunction::ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) { + if (UnrealCLR::Shared::Events[OnWorldPostPhysicsTick]) + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[OnWorldPostPhysicsTick], DeltaTime)); +} + +void UnrealCLR::PostUpdateTickFunction::ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) { + if (UnrealCLR::Shared::Events[OnWorldPostUpdateTick]) + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[OnWorldPostUpdateTick], DeltaTime)); +} + +FString UnrealCLR::PrePhysicsTickFunction::DiagnosticMessage() { + return TEXT("PrePhysicsTickFunction"); +} + +FString UnrealCLR::DuringPhysicsTickFunction::DiagnosticMessage() { + return TEXT("DuringPhysicsTickFunction"); +} + +FString UnrealCLR::PostPhysicsTickFunction::DiagnosticMessage() { + return TEXT("PostPhysicsTickFunction"); +} + +FString UnrealCLR::PostUpdateTickFunction::DiagnosticMessage() { + return TEXT("PostUpdateTickFunction"); +} + +size_t UnrealCLR::Utility::Strcpy(char* Destination, const char* Source, size_t Length) { + char* destination = Destination; + const char* source = Source; + size_t length = Length; + + if (length != 0 && --length != 0) { + do { + if ((*destination++ = *source++) == 0) + break; + } + + while (--length != 0); + } + + if (length == 0) { + if (Length != 0) + *destination = '\0'; + + while (*source++); + } + + return (source - Source - 1); +} + +size_t UnrealCLR::Utility::Strlen(const char* Source) { + return strlen(Source) + 1; +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(UnrealCLR::Module, UnrealCLR) diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRFramework.cpp b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRFramework.cpp new file mode 100644 index 00000000..402b9890 --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRFramework.cpp @@ -0,0 +1,3920 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "UnrealCLRFramework.h" + +DEFINE_LOG_CATEGORY(LogUnrealManaged); + +namespace UnrealCLRFramework { + #define UNREALCLR_GET_ATTACHMENT_RULE(Rule, Result) {\ + switch (Rule) {\ + case AttachmentTransformRule::KeepRelativeTransform:\ + Result = FAttachmentTransformRules::KeepRelativeTransform;\ + break;\ + case AttachmentTransformRule::KeepWorldTransform:\ + Result = FAttachmentTransformRules::KeepWorldTransform;\ + break;\ + case AttachmentTransformRule::SnapToTargetIncludingScale:\ + Result = FAttachmentTransformRules::SnapToTargetIncludingScale;\ + break;\ + case AttachmentTransformRule::SnapToTargetNotIncludingScale:\ + Result = FAttachmentTransformRules::SnapToTargetNotIncludingScale;\ + break;\ + default:\ + break;\ + }\ + } + + #define UNREALCLR_GET_DETACHMENT_RULE(Rule, Result) {\ + switch (Rule) {\ + case DetachmentTransformRule::KeepRelativeTransform:\ + Result = FDetachmentTransformRules::KeepRelativeTransform;\ + break;\ + case DetachmentTransformRule::KeepWorldTransform:\ + Result = FDetachmentTransformRules::KeepWorldTransform;\ + break;\ + default:\ + break;\ + }\ + } + + #define UNREALCLR_GET_ACTOR_TYPE(Type, Head, Tail, Result) {\ + switch (Type) {\ + case ActorType::Base:\ + Result = Head AActor Tail;\ + break;\ + case ActorType::Camera:\ + Result = Head ACameraActor Tail;\ + break;\ + case ActorType::TriggerBox:\ + Result = Head ATriggerBox Tail;\ + break;\ + case ActorType::TriggerSphere:\ + Result = Head ATriggerSphere Tail;\ + break;\ + case ActorType::TriggerCapsule:\ + Result = Head ATriggerCapsule Tail;\ + break;\ + case ActorType::Pawn:\ + Result = Head APawn Tail;\ + break;\ + case ActorType::Character:\ + Result = Head ACharacter Tail;\ + break;\ + case ActorType::AIController:\ + Result = Head AAIController Tail;\ + break;\ + case ActorType::PlayerController:\ + Result = Head APlayerController Tail;\ + break;\ + case ActorType::Brush:\ + Result = Head ABrush Tail;\ + break;\ + case ActorType::AmbientSound:\ + Result = Head AAmbientSound Tail;\ + break;\ + case ActorType::DirectionalLight:\ + Result = Head ADirectionalLight Tail;\ + break;\ + case ActorType::PointLight:\ + Result = Head APointLight Tail;\ + break;\ + case ActorType::RectLight:\ + Result = Head ARectLight Tail;\ + break;\ + case ActorType::SpotLight:\ + Result = Head ASpotLight Tail;\ + break;\ + case ActorType::TriggerVolume:\ + Result = Head ATriggerVolume Tail;\ + break;\ + case ActorType::PostProcessVolume:\ + Result = Head APostProcessVolume Tail;\ + break;\ + case ActorType::LevelScript:\ + Result = Head ALevelScriptActor Tail;\ + break;\ + case ActorType::GameModeBase:\ + Result = Head AGameModeBase Tail;\ + break;\ + default:\ + break;\ + }\ + } + + #define UNREALCLR_GET_COMPONENT_TYPE(Type, Head, Tail, Result) {\ + switch (Type) {\ + case ComponentType::Actor:\ + Result = Head UActorComponent Tail;\ + break;\ + case ComponentType::Input:\ + Result = Head UInputComponent Tail;\ + break;\ + case ComponentType::Scene:\ + Result = Head USceneComponent Tail;\ + break;\ + case ComponentType::Audio:\ + Result = Head UAudioComponent Tail;\ + break;\ + case ComponentType::Camera:\ + Result = Head UCameraComponent Tail;\ + break;\ + case ComponentType::Light:\ + Result = Head ULightComponent Tail;\ + break;\ + case ComponentType::DirectionalLight:\ + Result = Head UDirectionalLightComponent Tail;\ + break;\ + case ComponentType::MotionController:\ + Result = Head UMotionControllerComponent Tail;\ + break;\ + case ComponentType::StaticMesh:\ + Result = Head UStaticMeshComponent Tail;\ + break;\ + case ComponentType::InstancedStaticMesh:\ + Result = Head UInstancedStaticMeshComponent Tail;\ + break;\ + case ComponentType::HierarchicalInstancedStaticMesh:\ + Result = Head UHierarchicalInstancedStaticMeshComponent Tail;\ + break;\ + case ComponentType::ChildActor:\ + Result = Head UChildActorComponent Tail;\ + break;\ + case ComponentType::SpringArm:\ + Result = Head USpringArmComponent Tail;\ + break;\ + case ComponentType::PostProcess:\ + Result = Head UPostProcessComponent Tail;\ + break;\ + case ComponentType::Box:\ + Result = Head UBoxComponent Tail;\ + break;\ + case ComponentType::Sphere:\ + Result = Head USphereComponent Tail;\ + break;\ + case ComponentType::Capsule:\ + Result = Head UCapsuleComponent Tail;\ + break;\ + case ComponentType::SkeletalMesh:\ + Result = Head USkeletalMeshComponent Tail;\ + break;\ + case ComponentType::TextRender:\ + Result = Head UTextRenderComponent Tail;\ + break;\ + case ComponentType::Spline:\ + Result = Head USplineComponent Tail;\ + break;\ + case ComponentType::RadialForce:\ + Result = Head URadialForceComponent Tail;\ + break;\ + default:\ + break;\ + }\ + } + + #define UNREALCLR_GET_ATTACHABLE_COMPONENT_TYPE(Type, Head, Tail, Result) {\ + switch (Type) {\ + case ComponentType::Scene:\ + Result = Head USceneComponent Tail;\ + break;\ + case ComponentType::Audio:\ + Result = Head UAudioComponent Tail;\ + break;\ + case ComponentType::Camera:\ + Result = Head UCameraComponent Tail;\ + break;\ + case ComponentType::Light:\ + Result = Head ULightComponent Tail;\ + break;\ + case ComponentType::DirectionalLight:\ + Result = Head UDirectionalLightComponent Tail;\ + break;\ + case ComponentType::MotionController:\ + Result = Head UMotionControllerComponent Tail;\ + break;\ + case ComponentType::StaticMesh:\ + Result = Head UStaticMeshComponent Tail;\ + break;\ + case ComponentType::InstancedStaticMesh:\ + Result = Head UInstancedStaticMeshComponent Tail;\ + break;\ + case ComponentType::HierarchicalInstancedStaticMesh:\ + Result = Head UHierarchicalInstancedStaticMeshComponent Tail;\ + break;\ + case ComponentType::ChildActor:\ + Result = Head UChildActorComponent Tail;\ + break;\ + case ComponentType::SpringArm:\ + Result = Head USpringArmComponent Tail;\ + break;\ + case ComponentType::PostProcess:\ + Result = Head UPostProcessComponent Tail;\ + break;\ + case ComponentType::Box:\ + Result = Head UBoxComponent Tail;\ + break;\ + case ComponentType::Sphere:\ + Result = Head USphereComponent Tail;\ + break;\ + case ComponentType::Capsule:\ + Result = Head UCapsuleComponent Tail;\ + break;\ + case ComponentType::SkeletalMesh:\ + Result = Head USkeletalMeshComponent Tail;\ + break;\ + case ComponentType::TextRender:\ + Result = Head UTextRenderComponent Tail;\ + break;\ + case ComponentType::Spline:\ + Result = Head USplineComponent Tail;\ + break;\ + case ComponentType::RadialForce:\ + Result = Head URadialForceComponent Tail;\ + break;\ + default:\ + break;\ + }\ + } + + #define UNREALCLR_GET_PROPERTY_VALUE(Type, Object, Name, Value)\ + FName name(ANSI_TO_TCHAR(Name));\ + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) {\ + Type* property = *currentProperty;\ + if (property->GetFName() == name) {\ + *Value = property->GetPropertyValue_InContainer(Object);\ + return true;\ + }\ + }\ + return false; + + #define UNREALCLR_SET_PROPERTY_VALUE(Type, Object, Name, Value)\ + FName name(ANSI_TO_TCHAR(Name));\ + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) {\ + Type* property = *currentProperty;\ + if (property->GetFName() == name) {\ + property->SetPropertyValue_InContainer(Object, Value);\ + return true;\ + }\ + }\ + return false; + + #define UNREALCLR_GET_BONE_NAME(Hit, Name)\ + if (Name && Hit.BoneName.GetStringLength() > 0) {\ + const char* boneName = TCHAR_TO_ANSI(*Hit.BoneName.ToString());\ + UnrealCLR::Utility::Strcpy(Name, boneName, UnrealCLR::Utility::Strlen(boneName));\ + } + + #define UNREALCLR_SET_BONE_NAME(Name)\ + FName boneName;\ + if (!Name)\ + boneName = NAME_None;\ + else\ + boneName = FName(ANSI_TO_TCHAR(Name)); + + #define UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent)\ + FCollisionQueryParams queryParams;\ + if (IgnoredActor)\ + queryParams.AddIgnoredActor(IgnoredActor);\ + if (IgnoredComponent)\ + queryParams.AddIgnoredComponent(IgnoredComponent); + + #define UNREALCLR_SET_ACTOR_EVENT(Type, Condition, Method) {\ + switch (Type) {\ + case ActorEventType::OnActorBeginOverlap:\ + if (Condition Actor->OnActorBeginOverlap.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorBeginOverlap))\ + Actor->OnActorBeginOverlap. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorBeginOverlap);\ + break;\ + case ActorEventType::OnActorEndOverlap:\ + if (Condition Actor->OnActorEndOverlap.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorEndOverlap))\ + Actor->OnActorEndOverlap. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorEndOverlap);\ + break;\ + case ActorEventType::OnActorHit:\ + if (Condition Actor->OnActorHit.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorHit))\ + Actor->OnActorHit. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorHit);\ + break;\ + case ActorEventType::OnActorBeginCursorOver:\ + if (Condition Actor->OnBeginCursorOver.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorBeginCursorOver))\ + Actor->OnBeginCursorOver. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorBeginCursorOver);\ + break;\ + case ActorEventType::OnActorEndCursorOver:\ + if (Condition Actor->OnEndCursorOver.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorEndCursorOver))\ + Actor->OnEndCursorOver. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorEndCursorOver);\ + break;\ + case ActorEventType::OnActorClicked:\ + if (Condition Actor->OnClicked.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorClicked))\ + Actor->OnClicked. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorClicked);\ + break;\ + case ActorEventType::OnActorReleased:\ + if (Condition Actor->OnReleased.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorReleased))\ + Actor->OnReleased. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ActorReleased);\ + break;\ + default:\ + break;\ + }\ + } + + #define UNREALCLR_SET_COMPONENT_EVENT(Type, Condition, Method) {\ + switch (Type) {\ + case ComponentEventType::OnComponentBeginOverlap:\ + if (Condition PrimitiveComponent->OnComponentBeginOverlap.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentBeginOverlap))\ + PrimitiveComponent->OnComponentBeginOverlap. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentBeginOverlap);\ + break;\ + case ComponentEventType::OnComponentEndOverlap:\ + if (Condition PrimitiveComponent->OnComponentEndOverlap.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentEndOverlap))\ + PrimitiveComponent->OnComponentEndOverlap. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentEndOverlap);\ + break;\ + case ComponentEventType::OnComponentHit:\ + if (Condition PrimitiveComponent->OnComponentHit.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentHit))\ + PrimitiveComponent->OnComponentHit. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentHit);\ + break;\ + case ComponentEventType::OnComponentBeginCursorOver:\ + if (Condition PrimitiveComponent->OnBeginCursorOver.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentBeginCursorOver))\ + PrimitiveComponent->OnBeginCursorOver. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentBeginCursorOver);\ + break;\ + case ComponentEventType::OnComponentEndCursorOver:\ + if (Condition PrimitiveComponent->OnEndCursorOver.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentEndCursorOver))\ + PrimitiveComponent->OnEndCursorOver. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentEndCursorOver);\ + break;\ + case ComponentEventType::OnComponentClicked:\ + if (Condition PrimitiveComponent->OnClicked.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentClicked))\ + PrimitiveComponent->OnClicked. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentClicked);\ + break;\ + case ComponentEventType::OnComponentReleased:\ + if (Condition PrimitiveComponent->OnReleased.IsAlreadyBound(UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentReleased))\ + PrimitiveComponent->OnReleased. Method (UnrealCLR::Engine::Manager, &UUnrealCLRManager::ComponentReleased);\ + break;\ + default:\ + break;\ + }\ + } + + #define UNREALCLR_COLOR_TO_INTEGER(Color) (Color.A << 24) + (Color.R << 16) + (Color.G << 8) + Color.B + + #if ENGINE_MAJOR_VERSION == 4 + #if ENGINE_MINOR_VERSION <= 26 + #define UNREALCLR_BLEND_TYPE 5 + #elif ENGINE_MINOR_VERSION >= 27 + #define UNREALCLR_BLEND_TYPE 6 + #endif + + #if ENGINE_MINOR_VERSION <= 25 + #define UNREALCLR_PIXEL_FORMAT 71 + #elif ENGINE_MINOR_VERSION >= 26 + #define UNREALCLR_PIXEL_FORMAT 72 + #endif + #elif ENGINE_MAJOR_VERSION == 5 + #define UNREALCLR_PIXEL_FORMAT 72 + #define UNREALCLR_BLEND_TYPE 6 + #endif + + static_assert(AudioFadeCurve::Count == AudioFadeCurve(4), "Invalid elements count of the [AudioFadeCurve] enumeration"); + static_assert(BlendType::VTBlend_MAX == BlendType(UNREALCLR_BLEND_TYPE), "Invalid elements count of the [BlendType] enumeration"); + static_assert(CollisionChannel::ECC_MAX == CollisionChannel(33), "Invalid elements count of the [CollisionChannel] enumeration"); + static_assert(CollisionResponse::ECR_MAX == CollisionResponse(3), "Invalid elements count of the [CollisionResponse] enumeration"); + static_assert(ControllerHand::ControllerHand_Count == ControllerHand(17), "Invalid elements count of the [ControllerHand] enumeration"); + static_assert(InputEvent::IE_MAX == InputEvent(5), "Invalid elements count of the [InputEvent] enumeration"); + static_assert(NetMode::NM_MAX == NetMode(4), "Invalid elements count of the [NetMode] enumeration"); + static_assert(PixelFormat::PF_MAX == PixelFormat(UNREALCLR_PIXEL_FORMAT), "Invalid elements count of the [PixelFormat] enumeration"); + + static_assert(sizeof(Bounds) == 28, "Invalid size of the [Bounds] structure"); + static_assert(sizeof(CollisionShape) == 16, "Invalid size of the [CollisionShape] structure"); + + namespace Assert { + void OutputMessage(const uint8* Message) { + FString message(UTF8_TO_TCHAR(Message)); + + UE_LOG(LogUnrealManaged, Error, TEXT("%s: %s"), ANSI_TO_TCHAR(__FUNCTION__), *message); + + GEngine->AddOnScreenDebugMessage((uint64)-1, 60.0f, FColor::Red, *message); + } + } + + namespace CommandLine { + void Get(char* Arguments) { + const char* arguments = TCHAR_TO_ANSI(FCommandLine::Get()); + + UnrealCLR::Utility::Strcpy(Arguments, arguments, UnrealCLR::Utility::Strlen(arguments)); + } + + void Set(const char* Arguments) { + FCommandLine::Set(ANSI_TO_TCHAR(Arguments)); + } + + void Append(const char* Arguments) { + FCommandLine::Append(ANSI_TO_TCHAR(Arguments)); + } + } + + namespace Debug { + void Log(LogLevel Level, const uint8* Message) { + #define UNREALCLR_FRAMEWORK_LOG(Verbosity) UE_LOG(LogUnrealManaged, Verbosity, TEXT("%s: %s"), ANSI_TO_TCHAR(__FUNCTION__), *FString(UTF8_TO_TCHAR(Message))); + + if (Level == LogLevel::Display) { + UNREALCLR_FRAMEWORK_LOG(Display); + } else if (Level == LogLevel::Warning) { + UNREALCLR_FRAMEWORK_LOG(Warning); + } else if (Level == LogLevel::Error) { + UNREALCLR_FRAMEWORK_LOG(Error); + } else if (Level == LogLevel::Fatal) { + UNREALCLR_FRAMEWORK_LOG(Fatal); + } + } + + void Exception(const uint8* Message) { + GEngine->AddOnScreenDebugMessage((uint64)-1, 10.0f, FColor::Red, *FString(UTF8_TO_TCHAR(Message))); + } + + void AddOnScreenMessage(int32 Key, float TimeToDisplay, Color DisplayColor, const uint8* Message) { + GEngine->AddOnScreenDebugMessage((uint64)Key, TimeToDisplay, DisplayColor, *FString(UTF8_TO_TCHAR(Message))); + } + + void ClearOnScreenMessages() { + GEngine->ClearOnScreenDebugMessages(); + } + + void DrawBox(const Vector3* Center, const Vector3* Extent, const Quaternion* Rotation, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness) { + DrawDebugBox(UnrealCLR::Engine::World, *Center, *Extent, *Rotation, Color, PersistentLines, LifeTime, DepthPriority, Thickness); + } + + void DrawCapsule(const Vector3* Center, float HalfHeight, float Radius, const Quaternion* Rotation, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness) { + DrawDebugCapsule(UnrealCLR::Engine::World, *Center, HalfHeight, Radius, *Rotation, Color, PersistentLines, LifeTime, DepthPriority, Thickness); + } + + void DrawCone(const Vector3* Origin, const Vector3* Direction, float Length, float AngleWidth, float AngleHeight, int32 Sides, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness) { + DrawDebugCone(UnrealCLR::Engine::World, *Origin, *Direction, Length, AngleWidth, AngleHeight, Sides, Color, PersistentLines, LifeTime, DepthPriority, Thickness); + } + + void DrawCylinder(const Vector3* Start, const Vector3* End, float Radius, int32 Segments, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness) { + DrawDebugCylinder(UnrealCLR::Engine::World, *Start, *End, Radius, Segments, Color, PersistentLines, LifeTime, DepthPriority, Thickness); + } + + void DrawSphere(const Vector3* Center, float Radius, int32 Segments, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness) { + DrawDebugSphere(UnrealCLR::Engine::World, *Center, Radius, Segments, Color, PersistentLines, LifeTime, DepthPriority, Thickness); + } + + void DrawLine(const Vector3* Start, const Vector3* End, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness) { + DrawDebugLine(UnrealCLR::Engine::World, *Start, *End, Color, PersistentLines, LifeTime, DepthPriority, Thickness); + } + + void DrawPoint(const Vector3* Location, float Size, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority) { + DrawDebugPoint(UnrealCLR::Engine::World, *Location, Size, Color, PersistentLines, LifeTime, DepthPriority); + } + + void FlushPersistentLines() { + FlushPersistentDebugLines(UnrealCLR::Engine::World); + } + } + + namespace Object { + bool IsPendingKill(UObject* Object) { + return Object->IsPendingKill(); + } + + bool IsValid(UObject* Object) { + return Object->IsValidLowLevel(); + } + + UObject* Load(ObjectType Type, const char* Name) { + UObject* object = nullptr; + + switch (Type) { + case ObjectType::Blueprint: { + #if WITH_EDITOR + object = StaticLoadObject(UBlueprint::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + #else + FString name(ANSI_TO_TCHAR(Name)); + int32 index = INDEX_NONE; + + if (name.FindLastChar(TCHAR('/'), index)) { + name.AppendChar(TCHAR('.')); + name.Append(name.Mid(index + 1, name.Len() - index - 2)); + } + + name.Append(TEXT("_C")); + + object = StaticLoadObject(UClass::StaticClass(), nullptr, *name); + #endif + break; + } + + case ObjectType::SoundWave: { + object = StaticLoadObject(USoundWave::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + case ObjectType::AnimationSequence: { + object = StaticLoadObject(UAnimSequence::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + case ObjectType::AnimationMontage: { + object = StaticLoadObject(UAnimMontage::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + case ObjectType::StaticMesh: { + object = StaticLoadObject(UStaticMesh::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + case ObjectType::SkeletalMesh: { + object = StaticLoadObject(USkeletalMesh::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + case ObjectType::Material: { + object = StaticLoadObject(UMaterial::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + case ObjectType::Font: { + object = StaticLoadObject(UFont::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + case ObjectType::Texture2D: { + object = StaticLoadObject(UTexture2D::StaticClass(), nullptr, *FString(ANSI_TO_TCHAR(Name))); + break; + } + + default: + break; + } + + return object; + } + + void Rename(UObject* Object, const char* Name) { + FString name(ANSI_TO_TCHAR(Name)); + + Object->Rename(*name); + } + + bool Invoke(UObject* Object, const uint8* Command) { + static FOutputDeviceNull outputDevice; + + return Object->CallFunctionByNameWithArguments(UTF8_TO_TCHAR(Command), outputDevice, nullptr, true); + } + + AActor* ToActor(UObject* Object, ActorType Type) { + AActor* actor = nullptr; + + UNREALCLR_GET_ACTOR_TYPE(Type, Cast<, >(Object), actor); + + return actor; + } + + UActorComponent* ToComponent(UObject* Object, ComponentType Type) { + UActorComponent* component = nullptr; + + UNREALCLR_GET_COMPONENT_TYPE(Type, Cast<, >(Object), component); + + return component; + } + + uint32 GetID(UObject* Object) { + return Object->GetUniqueID(); + } + + void GetName(UObject* Object, char* Name) { + const char* name = TCHAR_TO_ANSI(*Object->GetName()); + + UnrealCLR::Utility::Strcpy(Name, name, UnrealCLR::Utility::Strlen(name)); + } + + bool GetBool(UObject* Object, const char* Name, bool* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FBoolProperty, Object, Name, Value); + } + + bool GetByte(UObject* Object, const char* Name, uint8* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FByteProperty, Object, Name, Value); + } + + bool GetShort(UObject* Object, const char* Name, int16* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FInt16Property, Object, Name, Value); + } + + bool GetInt(UObject* Object, const char* Name, int32* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FIntProperty, Object, Name, Value); + } + + bool GetLong(UObject* Object, const char* Name, int64* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FInt64Property, Object, Name, Value); + } + + bool GetUShort(UObject* Object, const char* Name, uint16* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FUInt16Property, Object, Name, Value); + } + + bool GetUInt(UObject* Object, const char* Name, uint32* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FUInt32Property, Object, Name, Value); + } + + bool GetULong(UObject* Object, const char* Name, uint64* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FUInt64Property, Object, Name, Value); + } + + bool GetFloat(UObject* Object, const char* Name, float* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FFloatProperty, Object, Name, Value); + } + + bool GetDouble(UObject* Object, const char* Name, double* Value) { + UNREALCLR_GET_PROPERTY_VALUE(FDoubleProperty, Object, Name, Value); + } + + bool GetEnum(UObject* Object, const char* Name, int32* Value) { + FName name(ANSI_TO_TCHAR(Name)); + + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) { + FNumericProperty* property = *currentProperty; + + if (property->GetFName() == name) { + *Value = static_cast(property->GetSignedIntPropertyValue(property->ContainerPtrToValuePtr(Object))); + + return true; + } + } + + return false; + } + + bool GetString(UObject* Object, const char* Name, char* Value) { + FName name(ANSI_TO_TCHAR(Name)); + + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) { + FStrProperty* property = *currentProperty; + + if (property->GetFName() == name) { + const char* string = TCHAR_TO_ANSI(*property->GetPropertyValue_InContainer(Object)); + + UnrealCLR::Utility::Strcpy(Value, string, UnrealCLR::Utility::Strlen(string)); + + return true; + } + } + + return false; + } + + bool GetText(UObject* Object, const char* Name, char* Value) { + FName name(ANSI_TO_TCHAR(Name)); + + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) { + FTextProperty* property = *currentProperty; + + if (property->GetFName() == name) { + const char* string = TCHAR_TO_ANSI(*property->GetPropertyValue_InContainer(Object).ToString()); + + UnrealCLR::Utility::Strcpy(Value, string, UnrealCLR::Utility::Strlen(string)); + + return true; + } + } + + return false; + } + + bool SetBool(UObject* Object, const char* Name, bool Value) { + UNREALCLR_SET_PROPERTY_VALUE(FBoolProperty, Object, Name, Value); + } + + bool SetByte(UObject* Object, const char* Name, uint8 Value) { + UNREALCLR_SET_PROPERTY_VALUE(FByteProperty, Object, Name, Value); + } + + bool SetShort(UObject* Object, const char* Name, int16 Value) { + UNREALCLR_SET_PROPERTY_VALUE(FInt16Property, Object, Name, Value); + } + + bool SetInt(UObject* Object, const char* Name, int32 Value) { + UNREALCLR_SET_PROPERTY_VALUE(FIntProperty, Object, Name, Value); + } + + bool SetLong(UObject* Object, const char* Name, int64 Value) { + UNREALCLR_SET_PROPERTY_VALUE(FInt64Property, Object, Name, Value); + } + + bool SetUShort(UObject* Object, const char* Name, uint16 Value) { + UNREALCLR_SET_PROPERTY_VALUE(FUInt16Property, Object, Name, Value); + } + + bool SetUInt(UObject* Object, const char* Name, uint32 Value) { + UNREALCLR_SET_PROPERTY_VALUE(FUInt32Property, Object, Name, Value); + } + + bool SetULong(UObject* Object, const char* Name, uint64 Value) { + UNREALCLR_SET_PROPERTY_VALUE(FUInt64Property, Object, Name, Value); + } + + bool SetFloat(UObject* Object, const char* Name, float Value) { + UNREALCLR_SET_PROPERTY_VALUE(FFloatProperty, Object, Name, Value); + } + + bool SetDouble(UObject* Object, const char* Name, double Value) { + UNREALCLR_SET_PROPERTY_VALUE(FDoubleProperty, Object, Name, Value); + } + + bool SetEnum(UObject* Object, const char* Name, int32 Value) { + FName name(ANSI_TO_TCHAR(Name)); + + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) { + FNumericProperty* property = *currentProperty; + + if (property->GetFName() == name) { + property->SetIntPropertyValue(property->ContainerPtrToValuePtr(Object), static_cast(Value)); + + return true; + } + } + + return false; + } + + bool SetString(UObject* Object, const char* Name, const char* Value) { + FName name(ANSI_TO_TCHAR(Name)); + + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) { + FStrProperty* property = *currentProperty; + + if (property->GetFName() == name) { + property->SetPropertyValue_InContainer(Object, FString(ANSI_TO_TCHAR(Value))); + + return true; + } + } + + return false; + } + + bool SetText(UObject* Object, const char* Name, const char* Value) { + FName name(ANSI_TO_TCHAR(Name)); + + for (TFieldIterator currentProperty(Object->GetClass()); currentProperty; ++currentProperty) { + FTextProperty* property = *currentProperty; + + if (property->GetFName() == name) { + property->SetPropertyValue_InContainer(Object, FText::FromString(FString(ANSI_TO_TCHAR(Value)))); + + return true; + } + } + + return false; + } + } + + namespace Asset { + bool IsValid(FAssetData* Asset) { + return Asset->IsValid(); + } + + void GetName(FAssetData* Asset, char* Name) { + const char* name = TCHAR_TO_ANSI(*Asset->AssetName.ToString()); + + UnrealCLR::Utility::Strcpy(Name, name, UnrealCLR::Utility::Strlen(name)); + } + + void GetPath(FAssetData* Asset, char* Path) { + FString objectPath = Asset->ObjectPath.ToString(); + + int32 index = INDEX_NONE; + + if (objectPath.FindLastChar(TCHAR('.'), index)) + objectPath = FString(index, *objectPath); + + const char* path = TCHAR_TO_ANSI(*objectPath); + + UnrealCLR::Utility::Strcpy(Path, path, UnrealCLR::Utility::Strlen(path)); + } + } + + namespace AssetRegistry { + IAssetRegistry* Get() { + static IAssetRegistry* assetRegistry; + + if (!assetRegistry) + assetRegistry = &FModuleManager::Get().LoadModuleChecked(TEXT("AssetRegistry")).Get(); + + return assetRegistry; + } + + bool HasAssets(IAssetRegistry* AssetRegistry, const char* Path, bool Recursive) { + return AssetRegistry->HasAssets(FName(ANSI_TO_TCHAR(Path)), Recursive); + } + + void ForEachAsset(IAssetRegistry* AssetRegistry, const char* Path, bool Recursive, bool IncludeOnlyOnDiskAssets, FAssetData** Array, int32* Elements) { + static TArray assets; + static TArray references; + + assets.Reset(); + references.Reset(); + + AssetRegistry->GetAssetsByPath(FName(ANSI_TO_TCHAR(Path)), assets, Recursive, IncludeOnlyOnDiskAssets); + + int32 elements = assets.Num(); + + if (elements > 0) { + for (int32 i = 0; i < elements; i++) { + references.Add(&assets[i]); + } + + *Array = reinterpret_cast(references.GetData()); + *Elements = references.Num(); + } + } + } + + namespace Blueprint { + bool IsValidActorClass(UBlueprint* Blueprint, ActorType Type) { + #if WITH_EDITOR + TSubclassOf type; + + UNREALCLR_GET_ACTOR_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + return Blueprint->ParentClass == type; + #else + return true; + #endif + } + + bool IsValidComponentClass(UBlueprint* Blueprint, ComponentType Type) { + #if WITH_EDITOR + TSubclassOf type; + + UNREALCLR_GET_ATTACHABLE_COMPONENT_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + return Blueprint->ParentClass == type; + #else + return true; + #endif + } + } + + namespace Application { + bool IsCanEverRender() { + return FApp::CanEverRender(); + } + + bool IsPackagedForDistribution() { + return FGenericPlatformMisc::IsPackagedForDistribution(); + } + + bool IsPackagedForShipping() { + #if UE_BUILD_SHIPPING + return true; + #else + return false; + #endif + } + + void GetProjectDirectory(char* Directory) { + const char* directory = TCHAR_TO_ANSI(*FPaths::ConvertRelativePathToFull(FPaths::ProjectDir())); + + UnrealCLR::Utility::Strcpy(Directory, directory, UnrealCLR::Utility::Strlen(directory)); + } + + void GetDefaultLanguage(char* Language) { + const char* language = TCHAR_TO_ANSI(*FGenericPlatformMisc::GetDefaultLanguage()); + + UnrealCLR::Utility::Strcpy(Language, language, UnrealCLR::Utility::Strlen(language)); + } + + void GetProjectName(char* ProjectName) { + const char* projectName = TCHAR_TO_ANSI(FApp::GetProjectName()); + + UnrealCLR::Utility::Strcpy(ProjectName, projectName, UnrealCLR::Utility::Strlen(projectName)); + } + + float GetVolumeMultiplier() { + return FApp::GetVolumeMultiplier(); + } + + void SetProjectName(const char* ProjectName) { + FApp::SetProjectName(ANSI_TO_TCHAR(ProjectName)); + } + + void SetVolumeMultiplier(float Value) { + FApp::SetVolumeMultiplier(Value); + } + + void RequestExit(bool Force) { + FGenericPlatformMisc::RequestExit(Force); + } + } + + namespace ConsoleManager { + bool IsRegisteredVariable(const char* Name) { + return IConsoleManager::Get().IsNameRegistered(ANSI_TO_TCHAR(Name)); + } + + IConsoleVariable* FindVariable(const char* Name) { + return IConsoleManager::Get().FindConsoleVariable(ANSI_TO_TCHAR(Name)); + } + + IConsoleVariable* RegisterVariableBool(const char* Name, const char* Help, bool DefaultValue, bool ReadOnly) { + return IConsoleManager::Get().RegisterConsoleVariable(ANSI_TO_TCHAR(Name), DefaultValue, ANSI_TO_TCHAR(Help), !ReadOnly ? ECVF_Default : ECVF_ReadOnly); + } + + IConsoleVariable* RegisterVariableInt(const char* Name, const char* Help, int32 DefaultValue, bool ReadOnly) { + return IConsoleManager::Get().RegisterConsoleVariable(ANSI_TO_TCHAR(Name), DefaultValue, ANSI_TO_TCHAR(Help), !ReadOnly ? ECVF_Default : ECVF_ReadOnly); + } + + IConsoleVariable* RegisterVariableFloat(const char* Name, const char* Help, float DefaultValue, bool ReadOnly) { + return IConsoleManager::Get().RegisterConsoleVariable(ANSI_TO_TCHAR(Name), DefaultValue, ANSI_TO_TCHAR(Help), !ReadOnly ? ECVF_Default : ECVF_ReadOnly); + } + + IConsoleVariable* RegisterVariableString(const char* Name, const char* Help, const char* DefaultValue, bool ReadOnly) { + return IConsoleManager::Get().RegisterConsoleVariable(ANSI_TO_TCHAR(Name), ANSI_TO_TCHAR(DefaultValue), ANSI_TO_TCHAR(Help), !ReadOnly ? ECVF_Default : ECVF_ReadOnly); + } + + void RegisterCommand(const char* Name, const char* Help, ConsoleCommandDelegate Callback, bool ReadOnly) { + auto callback = [Callback](const TArray& Arguments) { + if (UnrealCLR::Status == UnrealCLR::StatusType::Running) { + float value = 0.0f; + + if (Arguments.Num() > 0) + FDefaultValueHelper::ParseFloat(Arguments[0], value); + + UnrealCLR::ManagedCommand(UnrealCLR::Command((void*)Callback, value)); + } + }; + + IConsoleManager::Get().RegisterConsoleCommand(ANSI_TO_TCHAR(Name), ANSI_TO_TCHAR(Help), FConsoleCommandWithArgsDelegate::CreateLambda(callback), !ReadOnly ? ECVF_Default : ECVF_ReadOnly); + } + + void UnregisterObject(const char* Name) { + IConsoleManager::Get().UnregisterConsoleObject(ANSI_TO_TCHAR(Name), false); + } + } + + namespace Engine { + bool IsSplitScreen() { + return GEngine->IsSplitScreen(UnrealCLR::Engine::World); + } + + bool IsEditor() { + return UnrealCLR::Engine::World->IsPlayInEditor(); + } + + bool IsForegroundWindow() { + return UnrealCLR::Engine::World->GetGameViewport()->Viewport->IsForegroundWindow(); + } + + bool IsExitRequested() { + return IsEngineExitRequested(); + } + + NetMode GetNetMode() { + return UnrealCLR::Engine::World->GetNetMode(); + } + + uint32 GetFrameNumber() { + return GFrameNumber; + } + + void GetViewportSize(Vector2* Value) { + *Value = FVector2D(GEngine->GameViewport->Viewport->GetSizeXY()); + } + + void GetScreenResolution(Vector2* Value) { + *Value = FVector2D(static_cast(GSystemResolution.ResX), static_cast(GSystemResolution.ResY)); + } + + WindowMode GetWindowMode() { + return UnrealCLR::Engine::World->GetGameViewport()->Viewport->GetWindowMode(); + } + + void GetVersion(char* Version) { + const char* version = TCHAR_TO_ANSI(*FEngineVersion::Current().ToString()); + + UnrealCLR::Utility::Strcpy(Version, version, UnrealCLR::Utility::Strlen(version)); + } + + float GetMaxFPS() { + return GEngine->GetMaxFPS(); + } + + void SetMaxFPS(float MaxFPS) { + GEngine->SetMaxFPS(MaxFPS); + } + + void SetTitle(const char* Title) { + UGameEngine* gameEngine = Cast(GEngine); + + if (gameEngine) { + TSharedPtr gameViewportWindow = gameEngine->GameViewportWindow.Pin(); + + if (gameViewportWindow.IsValid()) + gameViewportWindow->SetTitle(FText::FromString(FString(ANSI_TO_TCHAR(Title)))); + } + } + + void AddActionMapping(const char* ActionName, const char* Key, bool Shift, bool Ctrl, bool Alt, bool Cmd) { + UPlayerInput::AddEngineDefinedActionMapping(FInputActionKeyMapping(FName(ANSI_TO_TCHAR(ActionName)), FKey(ANSI_TO_TCHAR(Key)), Shift, Ctrl, Alt, Cmd)); + } + + void AddAxisMapping(const char* AxisName, const char* Key, float Scale) { + UPlayerInput::AddEngineDefinedAxisMapping(FInputAxisKeyMapping(FName(ANSI_TO_TCHAR(AxisName)), FKey(ANSI_TO_TCHAR(Key)), Scale)); + } + + void ForceGarbageCollection(bool FullPurge) { + GEngine->ForceGarbageCollection(FullPurge); + } + + void DelayGarbageCollection() { + GEngine->DelayGarbageCollection(); + } + } + + namespace HeadMountedDisplay { + bool IsConnected() { + return UHeadMountedDisplayFunctionLibrary::IsHeadMountedDisplayConnected(); + } + + bool GetEnabled() { + return UHeadMountedDisplayFunctionLibrary::IsHeadMountedDisplayEnabled(); + } + + bool GetLowPersistenceMode() { + return UHeadMountedDisplayFunctionLibrary::IsInLowPersistenceMode(); + } + + void GetDeviceName(char* Name) { + FName deviceName = UHeadMountedDisplayFunctionLibrary::GetHMDDeviceName(); + + const char* name = TCHAR_TO_ANSI(*deviceName.ToString()); + + UnrealCLR::Utility::Strcpy(Name, name, UnrealCLR::Utility::Strlen(name)); + } + + void SetEnable(bool Value) { + UHeadMountedDisplayFunctionLibrary::EnableHMD(Value); + } + + void SetLowPersistenceMode(bool Value) { + UHeadMountedDisplayFunctionLibrary::EnableLowPersistenceMode(Value); + } + } + + namespace World { + void ForEachActor(AActor** Array, int32* Elements) { + static TArray actors; + + actors.Reset(); + + for (TActorIterator currentActor(UnrealCLR::Engine::World); currentActor; ++currentActor) { + actors.Add(*currentActor); + } + + int32 elements = actors.Num(); + + if (elements > 0) { + *Array = reinterpret_cast(actors.GetData()); + *Elements = elements; + } + } + + int32 GetActorCount() { + return UnrealCLR::Engine::World->GetActorCount(); + } + + float GetDeltaSeconds() { + return UnrealCLR::Engine::World->GetDeltaSeconds(); + } + + float GetRealTimeSeconds() { + return UnrealCLR::Engine::World->GetRealTimeSeconds(); + } + + float GetTimeSeconds() { + return UnrealCLR::Engine::World->GetTimeSeconds(); + } + + void GetCurrentLevelName(char* LevelName) { + FString mapName = UnrealCLR::Engine::World->GetMapName(); + + mapName.RemoveFromStart(UnrealCLR::Engine::World->StreamingLevelsPrefix); + + const char* levelName = TCHAR_TO_ANSI(*mapName); + + UnrealCLR::Utility::Strcpy(LevelName, levelName, UnrealCLR::Utility::Strlen(levelName)); + } + + bool GetSimulatePhysics() { + return UnrealCLR::Engine::World->bShouldSimulatePhysics; + } + + void GetWorldOrigin(Vector3* Value) { + *Value = FVector(UnrealCLR::Engine::World->OriginLocation); + } + + AActor* GetActor(const char* Name, ActorType Type) { + FString name; + AActor* actor = nullptr; + TSubclassOf type; + + if (Name) + name = FString(ANSI_TO_TCHAR(Name)); + + UNREALCLR_GET_ACTOR_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + for (TActorIterator currentActor(UnrealCLR::Engine::World, type); currentActor; ++currentActor) { + if (!Name || (Name && *currentActor->GetName() == name)) { + actor = *currentActor; + break; + } + } + + return actor; + } + + AActor* GetActorByTag(const char* Tag, ActorType Type) { + AActor* actor = nullptr; + TSubclassOf type; + FName tag(ANSI_TO_TCHAR(Tag)); + + UNREALCLR_GET_ACTOR_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + for (TActorIterator currentActor(UnrealCLR::Engine::World, type); currentActor; ++currentActor) { + if (currentActor->ActorHasTag(tag)) { + actor = *currentActor; + break; + } + } + + return actor; + } + + AActor* GetActorByID(uint32 ID, ActorType Type) { + AActor* actor = nullptr; + TSubclassOf type; + + UNREALCLR_GET_ACTOR_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + for (TActorIterator currentActor(UnrealCLR::Engine::World, type); currentActor; ++currentActor) { + if (currentActor->GetUniqueID() == ID) { + actor = *currentActor; + break; + } + } + + return actor; + } + + APlayerController* GetFirstPlayerController() { + return UnrealCLR::Engine::World->GetFirstPlayerController(); + } + + AGameModeBase* GetGameMode() { + return UnrealCLR::Engine::World->GetAuthGameMode(); + } + + void SetOnActorBeginOverlapCallback(ActorOverlapDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnActorBeginOverlap] = (void*)Callback; + } + + void SetOnActorEndOverlapCallback(ActorOverlapDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnActorEndOverlap] = (void*)Callback; + } + + void SetOnActorHitCallback(ActorHitDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnActorHit] = (void*)Callback; + } + + void SetOnActorBeginCursorOverCallback(ActorCursorDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnActorBeginCursorOver] = (void*)Callback; + } + + void SetOnActorEndCursorOverCallback(ActorCursorDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnActorEndCursorOver] = (void*)Callback; + } + + void SetOnActorClickedCallback(ActorKeyDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnActorClicked] = (void*)Callback; + } + + void SetOnActorReleasedCallback(ActorKeyDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnActorReleased] = (void*)Callback; + } + + void SetOnComponentBeginOverlapCallback(ComponentOverlapDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnComponentBeginOverlap] = (void*)Callback; + } + + void SetOnComponentEndOverlapCallback(ComponentOverlapDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnComponentEndOverlap] = (void*)Callback; + } + + void SetOnComponentHitCallback(ComponentHitDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnComponentHit] = (void*)Callback; + } + + void SetOnComponentBeginCursorOverCallback(ComponentCursorDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnComponentBeginCursorOver] = (void*)Callback; + } + + void SetOnComponentEndCursorOverCallback(ComponentCursorDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnComponentEndCursorOver] = (void*)Callback; + } + + void SetOnComponentClickedCallback(ComponentKeyDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnComponentClicked] = (void*)Callback; + } + + void SetOnComponentReleasedCallback(ComponentKeyDelegate Callback) { + UnrealCLR::Shared::Events[UnrealCLR::OnComponentReleased] = (void*)Callback; + } + + void SetSimulatePhysics(bool Value) { + UnrealCLR::Engine::World->bShouldSimulatePhysics = Value; + } + + void SetGravity(float Value) { + AWorldSettings* worldSettings = UnrealCLR::Engine::World->GetWorldSettings(); + + worldSettings->bGlobalGravitySet = true; + worldSettings->GlobalGravityZ = Value; + } + + bool SetWorldOrigin(const Vector3* Value) { + return UnrealCLR::Engine::World->SetNewWorldOrigin(FIntVector(*Value)); + } + + void OpenLevel(const char* LevelName) { + GEngine->SetClientTravel(UnrealCLR::Engine::World, ANSI_TO_TCHAR(LevelName), TRAVEL_Absolute); + } + + bool LineTraceTestByChannel(const Vector3* Start, const Vector3* End, CollisionChannel Channel, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + return UnrealCLR::Engine::World->LineTraceTestByChannel(*Start, *End, Channel, queryParams); + } + + bool LineTraceTestByProfile(const Vector3* Start, const Vector3* End, const char* ProfileName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + return UnrealCLR::Engine::World->LineTraceTestByProfile(*Start, *End, FName(ANSI_TO_TCHAR(ProfileName)), queryParams); + } + + bool LineTraceSingleByChannel(const Vector3* Start, const Vector3* End, CollisionChannel Channel, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + FHitResult hit; + + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + bool result = UnrealCLR::Engine::World->LineTraceSingleByChannel(hit, *Start, *End, Channel, queryParams); + + UNREALCLR_GET_BONE_NAME(hit, BoneName); + + *Hit = hit; + + return result; + } + + bool LineTraceSingleByProfile(const Vector3* Start, const Vector3* End, const char* ProfileName, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + FHitResult hit; + + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + bool result = UnrealCLR::Engine::World->LineTraceSingleByProfile(hit, *Start, *End, FName(ANSI_TO_TCHAR(ProfileName)), queryParams); + + UNREALCLR_GET_BONE_NAME(hit, BoneName); + + *Hit = hit; + + return result; + } + + bool SweepTestByChannel(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + return UnrealCLR::Engine::World->SweepTestByChannel(*Start, *End, *Rotation, Channel, *Shape, queryParams); + } + + bool SweepTestByProfile(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + return UnrealCLR::Engine::World->SweepTestByProfile( *Start, *End, *Rotation, FName(ANSI_TO_TCHAR(ProfileName)), *Shape, queryParams); + } + + bool SweepSingleByChannel(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + FHitResult hit; + + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + bool result = UnrealCLR::Engine::World->SweepSingleByChannel(hit, *Start, *End, *Rotation, Channel, *Shape, queryParams); + + UNREALCLR_GET_BONE_NAME(hit, BoneName); + + *Hit = hit; + + return result; + } + + bool SweepSingleByProfile(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + FHitResult hit; + + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + queryParams.bTraceComplex = TraceComplex; + + bool result = UnrealCLR::Engine::World->SweepSingleByProfile(hit, *Start, *End, *Rotation, FName(ANSI_TO_TCHAR(ProfileName)), *Shape, queryParams); + + UNREALCLR_GET_BONE_NAME(hit, BoneName); + + *Hit = hit; + + return result; + } + + bool OverlapAnyTestByChannel(const Vector3* Location, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + return UnrealCLR::Engine::World->OverlapAnyTestByChannel(*Location, *Rotation, Channel, *Shape, queryParams); + } + + bool OverlapAnyTestByProfile(const Vector3* Location, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + return UnrealCLR::Engine::World->OverlapAnyTestByProfile(*Location, *Rotation, FName(ANSI_TO_TCHAR(ProfileName)), *Shape, queryParams); + } + + bool OverlapBlockingTestByChannel(const Vector3* Location, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + return UnrealCLR::Engine::World->OverlapBlockingTestByChannel(*Location, *Rotation, Channel, *Shape, queryParams); + } + + bool OverlapBlockingTestByProfile(const Vector3* Location, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent) { + UNREALCLR_SET_COLLISION_QUERY_PARAMS(IgnoredActor, IgnoredComponent); + + return UnrealCLR::Engine::World->OverlapBlockingTestByProfile(*Location, *Rotation, FName(ANSI_TO_TCHAR(ProfileName)), *Shape, queryParams); + } + } + + namespace ConsoleObject { + bool IsBool(IConsoleObject* ConsoleObject) { + return ConsoleObject->IsVariableBool(); + } + + bool IsInt(IConsoleObject* ConsoleObject) { + return ConsoleObject->IsVariableInt(); + } + + bool IsFloat(IConsoleObject* ConsoleObject) { + return ConsoleObject->IsVariableFloat(); + } + + bool IsString(IConsoleObject* ConsoleObject) { + return ConsoleObject->IsVariableString(); + } + } + + namespace ConsoleVariable { + bool GetBool(IConsoleVariable* ConsoleVariable) { + return ConsoleVariable->GetBool(); + } + + int32 GetInt(IConsoleVariable* ConsoleVariable) { + return ConsoleVariable->GetInt(); + } + + float GetFloat(IConsoleVariable* ConsoleVariable) { + return ConsoleVariable->GetFloat(); + } + + void GetString(IConsoleVariable* ConsoleVariable, char* Value) { + const char* value = TCHAR_TO_ANSI(*ConsoleVariable->GetString()); + + UnrealCLR::Utility::Strcpy(Value, value, UnrealCLR::Utility::Strlen(value)); + } + + void SetBool(IConsoleVariable* ConsoleVariable, bool Value) { + ConsoleVariable->Set(Value); + } + + void SetInt(IConsoleVariable* ConsoleVariable, int32 Value) { + ConsoleVariable->Set(Value); + } + + void SetFloat(IConsoleVariable* ConsoleVariable, float Value) { + ConsoleVariable->Set(Value); + } + + void SetString(IConsoleVariable* ConsoleVariable, const char* Value) { + ConsoleVariable->Set(ANSI_TO_TCHAR(Value)); + } + + void SetOnChangedCallback(IConsoleVariable* ConsoleVariable, ConsoleVariableDelegate Callback) { + auto callback = [Callback](IConsoleVariable* ConsoleVariable) { + UnrealCLR::ManagedCommand(UnrealCLR::Command((void*)Callback)); + }; + + ConsoleVariable->SetOnChangedCallback(FConsoleVariableDelegate::CreateLambda(callback)); + } + + void ClearOnChangedCallback(IConsoleVariable* ConsoleVariable) { + FConsoleVariableDelegate emptyDelegate; + + ConsoleVariable->SetOnChangedCallback(emptyDelegate); + } + } + + namespace Actor { + bool IsPendingKill(AActor* Actor) { + return Actor->IsPendingKillPending(); + } + + bool IsRootComponentMovable(AActor* Actor) { + return Actor->IsRootComponentMovable(); + } + + bool IsOverlappingActor(AActor* Actor, AActor* Other) { + return Actor->IsOverlappingActor(Other); + } + + void ForEachComponent(AActor* Actor, UActorComponent** Array, int32* Elements) { + static TArray components; + + components.Reset(); + + Actor->GetComponents(components); + + int32 elements = components.Num(); + + if (elements > 0) { + *Array = reinterpret_cast(components.GetData()); + *Elements = elements; + } + } + + void ForEachAttachedActor(AActor* Actor, AActor** Array, int32* Elements) { + static TArray actors; + + actors.Reset(); + + Actor->GetAttachedActors(actors); + + int32 elements = actors.Num(); + + if (elements > 0) { + *Array = reinterpret_cast(actors.GetData()); + *Elements = elements; + } + } + + void ForEachChildActor(AActor* Actor, AActor** Array, int32* Elements) { + static TArray actors; + + actors.Reset(); + + Actor->GetAllChildActors(actors); + + int32 elements = actors.Num(); + + if (elements > 0) { + *Array = reinterpret_cast(actors.GetData()); + *Elements = elements; + } + } + + void ForEachOverlappingActor(AActor* Actor, AActor** Array, int32* Elements) { + static TArray overlappingActors; + + overlappingActors.Reset(); + + Actor->GetOverlappingActors(overlappingActors); + + int32 elements = overlappingActors.Num(); + + if (elements > 0) { + *Array = reinterpret_cast(overlappingActors.GetData()); + *Elements = elements; + } + } + + AActor* Spawn(const char* Name, ActorType Type, UObject* Blueprint) { + AActor* actor = nullptr; + + if (!Blueprint) { + UNREALCLR_GET_ACTOR_TYPE(Type, UnrealCLR::Engine::World->SpawnActor UNREALCLR_BRACKET_LEFT, ::StaticClass() UNREALCLR_BRACKET_RIGHT, actor); + } else { + #if !WITH_EDITOR + UNREALCLR_GET_ACTOR_TYPE(Type, UnrealCLR::Engine::World->SpawnActor<, >(Cast(Blueprint)), actor); + #else + UNREALCLR_GET_ACTOR_TYPE(Type, UnrealCLR::Engine::World->SpawnActor<, >(Cast(Blueprint)->GeneratedClass), actor); + #endif + } + + if (actor && Name) { + FString name(ANSI_TO_TCHAR(Name)); + + actor->Rename(*name); + + #if WITH_EDITOR + actor->SetActorLabel(*name); + #endif + } + + return actor; + } + + bool Destroy(AActor* Actor) { + return UnrealCLR::Engine::World->DestroyActor(Actor); + } + + void Rename(AActor* Actor, const char* Name) { + FString name(ANSI_TO_TCHAR(Name)); + + Actor->Rename(*name); + + #if WITH_EDITOR + Actor->SetActorLabel(*name); + #endif + } + + void Hide(AActor* Actor, bool Value) { + Actor->SetActorHiddenInGame(Value); + } + + bool TeleportTo(AActor* Actor, const Vector3* DestinationLocation, const Quaternion* DestinationRotation, bool IsATest, bool NoCheck) { + return Actor->TeleportTo(*DestinationLocation, FRotator(*DestinationRotation), IsATest, NoCheck); + } + + UActorComponent* GetComponent(AActor* Actor, const char* Name, ComponentType Type) { + FString name; + UActorComponent* component = nullptr; + TSubclassOf type; + + if (Name) + name = FString(ANSI_TO_TCHAR(Name)); + + UNREALCLR_GET_COMPONENT_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + for (UActorComponent* currentComponent : Actor->GetComponents()) { + if (currentComponent && currentComponent->IsA(type) && (!Name || (Name && *currentComponent->GetName() == name))) { + component = currentComponent; + break; + } + } + + return component; + } + + UActorComponent* GetComponentByTag(AActor* Actor, const char* Tag, ComponentType Type) { + UActorComponent* component = nullptr; + TSubclassOf type; + FName tag(ANSI_TO_TCHAR(Tag)); + + UNREALCLR_GET_COMPONENT_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + for (UActorComponent* currentComponent : Actor->GetComponents()) { + if (currentComponent->ComponentHasTag(tag)) { + component = currentComponent; + break; + } + } + + return component; + } + + UActorComponent* GetComponentByID(AActor* Actor, uint32 ID, ComponentType Type) { + UActorComponent* component = nullptr; + TSubclassOf type; + + UNREALCLR_GET_COMPONENT_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + for (UActorComponent* currentComponent : Actor->GetComponents()) { + if (currentComponent->GetUniqueID() == ID) { + component = currentComponent; + break; + } + } + + return component; + } + + USceneComponent* GetRootComponent(AActor* Actor, ComponentType Type) { + USceneComponent* component = nullptr; + USceneComponent* rootComponent = Actor->GetRootComponent(); + TSubclassOf type; + + UNREALCLR_GET_ATTACHABLE_COMPONENT_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + if (rootComponent->IsA(type)) + component = rootComponent; + + return component; + } + + UInputComponent* GetInputComponent(AActor* Actor) { + return Actor->InputComponent; + } + + float GetCreationTime(AActor* Actor) { + return Actor->CreationTime; + } + + bool GetBlockInput(AActor* Actor) { + return Actor->bBlockInput; + } + + float GetDistanceTo(AActor* Actor, AActor* Other) { + return Actor->GetDistanceTo(Other); + } + + float GetHorizontalDistanceTo(AActor* Actor, AActor* Other) { + return Actor->GetDistanceTo(Other); + } + + void GetBounds(AActor* Actor, bool OnlyCollidingComponents, Vector3* Origin, Vector3* Extent) { + FVector origin, extent; + + Actor->GetActorBounds(OnlyCollidingComponents, origin, extent); + + *Origin = origin; + *Extent = extent; + } + + void GetEyesViewPoint(AActor* Actor, Vector3* Location, Quaternion* Rotation) { + FVector location; + FRotator rotation; + + Actor->GetActorEyesViewPoint(location, rotation); + + *Location = location; + *Rotation = rotation.Quaternion(); + } + + bool SetRootComponent(AActor* Actor, USceneComponent* RootComponent) { + return Actor->SetRootComponent(RootComponent); + } + + void SetInputComponent(AActor* Actor, UInputComponent* InputComponent) { + Actor->InputComponent = InputComponent; + } + + void SetBlockInput(AActor* Actor, bool Value) { + Actor->bBlockInput = Value; + } + + void SetLifeSpan(AActor* Actor, float LifeSpan) { + Actor->SetLifeSpan(LifeSpan); + } + + void SetEnableInput(AActor* Actor, APlayerController* PlayerController, bool Value) { + if (Value) + Actor->EnableInput(PlayerController); + else + Actor->DisableInput(PlayerController); + } + + void SetEnableCollision(AActor* Actor, bool Value) { + Actor->SetActorEnableCollision(Value); + } + + void AddTag(AActor* Actor, const char* Tag) { + Actor->Tags.AddUnique(FName(ANSI_TO_TCHAR(Tag))); + } + + void RemoveTag(AActor* Actor, const char* Tag) { + Actor->Tags.Remove(FName(ANSI_TO_TCHAR(Tag))); + } + + bool HasTag(AActor* Actor, const char* Tag) { + return Actor->ActorHasTag(FName(ANSI_TO_TCHAR(Tag))); + } + + void RegisterEvent(AActor* Actor, ActorEventType Type) { + UNREALCLR_SET_ACTOR_EVENT(Type, !, AddDynamic); + } + + void UnregisterEvent(AActor* Actor, ActorEventType Type) { + UNREALCLR_SET_ACTOR_EVENT(Type, UNREALCLR_NONE, RemoveDynamic); + } + } + + namespace GameModeBase { + bool GetUseSeamlessTravel(AGameModeBase* GameModeBase) { + return GameModeBase->bUseSeamlessTravel; + } + + void SetUseSeamlessTravel(AGameModeBase* GameModeBase, bool Value) { + GameModeBase->bUseSeamlessTravel = Value; + } + + void SwapPlayerControllers(AGameModeBase* GameModeBase, APlayerController* PlayerController, APlayerController* NewPlayerController) { + GameModeBase->SwapPlayerControllers(PlayerController, NewPlayerController); + } + } + + namespace Pawn { + bool IsControlled(APawn* Pawn) { + return Pawn->IsPawnControlled(); + } + + bool IsPlayerControlled(APawn* Pawn) { + return Pawn->IsPlayerControlled(); + } + + AutoPossessAI GetAutoPossessAI(APawn* Pawn) { + return Pawn->AutoPossessAI; + } + + AutoReceiveInput GetAutoPossessPlayer(APawn* Pawn) { + return Pawn->AutoPossessPlayer; + } + + bool GetUseControllerRotationYaw(APawn* Pawn) { + return Pawn->bUseControllerRotationYaw; + } + + bool GetUseControllerRotationPitch(APawn* Pawn) { + return Pawn->bUseControllerRotationPitch; + } + + bool GetUseControllerRotationRoll(APawn* Pawn) { + return Pawn->bUseControllerRotationRoll; + } + + void GetGravityDirection(APawn* Pawn, Vector3* Value) { + *Value = Pawn->GetGravityDirection(); + } + + AAIController* GetAIController(APawn* Pawn) { + return Cast(Pawn->GetController()); + } + + APlayerController* GetPlayerController(APawn* Pawn) { + return Cast(Pawn->GetController()); + } + + void SetAutoPossessAI(APawn* Pawn, AutoPossessAI Value) { + Pawn->AutoPossessAI = Value; + } + + void SetAutoPossessPlayer(APawn* Pawn, AutoReceiveInput Value) { + Pawn->AutoPossessPlayer = Value; + } + + void SetUseControllerRotationYaw(APawn* Pawn, bool Value) { + Pawn->bUseControllerRotationYaw = Value; + } + + void SetUseControllerRotationPitch(APawn* Pawn, bool Value) { + Pawn->bUseControllerRotationPitch = Value; + } + + void SetUseControllerRotationRoll(APawn* Pawn, bool Value) { + Pawn->bUseControllerRotationRoll = Value; + } + + void AddControllerYawInput(APawn* Pawn, float Value) { + Pawn->AddControllerYawInput(Value); + } + + void AddControllerPitchInput(APawn* Pawn, float Value) { + Pawn->AddControllerPitchInput(Value); + } + + void AddControllerRollInput(APawn* Pawn, float Value) { + Pawn->AddControllerRollInput(Value); + } + + void AddMovementInput(APawn* Pawn, const Vector3* WorldDirection, float ScaleValue, bool Force) { + Pawn->AddMovementInput(*WorldDirection, ScaleValue, Force); + } + } + + namespace Character { + bool IsCrouched(ACharacter* Character) { + return Character->bIsCrouched; + } + + bool CanCrouch(ACharacter* Character) { + return Character->CanCrouch(); + } + + bool CanJump(ACharacter* Character) { + return Character->CanJump(); + } + + void CheckJumpInput(ACharacter* Character, float DeltaTime) { + Character->CheckJumpInput(DeltaTime); + } + + void ClearJumpInput(ACharacter* Character, float DeltaTime) { + Character->ClearJumpInput(DeltaTime); + } + + void Launch(ACharacter* Character, const Vector3* Velocity, bool OverrideXY, bool OverrideZ) { + Character->LaunchCharacter(*Velocity, OverrideXY, OverrideZ); + } + + void Crouch(ACharacter* Character) { + Character->Crouch(); + } + + void StopCrouching(ACharacter* Character) { + Character->UnCrouch(); + } + + void Jump(ACharacter* Character) { + Character->Jump(); + } + + void StopJumping(ACharacter* Character) { + Character->StopJumping(); + } + + void SetOnLandedCallback(ACharacter* Character, CharacterLandedDelegate Callback) { + UUnrealCLRCharacter* character = NewObject(Character); + + character->LandedCallback = (void*)Callback; + + Character->LandedDelegate.AddDynamic(character, &UUnrealCLRCharacter::Landed); + } + } + + namespace Controller { + bool IsLookInputIgnored(AController* Controller) { + return Controller->IsLookInputIgnored(); + } + + bool IsMoveInputIgnored(AController* Controller) { + return Controller->IsMoveInputIgnored(); + } + + bool IsPlayerController(AController* Controller) { + return Controller->IsPlayerController(); + } + + APawn* GetPawn(AController* Controller) { + return Controller->GetPawn(); + } + + ACharacter* GetCharacter(AController* Controller) { + return Controller->GetCharacter(); + } + + AActor* GetViewTarget(AController* Controller) { + return Controller->GetViewTarget(); + } + + void GetControlRotation(AController* Controller, Quaternion* Value) { + *Value = Controller->GetControlRotation().Quaternion(); + } + + void GetDesiredRotation(AController* Controller, Quaternion* Value) { + *Value = Controller->GetDesiredRotation().Quaternion(); + } + + bool LineOfSightTo(AController* Controller, AActor* Actor, const Vector3* ViewPoint, bool AlternateChecks) { + return Controller->LineOfSightTo(Actor, *ViewPoint, AlternateChecks); + } + + void SetControlRotation(AController* Controller, const Quaternion* Value) { + Controller->SetControlRotation(FRotator(*Value)); + } + + void SetInitialLocationAndRotation(AController* Controller, const Vector3* NewLocation, const Quaternion* NewRotation) { + Controller->SetInitialLocationAndRotation(*NewLocation, FRotator(*NewRotation)); + } + + void SetIgnoreLookInput(AController* Controller, bool Value) { + Controller->SetIgnoreLookInput(Value); + } + + void SetIgnoreMoveInput(AController* Controller, bool Value) { + Controller->SetIgnoreMoveInput(Value); + } + + void ResetIgnoreLookInput(AController* Controller) { + Controller->ResetIgnoreLookInput(); + } + + void ResetIgnoreMoveInput(AController* Controller) { + Controller->ResetIgnoreMoveInput(); + } + + void Possess(AController* Controller, APawn* Pawn) { + Controller->Possess(Pawn); + } + + void Unpossess(AController* Controller) { + Controller->UnPossess(); + } + } + + namespace AIController { + void ClearFocus(AAIController* AIController, AIFocusPriority Priority) { + AIController->ClearFocus(static_cast(Priority)); + } + + void GetFocalPoint(AAIController* AIController, Vector3* Value) { + *Value = AIController->GetFocalPoint(); + } + + void SetFocalPoint(AAIController* AIController, const Vector3* NewFocus, AIFocusPriority Priority) { + AIController->SetFocalPoint(*NewFocus, static_cast(Priority)); + } + + AActor* GetFocusActor(AAIController* AIController) { + return AIController->GetFocusActor(); + } + + bool GetAllowStrafe(AAIController* AIController) { + return AIController->bAllowStrafe; + } + + void SetAllowStrafe(AAIController* AIController, bool Value) { + AIController->bAllowStrafe = Value; + } + + void SetFocus(AAIController* AIController, AActor* NewFocus, AIFocusPriority Priority) { + AIController->SetFocus(NewFocus, static_cast(Priority)); + } + } + + namespace PlayerController { + bool IsPaused(APlayerController* PlayerController) { + return PlayerController->IsPaused(); + } + + bool GetShowMouseCursor(APlayerController* PlayerController) { + return PlayerController->bShowMouseCursor; + } + + bool GetEnableClickEvents(APlayerController* PlayerController) { + return PlayerController->bEnableClickEvents; + } + + bool GetEnableMouseOverEvents(APlayerController* PlayerController) { + return PlayerController->bEnableMouseOverEvents; + } + + bool GetMousePosition(APlayerController* PlayerController, float* X, float* Y) { + return PlayerController->GetMousePosition(*X, *Y); + } + + UPlayer* GetPlayer(APlayerController* PlayerController) { + return PlayerController->Player; + } + + UPlayerInput* GetPlayerInput(APlayerController* PlayerController) { + return PlayerController->PlayerInput; + } + + bool GetHitResultAtScreenPosition(APlayerController* PlayerController, const Vector2* ScreenPosition, CollisionChannel TraceChannel, Hit* Hit, bool TraceComplex) { + FHitResult hit; + + bool result = PlayerController->GetHitResultAtScreenPosition(*ScreenPosition, TraceChannel, TraceComplex, hit); + + *Hit = hit; + + return result; + } + + bool GetHitResultUnderCursor(APlayerController* PlayerController, CollisionChannel TraceChannel, Hit* Hit, bool TraceComplex) { + FHitResult hit; + + bool result = PlayerController->GetHitResultUnderCursor(TraceChannel, TraceComplex, hit); + + *Hit = hit; + + return result; + } + + void SetShowMouseCursor(APlayerController* PlayerController, bool Value) { + PlayerController->bShowMouseCursor = Value; + } + + void SetEnableClickEvents(APlayerController* PlayerController, bool Value) { + PlayerController->bEnableClickEvents = Value; + } + + void SetEnableMouseOverEvents(APlayerController* PlayerController, bool Value) { + PlayerController->bEnableMouseOverEvents = Value; + } + + void SetMousePosition(APlayerController* PlayerController, float X, float Y) { + PlayerController->SetMouseLocation(static_cast(X), static_cast(Y)); + } + + void ConsoleCommand(APlayerController* PlayerController, const char* Command, bool WriteToLog) { + PlayerController->ConsoleCommand(FString(ANSI_TO_TCHAR(Command)), WriteToLog); + } + + bool SetPause(APlayerController* PlayerController, bool Value) { + return PlayerController->SetPause(Value); + } + + void SetViewTarget(APlayerController* PlayerController, AActor* NewViewTarget) { + PlayerController->SetViewTarget(NewViewTarget); + } + + void SetViewTargetWithBlend(APlayerController* PlayerController, AActor* NewViewTarget, float Time, float Exponent, BlendType Type, bool LockOutgoing) { + PlayerController->SetViewTargetWithBlend(NewViewTarget, Time, Type, Exponent, LockOutgoing); + } + + void AddYawInput(APlayerController* PlayerController, float Value) { + PlayerController->AddYawInput(Value); + } + + void AddPitchInput(APlayerController* PlayerController, float Value) { + PlayerController->AddPitchInput(Value); + } + + void AddRollInput(APlayerController* PlayerController, float Value) { + PlayerController->AddRollInput(Value); + } + } + + namespace Volume { + bool EncompassesPoint(AVolume* Volume, const Vector3* Point, float SphereRadius, float* DistanceToPoint) { + return Volume->EncompassesPoint(*Point, SphereRadius, DistanceToPoint); + } + } + + namespace PostProcessVolume { + bool GetEnabled(APostProcessVolume* PostProcessVolume) { + return PostProcessVolume->bEnabled; + } + + float GetBlendRadius(APostProcessVolume* PostProcessVolume) { + return PostProcessVolume->BlendRadius; + } + + float GetBlendWeight(APostProcessVolume* PostProcessVolume) { + return PostProcessVolume->BlendWeight; + } + + bool GetUnbound(APostProcessVolume* PostProcessVolume) { + return PostProcessVolume->bUnbound; + } + + float GetPriority(APostProcessVolume* PostProcessVolume) { + return PostProcessVolume->Priority; + } + + void SetEnabled(APostProcessVolume* PostProcessVolume, bool Value) { + PostProcessVolume->bEnabled = Value; + } + + void SetBlendRadius(APostProcessVolume* PostProcessVolume, float Value) { + PostProcessVolume->BlendRadius = Value; + } + + void SetBlendWeight(APostProcessVolume* PostProcessVolume, float Value) { + PostProcessVolume->BlendWeight = Value; + } + + void SetUnbound(APostProcessVolume* PostProcessVolume, bool Value) { + PostProcessVolume->bUnbound = Value; + } + + void SetPriority(APostProcessVolume* PostProcessVolume, float Priority) { + PostProcessVolume->Priority = Priority; + } + } + + namespace SoundBase { + float GetDuration(USoundBase* SoundBase) { + return SoundBase->Duration; + } + } + + namespace SoundWave { + bool GetLoop(USoundWave* SoundWave) { + return SoundWave->bLooping; + } + + void SetLoop(USoundWave* SoundWave, bool Value) { + SoundWave->bLooping = Value; + } + } + + namespace AnimationInstance { + UAnimMontage* GetCurrentActiveMontage(UAnimInstance* AnimationInstance) { + return AnimationInstance->GetCurrentActiveMontage(); + } + + bool IsPlaying(UAnimInstance* AnimationInstance, UAnimMontage* Montage) { + return AnimationInstance->Montage_IsPlaying(Montage); + } + + float GetPlayRate(UAnimInstance* AnimationInstance, UAnimMontage* Montage) { + return AnimationInstance->Montage_GetPlayRate(Montage); + } + + float GetPosition(UAnimInstance* AnimationInstance, UAnimMontage* Montage) { + return AnimationInstance->Montage_GetPosition(Montage); + } + + float GetBlendTime(UAnimInstance* AnimationInstance, UAnimMontage* Montage) { + return AnimationInstance->Montage_GetBlendTime(Montage); + } + + void GetCurrentSection(UAnimInstance* AnimationInstance, UAnimMontage* Montage, char* SectionName) { + const char* sectionName = TCHAR_TO_ANSI(*AnimationInstance->Montage_GetCurrentSection(Montage).ToString()); + + UnrealCLR::Utility::Strcpy(SectionName, sectionName, UnrealCLR::Utility::Strlen(sectionName)); + } + + void SetPlayRate(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float Value) { + AnimationInstance->Montage_SetPlayRate(Montage, Value); + } + + void SetPosition(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float Position) { + AnimationInstance->Montage_SetPosition(Montage, Position); + } + + void SetNextSection(UAnimInstance* AnimationInstance, UAnimMontage* Montage, const char* SectionToChange, const char* NextSection) { + AnimationInstance->Montage_SetNextSection(FName(ANSI_TO_TCHAR(SectionToChange)), FName(ANSI_TO_TCHAR(NextSection)), Montage); + } + + float PlayMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float PlayRate, float TimeToStartMontageAt, bool StopAllMontages) { + return AnimationInstance->Montage_Play(Montage, PlayRate, EMontagePlayReturnType::MontageLength, TimeToStartMontageAt, StopAllMontages); + } + + void PauseMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage) { + AnimationInstance->Montage_Pause(Montage); + } + + void ResumeMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage) { + AnimationInstance->Montage_Resume(Montage); + } + + void StopMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float BlendOutTime) { + AnimationInstance->Montage_Stop(BlendOutTime, Montage); + } + + void JumpToSection(UAnimInstance* AnimationInstance, UAnimMontage* Montage, const char* SectionName) { + AnimationInstance->Montage_JumpToSection(FName(ANSI_TO_TCHAR(SectionName)), Montage); + } + + void JumpToSectionsEnd(UAnimInstance* AnimationInstance, UAnimMontage* Montage, const char* SectionName) { + AnimationInstance->Montage_JumpToSectionsEnd(FName(ANSI_TO_TCHAR(SectionName)), Montage); + } + } + + namespace Player { + APlayerController* GetPlayerController(UPlayer* Player) { + return Player->GetPlayerController(UnrealCLR::Engine::World); + } + } + + namespace PlayerInput { + bool IsKeyPressed(UPlayerInput* PlayerInput, const char* Key) { + return PlayerInput->IsPressed(FKey(ANSI_TO_TCHAR(Key))); + } + + float GetTimeKeyPressed(UPlayerInput* PlayerInput, const char* Key) { + return PlayerInput->GetTimeDown(FKey(ANSI_TO_TCHAR(Key))); + } + + void GetMouseSensitivity(UPlayerInput* PlayerInput, Vector2* Value) { + Value->X = PlayerInput->GetMouseSensitivityX(); + Value->Y = PlayerInput->GetMouseSensitivityY(); + } + + void SetMouseSensitivity(UPlayerInput* PlayerInput, const Vector2* Value) { + PlayerInput->SetMouseSensitivity(Value->X, Value->Y); + } + + void AddActionMapping(UPlayerInput* PlayerInput, const char* ActionName, const char* Key, bool Shift, bool Ctrl, bool Alt, bool Cmd) { + PlayerInput->AddActionMapping(FInputActionKeyMapping(FName(ANSI_TO_TCHAR(ActionName)), FKey(ANSI_TO_TCHAR(Key)), Shift, Ctrl, Alt, Cmd)); + } + + void AddAxisMapping(UPlayerInput* PlayerInput, const char* AxisName, const char* Key, float Scale) { + PlayerInput->AddAxisMapping(FInputAxisKeyMapping(FName(ANSI_TO_TCHAR(AxisName)), FKey(ANSI_TO_TCHAR(Key)), Scale)); + } + + void RemoveActionMapping(UPlayerInput* PlayerInput, const char* ActionName, const char* Key) { + PlayerInput->RemoveActionMapping(FInputActionKeyMapping(FName(ANSI_TO_TCHAR(ActionName)), FKey(ANSI_TO_TCHAR(Key)))); + } + + void RemoveAxisMapping(UPlayerInput* PlayerInput, const char* AxisName, const char* Key) { + PlayerInput->RemoveAxisMapping(FInputAxisKeyMapping(FName(ANSI_TO_TCHAR(AxisName)), FKey(ANSI_TO_TCHAR(Key)))); + } + } + + namespace Font { + void GetStringSize(UFont* Font, const char* Text, int32* Height, int32* Width) { + int32 height, width; + + Font->GetStringHeightAndWidth(ANSI_TO_TCHAR(Text), height, width); + + *Height = height; + *Width = width; + } + } + + namespace Texture2D { + UTexture2D* CreateFromFile(const char* FilePath) { + return FImageUtils::ImportFileAsTexture2D(FString(ANSI_TO_TCHAR(FilePath))); + } + + UTexture2D* CreateFromBuffer(const uint8* Buffer, int32 Length) { + return FImageUtils::ImportBufferAsTexture2D(TArray(Buffer, Length)); + } + + bool HasAlphaChannel(UTexture2D* Texture2D) { + return Texture2D->HasAlphaChannel(); + } + + void GetSize(UTexture2D* Texture2D, Vector2* Value) { + Value->X = Texture2D->GetSizeX(); + Value->Y = Texture2D->GetSizeY(); + } + + PixelFormat GetPixelFormat(UTexture2D* Texture2D) { + return Texture2D->GetPixelFormat(); + } + } + + namespace ActorComponent { + bool IsOwnerSelected(UActorComponent* ActorComponent) { + return ActorComponent->IsOwnerSelected(); + } + + AActor* GetOwner(UActorComponent* ActorComponent, ActorType Type) { + AActor* actor = nullptr; + + UNREALCLR_GET_ACTOR_TYPE(Type, Cast<, >(ActorComponent->GetOwner()), actor); + + return actor; + } + + void Destroy(UActorComponent* ActorComponent, bool PromoteChild) { + ActorComponent->DestroyComponent(PromoteChild); + } + + void AddTag(UActorComponent* ActorComponent, const char* Tag) { + ActorComponent->ComponentTags.AddUnique(FName(ANSI_TO_TCHAR(Tag))); + } + + void RemoveTag(UActorComponent* ActorComponent, const char* Tag) { + ActorComponent->ComponentTags.Remove(FName(ANSI_TO_TCHAR(Tag))); + } + + bool HasTag(UActorComponent* ActorComponent, const char* Tag) { + return ActorComponent->ComponentHasTag(FName(ANSI_TO_TCHAR(Tag))); + } + } + + namespace InputComponent { + bool HasBindings(UInputComponent* InputComponent) { + return InputComponent->HasBindings(); + } + + int32 GetActionBindingsNumber(UInputComponent* InputComponent) { + return InputComponent->GetNumActionBindings(); + } + + void ClearActionBindings(UInputComponent* InputComponent) { + InputComponent->ClearActionBindings(); + } + + void BindAction(UInputComponent* InputComponent, const char* ActionName, InputEvent KeyEvent, bool ExecutedWhenPaused, InputDelegate Callback) { + FInputActionBinding actionBinding(FName(ANSI_TO_TCHAR(ActionName)), KeyEvent); + + actionBinding.bExecuteWhenPaused = ExecutedWhenPaused; + actionBinding.ActionDelegate.GetDelegateForManualSet().BindLambda([Callback]() { + UnrealCLR::ManagedCommand(UnrealCLR::Command((void*)Callback)); + }); + + InputComponent->AddActionBinding(actionBinding); + } + + void BindAxis(UInputComponent* InputComponent, const char* AxisName, bool ExecutedWhenPaused, InputAxisDelegate Callback) { + FInputAxisBinding axisBinding(FName(ANSI_TO_TCHAR(AxisName))); + + axisBinding.bExecuteWhenPaused = ExecutedWhenPaused; + axisBinding.AxisDelegate.GetDelegateForManualSet().BindLambda([Callback](float AxisValue) { + UnrealCLR::ManagedCommand(UnrealCLR::Command((void*)Callback, AxisValue)); + }); + + InputComponent->AxisBindings.Emplace(axisBinding); + } + + void RemoveActionBinding(UInputComponent* InputComponent, const char* ActionName, InputEvent KeyEvent) { + InputComponent->RemoveActionBinding(FName(ANSI_TO_TCHAR(ActionName)), KeyEvent); + } + + bool GetBlockInput(UInputComponent* InputComponent) { + return InputComponent->bBlockInput; + } + + void SetBlockInput(UInputComponent* InputComponent, bool Value) { + InputComponent->bBlockInput = Value; + } + + int32 GetPriority(UInputComponent* InputComponent) { + return InputComponent->Priority; + } + + void SetPriority(UInputComponent* InputComponent, int32 Value) { + InputComponent->Priority = Value; + } + } + + namespace SceneComponent { + bool IsAttachedToComponent(USceneComponent* SceneComponent, USceneComponent* Component) { + return SceneComponent->IsAttachedTo(Component); + } + + bool IsAttachedToActor(USceneComponent* SceneComponent, AActor* Actor) { + USceneComponent* Component = SceneComponent; + + while (Component) { + if (Component->GetOwner() == Actor) + return true; + + Component = Component->GetAttachParent(); + } + + return false; + } + + bool IsVisible(USceneComponent* SceneComponent) { + return SceneComponent->IsVisible(); + } + + bool IsSocketExists(USceneComponent* SceneComponent, const char* SocketName) { + return SceneComponent->DoesSocketExist(FName(ANSI_TO_TCHAR(SocketName))); + } + + bool HasAnySockets(USceneComponent* SceneComponent) { + return SceneComponent->HasAnySockets(); + } + + bool CanAttachAsChild(USceneComponent* SceneComponent, USceneComponent* ChildComponent, const char* SocketName) { + return SceneComponent->CanAttachAsChild(ChildComponent, FName(ANSI_TO_TCHAR(SocketName))); + } + + void ForEachAttachedChild(USceneComponent* SceneComponent, USceneComponent** Array, int32* Elements) { + static TArray attachedComponents; + + attachedComponents.Reset(); + + attachedComponents = SceneComponent->GetAttachChildren(); + + int32 elements = attachedComponents.Num(); + + if (elements > 0) { + *Array = reinterpret_cast(attachedComponents.GetData()); + *Elements = elements; + } + } + + USceneComponent* Create(AActor* Actor, ComponentType Type, const char* Name, bool SetAsRoot, UObject* Blueprint) { + USceneComponent* component = nullptr; + + if (!Blueprint) { + UNREALCLR_GET_ATTACHABLE_COMPONENT_TYPE(Type, NewObject<, >(Actor), component); + } else { + #if !WITH_EDITOR + UNREALCLR_GET_ATTACHABLE_COMPONENT_TYPE(Type, NewObject<, >(Actor, Cast(Blueprint)), component); + #else + UNREALCLR_GET_ATTACHABLE_COMPONENT_TYPE(Type, NewObject<, >(Actor, Cast(Blueprint)->GeneratedClass), component); + #endif + } + + if (component) { + USceneComponent* rootComponent = Actor->GetRootComponent(); + + if (!rootComponent || SetAsRoot) + Actor->SetRootComponent(component); + else + component->AttachToComponent(rootComponent, FAttachmentTransformRules::KeepRelativeTransform); + + Actor->AddInstanceComponent(component); + component->OnComponentCreated(); + component->RegisterComponent(); + + if (Name) + component->Rename(*FString(ANSI_TO_TCHAR(Name))); + } + + return component; + } + + bool AttachToComponent(USceneComponent* SceneComponent, USceneComponent* Parent, AttachmentTransformRule AttachmentRule, const char* SocketName) { + FAttachmentTransformRules attachmentRules = FAttachmentTransformRules::KeepRelativeTransform; + FName socketName; + + UNREALCLR_GET_ATTACHMENT_RULE(AttachmentRule, attachmentRules); + + if (SocketName) + socketName = FName(ANSI_TO_TCHAR(SocketName)); + + return SceneComponent->AttachToComponent(Parent, attachmentRules, socketName); + } + + void DetachFromComponent(USceneComponent* SceneComponent, DetachmentTransformRule DetachmentRule) { + FDetachmentTransformRules detachmentRules = FDetachmentTransformRules::KeepRelativeTransform; + + UNREALCLR_GET_DETACHMENT_RULE(DetachmentRule, detachmentRules); + + SceneComponent->DetachFromComponent(detachmentRules); + } + + void Activate(USceneComponent* SceneComponent) { + SceneComponent->Activate(); + } + + void Deactivate(USceneComponent* SceneComponent) { + SceneComponent->Deactivate(); + } + + void UpdateToWorld(USceneComponent* SceneComponent, TeleportType Type, UpdateTransformFlags Flags) { + SceneComponent->UpdateComponentToWorld(static_cast(Flags), Type); + } + + void AddLocalOffset(USceneComponent* SceneComponent, const Vector3* DeltaLocation) { + SceneComponent->AddLocalOffset(*DeltaLocation); + } + + void AddLocalRotation(USceneComponent* SceneComponent, const Quaternion* DeltaRotation) { + SceneComponent->AddLocalRotation(*DeltaRotation); + } + + void AddRelativeLocation(USceneComponent* SceneComponent, const Vector3* DeltaLocation) { + SceneComponent->AddRelativeLocation(*DeltaLocation); + } + + void AddRelativeRotation(USceneComponent* SceneComponent, const Quaternion* DeltaRotation) { + SceneComponent->AddRelativeRotation(*DeltaRotation); + } + + void AddLocalTransform(USceneComponent* SceneComponent, const Transform* DeltaTransform) { + SceneComponent->AddLocalTransform(*DeltaTransform); + } + + void AddWorldOffset(USceneComponent* SceneComponent, const Vector3* DeltaLocation) { + SceneComponent->AddWorldOffset(*DeltaLocation); + } + + void AddWorldRotation(USceneComponent* SceneComponent, const Quaternion* DeltaRotation) { + SceneComponent->AddWorldRotation(*DeltaRotation); + } + + void AddWorldTransform(USceneComponent* SceneComponent, const Transform* DeltaTransform) { + SceneComponent->AddWorldTransform(*DeltaTransform); + } + + void GetAttachedSocketName(USceneComponent* SceneComponent, char* SocketName) { + const char* socketName = TCHAR_TO_ANSI(*SceneComponent->GetAttachSocketName().ToString()); + + UnrealCLR::Utility::Strcpy(SocketName, socketName, UnrealCLR::Utility::Strlen(socketName)); + } + + void GetBounds(USceneComponent* SceneComponent, const Transform* LocalToWorld, Bounds* Value) { + *Value = SceneComponent->CalcBounds(*LocalToWorld); + } + + void GetSocketLocation(USceneComponent* SceneComponent, const char* SocketName, Vector3* Value) { + *Value = SceneComponent->GetSocketLocation(FName(ANSI_TO_TCHAR(SocketName))); + } + + void GetSocketRotation(USceneComponent* SceneComponent, const char* SocketName, Quaternion* Value) { + *Value = SceneComponent->GetSocketQuaternion(FName(ANSI_TO_TCHAR(SocketName))); + } + + void GetComponentVelocity(USceneComponent* SceneComponent, Vector3* Value) { + *Value = SceneComponent->GetComponentVelocity(); + } + + void GetComponentLocation(USceneComponent* SceneComponent, Vector3* Value) { + *Value = SceneComponent->GetComponentLocation(); + } + + void GetComponentRotation(USceneComponent* SceneComponent, Quaternion* Value) { + *Value = SceneComponent->GetComponentQuat(); + } + + void GetComponentScale(USceneComponent* SceneComponent, Vector3* Value) { + *Value = SceneComponent->GetComponentScale(); + } + + void GetComponentTransform(USceneComponent* SceneComponent, Transform* Value) { + *Value = SceneComponent->GetComponentTransform(); + } + + void GetForwardVector(USceneComponent* SceneComponent, Vector3* Value) { + *Value = SceneComponent->GetForwardVector(); + } + + void GetRightVector(USceneComponent* SceneComponent, Vector3* Value) { + *Value = SceneComponent->GetRightVector(); + } + + void GetUpVector(USceneComponent* SceneComponent, Vector3* Value) { + *Value = SceneComponent->GetUpVector(); + } + + void SetMobility(USceneComponent* SceneComponent, ComponentMobility Mobility) { + SceneComponent->SetMobility(Mobility); + } + + void SetVisibility(USceneComponent* SceneComponent, bool NewVisibility, bool PropagateToChildren) { + SceneComponent->SetVisibility(NewVisibility, PropagateToChildren); + } + + void SetRelativeLocation(USceneComponent* SceneComponent, const Vector3* Location) { + SceneComponent->SetRelativeLocation(*Location); + } + + void SetRelativeRotation(USceneComponent* SceneComponent, const Quaternion* Rotation) { + SceneComponent->SetRelativeRotation(*Rotation); + } + + void SetRelativeTransform(USceneComponent* SceneComponent, const Transform* Transform) { + SceneComponent->SetRelativeTransform(*Transform); + } + + void SetWorldLocation(USceneComponent* SceneComponent, const Vector3* Location) { + SceneComponent->SetWorldLocation(*Location); + } + + void SetWorldRotation(USceneComponent* SceneComponent, const Quaternion* Rotation) { + SceneComponent->SetWorldRotation(*Rotation); + } + + void SetWorldScale(USceneComponent* SceneComponent, const Vector3* Scale) { + SceneComponent->SetWorldScale3D(*Scale); + } + + void SetWorldTransform(USceneComponent* SceneComponent, const Transform* Transform) { + SceneComponent->SetWorldTransform(*Transform); + } + } + + namespace AudioComponent { + bool IsPlaying(UAudioComponent* AudioComponent) { + return AudioComponent->IsPlaying(); + } + + bool GetPaused(UAudioComponent* AudioComponent) { + return AudioComponent->bIsPaused; + } + + void SetSound(UAudioComponent* AudioComponent, USoundBase* Sound) { + AudioComponent->SetSound(Sound); + } + + void SetPaused(UAudioComponent* AudioComponent, bool Value) { + AudioComponent->SetPaused(Value); + } + + void Play(UAudioComponent* AudioComponent) { + AudioComponent->Play(); + } + + void Stop(UAudioComponent* AudioComponent) { + AudioComponent->Stop(); + } + + void FadeIn(UAudioComponent* AudioComponent, float Duration, float VolumeLevel, float StartTime, AudioFadeCurve FadeCurve) { + AudioComponent->FadeIn(Duration, VolumeLevel, StartTime, FadeCurve); + } + + void FadeOut(UAudioComponent* AudioComponent, float Duration, float VolumeLevel, AudioFadeCurve FadeCurve) { + AudioComponent->FadeOut(Duration, VolumeLevel, FadeCurve); + } + } + + namespace CameraComponent { + bool GetConstrainAspectRatio(UCameraComponent* CameraComponent) { + return CameraComponent->bConstrainAspectRatio; + } + + float GetAspectRatio(UCameraComponent* CameraComponent) { + return CameraComponent->AspectRatio; + } + + float GetFieldOfView(UCameraComponent* CameraComponent) { + return CameraComponent->FieldOfView; + } + + float GetOrthoFarClipPlane(UCameraComponent* CameraComponent) { + return CameraComponent->OrthoFarClipPlane; + } + + float GetOrthoNearClipPlane(UCameraComponent* CameraComponent) { + return CameraComponent->OrthoNearClipPlane; + } + + float GetOrthoWidth(UCameraComponent* CameraComponent) { + return CameraComponent->OrthoWidth; + } + + bool GetLockToHeadMountedDisplay(UCameraComponent* CameraComponent) { + return CameraComponent->bLockToHmd; + } + + void SetProjectionMode(UCameraComponent* CameraComponent, CameraProjectionMode Mode) { + CameraComponent->SetProjectionMode(Mode); + } + + void SetConstrainAspectRatio(UCameraComponent* CameraComponent, bool Value) { + CameraComponent->bConstrainAspectRatio = Value; + } + + void SetAspectRatio(UCameraComponent* CameraComponent, float Value) { + CameraComponent->AspectRatio = Value; + } + + void SetFieldOfView(UCameraComponent* CameraComponent, float Value) { + CameraComponent->FieldOfView = Value; + } + + void SetOrthoFarClipPlane(UCameraComponent* CameraComponent, float Value) { + CameraComponent->OrthoFarClipPlane = Value; + } + + void SetOrthoNearClipPlane(UCameraComponent* CameraComponent, float Value) { + CameraComponent->OrthoNearClipPlane = Value; + } + + void SetOrthoWidth(UCameraComponent* CameraComponent, float Value) { + CameraComponent->OrthoWidth = Value; + } + + void SetLockToHeadMountedDisplay(UCameraComponent* CameraComponent, bool Value) { + CameraComponent->bLockToHmd = Value; + } + } + + namespace ChildActorComponent { + AActor* GetChildActor(UChildActorComponent* ChildActorComponent, ActorType Type) { + AActor* actor = nullptr; + + UNREALCLR_GET_ACTOR_TYPE(Type, Cast<, >(ChildActorComponent->GetChildActor()), actor); + + return actor; + } + + AActor* SetChildActor(UChildActorComponent* ChildActorComponent, ActorType Type) { + TSubclassOf type; + + UNREALCLR_GET_ACTOR_TYPE(Type, UNREALCLR_NONE, ::StaticClass(), type); + + ChildActorComponent->SetChildActorClass(type); + + return ChildActorComponent->GetChildActor(); + } + } + + namespace SpringArmComponent { + bool IsCollisionFixApplied(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->IsCollisionFixApplied(); + } + + bool GetDrawDebugLagMarkers(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bDrawDebugLagMarkers; + } + + bool GetCollisionTest(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bDoCollisionTest; + } + + bool GetCameraPositionLag(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bEnableCameraLag; + } + + bool GetCameraRotationLag(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bEnableCameraRotationLag; + } + + bool GetCameraLagSubstepping(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bUseCameraLagSubstepping; + } + + bool GetInheritPitch(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bInheritPitch; + } + + bool GetInheritRoll(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bInheritRoll; + } + + bool GetInheritYaw(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bInheritYaw; + } + + float GetCameraLagMaxDistance(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->CameraLagMaxDistance; + } + + float GetCameraLagMaxTimeStep(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->CameraLagMaxTimeStep; + } + + float GetCameraPositionLagSpeed(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->CameraLagSpeed; + } + + float GetCameraRotationLagSpeed(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->CameraRotationLagSpeed; + } + + CollisionChannel GetProbeChannel(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->ProbeChannel; + } + + float GetProbeSize(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->ProbeSize; + } + + void GetSocketOffset(USpringArmComponent* SpringArmComponent, Vector3* Value) { + *Value = SpringArmComponent->SocketOffset; + } + + float GetTargetArmLength(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->TargetArmLength; + } + + void GetTargetOffset(USpringArmComponent* SpringArmComponent, Vector3* Value) { + *Value = SpringArmComponent->TargetOffset; + } + + void GetUnfixedCameraPosition(USpringArmComponent* SpringArmComponent, Vector3* Value) { + *Value = SpringArmComponent->GetUnfixedCameraPosition(); + } + + void GetDesiredRotation(USpringArmComponent* SpringArmComponent, Quaternion* Value) { + *Value = SpringArmComponent->GetDesiredRotation().Quaternion(); + } + + void GetTargetRotation(USpringArmComponent* SpringArmComponent, Quaternion* Value) { + *Value = SpringArmComponent->GetTargetRotation().Quaternion(); + } + + bool GetUsePawnControlRotation(USpringArmComponent* SpringArmComponent) { + return SpringArmComponent->bUsePawnControlRotation; + } + + void SetDrawDebugLagMarkers(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bDrawDebugLagMarkers = Value; + } + + void SetCollisionTest(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bDoCollisionTest = Value; + } + + void SetCameraPositionLag(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bEnableCameraLag = Value; + } + + void SetCameraRotationLag(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bEnableCameraRotationLag = Value; + } + + void SetCameraLagSubstepping(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bUseCameraLagSubstepping = Value; + } + + void SetInheritPitch(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bInheritPitch = Value; + } + + void SetInheritRoll(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bInheritRoll = Value; + } + + void SetInheritYaw(USpringArmComponent* SpringArmComponent, bool Value) { + SpringArmComponent->bInheritYaw = Value; + } + + void SetCameraLagMaxDistance(USpringArmComponent* SpringArmComponent, float Value) { + SpringArmComponent->CameraLagMaxDistance = Value; + } + + void SetCameraLagMaxTimeStep(USpringArmComponent* SpringArmComponent, float Value) { + SpringArmComponent->CameraLagMaxTimeStep = Value; + } + + void SetCameraPositionLagSpeed(USpringArmComponent* SpringArmComponent, float Value) { + SpringArmComponent->CameraLagSpeed = Value; + } + + void SetCameraRotationLagSpeed(USpringArmComponent* SpringArmComponent, float Value) { + SpringArmComponent->CameraRotationLagSpeed = Value; + } + + void SetProbeChannel(USpringArmComponent* SpringArmComponent, CollisionChannel Value) { + SpringArmComponent->ProbeChannel = Value; + } + + void SetProbeSize(USpringArmComponent* SpringArmComponent, float Value) { + SpringArmComponent->ProbeSize = Value; + } + + void SetSocketOffset(USpringArmComponent* SpringArmComponent, const Vector3* Value) { + SpringArmComponent->SocketOffset = *Value; + } + + void SetTargetArmLength(USpringArmComponent* SpringArmComponent, float Value) { + SpringArmComponent->TargetArmLength = Value; + } + + void SetTargetOffset(USpringArmComponent* SpringArmComponent, const Vector3* Value) { + SpringArmComponent->TargetOffset = *Value; + } + + void SetUsePawnControlRotation(USpringArmComponent* SpringArmComponent, bool value) { + SpringArmComponent->bUsePawnControlRotation = value; + } + } + + namespace PostProcessComponent { + bool GetEnabled(UPostProcessComponent* PostProcessComponent) { + return PostProcessComponent->bEnabled; + } + + float GetBlendRadius(UPostProcessComponent* PostProcessComponent) { + return PostProcessComponent->BlendRadius; + } + + float GetBlendWeight(UPostProcessComponent* PostProcessComponent) { + return PostProcessComponent->BlendWeight; + } + + bool GetUnbound(UPostProcessComponent* PostProcessComponent) { + return PostProcessComponent->bUnbound; + } + + float GetPriority(UPostProcessComponent* PostProcessComponent) { + return PostProcessComponent->Priority; + } + + void SetEnabled(UPostProcessComponent* PostProcessComponent, bool Value) { + PostProcessComponent->bEnabled = Value; + } + + void SetBlendRadius(UPostProcessComponent* PostProcessComponent, float Value) { + PostProcessComponent->BlendRadius = Value; + } + + void SetBlendWeight(UPostProcessComponent* PostProcessComponent, float Value) { + PostProcessComponent->BlendWeight = Value; + } + + void SetUnbound(UPostProcessComponent* PostProcessComponent, bool Value) { + PostProcessComponent->bUnbound = Value; + } + + void SetPriority(UPostProcessComponent* PostProcessComponent, float Priority) { + PostProcessComponent->Priority = Priority; + } + } + + namespace PrimitiveComponent { + bool IsGravityEnabled(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->IsGravityEnabled(); + } + + bool IsOverlappingComponent(UPrimitiveComponent* PrimitiveComponent, UPrimitiveComponent* Other) { + return PrimitiveComponent->IsOverlappingComponent(Other); + } + + void ForEachOverlappingComponent(UPrimitiveComponent* PrimitiveComponent, UPrimitiveComponent** Array, int32* Elements) { + static TArray overlappingComponents; + + overlappingComponents.Reset(); + + PrimitiveComponent->GetOverlappingComponents(overlappingComponents); + + int32 elements = overlappingComponents.Num(); + + if (elements > 0) { + *Array = reinterpret_cast(overlappingComponents.GetData()); + *Elements = elements; + } + } + + void AddAngularImpulseInDegrees(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const char* BoneName, bool VelocityChange) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->AddAngularImpulseInDegrees(*Impulse, boneName, VelocityChange); + } + + void AddAngularImpulseInRadians(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const char* BoneName, bool VelocityChange) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->AddAngularImpulseInRadians(*Impulse, boneName, VelocityChange); + } + + void AddForce(UPrimitiveComponent* PrimitiveComponent, const Vector3* Force, const char* BoneName, bool AccelerationChange) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->AddForce(*Force, boneName, AccelerationChange); + } + + void AddForceAtLocation(UPrimitiveComponent* PrimitiveComponent, const Vector3* Force, const Vector3* Location, const char* BoneName, bool LocalSpace) { + UNREALCLR_SET_BONE_NAME(BoneName); + + if (!LocalSpace) + PrimitiveComponent->AddForceAtLocation(*Force, *Location, boneName); + else + PrimitiveComponent->AddForceAtLocationLocal(*Force, *Location, boneName); + } + + void AddImpulse(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const char* BoneName, bool VelocityChange) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->AddImpulse(*Impulse, boneName, VelocityChange); + } + + void AddImpulseAtLocation(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const Vector3* Location, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->AddImpulseAtLocation(*Impulse, *Location, boneName); + } + + void AddRadialForce(UPrimitiveComponent* PrimitiveComponent, const Vector3* Origin, float Radius, float Strength, bool LinearFalloff, bool AccelerationChange) { + PrimitiveComponent->AddRadialForce(*Origin, Radius, Strength, LinearFalloff ? ERadialImpulseFalloff::RIF_Linear : ERadialImpulseFalloff::RIF_Constant, AccelerationChange); + } + + void AddRadialImpulse(UPrimitiveComponent* PrimitiveComponent, const Vector3* Origin, float Radius, float Strength, bool LinearFalloff, bool AccelerationChange) { + PrimitiveComponent->AddRadialImpulse(*Origin, Radius, Strength, LinearFalloff ? ERadialImpulseFalloff::RIF_Linear : ERadialImpulseFalloff::RIF_Constant, AccelerationChange); + } + + void AddTorqueInDegrees(UPrimitiveComponent* PrimitiveComponent, const Vector3* Torque, const char* BoneName, bool AccelerationChange) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->AddTorqueInDegrees(*Torque, boneName, AccelerationChange); + } + + void AddTorqueInRadians(UPrimitiveComponent* PrimitiveComponent, const Vector3* Torque, const char* BoneName, bool AccelerationChange) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->AddTorqueInRadians(*Torque, boneName, AccelerationChange); + } + + float GetMass(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->GetMass(); + } + + void GetPhysicsLinearVelocity(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->GetPhysicsLinearVelocity(boneName); + } + + void GetPhysicsLinearVelocityAtPoint(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const Vector3* Point, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->GetPhysicsLinearVelocityAtPoint(*Point, boneName); + } + + void GetPhysicsAngularVelocityInDegrees(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->GetPhysicsAngularVelocityInDegrees(boneName); + } + + void GetPhysicsAngularVelocityInRadians(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->GetPhysicsAngularVelocityInRadians(boneName); + } + + bool GetCastShadow(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->CastShadow; + } + + bool GetOnlyOwnerSee(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->bOnlyOwnerSee; + } + + bool GetOwnerNoSee(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->bOwnerNoSee; + } + + bool GetIgnoreRadialForce(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->bIgnoreRadialForce; + } + + bool GetIgnoreRadialImpulse(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->bIgnoreRadialImpulse; + } + + UMaterialInstanceDynamic* GetMaterial(UPrimitiveComponent* PrimitiveComponent, int32 ElementIndex) { + return Cast(PrimitiveComponent->GetMaterial(ElementIndex)); + } + + int32 GetMaterialsNumber(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->GetNumMaterials(); + } + + float GetDistanceToCollision(UPrimitiveComponent* PrimitiveComponent, const Vector3* Point, Vector3* ClosestPointOnCollision) { + FVector closestPointOnCollision; + + float result = PrimitiveComponent->GetDistanceToCollision(*Point, closestPointOnCollision); + + *ClosestPointOnCollision = closestPointOnCollision; + + return result; + } + + bool GetSquaredDistanceToCollision(UPrimitiveComponent* PrimitiveComponent, const Vector3* Point, float* SquaredDistance, Vector3* ClosestPointOnCollision) { + FVector closestPointOnCollision; + float squaredDistance = 0.0f; + + bool result = PrimitiveComponent->GetSquaredDistanceToCollision(*Point, squaredDistance, closestPointOnCollision); + + *SquaredDistance = squaredDistance; + *ClosestPointOnCollision = closestPointOnCollision; + + return result; + } + + float GetAngularDamping(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->GetAngularDamping(); + } + + float GetLinearDamping(UPrimitiveComponent* PrimitiveComponent) { + return PrimitiveComponent->GetLinearDamping(); + } + + void SetGenerateOverlapEvents(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->SetGenerateOverlapEvents(Value); + } + + void SetGenerateHitEvents(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->SetNotifyRigidBodyCollision(Value); + } + + void SetMass(UPrimitiveComponent* PrimitiveComponent, float Mass, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->SetMassOverrideInKg(boneName, Mass); + } + + void SetCenterOfMass(UPrimitiveComponent* PrimitiveComponent, const Vector3* Offset, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->SetCenterOfMass(*Offset, boneName); + } + + void SetPhysicsLinearVelocity(UPrimitiveComponent* PrimitiveComponent, const Vector3* Velocity, bool AddToCurrent, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->SetPhysicsLinearVelocity(*Velocity, AddToCurrent, boneName); + } + + void SetPhysicsAngularVelocityInDegrees(UPrimitiveComponent* PrimitiveComponent, const Vector3* AngularVelocity, bool AddToCurrent, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->SetPhysicsAngularVelocityInDegrees(*AngularVelocity, AddToCurrent, boneName); + } + + void SetPhysicsAngularVelocityInRadians(UPrimitiveComponent* PrimitiveComponent, const Vector3* AngularVelocity, bool AddToCurrent, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->SetPhysicsAngularVelocityInRadians(*AngularVelocity, AddToCurrent, boneName); + } + + void SetPhysicsMaxAngularVelocityInDegrees(UPrimitiveComponent* PrimitiveComponent, float MaxAngularVelocity, bool AddToCurrent, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->SetPhysicsMaxAngularVelocityInDegrees(MaxAngularVelocity, AddToCurrent, boneName); + } + + void SetPhysicsMaxAngularVelocityInRadians(UPrimitiveComponent* PrimitiveComponent, float MaxAngularVelocity, bool AddToCurrent, const char* BoneName) { + UNREALCLR_SET_BONE_NAME(BoneName); + + PrimitiveComponent->SetPhysicsMaxAngularVelocityInRadians(MaxAngularVelocity, AddToCurrent, boneName); + } + + void SetCastShadow(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->CastShadow = Value; + } + + void SetOnlyOwnerSee(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->bOnlyOwnerSee = Value; + } + + void SetOwnerNoSee(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->bOwnerNoSee = Value; + } + + void SetIgnoreRadialForce(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->bIgnoreRadialForce = Value; + } + + void SetIgnoreRadialImpulse(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->bIgnoreRadialImpulse = Value; + } + + void SetMaterial(UPrimitiveComponent* PrimitiveComponent, int32 ElementIndex, UMaterialInterface* Material) { + PrimitiveComponent->SetMaterial(ElementIndex, Material); + } + + void SetSimulatePhysics(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->SetSimulatePhysics(Value); + } + + void SetAngularDamping(UPrimitiveComponent* PrimitiveComponent, float Value) { + PrimitiveComponent->SetAngularDamping(Value); + } + + void SetLinearDamping(UPrimitiveComponent* PrimitiveComponent, float Value) { + PrimitiveComponent->SetLinearDamping(Value); + } + + void SetEnableGravity(UPrimitiveComponent* PrimitiveComponent, bool Value) { + PrimitiveComponent->SetEnableGravity(Value); + } + + void SetCollisionMode(UPrimitiveComponent* PrimitiveComponent, CollisionMode Mode) { + PrimitiveComponent->SetCollisionEnabled(Mode); + } + + void SetCollisionChannel(UPrimitiveComponent* PrimitiveComponent, CollisionChannel Channel) { + PrimitiveComponent->SetCollisionObjectType(Channel); + } + + void SetCollisionProfileName(UPrimitiveComponent* PrimitiveComponent, const char* ProfileName, bool UpdateOverlaps) { + PrimitiveComponent->SetCollisionProfileName(FName(ANSI_TO_TCHAR(ProfileName)), UpdateOverlaps); + } + + void SetCollisionResponseToChannel(UPrimitiveComponent* PrimitiveComponent, CollisionChannel Channel, CollisionResponse Response) { + PrimitiveComponent->SetCollisionResponseToChannel(Channel, Response); + } + + void SetCollisionResponseToAllChannels(UPrimitiveComponent* PrimitiveComponent, CollisionResponse Response) { + PrimitiveComponent->SetCollisionResponseToAllChannels(Response); + } + + void SetIgnoreActorWhenMoving(UPrimitiveComponent* PrimitiveComponent, AActor* Actor, bool Value) { + PrimitiveComponent->IgnoreActorWhenMoving(Actor, Value); + } + + void SetIgnoreComponentWhenMoving(UPrimitiveComponent* PrimitiveComponent, UPrimitiveComponent* Component, bool Value) { + PrimitiveComponent->IgnoreComponentWhenMoving(Component, Value); + } + + void ClearMoveIgnoreActors(UPrimitiveComponent* PrimitiveComponent) { + PrimitiveComponent->ClearMoveIgnoreActors(); + } + + void ClearMoveIgnoreComponents(UPrimitiveComponent* PrimitiveComponent) { + PrimitiveComponent->ClearMoveIgnoreComponents(); + } + + UMaterialInstanceDynamic* CreateAndSetMaterialInstanceDynamic(UPrimitiveComponent* PrimitiveComponent, int32 ElementIndex) { + return PrimitiveComponent->CreateAndSetMaterialInstanceDynamic(ElementIndex); + } + + void RegisterEvent(UPrimitiveComponent* PrimitiveComponent, ComponentEventType Type) { + UNREALCLR_SET_COMPONENT_EVENT(Type, !, AddDynamic); + } + + void UnregisterEvent(UPrimitiveComponent* PrimitiveComponent, ComponentEventType Type) { + UNREALCLR_SET_COMPONENT_EVENT(Type, UNREALCLR_NONE, RemoveDynamic); + } + } + + namespace ShapeComponent { + bool GetDynamicObstacle(UShapeComponent* ShapeComponent) { + return ShapeComponent->bDynamicObstacle; + } + + int32 GetShapeColor(UShapeComponent* ShapeComponent) { + return UNREALCLR_COLOR_TO_INTEGER(ShapeComponent->ShapeColor); + } + + void SetDynamicObstacle(UShapeComponent* ShapeComponent, bool Value) { + ShapeComponent->bDynamicObstacle = Value; + } + + void SetShapeColor(UShapeComponent* ShapeComponent, Color Value) { + ShapeComponent->ShapeColor = Value; + } + } + + namespace BoxComponent { + void GetScaledBoxExtent(UBoxComponent* BoxComponent, Vector3* Value) { + *Value = BoxComponent->GetScaledBoxExtent(); + } + + void GetUnscaledBoxExtent(UBoxComponent* BoxComponent, Vector3* Value) { + *Value = BoxComponent->GetUnscaledBoxExtent(); + } + + void SetBoxExtent(UBoxComponent* BoxComponent, const Vector3* Extent, bool UpdateOverlaps) { + BoxComponent->SetBoxExtent(*Extent, UpdateOverlaps); + } + + void InitBoxExtent(UBoxComponent* BoxComponent, const Vector3* Extent) { + BoxComponent->InitBoxExtent(*Extent); + } + } + + namespace SphereComponent { + float GetScaledSphereRadius(USphereComponent* SphereComponent) { + return SphereComponent->GetScaledSphereRadius(); + } + + float GetUnscaledSphereRadius(USphereComponent* SphereComponent) { + return SphereComponent->GetUnscaledSphereRadius(); + } + + float GetShapeScale(USphereComponent* SphereComponent) { + return SphereComponent->GetShapeScale(); + } + + void SetSphereRadius(USphereComponent* SphereComponent, float SphereRadius, bool UpdateOverlaps) { + SphereComponent->SetSphereRadius(SphereRadius, UpdateOverlaps); + } + + void InitSphereRadius(USphereComponent* SphereComponent, float SphereRadius) { + SphereComponent->InitSphereRadius(SphereRadius); + } + } + + namespace CapsuleComponent { + float GetScaledCapsuleRadius(UCapsuleComponent* CapsuleComponent) { + return CapsuleComponent->GetScaledCapsuleRadius(); + } + + float GetUnscaledCapsuleRadius(UCapsuleComponent* CapsuleComponent) { + return CapsuleComponent->GetUnscaledCapsuleRadius(); + } + + float GetShapeScale(UCapsuleComponent* CapsuleComponent) { + return CapsuleComponent->GetShapeScale(); + } + + void GetScaledCapsuleSize(UCapsuleComponent* CapsuleComponent, float* Radius, float* HalfHeight) { + CapsuleComponent->GetScaledCapsuleSize(*Radius, *HalfHeight); + } + + void GetUnscaledCapsuleSize(UCapsuleComponent* CapsuleComponent, float* Radius, float* HalfHeight) { + CapsuleComponent->GetUnscaledCapsuleSize(*Radius, *HalfHeight); + } + + void SetCapsuleRadius(UCapsuleComponent* CapsuleComponent, float Radius, bool UpdateOverlaps) { + CapsuleComponent->SetCapsuleRadius(Radius, UpdateOverlaps); + } + + void SetCapsuleSize(UCapsuleComponent* CapsuleComponent, float Radius, float HalfHeight, bool UpdateOverlaps) { + CapsuleComponent->SetCapsuleSize(Radius, HalfHeight, UpdateOverlaps); + } + + void InitCapsuleSize(UCapsuleComponent* CapsuleComponent, float Radius, float HalfHeight) { + CapsuleComponent->InitCapsuleSize(Radius, HalfHeight); + } + } + + namespace MeshComponent { + bool IsValidMaterialSlotName(UMeshComponent* MeshComponent, const char* MaterialSlotName) { + return MeshComponent->IsMaterialSlotNameValid(FName(ANSI_TO_TCHAR(MaterialSlotName))); + } + + int32 GetMaterialIndex(UMeshComponent* MeshComponent, const char* MaterialSlotName) { + return MeshComponent->GetMaterialIndex(FName(ANSI_TO_TCHAR(MaterialSlotName))); + } + } + + namespace TextRenderComponent { + void SetFont(UTextRenderComponent* TextRenderComponent, UFont* Value) { + TextRenderComponent->SetFont(Value); + } + + void SetText(UTextRenderComponent* TextRenderComponent, const char* Value) { + TextRenderComponent->SetText(FText::FromString(FString(ANSI_TO_TCHAR(Value)))); + } + + void SetTextMaterial(UTextRenderComponent* TextRenderComponent, UMaterialInterface* Material) { + TextRenderComponent->SetTextMaterial(Material); + } + + void SetTextRenderColor(UTextRenderComponent* TextRenderComponent, Color Value) { + TextRenderComponent->SetTextRenderColor(Value); + } + + void SetHorizontalAlignment(UTextRenderComponent* TextRenderComponent, HorizontalTextAligment Value) { + TextRenderComponent->SetHorizontalAlignment(Value); + } + + void SetHorizontalSpacingAdjustment(UTextRenderComponent* TextRenderComponent, float Value) { + TextRenderComponent->SetHorizSpacingAdjust(Value); + } + + void SetVerticalAlignment(UTextRenderComponent* TextRenderComponent, VerticalTextAligment Value) { + TextRenderComponent->SetVerticalAlignment(Value); + } + + void SetVerticalSpacingAdjustment(UTextRenderComponent* TextRenderComponent, float Value) { + TextRenderComponent->SetVertSpacingAdjust(Value); + } + + void SetScale(UTextRenderComponent* TextRenderComponent, const Vector2* Value) { + TextRenderComponent->SetXScale(Value->X); + TextRenderComponent->SetYScale(Value->Y); + } + + void SetWorldSize(UTextRenderComponent* TextRenderComponent, float Value) { + TextRenderComponent->SetWorldSize(Value); + } + } + + namespace LightComponentBase { + float GetIntensity(ULightComponentBase* LightComponentBase) { + return LightComponentBase->Intensity; + } + + bool GetCastShadows(ULightComponentBase* LightComponentBase) { + return LightComponentBase->CastShadows; + } + + void SetCastShadows(ULightComponentBase* LightComponentBase, bool Value) { + LightComponentBase->SetCastShadows(Value); + } + } + + namespace LightComponent { + void SetIntensity(ULightComponent* LightComponent, float Value) { + LightComponent->SetIntensity(Value); + } + + void SetLightColor(ULightComponent* LightComponent, const LinearColor* Value) { + LightComponent->SetLightColor(*Value); + } + } + + namespace MotionControllerComponent { + bool IsTracked(UMotionControllerComponent* MotionControllerComponent) { + return MotionControllerComponent->IsTracked(); + } + + bool GetDisplayDeviceModel(UMotionControllerComponent* MotionControllerComponent) { + return MotionControllerComponent->bDisplayDeviceModel; + } + + bool GetDisableLowLatencyUpdate(UMotionControllerComponent* MotionControllerComponent) { + return MotionControllerComponent->bDisableLowLatencyUpdate; + } + + ControllerHand GetTrackingSource(UMotionControllerComponent* MotionControllerComponent) { + return MotionControllerComponent->GetTrackingSource(); + } + + void SetDisplayDeviceModel(UMotionControllerComponent* MotionControllerComponent, bool Value) { + MotionControllerComponent->bDisplayDeviceModel = true; + } + + void SetDisableLowLatencyUpdate(UMotionControllerComponent* MotionControllerComponent, bool Value) { + MotionControllerComponent->bDisableLowLatencyUpdate = Value; + } + + void SetTrackingSource(UMotionControllerComponent* MotionControllerComponent, ControllerHand Value) { + MotionControllerComponent->SetTrackingSource(Value); + } + + void SetTrackingMotionSource(UMotionControllerComponent* MotionControllerComponent, const char* Source) { + MotionControllerComponent->SetTrackingMotionSource(FName(ANSI_TO_TCHAR(Source))); + } + + void SetAssociatedPlayerIndex(UMotionControllerComponent* MotionControllerComponent, int32 PlayerIndex) { + MotionControllerComponent->SetAssociatedPlayerIndex(PlayerIndex); + } + + void SetCustomDisplayMesh(UMotionControllerComponent* MotionControllerComponent, UStaticMesh* StaticMesh) { + MotionControllerComponent->SetCustomDisplayMesh(StaticMesh); + } + + void SetDisplayModelSource(UMotionControllerComponent* MotionControllerComponent, const char* Source) { + MotionControllerComponent->SetDisplayModelSource(FName(ANSI_TO_TCHAR(Source))); + } + } + + namespace StaticMeshComponent { + void GetLocalBounds(UStaticMeshComponent* StaticMeshComponent, Vector3* Min, Vector3* Max) { + FVector min, max; + + StaticMeshComponent->GetLocalBounds(min, max); + + *Min = min; + *Max = max; + } + + UStaticMesh* GetStaticMesh(UStaticMeshComponent* StaticMeshComponent) { + return StaticMeshComponent->GetStaticMesh(); + } + + bool SetStaticMesh(UStaticMeshComponent* StaticMeshComponent, UStaticMesh* StaticMesh) { + return StaticMeshComponent->SetStaticMesh(StaticMesh); + } + } + + namespace InstancedStaticMeshComponent { + int32 GetInstanceCount(UInstancedStaticMeshComponent* InstancedStaticMeshComponent) { + return InstancedStaticMeshComponent->GetInstanceCount(); + } + + bool GetInstanceTransform(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 InstanceIndex, Transform* Value, bool WorldSpace) { + FTransform transform; + + bool result = InstancedStaticMeshComponent->GetInstanceTransform(InstanceIndex, transform, WorldSpace); + + if (result) + *Value = transform; + + return result; + } + + void AddInstance(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, const Transform* InstanceTransform) { + InstancedStaticMeshComponent->AddInstance(*InstanceTransform); + } + + void AddInstances(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 EndInstanceIndex, const Transform InstanceTransforms[]) { + static TArray instanceTransforms; + + instanceTransforms.Reserve(EndInstanceIndex + 1); + instanceTransforms.Reset(); + + for (int32 i = 0; i < EndInstanceIndex; i++) { + instanceTransforms.Add(InstanceTransforms[i]); + } + + InstancedStaticMeshComponent->AddInstances(instanceTransforms, false); + } + + bool UpdateInstanceTransform(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 InstanceIndex, const Transform* InstanceTransform, bool WorldSpace, bool MarkRenderStateDirty, bool Teleport) { + return InstancedStaticMeshComponent->UpdateInstanceTransform(InstanceIndex, *InstanceTransform, WorldSpace, MarkRenderStateDirty, Teleport); + } + + bool BatchUpdateInstanceTransforms(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 StartInstanceIndex, int32 EndInstanceIndex, const Transform InstanceTransforms[], bool WorldSpace, bool MarkRenderStateDirty, bool Teleport) { + static TArray instanceTransforms; + + instanceTransforms.Reserve(EndInstanceIndex + 1); + instanceTransforms.Reset(); + + for (int32 i = 0; i < EndInstanceIndex; i++) { + instanceTransforms.Add(InstanceTransforms[i]); + } + + return InstancedStaticMeshComponent->BatchUpdateInstancesTransforms(StartInstanceIndex, instanceTransforms, WorldSpace, MarkRenderStateDirty, Teleport); + } + + bool RemoveInstance(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 InstanceIndex) { + return InstancedStaticMeshComponent->RemoveInstance(InstanceIndex); + } + + void ClearInstances(UInstancedStaticMeshComponent* InstancedStaticMeshComponent) { + InstancedStaticMeshComponent->ClearInstances(); + } + } + + namespace HierarchicalInstancedStaticMeshComponent { + bool GetDisableCollision(UHierarchicalInstancedStaticMeshComponent* HierarchicalInstancedStaticMeshComponent) { + return HierarchicalInstancedStaticMeshComponent->bDisableCollision; + } + + void SetDisableCollision(UHierarchicalInstancedStaticMeshComponent* HierarchicalInstancedStaticMeshComponent, bool Value) { + HierarchicalInstancedStaticMeshComponent->bDisableCollision = Value; + } + } + + namespace SkinnedMeshComponent { + int32 GetBonesNumber(USkinnedMeshComponent* SkinnedMeshComponent) { + return SkinnedMeshComponent->GetNumBones(); + } + + int32 GetBoneIndex(USkinnedMeshComponent* SkinnedMeshComponent, const char* BoneName) { + return SkinnedMeshComponent->GetBoneIndex(FName(ANSI_TO_TCHAR(BoneName))); + } + + void GetBoneName(USkinnedMeshComponent* SkinnedMeshComponent, int32 BoneIndex, char* BoneName) { + const char* boneName = TCHAR_TO_ANSI(*SkinnedMeshComponent->GetBoneName(BoneIndex).ToString()); + + UnrealCLR::Utility::Strcpy(BoneName, boneName, UnrealCLR::Utility::Strlen(boneName)); + } + + void GetBoneTransform(USkinnedMeshComponent* SkinnedMeshComponent, int32 BoneIndex, Transform* Value) { + *Value = SkinnedMeshComponent->GetBoneTransform(BoneIndex); + } + + void SetSkeletalMesh(USkinnedMeshComponent* SkinnedMeshComponent, USkeletalMesh* SkeletalMesh, bool ReinitializePose) { + SkinnedMeshComponent->SetSkeletalMesh(SkeletalMesh, ReinitializePose); + } + } + + namespace SkeletalMeshComponent { + bool IsPlaying(USkeletalMeshComponent* SkeletalMeshComponent) { + return SkeletalMeshComponent->IsPlaying(); + } + + UAnimInstance* GetAnimationInstance(USkeletalMeshComponent* SkeletalMeshComponent) { + return SkeletalMeshComponent->GetAnimInstance(); + } + + void SetAnimation(USkeletalMeshComponent* SkeletalMeshComponent, UAnimationAsset* Asset) { + SkeletalMeshComponent->SetAnimation(Asset); + } + + void SetAnimationMode(USkeletalMeshComponent* SkeletalMeshComponent, AnimationMode Mode) { + SkeletalMeshComponent->SetAnimationMode(Mode); + } + + void SetAnimationBlueprint(USkeletalMeshComponent* SkeletalMeshComponent, UObject* Blueprint) { + #if !WITH_EDITOR + SkeletalMeshComponent->SetAnimInstanceClass(Cast(Blueprint)); + #else + SkeletalMeshComponent->SetAnimInstanceClass(Cast(Blueprint)->GeneratedClass); + #endif + } + + void Play(USkeletalMeshComponent* SkeletalMeshComponent, bool Loop) { + SkeletalMeshComponent->Play(Loop); + } + + void PlayAnimation(USkeletalMeshComponent* SkeletalMeshComponent, UAnimationAsset* Asset, bool Loop) { + SkeletalMeshComponent->PlayAnimation(Asset, Loop); + } + + void Stop(USkeletalMeshComponent* SkeletalMeshComponent) { + SkeletalMeshComponent->Stop(); + } + } + + namespace SplineComponent { + bool IsClosedLoop(USplineComponent* SplineComponent) { + return SplineComponent->IsClosedLoop(); + } + + float GetDuration(USplineComponent* SplineComponent) { + return SplineComponent->Duration; + } + + SplinePointType GetSplinePointType(USplineComponent* SplineComponent, int32 PointIndex) { + return SplineComponent->GetSplinePointType(PointIndex); + } + + int32 GetSplinePointsNumber(USplineComponent* SplineComponent) { + return SplineComponent->GetNumberOfSplinePoints(); + } + + int32 GetSplineSegmentsNumber(USplineComponent* SplineComponent) { + return SplineComponent->GetNumberOfSplineSegments(); + } + + void GetTangentAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetTangentAtDistanceAlongSpline(Distance, CoordinateSpace); + } + + void GetTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetTangentAtSplinePoint(PointIndex, CoordinateSpace); + } + + void GetTangentAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value) { + *Value = SplineComponent->GetTangentAtTime(Time, CoordinateSpace, UseConstantVelocity); + } + + void GetTransformAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Transform* Value) { + *Value = SplineComponent->GetTransformAtDistanceAlongSpline(Distance, CoordinateSpace); + } + + void GetTransformAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, bool UseScale, Transform* Value) { + *Value = SplineComponent->GetTransformAtSplinePoint(PointIndex, CoordinateSpace, UseScale); + } + + void GetArriveTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetArriveTangentAtSplinePoint(PointIndex, CoordinateSpace); + } + + void GetDefaultUpVector(USplineComponent* SplineComponent, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetDefaultUpVector(CoordinateSpace); + } + + void GetDirectionAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetDirectionAtDistanceAlongSpline(Distance, CoordinateSpace); + } + + void GetDirectionAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetDirectionAtSplinePoint(PointIndex, CoordinateSpace); + } + + void GetDirectionAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value) { + *Value = SplineComponent->GetDirectionAtTime(Time, CoordinateSpace, UseConstantVelocity); + } + + float GetDistanceAlongSplineAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex) { + return SplineComponent->GetDistanceAlongSplineAtSplinePoint(PointIndex); + } + + void GetLeaveTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetLeaveTangentAtSplinePoint(PointIndex, CoordinateSpace); + } + + void GetLocationAndTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Location, Vector3* Tangent) { + FVector location, tangent; + + SplineComponent->GetLocationAndTangentAtSplinePoint(PointIndex, location, tangent, CoordinateSpace); + + *Location = location; + *Tangent = tangent; + } + + void GetLocationAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetLocationAtDistanceAlongSpline(Distance, CoordinateSpace); + } + + void GetLocationAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetLocationAtSplinePoint(PointIndex, CoordinateSpace); + } + + void GetLocationAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetLocationAtTime(Time, CoordinateSpace); + } + + void GetRightVectorAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetRightVectorAtDistanceAlongSpline(Distance, CoordinateSpace); + } + + void GetRightVectorAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetRightVectorAtSplinePoint(PointIndex, CoordinateSpace); + } + + void GetRightVectorAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value) { + *Value = SplineComponent->GetRightVectorAtTime(Time, CoordinateSpace, UseConstantVelocity); + } + + float GetRollAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace) { + return SplineComponent->GetRollAtDistanceAlongSpline(Distance, CoordinateSpace); + } + + float GetRollAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace) { + return SplineComponent->GetRollAtSplinePoint(PointIndex, CoordinateSpace); + } + + float GetRollAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity) { + return SplineComponent->GetRollAtTime(Time, CoordinateSpace, UseConstantVelocity); + } + + void GetRotationAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Quaternion* Value) { + *Value = SplineComponent->GetRotationAtDistanceAlongSpline(Distance, CoordinateSpace).Quaternion(); + } + + void GetRotationAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Quaternion* Value) { + *Value = SplineComponent->GetRotationAtSplinePoint(PointIndex, CoordinateSpace).Quaternion(); + } + + void GetRotationAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Quaternion* Value) { + *Value = SplineComponent->GetRotationAtTime(Time, CoordinateSpace, UseConstantVelocity).Quaternion(); + } + + void GetScaleAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, Vector3* Value) { + *Value = SplineComponent->GetScaleAtDistanceAlongSpline(Distance); + } + + void GetScaleAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, Vector3* Value) { + *Value = SplineComponent->GetScaleAtSplinePoint(PointIndex); + } + + void GetScaleAtTime(USplineComponent* SplineComponent, float Time, bool UseConstantVelocity, Vector3* Value) { + *Value = SplineComponent->GetScaleAtTime(Time, UseConstantVelocity); + } + + float GetSplineLength(USplineComponent* SplineComponent) { + return SplineComponent->GetSplineLength(); + } + + void GetTransformAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, bool UseScale, Transform* Value) { + *Value = SplineComponent->GetTransformAtTime(Time, CoordinateSpace, UseConstantVelocity, UseScale); + } + + void GetUpVectorAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetUpVectorAtDistanceAlongSpline(Distance, CoordinateSpace); + } + + void GetUpVectorAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->GetUpVectorAtSplinePoint(PointIndex, CoordinateSpace); + } + + void GetUpVectorAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value) { + *Value = SplineComponent->GetUpVectorAtTime(Time, CoordinateSpace, UseConstantVelocity); + } + + void SetDuration(USplineComponent* SplineComponent, float Value) { + SplineComponent->Duration = Value; + } + + void SetSplinePointType(USplineComponent* SplineComponent, int32 PointIndex, SplinePointType Type, bool UpdateSpline) { + SplineComponent->SetSplinePointType(PointIndex, Type, UpdateSpline); + } + + void SetClosedLoop(USplineComponent* SplineComponent, bool Value, bool UpdateSpline) { + SplineComponent->SetClosedLoop(Value, UpdateSpline); + } + + void SetDefaultUpVector(USplineComponent* SplineComponent, const Vector3* Value, SplineCoordinateSpace CoordinateSpace) { + SplineComponent->SetDefaultUpVector(*Value, CoordinateSpace); + } + + void SetLocationAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* Value, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline) { + SplineComponent->SetLocationAtSplinePoint(PointIndex, *Value, CoordinateSpace, UpdateSpline); + } + + void SetTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* Tangent, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline) { + SplineComponent->SetTangentAtSplinePoint(PointIndex, *Tangent, CoordinateSpace, UpdateSpline); + } + + void SetTangentsAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* ArriveTangent, const Vector3* LeaveTangent, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline) { + SplineComponent->SetTangentsAtSplinePoint(PointIndex, *ArriveTangent, *LeaveTangent, CoordinateSpace, UpdateSpline); + } + + void SetUpVectorAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* UpVector, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline) { + SplineComponent->SetUpVectorAtSplinePoint(PointIndex, *UpVector, CoordinateSpace, UpdateSpline); + } + + void AddSplinePoint(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline) { + SplineComponent->AddSplinePoint(*Location, CoordinateSpace, UpdateSpline); + } + + void AddSplinePointAtIndex(USplineComponent* SplineComponent, const Vector3* Location, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline) { + SplineComponent->AddSplinePointAtIndex(*Location, PointIndex, CoordinateSpace, UpdateSpline); + } + + void ClearSplinePoints(USplineComponent* SplineComponent, bool UpdateSpline) { + SplineComponent->ClearSplinePoints(UpdateSpline); + } + + void FindDirectionClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->FindDirectionClosestToWorldLocation(*Location, CoordinateSpace); + } + + void FindLocationClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->FindLocationClosestToWorldLocation(*Location, CoordinateSpace); + } + + void FindUpVectorClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->FindUpVectorClosestToWorldLocation(*Location, CoordinateSpace); + } + + void FindRightVectorClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->FindRightVectorClosestToWorldLocation(*Location, CoordinateSpace); + } + + float FindRollClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace) { + return SplineComponent->FindRollClosestToWorldLocation(*Location, CoordinateSpace); + } + + void FindScaleClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, Vector3* Value) { + *Value = SplineComponent->FindScaleClosestToWorldLocation(*Location); + } + + void FindTangentClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value) { + *Value = SplineComponent->FindTangentClosestToWorldLocation(*Location, CoordinateSpace); + } + + void FindTransformClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, bool UseScale, Transform* Value) { + *Value = SplineComponent->FindTransformClosestToWorldLocation(*Location, CoordinateSpace, UseScale); + } + + void RemoveSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, bool UpdateSpline) { + SplineComponent->RemoveSplinePoint(PointIndex, UpdateSpline); + } + + void UpdateSpline(USplineComponent* SplineComponent) { + SplineComponent->UpdateSpline(); + } + } + + namespace RadialForceComponent { + bool GetIgnoreOwningActor(URadialForceComponent* RadialForceComponent) { + return RadialForceComponent->bIgnoreOwningActor; + } + + bool GetImpulseVelocityChange(URadialForceComponent* RadialForceComponent) { + return RadialForceComponent->bImpulseVelChange; + } + + bool GetLinearFalloff(URadialForceComponent* RadialForceComponent) { + return RadialForceComponent->Falloff == ERadialImpulseFalloff::RIF_Linear; + } + + float GetForceStrength(URadialForceComponent* RadialForceComponent) { + return RadialForceComponent->ForceStrength; + } + + float GetImpulseStrength(URadialForceComponent* RadialForceComponent) { + return RadialForceComponent->ImpulseStrength; + } + + float GetRadius(URadialForceComponent* RadialForceComponent) { + return RadialForceComponent->Radius; + } + + void SetIgnoreOwningActor(URadialForceComponent* RadialForceComponent, bool Value) { + RadialForceComponent->bIgnoreOwningActor = Value; + } + + void SetImpulseVelocityChange(URadialForceComponent* RadialForceComponent, bool Value) { + RadialForceComponent->bImpulseVelChange = Value; + } + + void SetLinearFalloff(URadialForceComponent* RadialForceComponent, bool Value) { + RadialForceComponent->Falloff = Value ? ERadialImpulseFalloff::RIF_Linear : ERadialImpulseFalloff::RIF_Constant; + } + + void SetForceStrength(URadialForceComponent* RadialForceComponent, float Value) { + RadialForceComponent->ForceStrength = Value; + } + + void SetImpulseStrength(URadialForceComponent* RadialForceComponent, float Value) { + RadialForceComponent->ImpulseStrength = Value; + } + + void SetRadius(URadialForceComponent* RadialForceComponent, float Value) { + RadialForceComponent->Radius = Value; + } + + void AddCollisionChannelToAffect(URadialForceComponent* RadialForceComponent, CollisionChannel Channel) { + RadialForceComponent->AddCollisionChannelToAffect(Channel); + } + + void FireImpulse(URadialForceComponent* RadialForceComponent) { + RadialForceComponent->FireImpulse(); + } + } + + namespace MaterialInterface { + bool IsTwoSided(UMaterialInterface* MaterialInterface) { + return MaterialInterface->IsTwoSided(); + } + } + + namespace Material { + bool IsDefaultMaterial(UMaterial* Material) { + return Material->IsDefaultMaterial(); + } + } + + namespace MaterialInstance { + bool IsChildOf(UMaterialInstance* MaterialInstance, UMaterialInterface* Material) { + return MaterialInstance->IsChildOf(Material); + } + + UMaterialInstanceDynamic* GetParent(UMaterialInstance* MaterialInstance) { + return UMaterialInstanceDynamic::Create(MaterialInstance->Parent, MaterialInstance); + } + } + + namespace MaterialInstanceDynamic { + void ClearParameterValues(UMaterialInstanceDynamic* MaterialInstanceDynamic) { + MaterialInstanceDynamic->ClearParameterValues(); + } + + void SetTextureParameterValue(UMaterialInstanceDynamic* MaterialInstanceDynamic, const char* ParameterName, UTexture* Value) { + MaterialInstanceDynamic->SetTextureParameterValue(FName(ANSI_TO_TCHAR(ParameterName)), Value); + } + + void SetVectorParameterValue(UMaterialInstanceDynamic* MaterialInstanceDynamic, const char* ParameterName, const LinearColor* Value) { + MaterialInstanceDynamic->SetVectorParameterValue(FName(ANSI_TO_TCHAR(ParameterName)), *Value); + } + + void SetScalarParameterValue(UMaterialInstanceDynamic* MaterialInstanceDynamic, const char* ParameterName, float Value) { + MaterialInstanceDynamic->SetScalarParameterValue(FName(ANSI_TO_TCHAR(ParameterName)), Value); + } + } +} diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRLibrary.cpp b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRLibrary.cpp new file mode 100644 index 00000000..b2985dfd --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRLibrary.cpp @@ -0,0 +1,56 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "UnrealCLRLibrary.h" + +FManagedFunction::FManagedFunction() : Pointer() { } + +UUnrealCLRLibrary::UUnrealCLRLibrary(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } + +void UUnrealCLRLibrary::ExecuteManagedFunction(FManagedFunction ManagedFunction, UObject* Object = nullptr) { + if (UnrealCLR::Status == UnrealCLR::StatusType::Running && ManagedFunction.Pointer) + UnrealCLR::ManagedCommand(UnrealCLR::Command(ManagedFunction.Pointer, Object)); +} + +FManagedFunction UUnrealCLRLibrary::FindManagedFunction(FString Method, bool Optional, bool& Result) { + FManagedFunction managedFunction; + + if (UnrealCLR::Status == UnrealCLR::StatusType::Running && !Method.IsEmpty()) + managedFunction.Pointer = UnrealCLR::ManagedCommand(UnrealCLR::Command(TCHAR_TO_ANSI(*Method), Optional)); + + Result = managedFunction.Pointer != nullptr; + + return managedFunction; +} + +UUnrealCLRCharacter::UUnrealCLRCharacter(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) { } + +void UUnrealCLRCharacter::Landed(const FHitResult& Hit) { + UnrealCLRFramework::Hit hit(Hit); + + void* parameters[1] = { + &hit + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(LandedCallback, UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::CharacterLandedDelegate))); +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRManager.cpp b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRManager.cpp new file mode 100644 index 00000000..b2000c03 --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Private/UnrealCLRManager.cpp @@ -0,0 +1,192 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "UnrealCLRManager.h" + +void UUnrealCLRManager::ActorBeginOverlap(AActor* OverlapActor, AActor* OtherActor) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorBeginOverlap]) { + void* parameters[2] = { + OverlapActor, + OtherActor + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnActorBeginOverlap], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ActorOverlapDelegate))); + } +} + +void UUnrealCLRManager::ActorEndOverlap(AActor* OverlapActor, AActor* OtherActor) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorEndOverlap]) { + void* parameters[2] = { + OverlapActor, + OtherActor + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnActorEndOverlap], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ActorOverlapDelegate))); + } +} + +void UUnrealCLRManager::ActorHit(AActor* HitActor, AActor* OtherActor, FVector NormalImpulse, const FHitResult& Hit) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorHit]) { + UnrealCLRFramework::Vector3 normalImpulse(NormalImpulse); + UnrealCLRFramework::Hit hit(Hit); + + void* parameters[4] = { + HitActor, + OtherActor, + &normalImpulse, + &hit + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnActorHit], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ActorHitDelegate))); + } +} + +void UUnrealCLRManager::ActorBeginCursorOver(AActor* Actor) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorBeginCursorOver]) { + void* parameters[1] = { + Actor + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnActorBeginCursorOver], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ActorCursorDelegate))); + } +} + +void UUnrealCLRManager::ActorEndCursorOver(AActor* Actor) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorEndCursorOver]) { + void* parameters[1] = { + Actor + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnActorEndCursorOver], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ActorCursorDelegate))); + } +} + +void UUnrealCLRManager::ActorClicked(AActor* Actor, FKey Key) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorClicked]) { + FString key = Key.ToString(); + + void* parameters[2] = { + Actor, + TCHAR_TO_ANSI(*key) + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnActorClicked], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ActorKeyDelegate))); + } +} + +void UUnrealCLRManager::ActorReleased(AActor* Actor, FKey Key) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorReleased]) { + FString key = Key.ToString(); + + void* parameters[2] = { + Actor, + TCHAR_TO_ANSI(*key) + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnActorReleased], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ActorKeyDelegate))); + } +} + +void UUnrealCLRManager::ComponentBeginOverlap(UPrimitiveComponent* OverlapComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, int32 OtherBodyIndex, bool FromSweep, const FHitResult& SweepResult) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnComponentBeginOverlap]) { + void* parameters[2] = { + OverlapComponent, + OtherComponent + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnComponentBeginOverlap], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ComponentOverlapDelegate))); + } +} + +void UUnrealCLRManager::ComponentEndOverlap(UPrimitiveComponent* OverlapComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, int32 OtherBodyIndex) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnComponentEndOverlap]) { + void* parameters[2] = { + OverlapComponent, + OtherComponent + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnComponentEndOverlap], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ComponentOverlapDelegate))); + } +} + +void UUnrealCLRManager::ComponentHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, FVector NormalImpulse, const FHitResult& Hit) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnComponentHit]) { + UnrealCLRFramework::Vector3 normalImpulse(NormalImpulse); + UnrealCLRFramework::Hit hit(Hit); + + void* parameters[4] = { + HitComponent, + OtherComponent, + &normalImpulse, + &hit + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnComponentHit], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ComponentHitDelegate))); + } +} + +void UUnrealCLRManager::ComponentBeginCursorOver(UPrimitiveComponent* Component) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnActorBeginCursorOver]) { + void* parameters[1] = { + Component + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnComponentBeginCursorOver], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ComponentCursorDelegate))); + } +} + +void UUnrealCLRManager::ComponentEndCursorOver(UPrimitiveComponent* Component) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnComponentEndCursorOver]) { + void* parameters[1] = { + Component + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnComponentEndCursorOver], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ComponentCursorDelegate))); + } +} + +void UUnrealCLRManager::ComponentClicked(UPrimitiveComponent* Component, FKey Key) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnComponentClicked]) { + FString key = Key.ToString(); + + void* parameters[2] = { + Component, + TCHAR_TO_ANSI(*key) + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnComponentClicked], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ComponentKeyDelegate))); + } +} + +void UUnrealCLRManager::ComponentReleased(UPrimitiveComponent* Component, FKey Key) { + if (UnrealCLR::Shared::Events[UnrealCLR::OnComponentReleased]) { + FString key = Key.ToString(); + + void* parameters[2] = { + Component, + TCHAR_TO_ANSI(*key) + }; + + UnrealCLR::ManagedCommand(UnrealCLR::Command(UnrealCLR::Shared::Events[UnrealCLR::OnComponentReleased], UnrealCLR::Callback(parameters, UnrealCLR::CallbackType::ComponentKeyDelegate))); + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLR.h b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLR.h new file mode 100644 index 00000000..a9029ee2 --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLR.h @@ -0,0 +1,406 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +// @third party code - BEGIN CoreCLR +#include "../../Dependencies/CoreCLR/includes/coreclr_delegates.h" +#include "../../Dependencies/CoreCLR/includes/hostfxr.h" +// @third party code - END CoreCLR + +#include "AIController.h" +#include "Animation/AnimInstance.h" +#include "AssetRegistryModule.h" +#include "Camera/CameraActor.h" +#include "Camera/CameraComponent.h" +#include "Components/AudioComponent.h" +#include "Components/BoxComponent.h" +#include "Components/CapsuleComponent.h" +#include "Components/DirectionalLightComponent.h" +#include "Components/HierarchicalInstancedStaticMeshComponent.h" +#include "Components/InputComponent.h" +#include "Components/LightComponent.h" +#include "Components/LightComponentBase.h" +#include "Components/PostProcessComponent.h" +#include "Components/ShapeComponent.h" +#include "Components/SphereComponent.h" +#include "Components/SplineComponent.h" +#include "Components/TextRenderComponent.h" +#include "DrawDebugHelpers.h" +#include "Engine/DirectionalLight.h" +#include "Engine/Font.h" +#include "Engine/GameEngine.h" +#include "Engine/LevelScriptActor.h" +#include "Engine/Light.h" +#include "Engine/Player.h" +#include "Engine/PointLight.h" +#include "Engine/PostProcessVolume.h" +#include "Engine/RectLight.h" +#include "Engine/SpotLight.h" +#include "Engine/TriggerBox.h" +#include "Engine/TriggerCapsule.h" +#include "Engine/TriggerSphere.h" +#include "Engine/TriggerVolume.h" +#include "EngineUtils.h" +#include "GameFramework/Actor.h" +#include "GameFramework/Character.h" +#include "GameFramework/GameModeBase.h" +#include "GameFramework/PlayerController.h" +#include "GameFramework/PlayerInput.h" +#include "GameFramework/SpringArmComponent.h" +#include "HeadMountedDisplayFunctionLibrary.h" +#include "IAssetRegistry.h" +#include "ImageUtils.h" +#include "Materials/MaterialInstanceDynamic.h" +#include "Misc/DefaultValueHelper.h" +#include "Misc/OutputDeviceNull.h" +#include "Modules/ModuleManager.h" +#include "MotionControllerComponent.h" +#include "PhysicsEngine/RadialForceComponent.h" +#include "Sound/AmbientSound.h" +#include "UnrealEngine.h" + +#include "UnrealCLRFramework.h" +#include "UnrealCLRLibrary.h" +#include "UnrealCLRManager.h" + +#if WITH_EDITOR + #include "Editor.h" + #include "Framework/Notifications/NotificationManager.h" + #include "Widgets/Notifications/SNotificationList.h" +#endif + +#ifdef _WIN32 + #define UNREALCLR_WINDOWS 1 +#elif defined(__unix__) + #define UNREALCLR_UNIX 2 +#elif defined(__APPLE__) + #define UNREALCLR_MAC 3 +#endif + +#define UNREALCLR_NONE +#define UNREALCLR_BRACKET_LEFT ( +#define UNREALCLR_BRACKET_RIGHT ) + +UNREALCLR_API DECLARE_LOG_CATEGORY_EXTERN(LogUnrealCLR, Log, All); + +namespace UnrealCLR { + enum struct StatusType : int32 { + Stopped, + Idle, + Running + }; + + enum struct TickState : int32 { + Stopped, + Registered, + Started + }; + + enum struct LogLevel : int32 { + Display, + Warning, + Error, + Fatal + }; + + enum struct CallbackType : int32 { + ActorOverlapDelegate, + ActorHitDelegate, + ActorCursorDelegate, + ActorKeyDelegate, + ComponentOverlapDelegate, + ComponentHitDelegate, + ComponentCursorDelegate, + ComponentKeyDelegate, + CharacterLandedDelegate + }; + + enum struct ArgumentType : int32 { + None, + Single, + Integer, + Pointer, + Callback + }; + + enum struct CommandType : int32 { + Initialize = 1, + LoadAssemblies = 2, + UnloadAssemblies = 3, + Find = 4, + Execute = 5 + }; + + enum { + OnWorldBegin, + OnWorldPostBegin, + OnWorldPrePhysicsTick, + OnWorldDuringPhysicsTick, + OnWorldPostPhysicsTick, + OnWorldPostUpdateTick, + OnWorldEnd, + OnActorBeginOverlap, + OnActorEndOverlap, + OnActorHit, + OnActorBeginCursorOver, + OnActorEndCursorOver, + OnActorClicked, + OnActorReleased, + OnComponentBeginOverlap, + OnComponentEndOverlap, + OnComponentHit, + OnComponentBeginCursorOver, + OnComponentEndCursorOver, + OnComponentClicked, + OnComponentReleased + }; + + struct Callback { + void** Parameters; + CallbackType Type; + + FORCEINLINE Callback(void** Parameters, CallbackType Type) { + this->Parameters = Parameters; + this->Type = Type; + } + }; + + struct Argument { + union { + float Single; + uint32_t Integer; + void* Pointer; + Callback Callback; + }; + ArgumentType Type; + + FORCEINLINE Argument(float Value) { + this->Single = Value; + this->Type = ArgumentType::Single; + } + + FORCEINLINE Argument(uint32_t Value) { + this->Integer = Value; + this->Type = ArgumentType::Integer; + } + + FORCEINLINE Argument(void* Value) { + this->Pointer = Value; + this->Type = !Value ? ArgumentType::None : ArgumentType::Pointer; + } + + FORCEINLINE Argument(UnrealCLR::Callback Value) { + this->Callback = Value; + this->Type = ArgumentType::Callback; + } + }; + + struct Command { + union { + struct { + void* Buffer; + int32 Checksum; + }; + struct { + char* Method; + int32 Optional; + }; + struct { + void* Function; + Argument Value; + }; + }; + CommandType Type; + + FORCEINLINE Command(void* const Functions[3], int32 Checksum) { + this->Buffer = (void*)Functions; + this->Checksum = Checksum; + this->Type = CommandType::Initialize; + } + + FORCEINLINE Command(CommandType Type) { + this->Type = Type; + } + + FORCEINLINE Command(const char* Method, bool Optional) { + this->Method = (char*)Method; + this->Optional = Optional; + this->Type = CommandType::Find; + } + + FORCEINLINE Command(void* Function) { + this->Function = Function; + this->Value = nullptr; + this->Type = CommandType::Execute; + } + + FORCEINLINE Command(void* Function, Argument Value) { + this->Function = Function; + this->Value = Value; + this->Type = CommandType::Execute; + } + }; + + static_assert(sizeof(Callback) == 16, "Invalid size of the [Callback] structure"); + static_assert(sizeof(Argument) == 24, "Invalid size of the [Argument] structure"); + static_assert(sizeof(Command) == 40, "Invalid size of the [Command] structure"); + + static void* (*ManagedCommand)(Command); + + static FString ProjectPath; + static FString UserAssembliesPath; + + static StatusType Status = StatusType::Stopped; + static TickState WorldTickState = TickState::Stopped; + + struct PrePhysicsTickFunction : public FTickFunction { + virtual void ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) override; + virtual FString DiagnosticMessage() override; + }; + + struct DuringPhysicsTickFunction : public FTickFunction { + virtual void ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) override; + virtual FString DiagnosticMessage() override; + }; + + struct PostPhysicsTickFunction : public FTickFunction { + virtual void ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) override; + virtual FString DiagnosticMessage() override; + }; + + struct PostUpdateTickFunction : public FTickFunction { + virtual void ExecuteTick(float DeltaTime, enum ELevelTick TickType, ENamedThreads::Type CurrentThread, const FGraphEventRef& MyCompletionGraphEvent) override; + virtual FString DiagnosticMessage() override; + }; + + class Module : public IModuleInterface { + protected: + + virtual void StartupModule() override; + virtual void ShutdownModule() override; + + private: + + void OnWorldPostInitialization(UWorld* World, const UWorld::InitializationValues InitializationValues); + void OnWorldCleanup(UWorld* World, bool SessionEnded, bool CleanupResources); + + static void RegisterTickFunction(FTickFunction& TickFunction, ETickingGroup TickGroup, AWorldSettings* LevelActor); + static void HostError(const char_t* Message); + static void Exception(const char* Message); + static void Log(UnrealCLR::LogLevel Level, const char* Message); + + FDelegateHandle OnWorldPostInitializationHandle; + FDelegateHandle OnWorldCleanupHandle; + + PrePhysicsTickFunction OnPrePhysicsTickFunction; + DuringPhysicsTickFunction OnDuringPhysicsTickFunction; + PostPhysicsTickFunction OnPostPhysicsTickFunction; + PostUpdateTickFunction OnPostUpdateTickFunction; + + void* HostfxrLibrary; + }; + + namespace Engine { + static UUnrealCLRManager* Manager; + static UWorld* World; + } + + namespace Shared { + constexpr static int32 storageSize = 128; + + // Non-instantiable + + static void* AssertFunctions[storageSize]; + static void* CommandLineFunctions[storageSize]; + static void* DebugFunctions[storageSize]; + static void* ObjectFunctions[storageSize]; + static void* ApplicationFunctions[storageSize]; + static void* ConsoleManagerFunctions[storageSize]; + static void* EngineFunctions[storageSize]; + static void* WorldFunctions[storageSize]; + + // Instantiable + + static void* AssetFunctions[storageSize]; + static void* AssetRegistryFunctions[storageSize]; + static void* BlueprintFunctions[storageSize]; + static void* ConsoleObjectFunctions[storageSize]; + static void* ConsoleVariableFunctions[storageSize]; + static void* ActorFunctions[storageSize]; + static void* GameModeBaseFunctions[storageSize]; + static void* PawnFunctions[storageSize]; + static void* CharacterFunctions[storageSize]; + static void* ControllerFunctions[storageSize]; + static void* AIControllerFunctions[storageSize]; + static void* PlayerControllerFunctions[storageSize]; + static void* VolumeFunctions[storageSize]; + static void* PostProcessVolumeFunctions[storageSize]; + static void* SoundBaseFunctions[storageSize]; + static void* SoundWaveFunctions[storageSize]; + static void* AnimationInstanceFunctions[storageSize]; + static void* PlayerFunctions[storageSize]; + static void* PlayerInputFunctions[storageSize]; + static void* FontFunctions[storageSize]; + static void* Texture2DFunctions[storageSize]; + static void* ActorComponentFunctions[storageSize]; + static void* InputComponentFunctions[storageSize]; + static void* SceneComponentFunctions[storageSize]; + static void* AudioComponentFunctions[storageSize]; + static void* CameraComponentFunctions[storageSize]; + static void* ChildActorComponentFunctions[storageSize]; + static void* SpringArmComponentFunctions[storageSize]; + static void* PostProcessComponentFunctions[storageSize]; + static void* PrimitiveComponentFunctions[storageSize]; + static void* ShapeComponentFunctions[storageSize]; + static void* BoxComponentFunctions[storageSize]; + static void* SphereComponentFunctions[storageSize]; + static void* CapsuleComponentFunctions[storageSize]; + static void* MeshComponentFunctions[storageSize]; + static void* TextRenderComponentFunctions[storageSize]; + static void* LightComponentBaseFunctions[storageSize]; + static void* LightComponentFunctions[storageSize]; + static void* MotionControllerComponentFunctions[storageSize]; + static void* StaticMeshComponentFunctions[storageSize]; + static void* InstancedStaticMeshComponentFunctions[storageSize]; + static void* HierarchicalInstancedStaticMeshComponentFunctions[storageSize]; + static void* SkinnedMeshComponentFunctions[storageSize]; + static void* SkeletalMeshComponentFunctions[storageSize]; + static void* SplineComponentFunctions[storageSize]; + static void* RadialForceComponentFunctions[storageSize]; + static void* MaterialInterfaceFunctions[storageSize]; + static void* MaterialFunctions[storageSize]; + static void* MaterialInstanceFunctions[storageSize]; + static void* MaterialInstanceDynamicFunctions[storageSize]; + static void* HeadMountedDisplayFunctions[storageSize]; + + static void* RuntimeFunctions[2]; + static void* Events[128]; + static void* Functions[128]; + } + + namespace Utility { + FORCEINLINE static size_t Strcpy(char* Destination, const char* Source, size_t Length); + FORCEINLINE static size_t Strlen(const char* Source); + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRFramework.h b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRFramework.h new file mode 100644 index 00000000..8d3ca065 --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRFramework.h @@ -0,0 +1,1216 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +UNREALCLR_API DECLARE_LOG_CATEGORY_EXTERN(LogUnrealManaged, Log, All); + +namespace UnrealCLRFramework { + using AnimationMode = EAnimationMode::Type; + using AutoReceiveInput = EAutoReceiveInput::Type; + using CameraProjectionMode = ECameraProjectionMode::Type; + using CollisionMode = ECollisionEnabled::Type; + using CollisionShapeType = ECollisionShape::Type; + using ComponentMobility = EComponentMobility::Type; + using SplineCoordinateSpace = ESplineCoordinateSpace::Type; + using SplinePointType = ESplinePointType::Type; + using WindowMode = EWindowMode::Type; + + using AudioFadeCurve = EAudioFaderCurve; + using AutoPossessAI = EAutoPossessAI; + using BlendType = EViewTargetBlendFunction; + using CollisionChannel = ECollisionChannel; + using CollisionResponse = ECollisionResponse; + using ControllerHand = EControllerHand; + using HorizontalTextAligment = EHorizTextAligment; + using InputEvent = EInputEvent; + using NetMode = ENetMode; + using PixelFormat = EPixelFormat; + using TeleportType = ETeleportType; + using VerticalTextAligment = EVerticalTextAligment; + + using Bounds = FBoxSphereBounds; + using CollisionShape = FCollisionShape; + + enum struct LogLevel : int32 { + Display, + Warning, + Error, + Fatal + }; + + enum struct AttachmentTransformRule : int32 { + KeepRelativeTransform, + KeepWorldTransform, + SnapToTargetIncludingScale, + SnapToTargetNotIncludingScale + }; + + enum struct DetachmentTransformRule : int32 { + KeepRelativeTransform, + KeepWorldTransform + }; + + enum struct UpdateTransformFlags : int32 { + None = 0, + SkipPhysicsUpdate = 1 << 0, + PropagateFromParent = 1 << 1, + OnlyUpdateIfUsingSocket = 1 << 2 + }; + + enum struct AIFocusPriority : int32 { + Default = 0, + Move = 1, + Gameplay = 2 + }; + + enum struct ActorEventType : int32 { + OnActorBeginOverlap, + OnActorEndOverlap, + OnActorHit, + OnActorBeginCursorOver, + OnActorEndCursorOver, + OnActorClicked, + OnActorReleased + }; + + enum struct ComponentEventType : int32 { + OnComponentBeginOverlap, + OnComponentEndOverlap, + OnComponentHit, + OnComponentBeginCursorOver, + OnComponentEndCursorOver, + OnComponentClicked, + OnComponentReleased + }; + + struct Color { + uint8 B; + uint8 G; + uint8 R; + uint8 A; + + FORCEINLINE Color(FColor Value) { + this->R = Value.R; + this->G = Value.G; + this->B = Value.B; + this->A = Value.A; + } + + FORCEINLINE operator FColor() const { return FColor(R, G, B, A); } + }; + + struct Vector2 { + float X; + float Y; + + FORCEINLINE Vector2(FVector2D Value) { + this->X = Value.X; + this->Y = Value.Y; + } + + FORCEINLINE operator FVector2D() const { return FVector2D(X, Y); } + }; + + struct Vector3 { + float X; + float Y; + float Z; + + FORCEINLINE Vector3(FVector Value) { + this->X = Value.X; + this->Y = Value.Y; + this->Z = Value.Z; + } + + FORCEINLINE operator FVector() const { return FVector(X, Y, Z); } + }; + + struct Quaternion { + float X; + float Y; + float Z; + float W; + + FORCEINLINE Quaternion(FQuat Value) { + this->X = Value.X; + this->Y = Value.Y; + this->Z = Value.Z; + this->W = Value.W; + } + + FORCEINLINE operator FQuat() const { return FQuat(X, Y, Z, W); } + }; + + struct Transform { + Vector3 Location; + Quaternion Rotation; + Vector3 Scale; + + FORCEINLINE Transform(const FTransform& Value) : + Location(Value.GetTranslation()), + Rotation(Value.GetRotation()), + Scale(Value.GetScale3D()) { } + + FORCEINLINE operator FTransform() const { return FTransform(Rotation, Location, Scale); } + }; + + struct LinearColor { + float R; + float G; + float B; + float A; + + FORCEINLINE LinearColor(FLinearColor Value) { + this->R = Value.R; + this->G = Value.G; + this->B = Value.B; + this->A = Value.A; + } + + FORCEINLINE operator FLinearColor() const { return FLinearColor(R, G, B, A); } + }; + + struct Hit { + Vector3 Location; + Vector3 ImpactLocation; + Vector3 Normal; + Vector3 ImpactNormal; + Vector3 TraceStart; + Vector3 TraceEnd; + AActor* Actor; + float Time; + float Distance; + float PenetrationDepth; + bool BlockingHit; + bool StartPenetrating; + + FORCEINLINE Hit(const FHitResult& Value) : + Location(FVector(Value.Location.X, Value.Location.Y, Value.Location.Z)), + ImpactLocation(FVector(Value.ImpactPoint.X, Value.ImpactPoint.Y, Value.ImpactPoint.Z)), + Normal(FVector(Value.Normal.X, Value.Normal.Y, Value.Normal.Z)), + ImpactNormal(FVector(Value.ImpactNormal.X, Value.ImpactNormal.Y, Value.ImpactNormal.Z)), + TraceStart(FVector(Value.TraceStart.X, Value.TraceStart.Y, Value.TraceStart.Z)), + TraceEnd(FVector(Value.TraceEnd.X, Value.TraceEnd.Y, Value.TraceEnd.Z)), + Actor(Value.GetActor()), + Time(Value.Time), + Distance(Value.Distance), + PenetrationDepth(Value.PenetrationDepth), + BlockingHit(Value.bBlockingHit), + StartPenetrating(Value.bStartPenetrating) { } + }; + + typedef void (*InputDelegate)(); + + typedef void (*InputAxisDelegate)(float); + + typedef void (*ConsoleVariableDelegate)(); + + typedef void (*ConsoleCommandDelegate)(float); + + typedef void (*ActorOverlapDelegate)(AActor*, AActor*); + + typedef void (*ActorHitDelegate)(AActor* HitActor, AActor* OtherActor, const Vector3* NormalImpulse, const Hit* Hit); + + typedef void (*ActorCursorDelegate)(AActor* Actor); + + typedef void (*ActorKeyDelegate)(AActor* Actor, const char* Key); + + typedef void (*ComponentOverlapDelegate)(UPrimitiveComponent*, UPrimitiveComponent*); + + typedef void (*ComponentHitDelegate)(UPrimitiveComponent* HitComponent, UPrimitiveComponent* OtherComponent, const Vector3* NormalImpulse, const Hit* Hit); + + typedef void (*ComponentCursorDelegate)(UPrimitiveComponent* Component); + + typedef void (*ComponentKeyDelegate)(UPrimitiveComponent* Component, const char* Key); + + typedef void (*CharacterLandedDelegate)(const Hit* Hit); + + // Enumerable + + enum struct ObjectType : int32 { + Blueprint, + SoundWave, + AnimationSequence, + AnimationMontage, + StaticMesh, + SkeletalMesh, + Material, + Font, + Texture2D + }; + + enum struct ActorType : int32 { + Base, + Camera, + TriggerBox, + TriggerSphere, + TriggerCapsule, + Pawn, + Character, + AIController, + PlayerController, + Brush, + AmbientSound, + DirectionalLight, + PointLight, + RectLight, + SpotLight, + TriggerVolume, + PostProcessVolume, + LevelScript, + GameModeBase + }; + + enum struct ComponentType : int32 { + // Non-attachable + Actor, + Input, + // Attachable + Scene, + Audio, + Camera, + Light, + DirectionalLight, + MotionController, + StaticMesh, + InstancedStaticMesh, + HierarchicalInstancedStaticMesh, + ChildActor, + SpringArm, + PostProcess, + Box, + Sphere, + Capsule, + TextRender, + SkeletalMesh, + Spline, + RadialForce + }; + + // Non-instantiable + + namespace Assert { + static void OutputMessage(const uint8* Message); + } + + namespace CommandLine { + static void Get(char* Arguments); + static void Set(const char* Arguments); + static void Append(const char* Arguments); + } + + namespace Debug { + static void Log(LogLevel Level, const uint8* Message); + static void Exception(const uint8* Exception); + static void AddOnScreenMessage(int32 Key, float TimeToDisplay, Color DisplayColor, const uint8* Message); + static void ClearOnScreenMessages(); + static void DrawBox(const Vector3* Center, const Vector3* Extent, const Quaternion* Rotation, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness); + static void DrawCapsule(const Vector3* Center, float HalfHeight, float Radius, const Quaternion* Rotation, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness); + static void DrawCone(const Vector3* Origin, const Vector3* Direction, float Length, float AngleWidth, float AngleHeight, int32 Sides, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness); + static void DrawCylinder(const Vector3* Start, const Vector3* End, float Radius, int32 Segments, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness); + static void DrawSphere(const Vector3* Center, float Radius, int32 Segments, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness); + static void DrawLine(const Vector3* Start, const Vector3* End, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority, float Thickness); + static void DrawPoint(const Vector3* Location, float Size, Color Color, bool PersistentLines, float LifeTime, uint8 DepthPriority); + static void FlushPersistentLines(); + } + + namespace Object { + static bool IsPendingKill(UObject* Object); + static bool IsValid(UObject* Object); + static UObject* Load(ObjectType Type, const char* Name); + static void Rename(UObject* Object, const char* Name); + static bool Invoke(UObject* Object, const uint8* Command); + static AActor* ToActor(UObject* Object, ActorType Type); + static UActorComponent* ToComponent(UObject* Object, ComponentType Type); + static uint32 GetID(UObject* Object); + static void GetName(UObject* Object, char* Name); + static bool GetBool(UObject* Object, const char* Name, bool* value); + static bool GetByte(UObject* Object, const char* Name, uint8* Value); + static bool GetShort(UObject* Object, const char* Name, int16* Value); + static bool GetInt(UObject* Object, const char* Name, int32* Value); + static bool GetLong(UObject* Object, const char* Name, int64* Value); + static bool GetUShort(UObject* Object, const char* Name, uint16* Value); + static bool GetUInt(UObject* Object, const char* Name, uint32* Value); + static bool GetULong(UObject* Object, const char* Name, uint64* Value); + static bool GetFloat(UObject* Object, const char* Name, float* Value); + static bool GetDouble(UObject* Object, const char* Name, double* Value); + static bool GetEnum(UObject* Object, const char* Name, int32* Value); + static bool GetString(UObject* Object, const char* Name, char* Value); + static bool GetText(UObject* Object, const char* Name, char* Value); + static bool SetBool(UObject* Object, const char* Name, bool value); + static bool SetByte(UObject* Object, const char* Name, uint8 Value); + static bool SetShort(UObject* Object, const char* Name, int16 Value); + static bool SetInt(UObject* Object, const char* Name, int32 Value); + static bool SetLong(UObject* Object, const char* Name, int64 Value); + static bool SetUShort(UObject* Object, const char* Name, uint16 Value); + static bool SetUInt(UObject* Object, const char* Name, uint32 Value); + static bool SetULong(UObject* Object, const char* Name, uint64 Value); + static bool SetFloat(UObject* Object, const char* Name, float Value); + static bool SetDouble(UObject* Object, const char* Name, double Value); + static bool SetEnum(UObject* Object, const char* Name, int32 Value); + static bool SetString(UObject* Object, const char* Name, const char* Value); + static bool SetText(UObject* Object, const char* Name, const char* Value); + } + + namespace Application { + static bool IsCanEverRender(); + static bool IsPackagedForDistribution(); + static bool IsPackagedForShipping(); + static void GetProjectDirectory(char* Directory); + static void GetDefaultLanguage(char* Language); + static void GetProjectName(char* ProjectName); + static float GetVolumeMultiplier(); + static void SetProjectName(const char* ProjectName); + static void SetVolumeMultiplier(float Value); + static void RequestExit(bool Force); + } + + namespace ConsoleManager { + static bool IsRegisteredVariable(const char* Name); + static IConsoleVariable* FindVariable(const char* Name); + static IConsoleVariable* RegisterVariableBool(const char* Name, const char* Help, bool DefaultValue, bool ReadOnly); + static IConsoleVariable* RegisterVariableInt(const char* Name, const char* Help, int32 DefaultValue, bool ReadOnly); + static IConsoleVariable* RegisterVariableFloat(const char* Name, const char* Help, float DefaultValue, bool ReadOnly); + static IConsoleVariable* RegisterVariableString(const char* Name, const char* Help, const char* DefaultValue, bool ReadOnly); + static void RegisterCommand(const char* Name, const char* Help, ConsoleCommandDelegate Callback, bool ReadOnly); + static void UnregisterObject(const char* Name); + } + + namespace Engine { + static bool IsSplitScreen(); + static bool IsEditor(); + static bool IsForegroundWindow(); + static bool IsExitRequested(); + static NetMode GetNetMode(); + static uint32 GetFrameNumber(); + static void GetViewportSize(Vector2* Value); + static void GetScreenResolution(Vector2* Value); + static WindowMode GetWindowMode(); + static void GetVersion(char* Version); + static float GetMaxFPS(); + static void SetMaxFPS(float MaxFPS); + static void SetTitle(const char* Title); + static void AddActionMapping(const char* ActionName, const char* Key, bool Shift, bool Ctrl, bool Alt, bool Cmd); + static void AddAxisMapping(const char* AxisName, const char* Key, float Scale); + static void ForceGarbageCollection(bool FullPurge); + static void DelayGarbageCollection(); + } + + namespace HeadMountedDisplay { + static bool IsConnected(); + static bool GetEnabled(); + static bool GetLowPersistenceMode(); + static void GetDeviceName(char* Name); + static void SetEnable(bool Value); + static void SetLowPersistenceMode(bool Value); + } + + namespace World { + static void ForEachActor(AActor** Array, int32* Elements); + static int32 GetActorCount(); + static float GetDeltaSeconds(); + static float GetRealTimeSeconds(); + static float GetTimeSeconds(); + static void GetCurrentLevelName(char* LevelName); + static bool GetSimulatePhysics(); + static void GetWorldOrigin(Vector3* Value); + static AActor* GetActor(const char* Name, ActorType Type); + static AActor* GetActorByTag(const char* Tag, ActorType Type); + static AActor* GetActorByID(uint32 ID, ActorType Type); + static APlayerController* GetFirstPlayerController(); + static AGameModeBase* GetGameMode(); + static void SetOnActorBeginOverlapCallback(ActorOverlapDelegate Callback); + static void SetOnActorEndOverlapCallback(ActorOverlapDelegate Callback); + static void SetOnActorHitCallback(ActorHitDelegate Callback); + static void SetOnActorBeginCursorOverCallback(ActorCursorDelegate Callback); + static void SetOnActorEndCursorOverCallback(ActorCursorDelegate Callback); + static void SetOnActorClickedCallback(ActorKeyDelegate Callback); + static void SetOnActorReleasedCallback(ActorKeyDelegate Callback); + static void SetOnComponentBeginOverlapCallback(ComponentOverlapDelegate Callback); + static void SetOnComponentEndOverlapCallback(ComponentOverlapDelegate Callback); + static void SetOnComponentHitCallback(ComponentHitDelegate Callback); + static void SetOnComponentBeginCursorOverCallback(ComponentCursorDelegate Callback); + static void SetOnComponentEndCursorOverCallback(ComponentCursorDelegate Callback); + static void SetOnComponentClickedCallback(ComponentKeyDelegate Callback); + static void SetOnComponentReleasedCallback(ComponentKeyDelegate Callback); + static void SetSimulatePhysics(bool Value); + static void SetGravity(float Value); + static bool SetWorldOrigin(const Vector3* Value); + static void OpenLevel(const char* LevelName); + static bool LineTraceTestByChannel(const Vector3* Start, const Vector3* End, CollisionChannel Channel, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool LineTraceTestByProfile(const Vector3* Start, const Vector3* End, const char* ProfileName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool LineTraceSingleByChannel(const Vector3* Start, const Vector3* End, CollisionChannel Channel, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool LineTraceSingleByProfile(const Vector3* Start, const Vector3* End, const char* ProfileName, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool SweepTestByChannel(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool SweepTestByProfile(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool SweepSingleByChannel(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool SweepSingleByProfile(const Vector3* Start, const Vector3* End, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, Hit* Hit, char* BoneName, bool TraceComplex, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool OverlapAnyTestByChannel(const Vector3* Location, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool OverlapAnyTestByProfile(const Vector3* Location, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool OverlapBlockingTestByChannel(const Vector3* Location, const Quaternion* Rotation, CollisionChannel Channel, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + static bool OverlapBlockingTestByProfile(const Vector3* Location, const Quaternion* Rotation, const char* ProfileName, const CollisionShape* Shape, AActor* IgnoredActor, UPrimitiveComponent* IgnoredComponent); + } + + // Instantiable + + namespace Asset { + static bool IsValid(FAssetData* Asset); + static void GetName(FAssetData* Asset, char* Name); + static void GetPath(FAssetData* Asset, char* Path); + } + + namespace AssetRegistry { + static IAssetRegistry* Get(); + static bool HasAssets(IAssetRegistry* AssetRegistry, const char* Path, bool Recursive); + static void ForEachAsset(IAssetRegistry* AssetRegistry, const char* Path, bool Recursive, bool IncludeOnlyOnDiskAssets, FAssetData** Array, int32* Elements); + } + + namespace Blueprint { + static bool IsValidActorClass(UBlueprint* Blueprint, ActorType Type); + static bool IsValidComponentClass(UBlueprint* Blueprint, ComponentType Type); + } + + namespace ConsoleObject { + static bool IsBool(IConsoleObject* ConsoleObject); + static bool IsInt(IConsoleObject* ConsoleObject); + static bool IsFloat(IConsoleObject* ConsoleObject); + static bool IsString(IConsoleObject* ConsoleObject); + } + + namespace ConsoleVariable { + static bool GetBool(IConsoleVariable* ConsoleVariable); + static int32 GetInt(IConsoleVariable* ConsoleVariable); + static float GetFloat(IConsoleVariable* ConsoleVariable); + static void GetString(IConsoleVariable* ConsoleVariable, char* Value); + static void SetBool(IConsoleVariable* ConsoleVariable, bool Value); + static void SetInt(IConsoleVariable* ConsoleVariable, int32 Value); + static void SetFloat(IConsoleVariable* ConsoleVariable, float Value); + static void SetString(IConsoleVariable* ConsoleVariable, const char* Value); + static void SetOnChangedCallback(IConsoleVariable* ConsoleVariable, ConsoleVariableDelegate Callback); + static void ClearOnChangedCallback(IConsoleVariable* ConsoleVariable); + } + + namespace Actor { + static bool IsPendingKill(AActor* Actor); + static bool IsRootComponentMovable(AActor* Actor); + static bool IsOverlappingActor(AActor* Actor, AActor* Other); + static void ForEachComponent(AActor* Actor, UActorComponent** Array, int32* Elements); + static void ForEachAttachedActor(AActor* Actor, AActor** Array, int32* Elements); + static void ForEachChildActor(AActor* Actor, AActor** Array, int32* Elements); + static void ForEachOverlappingActor(AActor* Actor, AActor** Array, int32* Elements); + static AActor* Spawn(const char* Name, ActorType Type, UObject* Blueprint); + static bool Destroy(AActor* Actor); + static void Rename(AActor* Actor, const char* Name); + static void Hide(AActor* Actor, bool Value); + static bool TeleportTo(AActor* Actor, const Vector3* DestinationLocation, const Quaternion* DestinationRotation, bool IsATest, bool NoCheck); + static UActorComponent* GetComponent(AActor* Actor, const char* Name, ComponentType Type); + static UActorComponent* GetComponentByTag(AActor* Actor, const char* Tag, ComponentType Type); + static UActorComponent* GetComponentByID(AActor* Actor, uint32 ID, ComponentType Type); + static USceneComponent* GetRootComponent(AActor* Actor, ComponentType Type); + static UInputComponent* GetInputComponent(AActor* Actor); + static float GetCreationTime(AActor* Actor); + static bool GetBlockInput(AActor* Actor); + static float GetDistanceTo(AActor* Actor, AActor* Other); + static float GetHorizontalDistanceTo(AActor* Actor, AActor* Other); + static void GetBounds(AActor* Actor, bool OnlyCollidingComponents, Vector3* Origin, Vector3* Extent); + static void GetEyesViewPoint(AActor* Actor, Vector3* Location, Quaternion* Rotation); + static bool SetRootComponent(AActor* Actor, USceneComponent* RootComponent); + static void SetInputComponent(AActor* Actor, UInputComponent* InputComponent); + static void SetBlockInput(AActor* Actor, bool Value); + static void SetLifeSpan(AActor* Actor, float LifeSpan); + static void SetEnableInput(AActor* Actor, APlayerController* PlayerController, bool Value); + static void SetEnableCollision(AActor* Actor, bool Value); + static void AddTag(AActor* Actor, const char* Tag); + static void RemoveTag(AActor* Actor, const char* Tag); + static bool HasTag(AActor* Actor, const char* Tag); + static void RegisterEvent(AActor* Actor, ActorEventType Type); + static void UnregisterEvent(AActor* Actor, ActorEventType Type); + } + + namespace GameModeBase { + static bool GetUseSeamlessTravel(AGameModeBase* GameModeBase); + static void SetUseSeamlessTravel(AGameModeBase* GameModeBase, bool Value); + static void SwapPlayerControllers(AGameModeBase* GameModeBase, APlayerController* PlayerController, APlayerController* NewPlayerController); + } + + namespace TriggerBase { } + + namespace TriggerBox { } + + namespace TriggerCapsule { } + + namespace TriggerSphere { } + + namespace Pawn { + static bool IsControlled(APawn* Pawn); + static bool IsPlayerControlled(APawn* Pawn); + static AutoPossessAI GetAutoPossessAI(APawn* Pawn); + static AutoReceiveInput GetAutoPossessPlayer(APawn* Pawn); + static bool GetUseControllerRotationYaw(APawn* Pawn); + static bool GetUseControllerRotationPitch(APawn* Pawn); + static bool GetUseControllerRotationRoll(APawn* Pawn); + static void GetGravityDirection(APawn* Pawn, Vector3* Value); + static AAIController* GetAIController(APawn* Pawn); + static APlayerController* GetPlayerController(APawn* Pawn); + static void SetAutoPossessAI(APawn* Pawn, AutoPossessAI Value); + static void SetAutoPossessPlayer(APawn* Pawn, AutoReceiveInput Value); + static void SetUseControllerRotationYaw(APawn* Pawn, bool Value); + static void SetUseControllerRotationPitch(APawn* Pawn, bool Value); + static void SetUseControllerRotationRoll(APawn* Pawn, bool Value); + static void AddControllerYawInput(APawn* Pawn, float Value); + static void AddControllerPitchInput(APawn* Pawn, float Value); + static void AddControllerRollInput(APawn* Pawn, float Value); + static void AddMovementInput(APawn* Pawn, const Vector3* WorldDirection, float ScaleValue, bool Force); + } + + namespace Character { + static bool IsCrouched(ACharacter* Character); + static bool CanCrouch(ACharacter* Character); + static bool CanJump(ACharacter* Character); + static void CheckJumpInput(ACharacter* Character, float DeltaTime); + static void ClearJumpInput(ACharacter* Character, float DeltaTime); + static void Launch(ACharacter* Character, const Vector3* Velocity, bool OverrideXY, bool OverrideZ); + static void Crouch(ACharacter* Character); + static void StopCrouching(ACharacter* Character); + static void Jump(ACharacter* Character); + static void StopJumping(ACharacter* Character); + static void SetOnLandedCallback(ACharacter* Character, CharacterLandedDelegate Callback); + } + + namespace Controller { + static bool IsLookInputIgnored(AController* Controller); + static bool IsMoveInputIgnored(AController* Controller); + static bool IsPlayerController(AController* Controller); + static APawn* GetPawn(AController* Controller); + static ACharacter* GetCharacter(AController* Controller); + static AActor* GetViewTarget(AController* Controller); + static void GetControlRotation(AController* Controller, Quaternion* Value); + static void GetDesiredRotation(AController* Controller, Quaternion* Value); + static bool LineOfSightTo(AController* Controller, AActor* Actor, const Vector3* ViewPoint, bool AlternateChecks); + static void SetControlRotation(AController* Controller, const Quaternion* Value); + static void SetInitialLocationAndRotation(AController* Controller, const Vector3* NewLocation, const Quaternion* NewRotation); + static void SetIgnoreLookInput(AController* Controller, bool Value); + static void SetIgnoreMoveInput(AController* Controller, bool Value); + static void ResetIgnoreLookInput(AController* Controller); + static void ResetIgnoreMoveInput(AController* Controller); + static void Possess(AController* Controller, APawn* Pawn); + static void Unpossess(AController* Controller); + } + + namespace AIController { + static void ClearFocus(AAIController* AIController, AIFocusPriority Priority); + static void GetFocalPoint(AAIController* AIController, Vector3* Value); + static void SetFocalPoint(AAIController* AIController, const Vector3* NewFocus, AIFocusPriority Priority); + static AActor* GetFocusActor(AAIController* AIController); + static bool GetAllowStrafe(AAIController* AIController); + static void SetAllowStrafe(AAIController* AIController, bool Value); + static void SetFocus(AAIController* AIController, AActor* NewFocus, AIFocusPriority Priority); + } + + namespace PlayerController { + static bool IsPaused(APlayerController* PlayerController); + static bool GetShowMouseCursor(APlayerController* PlayerController); + static bool GetEnableClickEvents(APlayerController* PlayerController); + static bool GetEnableMouseOverEvents(APlayerController* PlayerController); + static bool GetMousePosition(APlayerController* PlayerController, float* X, float* Y); + static UPlayer* GetPlayer(APlayerController* PlayerController); + static UPlayerInput* GetPlayerInput(APlayerController* PlayerController); + static bool GetHitResultAtScreenPosition(APlayerController* PlayerController, const Vector2* ScreenPosition, CollisionChannel TraceChannel, Hit* Hit, bool TraceComplex); + static bool GetHitResultUnderCursor(APlayerController* PlayerController, CollisionChannel TraceChannel, Hit* Hit, bool TraceComplex); + static void SetShowMouseCursor(APlayerController* PlayerController, bool Value); + static void SetEnableClickEvents(APlayerController* PlayerController, bool Value); + static void SetEnableMouseOverEvents(APlayerController* PlayerController, bool Value); + static void SetMousePosition(APlayerController* PlayerController, float X, float Y); + static void ConsoleCommand(APlayerController* PlayerController, const char* Command, bool WriteToLog); + static bool SetPause(APlayerController* PlayerController, bool Value); + static void SetViewTarget(APlayerController* PlayerController, AActor* NewViewTarget); + static void SetViewTargetWithBlend(APlayerController* PlayerController, AActor* NewViewTarget, float Time, float Exponent, BlendType Type, bool LockOutgoing); + static void AddYawInput(APlayerController* PlayerController, float Value); + static void AddPitchInput(APlayerController* PlayerController, float Value); + static void AddRollInput(APlayerController* PlayerController, float Value); + } + + namespace Volume { + static bool EncompassesPoint(AVolume* Volume, const Vector3* Point, float SphereRadius, float* OutDistanceToPoint); + } + + namespace TriggerVolume { } + + namespace PostProcessVolume { + static bool GetEnabled(APostProcessVolume* PostProcessVolume); + static float GetBlendRadius(APostProcessVolume* PostProcessVolume); + static float GetBlendWeight(APostProcessVolume* PostProcessVolume); + static bool GetUnbound(APostProcessVolume* PostProcessVolume); + static float GetPriority(APostProcessVolume* PostProcessVolume); + static void SetEnabled(APostProcessVolume* PostProcessVolume, bool Value); + static void SetBlendRadius(APostProcessVolume* PostProcessVolume, float Value); + static void SetBlendWeight(APostProcessVolume* PostProcessVolume, float Value); + static void SetUnbound(APostProcessVolume* PostProcessVolume, bool Value); + static void SetPriority(APostProcessVolume* PostProcessVolume, float Priority); + } + + namespace LevelScript { } + + namespace AmbientSound { } + + namespace Light { } + + namespace DirectionalLight { } + + namespace PointLight { } + + namespace RectLight { } + + namespace SpotLight { } + + namespace SoundBase { + static float GetDuration(USoundBase* SoundBase); + } + + namespace SoundWave { + static bool GetLoop(USoundWave* SoundWave); + static void SetLoop(USoundWave* SoundWave, bool Value); + } + + namespace AnimationAsset { + + } + + namespace AnimationSequenceBase { + + } + + namespace AnimationSequence { + + } + + namespace AnimationCompositeBase { + + } + + namespace AnimationMontage { + + } + + namespace AnimationInstance { + static UAnimMontage* GetCurrentActiveMontage(UAnimInstance* AnimationInstance); + static bool IsPlaying(UAnimInstance* AnimationInstance, UAnimMontage* Montage); + static float GetPlayRate(UAnimInstance* AnimationInstance, UAnimMontage* Montage); + static float GetPosition(UAnimInstance* AnimationInstance, UAnimMontage* Montage); + static float GetBlendTime(UAnimInstance* AnimationInstance, UAnimMontage* Montage); + static void GetCurrentSection(UAnimInstance* AnimationInstance, UAnimMontage* Montage, char* SectionName); + static void SetPlayRate(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float Value); + static void SetPosition(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float Position); + static void SetNextSection(UAnimInstance* AnimationInstance, UAnimMontage* Montage, const char* SectionToChange, const char* NextSection); + static float PlayMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float PlayRate, float TimeToStartMontageAt, bool StopAllMontages); + static void PauseMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage); + static void ResumeMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage); + static void StopMontage(UAnimInstance* AnimationInstance, UAnimMontage* Montage, float BlendOutTime); + static void JumpToSection(UAnimInstance* AnimationInstance, UAnimMontage* Montage, const char* SectionName); + static void JumpToSectionsEnd(UAnimInstance* AnimationInstance, UAnimMontage* Montage, const char* SectionName); + } + + namespace Player { + static APlayerController* GetPlayerController(UPlayer* Player); + } + + namespace PlayerInput { + static bool IsKeyPressed(UPlayerInput* PlayerInput, const char* Key); + static float GetTimeKeyPressed(UPlayerInput* PlayerInput, const char* Key); + static void GetMouseSensitivity(UPlayerInput* PlayerInput, Vector2* Value); + static void SetMouseSensitivity(UPlayerInput* PlayerInput, const Vector2* Value); + static void AddActionMapping(UPlayerInput* PlayerInput, const char* ActionName, const char* Key, bool Shift, bool Ctrl, bool Alt, bool Cmd); + static void AddAxisMapping(UPlayerInput* PlayerInput, const char* AxisName, const char* Key, float Scale); + static void RemoveActionMapping(UPlayerInput* PlayerInput, const char* ActionName, const char* Key); + static void RemoveAxisMapping(UPlayerInput* PlayerInput, const char* AxisName, const char* Key); + } + + namespace Font { + static void GetStringSize(UFont* Font, const char* Text, int32* Height, int32* Width); + } + + namespace StreamableRenderAsset { + + } + + namespace StaticMesh { + + } + + namespace SkeletalMesh { + + } + + namespace Texture { + + } + + namespace Texture2D { + static UTexture2D* CreateFromFile(const char* FilePath); + static UTexture2D* CreateFromBuffer(const uint8* Buffer, int32 Length); + static bool HasAlphaChannel(UTexture2D* Texture2D); + static void GetSize(UTexture2D* Texture2D, Vector2* Value); + static PixelFormat GetPixelFormat(UTexture2D* Texture2D); + } + + namespace ActorComponent { + static bool IsOwnerSelected(UActorComponent* ActorComponent); + static AActor* GetOwner(UActorComponent* ActorComponent, ActorType Type); + static void Destroy(UActorComponent* ActorComponent, bool PromoteChild); + static void AddTag(UActorComponent* ActorComponent, const char* Tag); + static void RemoveTag(UActorComponent* ActorComponent, const char* Tag); + static bool HasTag(UActorComponent* ActorComponent, const char* Tag); + } + + namespace InputComponent { + static bool HasBindings(UInputComponent* InputComponent); + static int32 GetActionBindingsNumber(UInputComponent* InputComponent); + static void ClearActionBindings(UInputComponent* InputComponent); + static void BindAction(UInputComponent* InputComponent, const char* ActionName, InputEvent KeyEvent, bool ExecutedWhenPaused, InputDelegate Callback); + static void BindAxis(UInputComponent* InputComponent, const char* AxisName, bool ExecutedWhenPaused, InputAxisDelegate Callback); + static void RemoveActionBinding(UInputComponent* InputComponent, const char* ActionName, InputEvent KeyEvent); + static bool GetBlockInput(UInputComponent* InputComponent); + static void SetBlockInput(UInputComponent* InputComponent, bool Value); + static int32 GetPriority(UInputComponent* InputComponent); + static void SetPriority(UInputComponent* InputComponent, int32 Value); + } + + namespace SceneComponent { + static bool IsAttachedToComponent(USceneComponent* SceneComponent, USceneComponent* Component); + static bool IsAttachedToActor(USceneComponent* SceneComponent, AActor* Actor); + static bool IsVisible(USceneComponent* SceneComponent); + static bool IsSocketExists(USceneComponent* SceneComponent, const char* SocketName); + static bool HasAnySockets(USceneComponent* SceneComponent); + static bool CanAttachAsChild(USceneComponent* SceneComponent, USceneComponent* ChildComponent, const char* SocketName); + static void ForEachAttachedChild(USceneComponent* SceneComponent, USceneComponent** Array, int32* Elements); + static USceneComponent* Create(AActor* Actor, ComponentType Type, const char* Name, bool SetAsRoot, UObject* Blueprint); + static bool AttachToComponent(USceneComponent* SceneComponent, USceneComponent* Parent, AttachmentTransformRule AttachmentRule, const char* SocketName); + static void DetachFromComponent(USceneComponent* SceneComponent, DetachmentTransformRule DetachmentRule); + static void Activate(USceneComponent* SceneComponent); + static void Deactivate(USceneComponent* SceneComponent); + static void UpdateToWorld(USceneComponent* SceneComponent, TeleportType Type, UpdateTransformFlags Flags); + static void AddLocalOffset(USceneComponent* SceneComponent, const Vector3* DeltaLocation); + static void AddLocalRotation(USceneComponent* SceneComponent, const Quaternion* DeltaRotation); + static void AddRelativeLocation(USceneComponent* SceneComponent, const Vector3* DeltaLocation); + static void AddRelativeRotation(USceneComponent* SceneComponent, const Quaternion* DeltaRotation); + static void AddLocalTransform(USceneComponent* SceneComponent, const Transform* DeltaTransform); + static void AddWorldOffset(USceneComponent* SceneComponent, const Vector3* DeltaLocation); + static void AddWorldRotation(USceneComponent* SceneComponent, const Quaternion* DeltaRotation); + static void AddWorldTransform(USceneComponent* SceneComponent, const Transform* DeltaTransform); + static void GetAttachedSocketName(USceneComponent* SceneComponent, char* SocketName); + static void GetBounds(USceneComponent* SceneComponent, const Transform* LocalToWorld, Bounds* Value); + static void GetSocketLocation(USceneComponent* SceneComponent, const char* SocketName, Vector3* Value); + static void GetSocketRotation(USceneComponent* SceneComponent, const char* SocketName, Quaternion* Value); + static void GetComponentVelocity(USceneComponent* SceneComponent, Vector3* Value); + static void GetComponentLocation(USceneComponent* SceneComponent, Vector3* Value); + static void GetComponentRotation(USceneComponent* SceneComponent, Quaternion* Value); + static void GetComponentScale(USceneComponent* SceneComponent, Vector3* Value); + static void GetComponentTransform(USceneComponent* SceneComponent, Transform* Value); + static void GetForwardVector(USceneComponent* SceneComponent, Vector3* Value); + static void GetRightVector(USceneComponent* SceneComponent, Vector3* Value); + static void GetUpVector(USceneComponent* SceneComponent, Vector3* Value); + static void SetMobility(USceneComponent* SceneComponent, ComponentMobility Mobility); + static void SetVisibility(USceneComponent* SceneComponent, bool NewVisibility, bool PropagateToChildren); + static void SetRelativeLocation(USceneComponent* SceneComponent, const Vector3* Location); + static void SetRelativeRotation(USceneComponent* SceneComponent, const Quaternion* Rotation); + static void SetRelativeTransform(USceneComponent* SceneComponent, const Transform* Transform); + static void SetWorldLocation(USceneComponent* SceneComponent, const Vector3* Location); + static void SetWorldRotation(USceneComponent* SceneComponent, const Quaternion* Rotation); + static void SetWorldScale(USceneComponent* SceneComponent, const Vector3* Scale); + static void SetWorldTransform(USceneComponent* SceneComponent, const Transform* Transform); + } + + namespace AudioComponent { + static bool IsPlaying(UAudioComponent* AudioComponent); + static bool GetPaused(UAudioComponent* AudioComponent); + static void SetSound(UAudioComponent* AudioComponent, USoundBase* Sound); + static void SetPaused(UAudioComponent* AudioComponent, bool Value); + static void Play(UAudioComponent* AudioComponent); + static void Stop(UAudioComponent* AudioComponent); + static void FadeIn(UAudioComponent* AudioComponent, float Duration, float VolumeLevel, float StartTime, AudioFadeCurve FadeCurve); + static void FadeOut(UAudioComponent* AudioComponent, float Duration, float VolumeLevel, AudioFadeCurve FadeCurve); + } + + namespace CameraComponent { + static bool GetConstrainAspectRatio(UCameraComponent* CameraComponent); + static float GetAspectRatio(UCameraComponent* CameraComponent); + static float GetFieldOfView(UCameraComponent* CameraComponent); + static float GetOrthoFarClipPlane(UCameraComponent* CameraComponent); + static float GetOrthoNearClipPlane(UCameraComponent* CameraComponent); + static float GetOrthoWidth(UCameraComponent* CameraComponent); + static bool GetLockToHeadMountedDisplay(UCameraComponent* CameraComponent); + static void SetProjectionMode(UCameraComponent* CameraComponent, CameraProjectionMode Mode); + static void SetConstrainAspectRatio(UCameraComponent* CameraComponent, bool Value); + static void SetAspectRatio(UCameraComponent* CameraComponent, float Value); + static void SetFieldOfView(UCameraComponent* CameraComponent, float Value); + static void SetOrthoFarClipPlane(UCameraComponent* CameraComponent, float Value); + static void SetOrthoNearClipPlane(UCameraComponent* CameraComponent, float Value); + static void SetOrthoWidth(UCameraComponent* CameraComponent, float Value); + static void SetLockToHeadMountedDisplay(UCameraComponent* CameraComponent, bool Value); + } + + namespace ChildActorComponent { + static AActor* GetChildActor(UChildActorComponent* ChildActorComponent, ActorType Type); + static AActor* SetChildActor(UChildActorComponent* ChildActorComponent, ActorType Type); + } + + namespace SpringArmComponent { + static bool IsCollisionFixApplied(USpringArmComponent* SpringArmComponent); + static bool GetDrawDebugLagMarkers(USpringArmComponent* SpringArmComponent); + static bool GetCollisionTest(USpringArmComponent* SpringArmComponent); + static bool GetCameraPositionLag(USpringArmComponent* SpringArmComponent); + static bool GetCameraRotationLag(USpringArmComponent* SpringArmComponent); + static bool GetCameraLagSubstepping(USpringArmComponent* SpringArmComponent); + static bool GetInheritPitch(USpringArmComponent* SpringArmComponent); + static bool GetInheritRoll(USpringArmComponent* SpringArmComponent); + static bool GetInheritYaw(USpringArmComponent* SpringArmComponent); + static float GetCameraLagMaxDistance(USpringArmComponent* SpringArmComponent); + static float GetCameraLagMaxTimeStep(USpringArmComponent* SpringArmComponent); + static float GetCameraPositionLagSpeed(USpringArmComponent* SpringArmComponent); + static float GetCameraRotationLagSpeed(USpringArmComponent* SpringArmComponent); + static CollisionChannel GetProbeChannel(USpringArmComponent* SpringArmComponent); + static float GetProbeSize(USpringArmComponent* SpringArmComponent); + static void GetSocketOffset(USpringArmComponent* SpringArmComponent, Vector3* Value); + static float GetTargetArmLength(USpringArmComponent* SpringArmComponent); + static void GetTargetOffset(USpringArmComponent* SpringArmComponent, Vector3* Value); + static void GetUnfixedCameraPosition(USpringArmComponent* SpringArmComponent, Vector3* Value); + static void GetDesiredRotation(USpringArmComponent* SpringArmComponent, Quaternion* Value); + static void GetTargetRotation(USpringArmComponent* SpringArmComponent, Quaternion* Value); + static bool GetUsePawnControlRotation(USpringArmComponent* SpringArmComponent); + static void SetDrawDebugLagMarkers(USpringArmComponent* SpringArmComponent, bool Value); + static void SetCollisionTest(USpringArmComponent* SpringArmComponent, bool Value); + static void SetCameraPositionLag(USpringArmComponent* SpringArmComponent, bool Value); + static void SetCameraRotationLag(USpringArmComponent* SpringArmComponent, bool Value); + static void SetCameraLagSubstepping(USpringArmComponent* SpringArmComponent, bool Value); + static void SetInheritPitch(USpringArmComponent* SpringArmComponent, bool Value); + static void SetInheritRoll(USpringArmComponent* SpringArmComponent, bool Value); + static void SetInheritYaw(USpringArmComponent* SpringArmComponent, bool Value); + static void SetCameraLagMaxDistance(USpringArmComponent* SpringArmComponent, float Value); + static void SetCameraLagMaxTimeStep(USpringArmComponent* SpringArmComponent, float Value); + static void SetCameraPositionLagSpeed(USpringArmComponent* SpringArmComponent, float Value); + static void SetCameraRotationLagSpeed(USpringArmComponent* SpringArmComponent, float Value); + static void SetProbeChannel(USpringArmComponent* SpringArmComponent, CollisionChannel Value); + static void SetProbeSize(USpringArmComponent* SpringArmComponent, float Value); + static void SetSocketOffset(USpringArmComponent* SpringArmComponent, const Vector3* Value); + static void SetTargetArmLength(USpringArmComponent* SpringArmComponent, float Value); + static void SetTargetOffset(USpringArmComponent* SpringArmComponent, const Vector3* Value); + static void SetUsePawnControlRotation(USpringArmComponent* SpringArmComponent, bool value); + } + + namespace PostProcessComponent { + static bool GetEnabled(UPostProcessComponent* PostProcessComponent); + static float GetBlendRadius(UPostProcessComponent* PostProcessComponent); + static float GetBlendWeight(UPostProcessComponent* PostProcessComponent); + static bool GetUnbound(UPostProcessComponent* PostProcessComponent); + static float GetPriority(UPostProcessComponent* PostProcessComponent); + static void SetEnabled(UPostProcessComponent* PostProcessComponent, bool Value); + static void SetBlendRadius(UPostProcessComponent* PostProcessComponent, float Value); + static void SetBlendWeight(UPostProcessComponent* PostProcessComponent, float Value); + static void SetUnbound(UPostProcessComponent* PostProcessComponent, bool Value); + static void SetPriority(UPostProcessComponent* PostProcessComponent, float Priority); + } + + namespace PrimitiveComponent { + static bool IsGravityEnabled(UPrimitiveComponent* PrimitiveComponent); + static bool IsOverlappingComponent(UPrimitiveComponent* PrimitiveComponent, UPrimitiveComponent* Other); + static void ForEachOverlappingComponent(UPrimitiveComponent* PrimitiveComponent, UPrimitiveComponent** Array, int32* Elements); + static void AddAngularImpulseInDegrees(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const char* BoneName, bool VelocityChange); + static void AddAngularImpulseInRadians(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const char* BoneName, bool VelocityChange); + static void AddForce(UPrimitiveComponent* PrimitiveComponent, const Vector3* Force, const char* BoneName, bool AccelerationChange); + static void AddForceAtLocation(UPrimitiveComponent* PrimitiveComponent, const Vector3* Force, const Vector3* Location, const char* BoneName, bool LocalSpace); + static void AddImpulse(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const char* BoneName, bool VelocityChange); + static void AddImpulseAtLocation(UPrimitiveComponent* PrimitiveComponent, const Vector3* Impulse, const Vector3* Location, const char* BoneName); + static void AddRadialForce(UPrimitiveComponent* PrimitiveComponent, const Vector3* Origin, float Radius, float Strength, bool LinearFalloff, bool AccelerationChange); + static void AddRadialImpulse(UPrimitiveComponent* PrimitiveComponent, const Vector3* Origin, float Radius, float Strength, bool LinearFalloff, bool AccelerationChange); + static void AddTorqueInDegrees(UPrimitiveComponent* PrimitiveComponent, const Vector3* Torque, const char* BoneName, bool AccelerationChange); + static void AddTorqueInRadians(UPrimitiveComponent* PrimitiveComponent, const Vector3* Torque, const char* BoneName, bool AccelerationChange); + static float GetMass(UPrimitiveComponent* PrimitiveComponent); + static void GetPhysicsLinearVelocity(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const char* BoneName); + static void GetPhysicsLinearVelocityAtPoint(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const Vector3* Point, const char* BoneName); + static void GetPhysicsAngularVelocityInDegrees(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const char* BoneName); + static void GetPhysicsAngularVelocityInRadians(UPrimitiveComponent* PrimitiveComponent, Vector3* Value, const char* BoneName); + static bool GetCastShadow(UPrimitiveComponent* PrimitiveComponent); + static bool GetOnlyOwnerSee(UPrimitiveComponent* PrimitiveComponent); + static bool GetOwnerNoSee(UPrimitiveComponent* PrimitiveComponent); + static bool GetIgnoreRadialForce(UPrimitiveComponent* PrimitiveComponent); + static bool GetIgnoreRadialImpulse(UPrimitiveComponent* PrimitiveComponent); + static UMaterialInstanceDynamic* GetMaterial(UPrimitiveComponent* PrimitiveComponent, int32 ElementIndex); + static int32 GetMaterialsNumber(UPrimitiveComponent* PrimitiveComponent); + static float GetDistanceToCollision(UPrimitiveComponent* PrimitiveComponent, const Vector3* Point, Vector3* ClosestPointOnCollision); + static bool GetSquaredDistanceToCollision(UPrimitiveComponent* PrimitiveComponent, const Vector3* Point, float* SquaredDistance, Vector3* ClosestPointOnCollision); + static float GetAngularDamping(UPrimitiveComponent* PrimitiveComponent); + static float GetLinearDamping(UPrimitiveComponent* PrimitiveComponent); + static void SetGenerateOverlapEvents(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetGenerateHitEvents(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetMass(UPrimitiveComponent* PrimitiveComponent, float Mass, const char* BoneName); + static void SetCenterOfMass(UPrimitiveComponent* PrimitiveComponent, const Vector3* Offset, const char* BoneName); + static void SetPhysicsLinearVelocity(UPrimitiveComponent* PrimitiveComponent, const Vector3* Velocity, bool AddToCurrent, const char* BoneName); + static void SetPhysicsAngularVelocityInDegrees(UPrimitiveComponent* PrimitiveComponent, const Vector3* AngularVelocity, bool AddToCurrent, const char* BoneName); + static void SetPhysicsAngularVelocityInRadians(UPrimitiveComponent* PrimitiveComponent, const Vector3* AngularVelocity, bool AddToCurrent, const char* BoneName); + static void SetPhysicsMaxAngularVelocityInDegrees(UPrimitiveComponent* PrimitiveComponent, float MaxAngularVelocity, bool AddToCurrent, const char* BoneName); + static void SetPhysicsMaxAngularVelocityInRadians(UPrimitiveComponent* PrimitiveComponent, float MaxAngularVelocity, bool AddToCurrent, const char* BoneName); + static void SetCastShadow(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetOnlyOwnerSee(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetOwnerNoSee(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetIgnoreRadialForce(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetIgnoreRadialImpulse(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetMaterial(UPrimitiveComponent* PrimitiveComponent, int32 ElementIndex, UMaterialInterface* Material); + static void SetSimulatePhysics(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetAngularDamping(UPrimitiveComponent* PrimitiveComponent, float Value); + static void SetLinearDamping(UPrimitiveComponent* PrimitiveComponent, float Value); + static void SetEnableGravity(UPrimitiveComponent* PrimitiveComponent, bool Value); + static void SetCollisionMode(UPrimitiveComponent* PrimitiveComponent, CollisionMode Mode); + static void SetCollisionChannel(UPrimitiveComponent* PrimitiveComponent, CollisionChannel Channel); + static void SetCollisionProfileName(UPrimitiveComponent* PrimitiveComponent, const char* ProfileName, bool UpdateOverlaps); + static void SetCollisionResponseToChannel(UPrimitiveComponent* PrimitiveComponent, CollisionChannel Channel, CollisionResponse Response); + static void SetCollisionResponseToAllChannels(UPrimitiveComponent* PrimitiveComponent, CollisionResponse Response); + static void SetIgnoreActorWhenMoving(UPrimitiveComponent* PrimitiveComponent, AActor* Actor, bool Value); + static void SetIgnoreComponentWhenMoving(UPrimitiveComponent* PrimitiveComponent, UPrimitiveComponent* Component, bool Value); + static void ClearMoveIgnoreActors(UPrimitiveComponent* PrimitiveComponent); + static void ClearMoveIgnoreComponents(UPrimitiveComponent* PrimitiveComponent); + static UMaterialInstanceDynamic* CreateAndSetMaterialInstanceDynamic(UPrimitiveComponent* PrimitiveComponent, int32 ElementIndex); + static void RegisterEvent(UPrimitiveComponent* PrimitiveComponent, ComponentEventType Type); + static void UnregisterEvent(UPrimitiveComponent* PrimitiveComponent, ComponentEventType Type); + } + + namespace ShapeComponent { + static bool GetDynamicObstacle(UShapeComponent* ShapeComponent); + static int32 GetShapeColor(UShapeComponent* ShapeComponent); + static void SetDynamicObstacle(UShapeComponent* ShapeComponent, bool Value); + static void SetShapeColor(UShapeComponent* ShapeComponent, Color Value); + } + + namespace BoxComponent { + static void GetScaledBoxExtent(UBoxComponent* BoxComponent, Vector3* Value); + static void GetUnscaledBoxExtent(UBoxComponent* BoxComponent, Vector3* Value); + static void SetBoxExtent(UBoxComponent* BoxComponent, const Vector3* Extent, bool UpdateOverlaps); + static void InitBoxExtent(UBoxComponent* BoxComponent, const Vector3* Extent); + } + + namespace SphereComponent { + static float GetScaledSphereRadius(USphereComponent* SphereComponent); + static float GetUnscaledSphereRadius(USphereComponent* SphereComponent); + static float GetShapeScale(USphereComponent* SphereComponent); + static void SetSphereRadius(USphereComponent* SphereComponent, float SphereRadius, bool UpdateOverlaps); + static void InitSphereRadius(USphereComponent* SphereComponent, float SphereRadius); + } + + namespace CapsuleComponent { + static float GetScaledCapsuleRadius(UCapsuleComponent* CapsuleComponent); + static float GetUnscaledCapsuleRadius(UCapsuleComponent* CapsuleComponent); + static float GetShapeScale(UCapsuleComponent* CapsuleComponent); + static void GetScaledCapsuleSize(UCapsuleComponent* CapsuleComponent, float* Radius, float* HalfHeight); + static void GetUnscaledCapsuleSize(UCapsuleComponent* CapsuleComponent, float* Radius, float* HalfHeight); + static void SetCapsuleRadius(UCapsuleComponent* CapsuleComponent, float Radius, bool UpdateOverlaps); + static void SetCapsuleSize(UCapsuleComponent* CapsuleComponent, float Radius, float HalfHeight, bool UpdateOverlaps); + static void InitCapsuleSize(UCapsuleComponent* CapsuleComponent, float Radius, float HalfHeight); + } + + namespace MeshComponent { + static bool IsValidMaterialSlotName(UMeshComponent* MeshComponent, const char* MaterialSlotName); + static int32 GetMaterialIndex(UMeshComponent* MeshComponent, const char* MaterialSlotName); + } + + namespace TextRenderComponent { + static void SetFont(UTextRenderComponent* TextRenderComponent, UFont* Value); + static void SetText(UTextRenderComponent* TextRenderComponent, const char* Value); + static void SetTextMaterial(UTextRenderComponent* TextRenderComponent, UMaterialInterface* Material); + static void SetTextRenderColor(UTextRenderComponent* TextRenderComponent, Color Value); + static void SetHorizontalAlignment(UTextRenderComponent* TextRenderComponent, HorizontalTextAligment Value); + static void SetHorizontalSpacingAdjustment(UTextRenderComponent* TextRenderComponent, float Value); + static void SetVerticalAlignment(UTextRenderComponent* TextRenderComponent, VerticalTextAligment Value); + static void SetVerticalSpacingAdjustment(UTextRenderComponent* TextRenderComponent, float Value); + static void SetScale(UTextRenderComponent* TextRenderComponent, const Vector2* Value); + static void SetWorldSize(UTextRenderComponent* TextRenderComponent, float Value); + } + + namespace LightComponentBase { + static float GetIntensity(ULightComponentBase* LightComponentBase); + static bool GetCastShadows(ULightComponentBase* LightComponentBase); + static void SetCastShadows(ULightComponentBase* LightComponentBase, bool Value); + } + + namespace LightComponent { + static void SetIntensity(ULightComponent* LightComponent, float Value); + static void SetLightColor(ULightComponent* LightComponent, const LinearColor* Value); + } + + namespace DirectionalLightComponent { + + } + + namespace MotionControllerComponent { + static bool IsTracked(UMotionControllerComponent* MotionControllerComponent); + static bool GetDisplayDeviceModel(UMotionControllerComponent* MotionControllerComponent); + static bool GetDisableLowLatencyUpdate(UMotionControllerComponent* MotionControllerComponent); + static ControllerHand GetTrackingSource(UMotionControllerComponent* MotionControllerComponent); + static void SetDisplayDeviceModel(UMotionControllerComponent* MotionControllerComponent, bool Value); + static void SetDisableLowLatencyUpdate(UMotionControllerComponent* MotionControllerComponent, bool Value); + static void SetTrackingSource(UMotionControllerComponent* MotionControllerComponent, ControllerHand Value); + static void SetTrackingMotionSource(UMotionControllerComponent* MotionControllerComponent, const char* Source); + static void SetAssociatedPlayerIndex(UMotionControllerComponent* MotionControllerComponent, int32 PlayerIndex); + static void SetCustomDisplayMesh(UMotionControllerComponent* MotionControllerComponent, UStaticMesh* StaticMesh); + static void SetDisplayModelSource(UMotionControllerComponent* MotionControllerComponent, const char* Source); + } + + namespace StaticMeshComponent { + static void GetLocalBounds(UStaticMeshComponent* StaticMeshComponent, Vector3* Min, Vector3* Max); + static UStaticMesh* GetStaticMesh(UStaticMeshComponent* StaticMeshComponent); + static bool SetStaticMesh(UStaticMeshComponent* StaticMeshComponent, UStaticMesh* StaticMesh); + } + + namespace InstancedStaticMeshComponent { + static int32 GetInstanceCount(UInstancedStaticMeshComponent* InstancedStaticMeshComponent); + static bool GetInstanceTransform(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 InstanceIndex, Transform* Value, bool WorldSpace); + static void AddInstance(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, const Transform* InstanceTransform); + static void AddInstances(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 EndInstanceIndex, const Transform InstanceTransforms[]); + static bool UpdateInstanceTransform(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 InstanceIndex, const Transform* InstanceTransform, bool WorldSpace, bool MarkRenderStateDirty, bool Teleport); + static bool BatchUpdateInstanceTransforms(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 StartInstanceIndex, int32 EndInstanceIndex, const Transform InstanceTransforms[], bool WorldSpace, bool MarkRenderStateDirty, bool Teleport); + static bool RemoveInstance(UInstancedStaticMeshComponent* InstancedStaticMeshComponent, int32 InstanceIndex); + static void ClearInstances(UInstancedStaticMeshComponent* InstancedStaticMeshComponent); + } + + namespace HierarchicalInstancedStaticMeshComponent { + static bool GetDisableCollision(UHierarchicalInstancedStaticMeshComponent* HierarchicalInstancedStaticMeshComponent); + static void SetDisableCollision(UHierarchicalInstancedStaticMeshComponent* HierarchicalInstancedStaticMeshComponent, bool Value); + } + + namespace SkinnedMeshComponent { + static int32 GetBonesNumber(USkinnedMeshComponent* SkinnedMeshComponent); + static int32 GetBoneIndex(USkinnedMeshComponent* SkinnedMeshComponent, const char* BoneName); + static void GetBoneName(USkinnedMeshComponent* SkinnedMeshComponent, int32 BoneIndex, char* BoneName); + static void GetBoneTransform(USkinnedMeshComponent* SkinnedMeshComponent, int32 BoneIndex, Transform* Value); + static void SetSkeletalMesh(USkinnedMeshComponent* SkinnedMeshComponent, USkeletalMesh* SkeletalMesh, bool ReinitializePose); + } + + namespace SkeletalMeshComponent { + static bool IsPlaying(USkeletalMeshComponent* SkeletalMeshComponent); + static UAnimInstance* GetAnimationInstance(USkeletalMeshComponent* SkeletalMeshComponent); + static void SetAnimation(USkeletalMeshComponent* SkeletalMeshComponent, UAnimationAsset* Asset); + static void SetAnimationMode(USkeletalMeshComponent* SkeletalMeshComponent, AnimationMode Mode); + static void SetAnimationBlueprint(USkeletalMeshComponent* SkeletalMeshComponent, UObject* Blueprint); + static void Play(USkeletalMeshComponent* SkeletalMeshComponent, bool Loop); + static void PlayAnimation(USkeletalMeshComponent* SkeletalMeshComponent, UAnimationAsset* Asset, bool Loop); + static void Stop(USkeletalMeshComponent* SkeletalMeshComponent); + } + + namespace SplineComponent { + static bool IsClosedLoop(USplineComponent* SplineComponent); + static float GetDuration(USplineComponent* SplineComponent); + static SplinePointType GetSplinePointType(USplineComponent* SplineComponent, int32 PointIndex); + static int32 GetSplinePointsNumber(USplineComponent* SplineComponent); + static int32 GetSplineSegmentsNumber(USplineComponent* SplineComponent); + static void GetTangentAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetTangentAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value); + static void GetTransformAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Transform* Value); + static void GetTransformAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, bool UseScale, Transform* Value); + static void GetArriveTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetDefaultUpVector(USplineComponent* SplineComponent, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetDirectionAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetDirectionAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetDirectionAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value); + static float GetDistanceAlongSplineAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex); + static void GetLeaveTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetLocationAndTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Location, Vector3* Tangent); + static void GetLocationAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetLocationAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetLocationAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetRightVectorAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetRightVectorAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetRightVectorAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value); + static float GetRollAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace); + static float GetRollAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace); + static float GetRollAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity); + static void GetRotationAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Quaternion* Value); + static void GetRotationAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Quaternion* Value); + static void GetRotationAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Quaternion* Value); + static void GetScaleAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, Vector3* Value); + static void GetScaleAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, Vector3* Value); + static void GetScaleAtTime(USplineComponent* SplineComponent, float Time, bool UseConstantVelocity, Vector3* Value); + static float GetSplineLength(USplineComponent* SplineComponent); + static void GetTransformAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, bool UseScale, Transform* Value); + static void GetUpVectorAtDistanceAlongSpline(USplineComponent* SplineComponent, float Distance, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetUpVectorAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void GetUpVectorAtTime(USplineComponent* SplineComponent, float Time, SplineCoordinateSpace CoordinateSpace, bool UseConstantVelocity, Vector3* Value); + static void SetDuration(USplineComponent* SplineComponent, float Value); + static void SetSplinePointType(USplineComponent* SplineComponent, int32 PointIndex, SplinePointType Type, bool UpdateSpline); + static void SetClosedLoop(USplineComponent* SplineComponent, bool Value, bool UpdateSpline); + static void SetDefaultUpVector(USplineComponent* SplineComponent, const Vector3* Value, SplineCoordinateSpace CoordinateSpace); + static void SetLocationAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* Value, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline); + static void SetTangentAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* Tangent, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline); + static void SetTangentsAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* ArriveTangent, const Vector3* LeaveTangent, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline); + static void SetUpVectorAtSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, const Vector3* UpVector, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline); + static void AddSplinePoint(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline); + static void AddSplinePointAtIndex(USplineComponent* SplineComponent, const Vector3* Location, int32 PointIndex, SplineCoordinateSpace CoordinateSpace, bool UpdateSpline); + static void ClearSplinePoints(USplineComponent* SplineComponent, bool UpdateSpline); + static void FindDirectionClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void FindLocationClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void FindUpVectorClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void FindRightVectorClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static float FindRollClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace); + static void FindScaleClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, Vector3* Value); + static void FindTangentClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, Vector3* Value); + static void FindTransformClosestToWorldLocation(USplineComponent* SplineComponent, const Vector3* Location, SplineCoordinateSpace CoordinateSpace, bool UseScale, Transform* Value); + static void RemoveSplinePoint(USplineComponent* SplineComponent, int32 PointIndex, bool UpdateSpline); + static void UpdateSpline(USplineComponent* SplineComponent); + } + + namespace RadialForceComponent { + static bool GetIgnoreOwningActor(URadialForceComponent* RadialForceComponent); + static bool GetImpulseVelocityChange(URadialForceComponent* RadialForceComponent); + static bool GetLinearFalloff(URadialForceComponent* RadialForceComponent); + static float GetForceStrength(URadialForceComponent* RadialForceComponent); + static float GetImpulseStrength(URadialForceComponent* RadialForceComponent); + static float GetRadius(URadialForceComponent* RadialForceComponent); + static void SetIgnoreOwningActor(URadialForceComponent* RadialForceComponent, bool Value); + static void SetImpulseVelocityChange(URadialForceComponent* RadialForceComponent, bool Value); + static void SetLinearFalloff(URadialForceComponent* RadialForceComponent, bool Value); + static void SetForceStrength(URadialForceComponent* RadialForceComponent, float Value); + static void SetImpulseStrength(URadialForceComponent* RadialForceComponent, float Value); + static void SetRadius(URadialForceComponent* RadialForceComponent, float Value); + static void AddCollisionChannelToAffect(URadialForceComponent* RadialForceComponent, CollisionChannel Channel); + static void FireImpulse(URadialForceComponent* RadialForceComponent); + } + + namespace MaterialInterface { + static bool IsTwoSided(UMaterialInterface* MaterialInterface); + } + + namespace Material { + static bool IsDefaultMaterial(UMaterial* Material); + } + + namespace MaterialInstance { + static bool IsChildOf(UMaterialInstance* MaterialInstance, UMaterialInterface* Material); + static UMaterialInstanceDynamic* GetParent(UMaterialInstance* MaterialInstance); + } + + namespace MaterialInstanceDynamic { + static void ClearParameterValues(UMaterialInstanceDynamic* MaterialInstanceDynamic); + static void SetTextureParameterValue(UMaterialInstanceDynamic* MaterialInstanceDynamic, const char* ParameterName, UTexture* Value); + static void SetVectorParameterValue(UMaterialInstanceDynamic* MaterialInstanceDynamic, const char* ParameterName, const LinearColor* Value); + static void SetScalarParameterValue(UMaterialInstanceDynamic* MaterialInstanceDynamic, const char* ParameterName, float Value); + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRLibrary.h b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRLibrary.h new file mode 100644 index 00000000..eee60a75 --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRLibrary.h @@ -0,0 +1,63 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +#include "Kismet/BlueprintFunctionLibrary.h" +#include "UnrealCLRLibrary.generated.h" + +USTRUCT(BlueprintType) +struct UNREALCLR_API FManagedFunction { + GENERATED_BODY() + + public: + + void* Pointer; + + FManagedFunction(); +}; + +UCLASS() +class UNREALCLR_API UUnrealCLRLibrary : public UBlueprintFunctionLibrary { + GENERATED_UCLASS_BODY() + + public: + + UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = ".NET", meta = (ToolTip = "Executes the managed function with optional object reference argument")) + static void ExecuteManagedFunction(FManagedFunction ManagedFunction, UObject* Object); + + UFUNCTION(BlueprintCallable, BlueprintPure = false, Category = ".NET", meta = (ToolTip = "Finds the managed function from loaded assembly, optional parameter suppresses errors if the function was not found")) + static FManagedFunction FindManagedFunction(FString Method, bool Optional, bool& Result); +}; + +UCLASS() +class UNREALCLR_API UUnrealCLRCharacter : public UObject { + GENERATED_UCLASS_BODY() + + public: + + void* LandedCallback; + + UFUNCTION() + void Landed(const FHitResult& Hit); +}; \ No newline at end of file diff --git a/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRManager.h b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRManager.h new file mode 100644 index 00000000..7c160b72 --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/Public/UnrealCLRManager.h @@ -0,0 +1,77 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#pragma once + +#include "CoreMinimal.h" +#include "GameFramework/Actor.h" +#include "UnrealCLRManager.generated.h" + +UCLASS() +class UNREALCLR_API UUnrealCLRManager : public UObject { + GENERATED_BODY() + + public: + + UFUNCTION() + void ActorBeginOverlap(AActor* OverlapActor, AActor* OtherActor); + + UFUNCTION() + void ActorEndOverlap(AActor* OverlapActor, AActor* OtherActor); + + UFUNCTION() + void ActorHit(AActor* HitActor, AActor* OtherActor, FVector NormalImpulse, const FHitResult& Hit); + + UFUNCTION() + void ActorBeginCursorOver(AActor* Actor); + + UFUNCTION() + void ActorEndCursorOver(AActor* Actor); + + UFUNCTION() + void ActorClicked(AActor* Actor, FKey Button); + + UFUNCTION() + void ActorReleased(AActor* Actor, FKey Button); + + UFUNCTION() + void ComponentBeginOverlap(UPrimitiveComponent* OverlapComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, int32 OtherBodyIndex, bool FromSweep, const FHitResult& SweepResult); + + UFUNCTION() + void ComponentEndOverlap(UPrimitiveComponent* OverlapComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, int32 OtherBodyIndex); + + UFUNCTION() + void ComponentHit(UPrimitiveComponent* HitComponent, AActor* OtherActor, UPrimitiveComponent* OtherComponent, FVector NormalImpulse, const FHitResult& Hit); + + UFUNCTION() + void ComponentBeginCursorOver(UPrimitiveComponent* Component); + + UFUNCTION() + void ComponentEndCursorOver(UPrimitiveComponent* Component); + + UFUNCTION() + void ComponentClicked(UPrimitiveComponent* Component, FKey Key); + + UFUNCTION() + void ComponentReleased(UPrimitiveComponent* Component, FKey Key); +}; \ No newline at end of file diff --git a/plugins/UnrealCLR/Source/UnrealCLR/UnrealCLR.Build.cs b/plugins/UnrealCLR/Source/UnrealCLR/UnrealCLR.Build.cs new file mode 100644 index 00000000..991c7ddc --- /dev/null +++ b/plugins/UnrealCLR/Source/UnrealCLR/UnrealCLR.Build.cs @@ -0,0 +1,97 @@ +/* + * Unreal Engine .NET 5 integration + * Copyright (c) 2021 Stanislav Denisov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +using System; +using System.IO; +using UnrealBuildTool; + +public class UnrealCLR : ModuleRules { + public UnrealCLR(ReadOnlyTargetRules Target) : base(Target) { + #if UE_4_24_OR_LATER + bLegacyPublicIncludePaths = false; + DefaultBuildSettings = BuildSettingsVersion.V2; + #else + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + #endif + + PublicIncludePaths.AddRange(new string[] { }); + + PrivateIncludePaths.AddRange(new string[] { }); + + PublicDependencyModuleNames.AddRange(new string[] { + "Core" + }); + + PrivateDependencyModuleNames.AddRange(new string[] { + "AIModule", + "AssetRegistry", + "CoreUObject", + "Engine", + "HeadMountedDisplay", + "InputCore", + "Slate", + "SlateCore" + }); + + DynamicallyLoadedModuleNames.AddRange(new string[] { }); + + if (Target.bBuildEditor) { + PrivateDependencyModuleNames.AddRange(new string[] { + "UnrealEd" + }); + } else { + string runtimePath = null; + + if (Target.Platform == UnrealTargetPlatform.Win64) + runtimePath = Path.Combine(ModuleDirectory, "../../Runtime/Win64"); + else if (Target.Platform == UnrealTargetPlatform.Linux) + runtimePath = Path.Combine(ModuleDirectory, "../../Runtime/Linux"); + else if (Target.Platform == UnrealTargetPlatform.Mac) + runtimePath = Path.Combine(ModuleDirectory, "../../Runtime/Mac"); + else + throw new Exception("Unknown platform"); + + string[] files = Directory.GetFiles(runtimePath, "*.*", SearchOption.AllDirectories); + + foreach (string file in files) { + RuntimeDependencies.Add(file); + } + + files = Directory.GetFiles(Path.Combine(ModuleDirectory, "../../Managed"), "*.*", SearchOption.AllDirectories); + + foreach (string file in files) { + RuntimeDependencies.Add(file); + } + + string userAssemblies = Path.Combine(PluginDirectory , "../../Managed"); + + if (Directory.Exists(userAssemblies)) { + files = Directory.GetFiles(userAssemblies, "*.*", SearchOption.AllDirectories); + + foreach (string file in files) { + RuntimeDependencies.Add(file); + } + } + } + } +} \ No newline at end of file diff --git a/plugins/UnrealCLR/UnrealCLR.uplugin b/plugins/UnrealCLR/UnrealCLR.uplugin new file mode 100644 index 00000000..6e80d507 --- /dev/null +++ b/plugins/UnrealCLR/UnrealCLR.uplugin @@ -0,0 +1,30 @@ +{ + "FileVersion": 3, + "Version": 1, + "VersionName": "1.30", + "FriendlyName": "UnrealCLR", + "Description": ".NET 5 integration", + "Category": "Scripting", + "CreatedBy": "nxrighthere", + "CreatedByURL": "https://github.com/nxrighthere", + "DocsURL": "https://github.com/nxrighthere/UnrealCLR", + "MarketplaceURL": "", + "SupportURL": "https://github.com/nxrighthere/UnrealCLR/discussions", + "EnabledByDefault": true, + "CanContainContent": false, + "IsBetaVersion": false, + "IsExperimentalVersion": false, + "Installed": false, + "Modules": [ + { + "Name": "UnrealCLR", + "Type": "Runtime", + "LoadingPhase": "PreLoadingScreen", + "WhitelistPlatforms": [ + "Win64", + "Linux", + "Mac" + ] + } + ] +} \ No newline at end of file