From 81be932e79acbd7f687b9d54071bd576665face0 Mon Sep 17 00:00:00 2001 From: "gerry.button@wacom.com" Date: Wed, 27 May 2020 16:19:53 +0100 Subject: [PATCH] initial commit --- GETTING-STARTED.md | 93 + README.md | 135 +- RELEASE.md | 11 + Samples/DirectXInterop1/App.xaml | 8 + Samples/DirectXInterop1/App.xaml.cpp | 92 + Samples/DirectXInterop1/App.xaml.h | 27 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes Samples/DirectXInterop1/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Common/DeviceResources.cpp | 692 + .../DirectXInterop1/Common/DeviceResources.h | 100 + .../DirectXInterop1/Common/DirectXHelper.h | 63 + Samples/DirectXInterop1/Common/StepTimer.h | 183 + .../Content/Sample3DSceneRenderer.cpp | 327 + .../Content/Sample3DSceneRenderer.h | 46 + .../Content/SampleFpsTextRenderer.cpp | 111 + .../Content/SampleFpsTextRenderer.h | 31 + .../Content/SamplePixelShader.hlsl | 24 + .../Content/SampleVertexShader.hlsl | 48 + .../Content/ShaderStructures.h | 44 + .../DirectXInterop1/Content/TexturePS.hlsl | 16 + .../DirectXInterop1/Content/TextureVS.hlsl | 23 + .../Content/WacomInkRenderer.cpp | 558 + .../Content/WacomInkRenderer.h | 83 + Samples/DirectXInterop1/DirectXInterop1.sln | 40 + Samples/DirectXInterop1/DirectXInterop1.suo | Bin 0 -> 10752 bytes .../DirectXInterop1/DirectXInterop1.v12.suo | Bin 0 -> 49152 bytes .../DirectXInterop1/DirectXInterop1.vcxproj | 302 + .../DirectXInterop1.vcxproj.filters | 109 + .../DirectXInterop1/DirectXInterop1Main.cpp | 173 + Samples/DirectXInterop1/DirectXInterop1Main.h | 78 + .../DirectXInterop1_TemporaryKey.pfx | Bin 0 -> 2512 bytes Samples/DirectXInterop1/DirectXPage.xaml | 26 + Samples/DirectXInterop1/DirectXPage.xaml.cpp | 184 + Samples/DirectXInterop1/DirectXPage.xaml.h | 59 + .../DirectXInterop1/Generated Files/App.g.h | 27 + .../DirectXInterop1/Generated Files/App.g.hpp | 96 + .../DirectXInterop1/Generated Files/App.xaml | 9 + .../DirectXInterop1/Generated Files/App.xbf | Bin 0 -> 532 bytes .../Generated Files/DirectXPage.g.h | 40 + .../Generated Files/DirectXPage.g.hpp | 58 + .../Generated Files/DirectXPage.xaml | 27 + .../Generated Files/DirectXPage.xbf | Bin 0 -> 1123 bytes .../Generated Files/XamlBindingInfo.g.h | 57 + .../Generated Files/XamlBindingInfo.g.hpp | 13 + .../XamlLibMetadataProvider.g.cpp | 2 + .../Generated Files/XamlTypeInfo.Impl.g.cpp | 579 + .../Generated Files/XamlTypeInfo.g.cpp | 193 + .../Generated Files/XamlTypeInfo.g.h | 351 + Samples/DirectXInterop1/Package.appxmanifest | 49 + Samples/DirectXInterop1/pch.cpp | 1 + Samples/DirectXInterop1/pch.h | 16 + Samples/README.md | 21 + Samples/Tutorials/README.md | 19 + Samples/Tutorials/Tutorial_01/App.xaml | 8 + Samples/Tutorials/Tutorial_01/App.xaml.cs | 106 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Tutorial_01/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes Samples/Tutorials/Tutorial_01/Assets/fill.png | Bin 0 -> 17116 bytes .../Tutorials/Tutorial_01/Assets/shape.png | Bin 0 -> 583 bytes Samples/Tutorials/Tutorial_01/MainPage.xaml | 45 + .../Tutorials/Tutorial_01/MainPage.xaml.cs | 97 + .../Tutorial_01/Package.appxmanifest | 49 + .../Tutorial_01/Properties/AssemblyInfo.cs | 29 + .../Tutorial_01/Properties/Default.rd.xml | 31 + Samples/Tutorials/Tutorial_01/README.md | 916 + .../Tutorials/Tutorial_01/Tutorial_01.csproj | 192 + .../Tutorial_01/Tutorial_01.csproj.user | 7 + .../Tutorial_01/Tutorial_01_Part_1.xaml | 15 + .../Tutorial_01/Tutorial_01_Part_1.xaml.cs | 187 + .../Tutorial_01/Tutorial_01_Part_2.xaml | 15 + .../Tutorial_01/Tutorial_01_Part_2.xaml.cs | 348 + .../Tutorial_01/Tutorial_01_Part_3.xaml | 15 + .../Tutorial_01/Tutorial_01_Part_3.xaml.cs | 360 + .../Tutorial_01/Tutorial_01_Part_4.xaml | 15 + .../Tutorial_01/Tutorial_01_Part_4.xaml.cs | 375 + .../Tutorial_01/Tutorial_01_Part_5.xaml | 15 + .../Tutorial_01/Tutorial_01_Part_5.xaml.cs | 423 + .../Tutorial_01/Tutorial_01_Part_6.xaml | 15 + .../Tutorial_01/Tutorial_01_Part_6.xaml.cs | 399 + Samples/Tutorials/Tutorial_01/project.json | 16 + .../Tutorials/Tutorial_01/project.lock.json | 14775 ++++++++++++++++ Samples/Tutorials/Tutorial_02/App.xaml | 8 + Samples/Tutorials/Tutorial_02/App.xaml.cs | 106 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Tutorial_02/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes Samples/Tutorials/Tutorial_02/MainPage.xaml | 34 + .../Tutorials/Tutorial_02/MainPage.xaml.cs | 82 + .../Tutorial_02/Package.appxmanifest | 49 + .../Tutorial_02/Properties/AssemblyInfo.cs | 29 + .../Tutorial_02/Properties/Default.rd.xml | 31 + Samples/Tutorials/Tutorial_02/README.md | 416 + Samples/Tutorials/Tutorial_02/Stroke.cs | 41 + .../Tutorials/Tutorial_02/Tutorial_02.csproj | 163 + .../Tutorial_02/Tutorial_02_Part_2.xaml | 57 + .../Tutorial_02/Tutorial_02_Part_2.xaml.cs | 531 + .../Tutorial_02/Tutorial_02_Part_3.xaml | 57 + .../Tutorial_02/Tutorial_02_Part_3.xaml.cs | 554 + Samples/Tutorials/Tutorial_02/project.json | 16 + .../Tutorials/Tutorial_02/project.lock.json | 14775 ++++++++++++++++ Samples/Tutorials/Tutorial_03/App.xaml | 8 + Samples/Tutorials/Tutorial_03/App.xaml.cs | 106 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Tutorial_03/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Tutorials/Tutorial_03/Assets/strokes.bin | Bin 0 -> 1032 bytes Samples/Tutorials/Tutorial_03/Interval.cs | 64 + Samples/Tutorials/Tutorial_03/MainPage.xaml | 34 + .../Tutorials/Tutorial_03/MainPage.xaml.cs | 82 + .../Tutorial_03/Package.appxmanifest | 49 + .../Tutorial_03/Properties/AssemblyInfo.cs | 29 + .../Tutorial_03/Properties/Default.rd.xml | 31 + Samples/Tutorials/Tutorial_03/README.md | 456 + Samples/Tutorials/Tutorial_03/Stroke.cs | 93 + .../Tutorials/Tutorial_03/Tutorial_03.csproj | 165 + .../Tutorial_03/Tutorial_03_Part_2.xaml | 18 + .../Tutorial_03/Tutorial_03_Part_2.xaml.cs | 404 + .../Tutorial_03/Tutorial_03_Part_3.xaml | 18 + .../Tutorial_03/Tutorial_03_Part_3.xaml.cs | 436 + Samples/Tutorials/Tutorial_03/project.json | 16 + .../Tutorials/Tutorial_03/project.lock.json | 14775 ++++++++++++++++ Samples/Tutorials/Tutorial_04/App.xaml | 8 + Samples/Tutorials/Tutorial_04/App.xaml.cs | 106 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Tutorial_04/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Tutorials/Tutorial_04/Assets/strokes.bin | Bin 0 -> 1032 bytes Samples/Tutorials/Tutorial_04/Interval.cs | 59 + Samples/Tutorials/Tutorial_04/MainPage.xaml | 29 + .../Tutorials/Tutorial_04/MainPage.xaml.cs | 78 + .../Tutorial_04/Package.appxmanifest | 49 + .../Tutorial_04/Properties/AssemblyInfo.cs | 29 + .../Tutorial_04/Properties/Default.rd.xml | 31 + Samples/Tutorials/Tutorial_04/README.md | 283 + Samples/Tutorials/Tutorial_04/Stroke.cs | 100 + .../Tutorials/Tutorial_04/Tutorial_04.csproj | 165 + .../Tutorial_04/Tutorial_04_Part_1.xaml | 18 + .../Tutorial_04/Tutorial_04_Part_1.xaml.cs | 487 + .../Tutorial_04/Tutorial_04_Part_2.xaml | 18 + .../Tutorial_04/Tutorial_04_Part_2.xaml.cs | 525 + Samples/Tutorials/Tutorial_04/project.json | 16 + .../Tutorials/Tutorial_04/project.lock.json | 14775 ++++++++++++++++ Samples/Tutorials/Tutorial_05/App.xaml | 8 + Samples/Tutorials/Tutorial_05/App.xaml.cs | 106 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Tutorial_05/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Tutorials/Tutorial_05/Assets/image.jpg | Bin 0 -> 149382 bytes Samples/Tutorials/Tutorial_05/MainPage.xaml | 29 + .../Tutorials/Tutorial_05/MainPage.xaml.cs | 78 + .../Tutorial_05/Package.appxmanifest | 49 + .../Tutorial_05/Properties/AssemblyInfo.cs | 29 + .../Tutorial_05/Properties/Default.rd.xml | 31 + Samples/Tutorials/Tutorial_05/README.md | 218 + .../Tutorials/Tutorial_05/Tutorial_05.csproj | 163 + .../Tutorial_05/Tutorial_05_Part_1.xaml | 18 + .../Tutorial_05/Tutorial_05_Part_1.xaml.cs | 228 + .../Tutorial_05/Tutorial_05_Part_2.xaml | 18 + .../Tutorial_05/Tutorial_05_Part_2.xaml.cs | 456 + Samples/Tutorials/Tutorial_05/project.json | 16 + .../Tutorials/Tutorial_05/project.lock.json | 14775 ++++++++++++++++ Samples/Tutorials/Tutorial_06/App.xaml | 8 + Samples/Tutorials/Tutorial_06/App.xaml.cs | 106 + .../Assets/LockScreenLogo.scale-200.png | Bin 0 -> 1430 bytes .../Assets/SplashScreen.scale-200.png | Bin 0 -> 7700 bytes .../Assets/Square150x150Logo.scale-200.png | Bin 0 -> 2937 bytes .../Assets/Square44x44Logo.scale-200.png | Bin 0 -> 1647 bytes ...x44Logo.targetsize-24_altform-unplated.png | Bin 0 -> 1255 bytes .../Tutorial_06/Assets/StoreLogo.png | Bin 0 -> 1451 bytes .../Assets/Wide310x150Logo.scale-200.png | Bin 0 -> 3204 bytes .../Tutorial_06/Package.appxmanifest | 49 + .../Tutorial_06/Properties/AssemblyInfo.cs | 29 + .../Tutorial_06/Properties/Default.rd.xml | 31 + Samples/Tutorials/Tutorial_06/README.md | 65 + Samples/Tutorials/Tutorial_06/Stroke.cs | 42 + .../Tutorials/Tutorial_06/Tutorial_06.csproj | 149 + .../Tutorial_06/Tutorial_06_Part_1.xaml | 47 + .../Tutorial_06/Tutorial_06_Part_1.xaml.cs | 416 + Samples/Tutorials/Tutorial_06/project.json | 16 + .../Tutorials/Tutorial_06/project.lock.json | 14775 ++++++++++++++++ Samples/Tutorials/Tutorials.sln | 140 + THIRDPARTY.md | 5 + media/API.png | Bin 0 -> 61957 bytes media/AndroidSDKStructure.png | Bin 0 -> 29992 bytes media/DirectXInterop1.png | Bin 0 -> 25488 bytes ...ILLSoftwareLibraryAbstractArchitecture.png | Bin 0 -> 14636 bytes media/WebSDKStructure.png | Bin 0 -> 22028 bytes media/WindowsSDKStructure.png | Bin 0 -> 26903 bytes media/iOSSDKStructure.png | Bin 0 -> 21706 bytes 215 files changed, 106305 insertions(+), 1 deletion(-) create mode 100644 GETTING-STARTED.md create mode 100644 RELEASE.md create mode 100644 Samples/DirectXInterop1/App.xaml create mode 100644 Samples/DirectXInterop1/App.xaml.cpp create mode 100644 Samples/DirectXInterop1/App.xaml.h create mode 100644 Samples/DirectXInterop1/Assets/LockScreenLogo.scale-200.png create mode 100644 Samples/DirectXInterop1/Assets/SplashScreen.scale-200.png create mode 100644 Samples/DirectXInterop1/Assets/Square150x150Logo.scale-200.png create mode 100644 Samples/DirectXInterop1/Assets/Square44x44Logo.scale-200.png create mode 100644 Samples/DirectXInterop1/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Samples/DirectXInterop1/Assets/StoreLogo.png create mode 100644 Samples/DirectXInterop1/Assets/Wide310x150Logo.scale-200.png create mode 100644 Samples/DirectXInterop1/Common/DeviceResources.cpp create mode 100644 Samples/DirectXInterop1/Common/DeviceResources.h create mode 100644 Samples/DirectXInterop1/Common/DirectXHelper.h create mode 100644 Samples/DirectXInterop1/Common/StepTimer.h create mode 100644 Samples/DirectXInterop1/Content/Sample3DSceneRenderer.cpp create mode 100644 Samples/DirectXInterop1/Content/Sample3DSceneRenderer.h create mode 100644 Samples/DirectXInterop1/Content/SampleFpsTextRenderer.cpp create mode 100644 Samples/DirectXInterop1/Content/SampleFpsTextRenderer.h create mode 100644 Samples/DirectXInterop1/Content/SamplePixelShader.hlsl create mode 100644 Samples/DirectXInterop1/Content/SampleVertexShader.hlsl create mode 100644 Samples/DirectXInterop1/Content/ShaderStructures.h create mode 100644 Samples/DirectXInterop1/Content/TexturePS.hlsl create mode 100644 Samples/DirectXInterop1/Content/TextureVS.hlsl create mode 100644 Samples/DirectXInterop1/Content/WacomInkRenderer.cpp create mode 100644 Samples/DirectXInterop1/Content/WacomInkRenderer.h create mode 100644 Samples/DirectXInterop1/DirectXInterop1.sln create mode 100644 Samples/DirectXInterop1/DirectXInterop1.suo create mode 100644 Samples/DirectXInterop1/DirectXInterop1.v12.suo create mode 100644 Samples/DirectXInterop1/DirectXInterop1.vcxproj create mode 100644 Samples/DirectXInterop1/DirectXInterop1.vcxproj.filters create mode 100644 Samples/DirectXInterop1/DirectXInterop1Main.cpp create mode 100644 Samples/DirectXInterop1/DirectXInterop1Main.h create mode 100644 Samples/DirectXInterop1/DirectXInterop1_TemporaryKey.pfx create mode 100644 Samples/DirectXInterop1/DirectXPage.xaml create mode 100644 Samples/DirectXInterop1/DirectXPage.xaml.cpp create mode 100644 Samples/DirectXInterop1/DirectXPage.xaml.h create mode 100644 Samples/DirectXInterop1/Generated Files/App.g.h create mode 100644 Samples/DirectXInterop1/Generated Files/App.g.hpp create mode 100644 Samples/DirectXInterop1/Generated Files/App.xaml create mode 100644 Samples/DirectXInterop1/Generated Files/App.xbf create mode 100644 Samples/DirectXInterop1/Generated Files/DirectXPage.g.h create mode 100644 Samples/DirectXInterop1/Generated Files/DirectXPage.g.hpp create mode 100644 Samples/DirectXInterop1/Generated Files/DirectXPage.xaml create mode 100644 Samples/DirectXInterop1/Generated Files/DirectXPage.xbf create mode 100644 Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.h create mode 100644 Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.hpp create mode 100644 Samples/DirectXInterop1/Generated Files/XamlLibMetadataProvider.g.cpp create mode 100644 Samples/DirectXInterop1/Generated Files/XamlTypeInfo.Impl.g.cpp create mode 100644 Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.cpp create mode 100644 Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.h create mode 100644 Samples/DirectXInterop1/Package.appxmanifest create mode 100644 Samples/DirectXInterop1/pch.cpp create mode 100644 Samples/DirectXInterop1/pch.h create mode 100644 Samples/README.md create mode 100644 Samples/Tutorials/README.md create mode 100644 Samples/Tutorials/Tutorial_01/App.xaml create mode 100644 Samples/Tutorials/Tutorial_01/App.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/Assets/LockScreenLogo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/SplashScreen.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/Square150x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/Square44x44Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/StoreLogo.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/Wide310x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/fill.png create mode 100644 Samples/Tutorials/Tutorial_01/Assets/shape.png create mode 100644 Samples/Tutorials/Tutorial_01/MainPage.xaml create mode 100644 Samples/Tutorials/Tutorial_01/MainPage.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/Package.appxmanifest create mode 100644 Samples/Tutorials/Tutorial_01/Properties/AssemblyInfo.cs create mode 100644 Samples/Tutorials/Tutorial_01/Properties/Default.rd.xml create mode 100644 Samples/Tutorials/Tutorial_01/README.md create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01.csproj create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01.csproj.user create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml create mode 100644 Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_01/project.json create mode 100644 Samples/Tutorials/Tutorial_01/project.lock.json create mode 100644 Samples/Tutorials/Tutorial_02/App.xaml create mode 100644 Samples/Tutorials/Tutorial_02/App.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_02/Assets/LockScreenLogo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_02/Assets/SplashScreen.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_02/Assets/Square150x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_02/Assets/Square44x44Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_02/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Samples/Tutorials/Tutorial_02/Assets/StoreLogo.png create mode 100644 Samples/Tutorials/Tutorial_02/Assets/Wide310x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_02/MainPage.xaml create mode 100644 Samples/Tutorials/Tutorial_02/MainPage.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_02/Package.appxmanifest create mode 100644 Samples/Tutorials/Tutorial_02/Properties/AssemblyInfo.cs create mode 100644 Samples/Tutorials/Tutorial_02/Properties/Default.rd.xml create mode 100644 Samples/Tutorials/Tutorial_02/README.md create mode 100644 Samples/Tutorials/Tutorial_02/Stroke.cs create mode 100644 Samples/Tutorials/Tutorial_02/Tutorial_02.csproj create mode 100644 Samples/Tutorials/Tutorial_02/Tutorial_02_Part_2.xaml create mode 100644 Samples/Tutorials/Tutorial_02/Tutorial_02_Part_2.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_02/Tutorial_02_Part_3.xaml create mode 100644 Samples/Tutorials/Tutorial_02/Tutorial_02_Part_3.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_02/project.json create mode 100644 Samples/Tutorials/Tutorial_02/project.lock.json create mode 100644 Samples/Tutorials/Tutorial_03/App.xaml create mode 100644 Samples/Tutorials/Tutorial_03/App.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_03/Assets/LockScreenLogo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_03/Assets/SplashScreen.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_03/Assets/Square150x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_03/Assets/Square44x44Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_03/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Samples/Tutorials/Tutorial_03/Assets/StoreLogo.png create mode 100644 Samples/Tutorials/Tutorial_03/Assets/Wide310x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_03/Assets/strokes.bin create mode 100644 Samples/Tutorials/Tutorial_03/Interval.cs create mode 100644 Samples/Tutorials/Tutorial_03/MainPage.xaml create mode 100644 Samples/Tutorials/Tutorial_03/MainPage.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_03/Package.appxmanifest create mode 100644 Samples/Tutorials/Tutorial_03/Properties/AssemblyInfo.cs create mode 100644 Samples/Tutorials/Tutorial_03/Properties/Default.rd.xml create mode 100644 Samples/Tutorials/Tutorial_03/README.md create mode 100644 Samples/Tutorials/Tutorial_03/Stroke.cs create mode 100644 Samples/Tutorials/Tutorial_03/Tutorial_03.csproj create mode 100644 Samples/Tutorials/Tutorial_03/Tutorial_03_Part_2.xaml create mode 100644 Samples/Tutorials/Tutorial_03/Tutorial_03_Part_2.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_03/Tutorial_03_Part_3.xaml create mode 100644 Samples/Tutorials/Tutorial_03/Tutorial_03_Part_3.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_03/project.json create mode 100644 Samples/Tutorials/Tutorial_03/project.lock.json create mode 100644 Samples/Tutorials/Tutorial_04/App.xaml create mode 100644 Samples/Tutorials/Tutorial_04/App.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_04/Assets/LockScreenLogo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_04/Assets/SplashScreen.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_04/Assets/Square150x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_04/Assets/Square44x44Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_04/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Samples/Tutorials/Tutorial_04/Assets/StoreLogo.png create mode 100644 Samples/Tutorials/Tutorial_04/Assets/Wide310x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_04/Assets/strokes.bin create mode 100644 Samples/Tutorials/Tutorial_04/Interval.cs create mode 100644 Samples/Tutorials/Tutorial_04/MainPage.xaml create mode 100644 Samples/Tutorials/Tutorial_04/MainPage.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_04/Package.appxmanifest create mode 100644 Samples/Tutorials/Tutorial_04/Properties/AssemblyInfo.cs create mode 100644 Samples/Tutorials/Tutorial_04/Properties/Default.rd.xml create mode 100644 Samples/Tutorials/Tutorial_04/README.md create mode 100644 Samples/Tutorials/Tutorial_04/Stroke.cs create mode 100644 Samples/Tutorials/Tutorial_04/Tutorial_04.csproj create mode 100644 Samples/Tutorials/Tutorial_04/Tutorial_04_Part_1.xaml create mode 100644 Samples/Tutorials/Tutorial_04/Tutorial_04_Part_1.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_04/Tutorial_04_Part_2.xaml create mode 100644 Samples/Tutorials/Tutorial_04/Tutorial_04_Part_2.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_04/project.json create mode 100644 Samples/Tutorials/Tutorial_04/project.lock.json create mode 100644 Samples/Tutorials/Tutorial_05/App.xaml create mode 100644 Samples/Tutorials/Tutorial_05/App.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_05/Assets/LockScreenLogo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_05/Assets/SplashScreen.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_05/Assets/Square150x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_05/Assets/Square44x44Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_05/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Samples/Tutorials/Tutorial_05/Assets/StoreLogo.png create mode 100644 Samples/Tutorials/Tutorial_05/Assets/Wide310x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_05/Assets/image.jpg create mode 100644 Samples/Tutorials/Tutorial_05/MainPage.xaml create mode 100644 Samples/Tutorials/Tutorial_05/MainPage.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_05/Package.appxmanifest create mode 100644 Samples/Tutorials/Tutorial_05/Properties/AssemblyInfo.cs create mode 100644 Samples/Tutorials/Tutorial_05/Properties/Default.rd.xml create mode 100644 Samples/Tutorials/Tutorial_05/README.md create mode 100644 Samples/Tutorials/Tutorial_05/Tutorial_05.csproj create mode 100644 Samples/Tutorials/Tutorial_05/Tutorial_05_Part_1.xaml create mode 100644 Samples/Tutorials/Tutorial_05/Tutorial_05_Part_1.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_05/Tutorial_05_Part_2.xaml create mode 100644 Samples/Tutorials/Tutorial_05/Tutorial_05_Part_2.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_05/project.json create mode 100644 Samples/Tutorials/Tutorial_05/project.lock.json create mode 100644 Samples/Tutorials/Tutorial_06/App.xaml create mode 100644 Samples/Tutorials/Tutorial_06/App.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_06/Assets/LockScreenLogo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_06/Assets/SplashScreen.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_06/Assets/Square150x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_06/Assets/Square44x44Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_06/Assets/Square44x44Logo.targetsize-24_altform-unplated.png create mode 100644 Samples/Tutorials/Tutorial_06/Assets/StoreLogo.png create mode 100644 Samples/Tutorials/Tutorial_06/Assets/Wide310x150Logo.scale-200.png create mode 100644 Samples/Tutorials/Tutorial_06/Package.appxmanifest create mode 100644 Samples/Tutorials/Tutorial_06/Properties/AssemblyInfo.cs create mode 100644 Samples/Tutorials/Tutorial_06/Properties/Default.rd.xml create mode 100644 Samples/Tutorials/Tutorial_06/README.md create mode 100644 Samples/Tutorials/Tutorial_06/Stroke.cs create mode 100644 Samples/Tutorials/Tutorial_06/Tutorial_06.csproj create mode 100644 Samples/Tutorials/Tutorial_06/Tutorial_06_Part_1.xaml create mode 100644 Samples/Tutorials/Tutorial_06/Tutorial_06_Part_1.xaml.cs create mode 100644 Samples/Tutorials/Tutorial_06/project.json create mode 100644 Samples/Tutorials/Tutorial_06/project.lock.json create mode 100644 Samples/Tutorials/Tutorials.sln create mode 100644 THIRDPARTY.md create mode 100644 media/API.png create mode 100644 media/AndroidSDKStructure.png create mode 100644 media/DirectXInterop1.png create mode 100644 media/WILLSoftwareLibraryAbstractArchitecture.png create mode 100644 media/WebSDKStructure.png create mode 100644 media/WindowsSDKStructure.png create mode 100644 media/iOSSDKStructure.png diff --git a/GETTING-STARTED.md b/GETTING-STARTED.md new file mode 100644 index 0000000..a24e8c1 --- /dev/null +++ b/GETTING-STARTED.md @@ -0,0 +1,93 @@ +# Getting Started + +## Windows 10 UWP Development Environment + +The WILL SDK for Ink requires Windows 10 with Visual Studio 2017 or above. +Tutorial samples have been provided for the Universal Windows Platform (UWP). + +## Download the SDK + +Download the SDK from https://developer.wacom.com/developer-dashboard + +* Login using your Wacom ID +* Select **Downloads for ink** +* Download **WILL SDK for Windows 10 (UWP)** +* Accept the End User License Agreement to use the SDK + +The downloaded Zip file contains the SDK with documentation. + + +## SDK License + +The SDK is free of charge and does not need a license. + +## Using the WILL SDK + +To use the SDK first install the Visual Studio .vsix extension: + + Sdk\Will.Ink.vsix + +Double-click in File Explorer and follow the installation instructions. + + +## Tutorials + +Tutorials demonstrate how to use WILL SDK in Windows Store applications. +The tutorials are divided into parts that demonstrate various aspects and features of the SDK. +The following tutorials are provided: + +* [Tutorial 1: Drawing with Pointing Devices](Samples/Tutorials/Tutorial_01/README.md) +* [Tutorial 2: Stroke Model and Serialization](Samples/Tutorials/Tutorial_02/README.md) +* [Tutorial 3: Erasing Strokes](Samples/Tutorials/Tutorial_03/README.md) +* [Tutorial 4: Selecting Strokes](Samples/Tutorials/Tutorial_04/README.md) +* [Tutorial 5: Working with Rasters](Samples/Tutorials/Tutorial_05/README.md) +* [Tutorial 6: Pen Id](Samples/Tutorials/Tutorial_06/README.md) + +The sample code in the tutorials is written in C#. +Each tutorial has an associated project which can be compiled and run using Visual Studio 2013. + +The projects are created with Visual Studio 2013 using the following template in the New Project dialog: + +```Templates > Visual C# > Store Apps > Windows Apps > Blank App (Windows)``` + + +## API Reference + +In the downloaded SDK open this file in a browser: + +`documentation\index.html` + +The page gives access to the API Reference section: + +![WILL-Ink-API](media/API.png) + +--- + +## Sample Application + +Build the supplied project in Visual Studio. +These instructions document one experience using Visual Studio 2017: + +* In Visual Studio 2017, Open Solution… Samples\DirectXInterop1.sln +* If prompted, install C++ Universal Windows Platform tools +* If prompted, select 'Retarget Solution' in Solution Explorer and accept the default Windows SDK versions +* Verify the References defined in the project are valid, particularly WILL Ink. +* If the reference to WILL Ink is an older version: + * Remove the existing reference + * Add reference...Universal Windows...Extensions...WILL Ink 2.1 +* Select CPU type x64 +* Set DirectXInterop1 as the startup project: right-click the project in Solution Explorer ... Set as Startup Project +* Build project +* Run to display the startup window. +* Draw with the mouse to see live rendering: + +![WILL-Ink-Sample-Screenshot](media/DirectXInterop1.png) + + +---- + + + + + + diff --git a/README.md b/README.md index c93bf88..a8a1cc6 100644 --- a/README.md +++ b/README.md @@ -1 +1,134 @@ -# sdk-for-ink-uwp \ No newline at end of file +# WILL SDK for ink - Windows UWP + +WILL (Wacom Ink Layer Language) is a cross-platform universal ink solution. +The WILL SDK for ink is a Software Development Kit (SDK) that allows you to include premium digital inking features in your applications. +Its modularized architecture allows each module to be configured, replaced, or omitted as required by the specific application, providing you with superior flexibility. +You can also use the WILL open file format (.will) to exchange ink content between applications. + +The WILL SDK for ink includes: + +* A software library +* Code samples illustrating particular functionality +* The Tool Configurator - a fully functional demo application +* Comprehensive documentation, including step-by-step tutorials +* Articles describing advanced programming techniques and best practices + +## Digital ink + +Digital ink (referred to in this documentation as ink) content comprises of strokes. +These are usually, but not necessarily, created with a pointing device. +Strokes have certain graphical characteristics and can be optionally associated with other data or metadata. +You can digitally store and share ink content using various models - vector-based, pixel-based, or hybrid. + +## Ink content exchange + +The WILL file format is similar to SVG, but is specifically designed to accommodate digital ink content. +It is used for exchanging ink content between devices and applications, and is implemented as an open and extensible binary format. + +Note that the main modules of the WILL software library do not rely on a specific file format. +You can use alternatives to the WILL file format (for example, InkML, SVG, or PNG) to exchange handwritten content, according to specific application requirements. + +## Software library + +WILL supports a variety of input technologies and generates the best possible ink through the use of two dedicated modules, **Path** and **Smoothing**, that take into account the specific characteristics of each input type. +The Rasterizer module then provides advanced real-time stroke rendering. +The **Manipulation** module supports editing functions that leverage the WILL stroke mathematical model (referred to as the stroke model in this documentation). +The **Serialization** module encodes and decodes stroke data. + +![WILL-Ink-Architecture](media/WILLSoftwareLibraryAbstractArchitecture.png) + + +In more detail: + +* The **Path** module converts raw input into the stroke model. + The stroke model is a mathematical model optimized for stroke representation. + It improves on traditional models for 2D graphics: the stroke is represented using Catmull-Rom interpolation over a sequence of control points, but in addition to x and y co-ordinates, each control point can have width and opacity values. + +* The **Smoothing** module enhances and enriches the stroke representation. + +* The **Rasterizer** module provides APIs that are compatible with the stroke model. + It uses three rendering back-ends that are built on OpenGL ES 2.0, DirectX 11.1, and WebGL respectively, providing full hardware acceleration on most platforms. + The APIs facilitate raster-based techniques such as caching and masking. + These techniques can be used to implement features such as preliminary curves, pixel transformations, and pixel-based manipulations on free-form selections. + +* The **Manipulation** module provides a set of algorithms that operate over the stroke model. + These algorithms can be used as building blocks to implement functions such as selecting, erasing, cutting, copying, and pasting. + +* The **Serialization** module provides a binary encoding algorithm designed to support the stroke model. + This algorithm is based on Google protocol buffers, which makes the resulting binary code open and platform-independent. + +The WILL software library also provides a range of utility algorithms, including: + +* An algorithm that calculates the boundaries of strokes described by the stroke model, and represents them as a collection of cubic Bezier curves. + This algorithm can represent strokes using traditional 2D vector graphics models. + The resulting representation can be serialized in traditional vector formats like PDF and SVG, or rendered using traditional 2D graphics libraries like Quartz 2D or Direct2D, or as HTML 5 canvas elements, or Android Canvas instances. + +* An algorithm that produces a unique identifier based on the input device. + You can use this functionality, which works exclusively with Wacom devices, to distinguish different users by their pens. + + +## Platform support + +The WILL ink SDK provides platform-specific packages for iOS, Android, Windows Store, and Web. +These packages provide a deep integration with the hosting platform by using native packaging and programming techniques, and by providing platform-specific language bindings for all modules in the software library. + +Software applications often combine ink with other content, such as typed text and images. +The platform-specific packages provide the flexibility and extensibility required to tightly integrate WILL with any application. + +Platform-specific tutorials illustrate the use of the software library modules. +Source code is provided in each case, and files use a naming convention that reflects the numerical ordering of topics in the Tutorials section of the documentation for each platform. + +### iOS + +![WILL-Ink-iOS-SDK-Structure](media/iOSSDKStructure.png) + +The iOS software library is packaged as a framework, and Objective-C language binding allows iOS developers to use the preferred language of the platform. + +### Android + +![WILL-Ink-Android-SDK-Structure](media/AndroidSDKStructure.png) + +The Android software library is packaged as a native library (shared object) wrapped in an Android library (JAR). +Java language binding allows Android developers to use the preferred language of the platform and easily integrate ink content inside the View hierarchy. + +### Windows + +![WILL-Ink-Windows-SDK-Structure](media/WindowsSDKStructure.png) + +The Windows Store software library is packaged as an unmanaged Windows Runtime Component. +It can be used from any language supported by Windows Runtime (WinRT), whether inside a managed or an unmanaged environment. + +### Web + +![WILL-Ink-Web-SDK-Structure](media/WebSDKStructure.png) + +The Web software library is packaged as a JavaScript module with an asm.js program. +It can be used by any standard HTML 5 application as a regular JavaScript library. + +--- + +# Additional resources + +## Sample Code +For further samples check Wacom's Developer additional samples, see [https://github.com/Wacom-Developer](https://github.com/Wacom-Developer) + +## Documentation +For further details on using the SDK see [Wacom SDK for ink documentation v2](http://will-docs.westeurope.cloudapp.azure.com/sdk-for-ink/docs/2.0.0/overview) + +The API Reference is available directly in the downloaded SDK. + +## Support +If you experience issues with the technology components, please see related [FAQs](http://will-docs.westeurope.cloudapp.azure.com/faqs) + +For further support file a ticket in our **Developer Support Portal** described here: [Request Support](http://will-docs.westeurope.cloudapp.azure.com/faqs/docs/q-support/support) + +## Developer Community +Join our developer community: + +- [LinkedIn - Wacom for Developers](https://www.linkedin.com/company/wacom-for-developers/) +- [Twitter - Wacom for Developers](https://twitter.com/Wacomdevelopers) + +## License +This sample code is licensed under the [MIT License](https://choosealicense.com/licenses/mit/) + +--- diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000..e4bde9a --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,11 @@ +# SDK for ink - Windows UWP + +## Version 2.0.1 + +## History + +### 2.0.1 05 March 2018 + * General performance enhancements + +### 2.0.0 30 May 2016 + * Initial public release \ No newline at end of file diff --git a/Samples/DirectXInterop1/App.xaml b/Samples/DirectXInterop1/App.xaml new file mode 100644 index 0000000..904d4f7 --- /dev/null +++ b/Samples/DirectXInterop1/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/Samples/DirectXInterop1/App.xaml.cpp b/Samples/DirectXInterop1/App.xaml.cpp new file mode 100644 index 0000000..73e9b88 --- /dev/null +++ b/Samples/DirectXInterop1/App.xaml.cpp @@ -0,0 +1,92 @@ +// +// App.xaml.cpp +// Implementation of the App class. +// + +#include "pch.h" +#include "DirectXPage.xaml.h" + +using namespace DirectXInterop1; + +using namespace Platform; +using namespace Windows::ApplicationModel; +using namespace Windows::ApplicationModel::Activation; +using namespace Windows::Foundation; +using namespace Windows::Foundation::Collections; +using namespace Windows::Storage; +using namespace Windows::UI::Xaml; +using namespace Windows::UI::Xaml::Controls; +using namespace Windows::UI::Xaml::Controls::Primitives; +using namespace Windows::UI::Xaml::Data; +using namespace Windows::UI::Xaml::Input; +using namespace Windows::UI::Xaml::Interop; +using namespace Windows::UI::Xaml::Media; +using namespace Windows::UI::Xaml::Navigation; +/// +/// Initializes the singleton application object. This is the first line of authored code +/// executed, and as such is the logical equivalent of main() or WinMain(). +/// +App::App() +{ + InitializeComponent(); + Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending); + Resuming += ref new EventHandler(this, &App::OnResuming); +} + +/// +/// Invoked when the application is launched normally by the end user. Other entry points +/// will be used when the application is launched to open a specific file, to display +/// search results, and so forth. +/// +/// Details about the launch request and process. +void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) +{ +#if _DEBUG + if (IsDebuggerPresent()) + { + DebugSettings->EnableFrameRateCounter = true; + } +#endif + + if (m_directXPage == nullptr) + { + m_directXPage = ref new DirectXPage(); + } + + if (e->PreviousExecutionState == ApplicationExecutionState::Terminated) + { + m_directXPage->LoadInternalState(ApplicationData::Current->LocalSettings->Values); + } + + // Place the page in the current window and ensure that it is active. + Window::Current->Content = m_directXPage; + Window::Current->Activate(); +} + +/// +/// Invoked when application execution is being suspended. Application state is saved +/// without knowing whether the application will be terminated or resumed with the contents +/// of memory still intact. +/// +/// The source of the suspend request. +/// Details about the suspend request. +void App::OnSuspending(Object^ sender, SuspendingEventArgs^ e) +{ + (void) sender; // Unused parameter + (void) e; // Unused parameter + + m_directXPage->SaveInternalState(ApplicationData::Current->LocalSettings->Values); +} + +/// +/// Invoked when application execution is being resumed. +/// +/// The source of the resume request. +/// Details about the resume request. +void App::OnResuming(Object ^sender, Object ^args) +{ + (void) sender; // Unused parameter + (void) args; // Unused parameter + + m_directXPage->LoadInternalState(ApplicationData::Current->LocalSettings->Values); +} diff --git a/Samples/DirectXInterop1/App.xaml.h b/Samples/DirectXInterop1/App.xaml.h new file mode 100644 index 0000000..1fee5cd --- /dev/null +++ b/Samples/DirectXInterop1/App.xaml.h @@ -0,0 +1,27 @@ +// +// App.xaml.h +// Declaration of the App class. +// + +#pragma once + +#include "App.g.h" +#include "DirectXPage.xaml.h" + +namespace DirectXInterop1 +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + ref class App sealed + { + public: + App(); + virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) override; + + private: + void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ e); + void OnResuming(Platform::Object ^sender, Platform::Object ^args); + DirectXPage^ m_directXPage; + }; +} diff --git a/Samples/DirectXInterop1/Assets/LockScreenLogo.scale-200.png b/Samples/DirectXInterop1/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3 GIT binary patch literal 1430 zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@! zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o zH-bvQi|wt~L7q$~a-gDFP!{&TQfc3fX*6=uHv* zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M zIf%q9@;fyT?0UP>tcw-bLkz;s2LlKl2qeP0w zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ ztnxttBz#NI_a@fk7SU`WtrpsfZsNs9^0(2a z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2Lflg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7 zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH z&(f2wz_Y0??Tf|g;?|1Znw6}6U43Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV yGvCsSX*m literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/Assets/SplashScreen.scale-200.png b/Samples/DirectXInterop1/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9 GIT binary patch literal 7700 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 literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/Assets/Square150x150Logo.scale-200.png b/Samples/DirectXInterop1/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..af49fec1a5484db1d52a7f9b5ec90a27c7030186 GIT binary patch literal 2937 zcma)84OCO-8BSud5)jwMLRVKgX(S?$n?Ld|vrsm<$CF7)&zTbyy1FE5bU`Q17MRv`9ue$;R(@8kR;#vJ*IM0>cJIAOte!d7oRgdH zd%ySjdB6L9=gX^A6)VzH7p2l@v~3zJAMw|DFy#^)F@@F*`mqUn=Il>l)8_+ab;nOW{%+iPx z+s{Eu|&pIs)Z7{La9~?xKfyl z#43?gjEL15d4WbOZo#SiP%>DB^+BcnJ=7dHEe;r#G=tuw|ka z%q@}##Uh7;tc%L_64m(kHtw74ty%BJMb)_1)#S0j`)F8_1jF7vScpsnH=0V19bO8y zR`0SjIdCUo&=>JwMQF8KHA<{ODHTiQh}0^@5QRmCA?gOH6_H3K^-_sNB^RrdNuK-R zOO*vOrKCVvDwgUck`kF(E7j{I#iiN;b*ZdCt4m@HPA`EuEqGGf4%!K<;(=I=&Vyrw z%TwcWtxa}8mCZ%Cyf&ActJ6_$ox5z6-D!0-dvnRx6t7y3d+h6QYpKWO;8OdnvERo7 zuEf>ih5`wqY)~o@OeVt-wM?Q!>QzdGRj!bz6fzYrfw$hZfAKzr2-M+D+R>}~oT574c;_3zquHcElqKIsryILt3g8n3jcMb+j?i?-L3FpZJ z2WRVBRdDPc+G5aaYg#5hpE+6nQ|(VSoxT3|biF;BUq#==-27Xi=gihDPYP$7?=9cP zYKE$jeQ|3~_L0VG-(F~2ZPyD0=k{J4Q~h(t__{-mz_w8{JDY9{`1ouzz!Vr5!ECdE z6U~O1k8c}24V7~zzXWTV-Pe4)y}wQJS&q%H5`Fo_f_JvIU489aCX$;P`u#!I-=^4ijC2{&9!O&h>mi?9oYD=GC#%)6{GzN6nQYw+Fal50!#x^asjBBR50i`+mho*ttoqV)ubM2KD9S~k7+FR4>{29?6 z{!l6kDdyTN0YJ9LgkPWeXm|gyi@zM3?0@{&pXT12w|78&W-q!RRF)&iLCEZVH<|fR zN0fr2^t8H(>L?>K#>^+jWROLral(Qy-xoBq1U7A&DV||wClb)Otd9?(gZ|8znMF}D zf<1haWz^s0qgecz;RFGt0C-B4g`jNGHsFU+;{<%t65v^sjk^h$lmWn#B0#_)9ij&d z-~lc`A)YYExi^7sBuPM^Y|wA2g*5?`K?#7tzELQYNxGo$UB$4J8RJp1k(8Jj+~hMT zlN~>M@KTTh^--8y3PK_NZ@AC!{PT=CziBzGd+wTJ^@icH!Bd}%)g8V)%K?|c&WTUk zy}qv1C%(fjRoZ4ozC3{O%@5?)XzH35zHns$pgU*Q?fj4v?fp1Qbm+j;3l;9jam9Da zXVcKjPlQ73x78QPu|Ffm6x?`~e3oD=gl=4kYK?={kD5j~QCXU)`HSdduNNENzA*2$ zOm3PzF!lN5e*06-f1Uot67wY#{o-S1!KZ7E=!~7ynnk9_iJR#kFoNbAOT#^2Gd17F zMmvU6>lndZQGd|ax9kUoXXO+$N?|j@6qpsF&_j7YXvwo_C{JpmLw5&#e6k>atv%es z5)7r*Wvv_JkUpT}M!_o!nVlEk1Zbl=a*2hQ*<|%*K1Glj^FcF`6kTzGQ3lz~2tCc@ z&x|tj;aH&1&9HwcJBcT`;{?a+pnej;M1HO(6Z{#J!cZA04hnFl;NXA+&`=7bjW_^o zfC40u3LMG?NdPtwGl>Tq6u}*QG)}-y;)lu-_>ee3kibW(69n0$0Zy!}9rQz%*v1iO zT9_H>99yIrSPYVy6^);rR}7Yo=J_T@hi+qhTZXnVWyf;JDYm5#eYLTxr*?kiNn!+Y zQ+LUkBafNJ#rH#C(?d5^;gw9o#%daEI{mA*LHPIHPU`#|H$hD zwm>0&+kahQ)E#%~k>&5@&#Vg82H?s%71=)(soi@174pi9--2{w{1$}Sz4zGn3Du&x bht0Iza^2ykEt4(epJ78uh5nDlX8(TxzDYwP literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/Assets/Square44x44Logo.scale-200.png b/Samples/DirectXInterop1/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..ce342a2ec8a61291ba76c54604aea7e9d20af11b GIT binary patch literal 1647 zcmaJ?eM}Q)7(e+G1Q(|`V9JhTI2>MkceK4;p;PR&$Pi?ejk3YQ_3o`S&|W_dsOZ8# zWPTt69g`t$ab`0cj-Y0yiBSOqmd)tG7G(}M5aP0_%&9TijB#&)I{zSE^4@#z^FF`l z`8{8`o%wlL(UI|y2!cdsuVamHH~H86F!*-15em4)NqUpCQM5?aoC_eCf@lV4wvF2a zjDQn1JBL69f&@2M3rvzJcfE!eZ8FZUBlFlC5RD)it33{mF9#B82AiyQE%w)`vlwa> zv{<1sm&kSKK$&%2jSFn7$t&P%%6Ue>R=EAnG8N7fqynWG8L3p!4801a;8{+nliO(qd(jNJ_?+9W3#hLIDLoT6~3fx9=`CC-D}-AMrpEO7HK zt3$GicGPc?GmDjy7K2P@La;eu4!$zWCZ`ym{Z$b zu-O6RM&K4JT|BIZB`E-gxqG%FzanI#+2FFmqHqXG7yxWB=w55RGOM)$xMb(>kSNR z2w=1AZi%z=AmG~yea~XaXJR!v7vLn(RUnELfiB1|6D84ICOS}^Zo2AdN}<&*h}G_u z{xZ!(%>tLT3J3<5XhWy-tg+6)0nmUUENLW8TWA{R6bgVd3X;anYFZ^IRis*_P-C-r z;i>%1^eL3UI2-{w8nuFFcs0e~7J{O2k^~Ce%+Ly4U?|=!0LH=t6()xi<^I-rs+9sF z*q{E-CxZbGPeu#a;XJwE;9S1?#R&uns>^0G3p`hEUF*v`M?@h%T%J%RChmD|EVydq zmHWh*_=S%emRC*mhxaVLzT@>Z2SX0u9v*DIJ@WC^kLVdlGV6LpK$KIrlJqc zpJ921)+3JJdTx|<`G&kXpKkjGJv=76R`yYIQ{#c-`%+`#V(7}Q;&@6U8!Td1`d;?N z_9mnI#?AA}4J!r)LN4!E-@H5eXauuB7TOawS>Y|{-P?NNx-lq+z1W-+y(;39P&&LP zL{N80?&=C*qKmdA^moMZRuPcD!B<*mq$ch=0Cnlitw#txRWhb3%TQvPqjkC`F69G4b! ze7z9MZ#+;_#l?H37UqUhDFb^l&s2{oM$3I0o^Q!yx;;V)QmCMo)Tb_ui|mit8MS?U zm##6$sZZ1$@|s%?l@>4Z<*Q}sRBSKMhb4I{e5LdEhsHIHTe8Bod5c>6QtT>$XgUBz z6MK`kO$=jmt@FqggOhJ5j~e@ygRbG;<{Vu)*+nn9aQeo0;$#j;|MS=S$&L?BeV25z xs3B`@=#`5TF{^6(A1rvdY@|-RtQ|iS5{tyX+wH?;n8E)G$kykv-D^wh{{!TZT%7;_ literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/Samples/DirectXInterop1/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c02ce97e0a802b85f6021e822c89f8bf57d5cd GIT binary patch literal 1255 zcmaJ>TWs4@7*5+{G#S+&C!qC#> zf>5N3P6jO*Cz>ug*(_DmW=)kea&m$gZ^+nyiF`;j%w@}y8)>p*SH}C`m?DXeieF2U zyQHecc_L%Gh!7GMt+hG06y;+|p4>m~}PjA}rKViGiEnn7G0ZO<>G|7q;2?NwGCM3s?eued6%hd$B+ z*kQJ{#~$S=DFE(%=E+UkmlEI*%3llUf~8Ja9YU1Vui0IbGBkW_gHB%Rd&!!ioX zs40O?i9I{};kle7GMvE7(rk`la=gTI)47=>%?q@^iL-nUo3}h4S}N-KHn8t5mVP8w z&bSErwp+37 zNJJ8?a|{r5Q3R0Z5s-LB1WHOwYC@7pCHWND#cL1cZ?{kJ368_*(UDWUDyb<}0y@o# zfMF016iMWPCb6obAxT$JlB6(2DrlXDTB&!0`!m??4F(qWMhjVZo?JXQmz`1*58Z=& zcDmB|S-E@j?BoFGix0flckqdS4jsPNzhfWyWIM98GxcLs89C(~dw%$_t;JjX-SD}E zfiGV;{8Q%8r}w9x>EEigW81>`kvnU@pK)4+xk9@+bNj9L!AAZ@SZ@q|)&BmY3+HZx zul~BeG4|}-;L%cHViQGQX?^zFfO0&#cHwel=d`lH9sJ-@Sl@n*(8J2>%Ac`IxyY?Q z{=GhWvC#gu-~Ia7*n{=+;qM?Ul_wy1+u7ho;=`>EwP^g~R@{unBds`!#@}tluZQpS zm)M~nYEifJWJGx?_6DcTy>#uh%>!H9=hb^(v`=m3F1{L>db=<5_tm+_&knAQ2EU$s Mu9UqpbNZeC0BbUo^Z)<= literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/Assets/StoreLogo.png b/Samples/DirectXInterop1/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7385b56c0e4d3c6b0efe3324aa1194157d837826 GIT binary patch literal 1451 zcmaJ>eN5D57_Z|bH;{0+1#mbl)eTU3{h)Wf7EZV?;HD@XL@{B`Ui%(2aMxQ~xdXSv z5nzWi(LW)U2=Vc-cY@s7nPt{i0hc6!7xN4NNHI#EQl>YNBy8l4%x9gr_W-j zEZMQmmTIy(>;lblRfh`dIyTgc9W5d!VP$L4(kKrN1c5G~(O_#xG zAJCNTstD^5SeXFB+&$h=ToJP2H>xr$iqPs-#O*;4(!Fjw25-!gEb*)mU}=)J;Iu>w zxK(5XoD0wrPSKQ~rbL^Cw6O_03*l*}i=ydbu7adJ6y;%@tjFeXIXT+ms30pmbOP%Q zX}S;+LBh8Tea~TSkHzvX6$rYb)+n&{kSbIqh|c7hmlxmwSiq5iVhU#iEQ<>a18|O^Sln-8t&+t`*{qBWo5M?wFM(JuimAOb5!K#D}XbslM@#1ZVz_;!9U zpfEpLAOz=0g@bd6Xj_ILi-x^!M}73h^o@}hM$1jflTs|Yuj9AL@A3<-?MV4!^4q`e z)fO@A;{9K^?W?DbnesnPr6kK>$zaKo&;FhFd(GYFCIU^T+OIMb%Tqo+P%oq(IdX7S zf6+HLO?7o0m+p>~Tp5UrXWh!UH!wZ5kv!E`_w)PTpI(#Iw{AS`gH4^b(bm^ZCq^FZ zY9DD7bH}rq9mg88+KgA$Zp!iWncuU2n1AuIa@=sWvUR-s`Qb{R*kk(SPU^`$6BXz8 zn#7yaFOIK%qGxyi`dYtm#&qqox0$h=pNi#u=M8zUG@bpiZ=3sT=1}Trr}39cC)H|v zbL?W)=&s4zrh)7>L(|cc%$1#!zfL?HjpeP%T+x_a+jZ16b^iKOHxFEX$7d|8${H-* zIrOJ5w&i$>*D>AKaIoYg`;{L@jM((Kt?$N$5OnuPqVvq**Nm}(f0wwOF%iX_Pba;V z;m@wxX&NcV3?<1+u?A{y_DIj7#m3Af1rCE)o`D&Y3}0%7E;iX1yMDiS)sh0wKi!36 zL!Wmq?P^Ku&rK~HJd97KkLTRl>ScGFYZNlYytWnhmuu|)L&ND8_PmkayQb{HOY640 bno1(wj@u8DCVuFR|31B*4ek@pZJqxCDDe1x literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/Assets/Wide310x150Logo.scale-200.png b/Samples/DirectXInterop1/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..288995b397fdbef1fb7e85afd71445d5de1952c5 GIT binary patch literal 3204 zcmbVPeQXow8NYmBd90>}0NP?GhXW~VaeThm=a0tV#EwJMI!)6M3}|c4_Bl3=Kd>G0 z(GHx1wl<7(tP?FsOQkTilSo*iIvF%uArExJ73~P zSv1xEy!U(Wd4A9D`FQV@W3@F^qJ@PEF$@z`Z!*BbFsS(^?B zyiAzJ+q})bkgiQHWqEb*jJD-coHYr1^iocg)l!Qa{Xqs-l~6J}p-|##ZHYofskQ3$ zI0;xzXyhazBeXhIsg5A=%ufo@f)1yy&ScKS0;HF^!r_2UE^lpZEom(+@duma3awTv zCrCL-%D_SvYWIcdHkmI}#50(fkUi)Qgx!80ju>g1za^}ff>JI8Z@^-iCiaCgg@TgF z+vtE?Q9{VQUX&MW9SYYmGcxA14%N2@7FwBTD4N<(2{nWgV8$e3?-F=L^&FrtWn~(U_Q~~^uYiyeY6-KoTnfh9AWz@ zIKje0)u!_Lw)E}G!#kEfwKVdNt(UAf9*f>tEL_(=xco-T%jTi@7YlC3hs2ik%Le0H ztj}RTeCF(5mwvi3_56>-yB?l;J>-1%!9~=fs|QcNG3J~a@JCu`4SB460s0ZO+##4fFUSGLcj_ja^fL4&BKALfb#$6$O?>P@qx2Agl^x0i&ugt zsy5Pyu=()`7HRMG3IB7F1@`_ z+-!J%#i6e^U$e#+C%Q>_qVRzWRsG^W_n+@OcX@vzI&z;mzHNb!GQ?LWA(wtpqHqTM z1OFw_{Zn?fD)p)`c`kOgv{de=v@suGRqY{N^U7gI1VF3*F=obwaXI6ob5__Yn zVTguS!%(NI09J8x#AO_aW!9W7k*UvB;IWDFC3srwftr{kHj%g)fvnAm;&h_dnl~

MY- zf+K}sCe8qU6Ujs`3ua{U0Of$R_gVQBuUA za0v=mu#vIOqiiAZOr&h*$WyOw&k-xr$;G4Ixa!#TJNr>95(h>l%)PUy4p+^SgR(uR zta%k*?ny-+nAr8spEk1fo{J4i!b^Fia`N{_F6@zidA2ZTTrjl#^5Z-2KfB@Cu}l9s z(*|Z2jc?p~vn2f)3y9i*7zJV1L{$?|&q)4oaT;uXi6>1GkRXVTOzAz(RHEmr=eFIi z`}<>-Q?K0GN8!IYxeP1XKXO+jsJbp~o^);Bc;%b7Flpe7;1`Ny@3r7ZR;?R)aJt8C ziNlEC<@3f_lIV4TwV}&e;D!Ee5_|e#g0LUh=5vmYWYm7&2h*M>QPKvGh9-)wfMMW3 z8J9b%1k7dzPzO0_NGQy92BZ^FR6R~6;^6?lqO;-QUP4BY%cG%3vEhbm#>4vIhPBh3 z-+pZGjh$x%Hp{?=FHsMp0&wNPlj00us{&`1ZOZTqs8%4X&xH=UDr*xyBW(Zp&Em94 zf)ZSfn#yg0N)>!1kWdkqJ^S*z0FF5|fj&qcE#Na|%OY0$uO>!&hP+1ywfD_WXk@4J(?MBftK7>$Nvqh@tDuarN%PrTLQ2Uzysx>UV=V zk^RrDSvdQ?0;=hY67EgII-f4`t=+i*yS=Y~!XlqIy_4x&%+OdfbKOFPXS2X5%4R{N z$SQMX^AK6(fA + +using namespace D2D1; +using namespace DirectX; +using namespace Microsoft::WRL; +using namespace Windows::Foundation; +using namespace Windows::Graphics::Display; +using namespace Windows::UI::Core; +using namespace Windows::UI::Xaml::Controls; +using namespace Platform; + +// Constants used to calculate screen rotations. +namespace ScreenRotation +{ + // 0-degree Z-rotation + static const XMFLOAT4X4 Rotation0( + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 90-degree Z-rotation + static const XMFLOAT4X4 Rotation90( + 0.0f, 1.0f, 0.0f, 0.0f, + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 180-degree Z-rotation + static const XMFLOAT4X4 Rotation180( + -1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, -1.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); + + // 270-degree Z-rotation + static const XMFLOAT4X4 Rotation270( + 0.0f, -1.0f, 0.0f, 0.0f, + 1.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 1.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 1.0f + ); +}; + +// Constructor for DeviceResources. +DX::DeviceResources::DeviceResources() : + m_screenViewport(), + m_d3dFeatureLevel(D3D_FEATURE_LEVEL_9_1), + m_d3dRenderTargetSize(), + m_outputSize(), + m_logicalSize(), + m_nativeOrientation(DisplayOrientations::None), + m_currentOrientation(DisplayOrientations::None), + m_dpi(-1.0f), + m_compositionScaleX(1.0f), + m_compositionScaleY(1.0f), + m_deviceNotify(nullptr) +{ + CreateDeviceIndependentResources(); + CreateDeviceResources(); +} + +// Configures resources that don't depend on the Direct3D device. +void DX::DeviceResources::CreateDeviceIndependentResources() +{ + // Initialize Direct2D resources. + D2D1_FACTORY_OPTIONS options; + ZeroMemory(&options, sizeof(D2D1_FACTORY_OPTIONS)); + +#if defined(_DEBUG) + // If the project is in a debug build, enable Direct2D debugging via SDK Layers. + options.debugLevel = D2D1_DEBUG_LEVEL_INFORMATION; +#endif + + // Initialize the Direct2D Factory. + DX::ThrowIfFailed( + D2D1CreateFactory( + D2D1_FACTORY_TYPE_SINGLE_THREADED, + __uuidof(ID2D1Factory2), + &options, + &m_d2dFactory + ) + ); + + // Initialize the DirectWrite Factory. + DX::ThrowIfFailed( + DWriteCreateFactory( + DWRITE_FACTORY_TYPE_SHARED, + __uuidof(IDWriteFactory2), + &m_dwriteFactory + ) + ); + + // Initialize the Windows Imaging Component (WIC) Factory. + DX::ThrowIfFailed( + CoCreateInstance( + CLSID_WICImagingFactory2, + nullptr, + CLSCTX_INPROC_SERVER, + IID_PPV_ARGS(&m_wicFactory) + ) + ); +} + +// Configures the Direct3D device, and stores handles to it and the device context. +void DX::DeviceResources::CreateDeviceResources() +{ + // This flag adds support for surfaces with a different color channel ordering + // than the API default. It is required for compatibility with Direct2D. + UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; + +#if defined(_DEBUG) + if (DX::SdkLayersAvailable()) + { + // If the project is in a debug build, enable debugging via SDK Layers with this flag. + creationFlags |= D3D11_CREATE_DEVICE_DEBUG; + } +#endif + + // This array defines the set of DirectX hardware feature levels this app will support. + // Note the ordering should be preserved. + // Don't forget to declare your application's minimum required feature level in its + // description. All applications are assumed to support 9.1 unless otherwise stated. + D3D_FEATURE_LEVEL featureLevels[] = + { + D3D_FEATURE_LEVEL_11_1, + D3D_FEATURE_LEVEL_11_0, + D3D_FEATURE_LEVEL_10_1, + D3D_FEATURE_LEVEL_10_0, + D3D_FEATURE_LEVEL_9_3, + D3D_FEATURE_LEVEL_9_2, + D3D_FEATURE_LEVEL_9_1 + }; + + // Create the Direct3D 11 API device object and a corresponding context. + ComPtr device; + ComPtr context; + + HRESULT hr = D3D11CreateDevice( + nullptr, // Specify nullptr to use the default adapter. + D3D_DRIVER_TYPE_HARDWARE, // Create a device using the hardware graphics driver. + 0, // Should be 0 unless the driver is D3D_DRIVER_TYPE_SOFTWARE. + creationFlags, // Set debug and Direct2D compatibility flags. + featureLevels, // List of feature levels this app can support. + ARRAYSIZE(featureLevels), // Size of the list above. + D3D11_SDK_VERSION, // Always set this to D3D11_SDK_VERSION for Windows Store apps. + &device, // Returns the Direct3D device created. + &m_d3dFeatureLevel, // Returns feature level of device created. + &context // Returns the device immediate context. + ); + + if (FAILED(hr)) + { + // If the initialization fails, fall back to the WARP device. + // For more information on WARP, see: + // http://go.microsoft.com/fwlink/?LinkId=286690 + DX::ThrowIfFailed( + D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_WARP, // Create a WARP device instead of a hardware device. + 0, + creationFlags, + featureLevels, + ARRAYSIZE(featureLevels), + D3D11_SDK_VERSION, + &device, + &m_d3dFeatureLevel, + &context + ) + ); + } + + // Store pointers to the Direct3D 11.1 API device and immediate context. + DX::ThrowIfFailed( + device.As(&m_d3dDevice) + ); + + DX::ThrowIfFailed( + context.As(&m_d3dContext) + ); + + // Create the Direct2D device object and a corresponding context. + ComPtr dxgiDevice; + DX::ThrowIfFailed( + m_d3dDevice.As(&dxgiDevice) + ); + + DX::ThrowIfFailed( + m_d2dFactory->CreateDevice(dxgiDevice.Get(), &m_d2dDevice) + ); + + DX::ThrowIfFailed( + m_d2dDevice->CreateDeviceContext( + D2D1_DEVICE_CONTEXT_OPTIONS_NONE, + &m_d2dContext + ) + ); +} + +// These resources need to be recreated every time the window size is changed. +void DX::DeviceResources::CreateWindowSizeDependentResources() +{ + // Clear the previous window size specific context. + ID3D11RenderTargetView* nullViews[] = { nullptr }; + m_d3dContext->OMSetRenderTargets(ARRAYSIZE(nullViews), nullViews, nullptr); + m_d3dRenderTargetView = nullptr; + m_d2dContext->SetTarget(nullptr); + m_d2dTargetBitmap = nullptr; + m_d3dDepthStencilView = nullptr; + m_d3dContext->Flush(); + + // Calculate the necessary swap chain and render target size in pixels. + m_outputSize.Width = m_logicalSize.Width * m_compositionScaleX; + m_outputSize.Height = m_logicalSize.Height * m_compositionScaleY; + + // Prevent zero size DirectX content from being created. + m_outputSize.Width = max(m_outputSize.Width, 1); + m_outputSize.Height = max(m_outputSize.Height, 1); + + // The width and height of the swap chain must be based on the window's + // natively-oriented width and height. If the window is not in the native + // orientation, the dimensions must be reversed. + DXGI_MODE_ROTATION displayRotation = ComputeDisplayRotation(); + + bool swapDimensions = displayRotation == DXGI_MODE_ROTATION_ROTATE90 || displayRotation == DXGI_MODE_ROTATION_ROTATE270; + m_d3dRenderTargetSize.Width = swapDimensions ? m_outputSize.Height : m_outputSize.Width; + m_d3dRenderTargetSize.Height = swapDimensions ? m_outputSize.Width : m_outputSize.Height; + + if (m_swapChain != nullptr) + { + // If the swap chain already exists, resize it. + HRESULT hr = m_swapChain->ResizeBuffers( + 2, // Double-buffered swap chain. + lround(m_d3dRenderTargetSize.Width), + lround(m_d3dRenderTargetSize.Height), + DXGI_FORMAT_B8G8R8A8_UNORM, + 0 + ); + + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { + // If the device was removed for any reason, a new device and swap chain will need to be created. + HandleDeviceLost(); + + // Everything is set up now. Do not continue execution of this method. HandleDeviceLost will reenter this method + // and correctly set up the new device. + return; + } + else + { + DX::ThrowIfFailed(hr); + } + } + else + { + // Otherwise, create a new one using the same adapter as the existing Direct3D device. + DXGI_SWAP_CHAIN_DESC1 swapChainDesc = { 0 }; + + swapChainDesc.Width = lround(m_d3dRenderTargetSize.Width); // Match the size of the window. + swapChainDesc.Height = lround(m_d3dRenderTargetSize.Height); + swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; // This is the most common swap chain format. + swapChainDesc.Stereo = false; + swapChainDesc.SampleDesc.Count = 1; // Don't use multi-sampling. + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; + swapChainDesc.BufferCount = 2; // Use double-buffering to minimize latency. + swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; // All Windows Store apps must use this SwapEffect. + swapChainDesc.Flags = 0; + swapChainDesc.Scaling = DXGI_SCALING_STRETCH; + swapChainDesc.AlphaMode = DXGI_ALPHA_MODE_IGNORE; + + // This sequence obtains the DXGI factory that was used to create the Direct3D device above. + ComPtr dxgiDevice; + DX::ThrowIfFailed( + m_d3dDevice.As(&dxgiDevice) + ); + + ComPtr dxgiAdapter; + DX::ThrowIfFailed( + dxgiDevice->GetAdapter(&dxgiAdapter) + ); + + ComPtr dxgiFactory; + DX::ThrowIfFailed( + dxgiAdapter->GetParent(IID_PPV_ARGS(&dxgiFactory)) + ); + + // When using XAML interop, the swap chain must be created for composition. + DX::ThrowIfFailed( + dxgiFactory->CreateSwapChainForComposition( + m_d3dDevice.Get(), + &swapChainDesc, + nullptr, + &m_swapChain + ) + ); + + // Associate swap chain with SwapChainPanel + // UI changes will need to be dispatched back to the UI thread + m_swapChainPanel->Dispatcher->RunAsync(CoreDispatcherPriority::High, ref new DispatchedHandler([=]() + { + // Get backing native interface for SwapChainPanel + ComPtr panelNative; + DX::ThrowIfFailed( + reinterpret_cast(m_swapChainPanel)->QueryInterface(IID_PPV_ARGS(&panelNative)) + ); + + DX::ThrowIfFailed( + panelNative->SetSwapChain(m_swapChain.Get()) + ); + }, CallbackContext::Any)); + + // Ensure that DXGI does not queue more than one frame at a time. This both reduces latency and + // ensures that the application will only render after each VSync, minimizing power consumption. + DX::ThrowIfFailed( + dxgiDevice->SetMaximumFrameLatency(1) + ); + } + + // Set the proper orientation for the swap chain, and generate 2D and + // 3D matrix transformations for rendering to the rotated swap chain. + // Note the rotation angle for the 2D and 3D transforms are different. + // This is due to the difference in coordinate spaces. Additionally, + // the 3D matrix is specified explicitly to avoid rounding errors. + + switch (displayRotation) + { + case DXGI_MODE_ROTATION_IDENTITY: + m_orientationTransform2D = Matrix3x2F::Identity(); + m_orientationTransform3D = ScreenRotation::Rotation0; + break; + + case DXGI_MODE_ROTATION_ROTATE90: + m_orientationTransform2D = + Matrix3x2F::Rotation(90.0f) * + Matrix3x2F::Translation(m_logicalSize.Height, 0.0f); + m_orientationTransform3D = ScreenRotation::Rotation270; + break; + + case DXGI_MODE_ROTATION_ROTATE180: + m_orientationTransform2D = + Matrix3x2F::Rotation(180.0f) * + Matrix3x2F::Translation(m_logicalSize.Width, m_logicalSize.Height); + m_orientationTransform3D = ScreenRotation::Rotation180; + break; + + case DXGI_MODE_ROTATION_ROTATE270: + m_orientationTransform2D = + Matrix3x2F::Rotation(270.0f) * + Matrix3x2F::Translation(0.0f, m_logicalSize.Width); + m_orientationTransform3D = ScreenRotation::Rotation90; + break; + + default: + throw ref new FailureException(); + } + + DX::ThrowIfFailed( + m_swapChain->SetRotation(displayRotation) + ); + + // Setup inverse scale on the swap chain + DXGI_MATRIX_3X2_F inverseScale = { 0 }; + inverseScale._11 = 1.0f / m_compositionScaleX; + inverseScale._22 = 1.0f / m_compositionScaleY; + ComPtr spSwapChain2; + DX::ThrowIfFailed( + m_swapChain.As(&spSwapChain2) + ); + + DX::ThrowIfFailed( + spSwapChain2->SetMatrixTransform(&inverseScale) + ); + + + // Create a render target view of the swap chain back buffer. + ComPtr backBuffer; + DX::ThrowIfFailed( + m_swapChain->GetBuffer(0, IID_PPV_ARGS(&backBuffer)) + ); + + DX::ThrowIfFailed( + m_d3dDevice->CreateRenderTargetView( + backBuffer.Get(), + nullptr, + &m_d3dRenderTargetView + ) + ); + + // Create a depth stencil view for use with 3D rendering if needed. + CD3D11_TEXTURE2D_DESC depthStencilDesc( + DXGI_FORMAT_D24_UNORM_S8_UINT, + lround(m_d3dRenderTargetSize.Width), + lround(m_d3dRenderTargetSize.Height), + 1, // This depth stencil view has only one texture. + 1, // Use a single mipmap level. + D3D11_BIND_DEPTH_STENCIL + ); + + ComPtr depthStencil; + DX::ThrowIfFailed( + m_d3dDevice->CreateTexture2D( + &depthStencilDesc, + nullptr, + &depthStencil + ) + ); + + CD3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc(D3D11_DSV_DIMENSION_TEXTURE2D); + DX::ThrowIfFailed( + m_d3dDevice->CreateDepthStencilView( + depthStencil.Get(), + &depthStencilViewDesc, + &m_d3dDepthStencilView + ) + ); + + // Set the 3D rendering viewport to target the entire window. + m_screenViewport = CD3D11_VIEWPORT( + 0.0f, + 0.0f, + m_d3dRenderTargetSize.Width, + m_d3dRenderTargetSize.Height + ); + + m_d3dContext->RSSetViewports(1, &m_screenViewport); + + // Create a Direct2D target bitmap associated with the + // swap chain back buffer and set it as the current target. + D2D1_BITMAP_PROPERTIES1 bitmapProperties = + D2D1::BitmapProperties1( + D2D1_BITMAP_OPTIONS_TARGET | D2D1_BITMAP_OPTIONS_CANNOT_DRAW, + D2D1::PixelFormat(DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED), + m_dpi, + m_dpi + ); + + ComPtr dxgiBackBuffer; + DX::ThrowIfFailed( + m_swapChain->GetBuffer(0, IID_PPV_ARGS(&dxgiBackBuffer)) + ); + + DX::ThrowIfFailed( + m_d2dContext->CreateBitmapFromDxgiSurface( + dxgiBackBuffer.Get(), + &bitmapProperties, + &m_d2dTargetBitmap + ) + ); + + m_d2dContext->SetTarget(m_d2dTargetBitmap.Get()); + + // Grayscale text anti-aliasing is recommended for all Windows Store apps. + m_d2dContext->SetTextAntialiasMode(D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE); +} + +// This method is called when the XAML control is created (or re-created). +void DX::DeviceResources::SetSwapChainPanel(SwapChainPanel^ panel) +{ + DisplayInformation^ currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + m_swapChainPanel = panel; + m_logicalSize = Windows::Foundation::Size(static_cast(panel->ActualWidth), static_cast(panel->ActualHeight)); + m_nativeOrientation = currentDisplayInformation->NativeOrientation; + m_currentOrientation = currentDisplayInformation->CurrentOrientation; + m_compositionScaleX = panel->CompositionScaleX; + m_compositionScaleY = panel->CompositionScaleY; + m_dpi = currentDisplayInformation->LogicalDpi; + m_d2dContext->SetDpi(m_dpi, m_dpi); + + CreateWindowSizeDependentResources(); +} + +// This method is called in the event handler for the SizeChanged event. +void DX::DeviceResources::SetLogicalSize(Windows::Foundation::Size logicalSize) +{ + if (m_logicalSize != logicalSize) + { + m_logicalSize = logicalSize; + CreateWindowSizeDependentResources(); + } +} + +// This method is called in the event handler for the DpiChanged event. +void DX::DeviceResources::SetDpi(float dpi) +{ + if (dpi != m_dpi) + { + m_dpi = dpi; + m_d2dContext->SetDpi(m_dpi, m_dpi); + CreateWindowSizeDependentResources(); + } +} + +// This method is called in the event handler for the OrientationChanged event. +void DX::DeviceResources::SetCurrentOrientation(DisplayOrientations currentOrientation) +{ + if (m_currentOrientation != currentOrientation) + { + m_currentOrientation = currentOrientation; + CreateWindowSizeDependentResources(); + } +} + +// This method is called in the event handler for the CompositionScaleChanged event. +void DX::DeviceResources::SetCompositionScale(float compositionScaleX, float compositionScaleY) +{ + if (m_compositionScaleX != compositionScaleX || + m_compositionScaleY != compositionScaleY) + { + m_compositionScaleX = compositionScaleX; + m_compositionScaleY = compositionScaleY; + CreateWindowSizeDependentResources(); + } +} + +// This method is called in the event handler for the DisplayContentsInvalidated event. +void DX::DeviceResources::ValidateDevice() +{ + // The D3D Device is no longer valid if the default adapter changed since the device + // was created or if the device has been removed. + + // First, get the information for the default adapter from when the device was created. + + ComPtr dxgiDevice; + DX::ThrowIfFailed(m_d3dDevice.As(&dxgiDevice)); + + ComPtr deviceAdapter; + DX::ThrowIfFailed(dxgiDevice->GetAdapter(&deviceAdapter)); + + ComPtr deviceFactory; + DX::ThrowIfFailed(deviceAdapter->GetParent(IID_PPV_ARGS(&deviceFactory))); + + ComPtr previousDefaultAdapter; + DX::ThrowIfFailed(deviceFactory->EnumAdapters1(0, &previousDefaultAdapter)); + + DXGI_ADAPTER_DESC previousDesc; + DX::ThrowIfFailed(previousDefaultAdapter->GetDesc(&previousDesc)); + + // Next, get the information for the current default adapter. + + ComPtr currentFactory; + DX::ThrowIfFailed(CreateDXGIFactory1(IID_PPV_ARGS(¤tFactory))); + + ComPtr currentDefaultAdapter; + DX::ThrowIfFailed(currentFactory->EnumAdapters1(0, ¤tDefaultAdapter)); + + DXGI_ADAPTER_DESC currentDesc; + DX::ThrowIfFailed(currentDefaultAdapter->GetDesc(¤tDesc)); + + // If the adapter LUIDs don't match, or if the device reports that it has been removed, + // a new D3D device must be created. + + if (previousDesc.AdapterLuid.LowPart != currentDesc.AdapterLuid.LowPart || + previousDesc.AdapterLuid.HighPart != currentDesc.AdapterLuid.HighPart || + FAILED(m_d3dDevice->GetDeviceRemovedReason())) + { + // Release references to resources related to the old device. + dxgiDevice = nullptr; + deviceAdapter = nullptr; + deviceFactory = nullptr; + previousDefaultAdapter = nullptr; + + // Create a new device and swap chain. + HandleDeviceLost(); + } +} + +// Recreate all device resources and set them back to the current state. +void DX::DeviceResources::HandleDeviceLost() +{ + m_swapChain = nullptr; + + if (m_deviceNotify != nullptr) + { + m_deviceNotify->OnDeviceLost(); + } + + CreateDeviceResources(); + m_d2dContext->SetDpi(m_dpi, m_dpi); + CreateWindowSizeDependentResources(); + + if (m_deviceNotify != nullptr) + { + m_deviceNotify->OnDeviceRestored(); + } +} + +// Register our DeviceNotify to be informed on device lost and creation. +void DX::DeviceResources::RegisterDeviceNotify(DX::IDeviceNotify* deviceNotify) +{ + m_deviceNotify = deviceNotify; +} + +// Call this method when the app suspends. It provides a hint to the driver that the app +// is entering an idle state and that temporary buffers can be reclaimed for use by other apps. +void DX::DeviceResources::Trim() +{ + ComPtr dxgiDevice; + m_d3dDevice.As(&dxgiDevice); + + dxgiDevice->Trim(); +} + +// Present the contents of the swap chain to the screen. +void DX::DeviceResources::Present() +{ + // The first argument instructs DXGI to block until VSync, putting the application + // to sleep until the next VSync. This ensures we don't waste any cycles rendering + // frames that will never be displayed to the screen. + HRESULT hr = m_swapChain->Present(1, 0); + + // Discard the contents of the render target. + // This is a valid operation only when the existing contents will be entirely + // overwritten. If dirty or scroll rects are used, this call should be removed. + m_d3dContext->DiscardView(m_d3dRenderTargetView.Get()); + + // Discard the contents of the depth stencil. + m_d3dContext->DiscardView(m_d3dDepthStencilView.Get()); + + // If the device was removed either by a disconnection or a driver upgrade, we + // must recreate all device resources. + if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET) + { + HandleDeviceLost(); + } + else + { + DX::ThrowIfFailed(hr); + } +} + +// This method determines the rotation between the display device's native Orientation and the +// current display orientation. +DXGI_MODE_ROTATION DX::DeviceResources::ComputeDisplayRotation() +{ + DXGI_MODE_ROTATION rotation = DXGI_MODE_ROTATION_UNSPECIFIED; + + // Note: NativeOrientation can only be Landscape or Portrait even though + // the DisplayOrientations enum has other values. + switch (m_nativeOrientation) + { + case DisplayOrientations::Landscape: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + } + break; + + case DisplayOrientations::Portrait: + switch (m_currentOrientation) + { + case DisplayOrientations::Landscape: + rotation = DXGI_MODE_ROTATION_ROTATE90; + break; + + case DisplayOrientations::Portrait: + rotation = DXGI_MODE_ROTATION_IDENTITY; + break; + + case DisplayOrientations::LandscapeFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE270; + break; + + case DisplayOrientations::PortraitFlipped: + rotation = DXGI_MODE_ROTATION_ROTATE180; + break; + } + break; + } + return rotation; +} \ No newline at end of file diff --git a/Samples/DirectXInterop1/Common/DeviceResources.h b/Samples/DirectXInterop1/Common/DeviceResources.h new file mode 100644 index 0000000..5763619 --- /dev/null +++ b/Samples/DirectXInterop1/Common/DeviceResources.h @@ -0,0 +1,100 @@ +#pragma once + +namespace DX +{ + // Provides an interface for an application that owns DeviceResources to be notified of the device being lost or created. + interface IDeviceNotify + { + virtual void OnDeviceLost() = 0; + virtual void OnDeviceRestored() = 0; + }; + + // Controls all the DirectX device resources. + class DeviceResources + { + public: + DeviceResources(); + void SetSwapChainPanel(Windows::UI::Xaml::Controls::SwapChainPanel^ panel); + void SetLogicalSize(Windows::Foundation::Size logicalSize); + void SetCurrentOrientation(Windows::Graphics::Display::DisplayOrientations currentOrientation); + void SetDpi(float dpi); + void SetCompositionScale(float compositionScaleX, float compositionScaleY); + void ValidateDevice(); + void HandleDeviceLost(); + void RegisterDeviceNotify(IDeviceNotify* deviceNotify); + void Trim(); + void Present(); + + // Device Accessors. + Windows::Foundation::Size GetOutputSize() const { return m_outputSize; } + Windows::Foundation::Size GetLogicalSize() const { return m_logicalSize; } + float GetCompositionScaleX() const { return m_compositionScaleX; } + float GetCompositionScaleY() const { return m_compositionScaleY; } + + // D3D Accessors. + ID3D11Device2* GetD3DDevice() const { return m_d3dDevice.Get(); } + ID3D11DeviceContext2* GetD3DDeviceContext() const { return m_d3dContext.Get(); } + IDXGISwapChain1* GetSwapChain() const { return m_swapChain.Get(); } + D3D_FEATURE_LEVEL GetDeviceFeatureLevel() const { return m_d3dFeatureLevel; } + ID3D11RenderTargetView* GetBackBufferRenderTargetView() const { return m_d3dRenderTargetView.Get(); } + ID3D11DepthStencilView* GetDepthStencilView() const { return m_d3dDepthStencilView.Get(); } + D3D11_VIEWPORT GetScreenViewport() const { return m_screenViewport; } + DirectX::XMFLOAT4X4 GetOrientationTransform3D() const { return m_orientationTransform3D; } + + // D2D Accessors. + ID2D1Factory2* GetD2DFactory() const { return m_d2dFactory.Get(); } + ID2D1Device1* GetD2DDevice() const { return m_d2dDevice.Get(); } + ID2D1DeviceContext1* GetD2DDeviceContext() const { return m_d2dContext.Get(); } + ID2D1Bitmap1* GetD2DTargetBitmap() const { return m_d2dTargetBitmap.Get(); } + IDWriteFactory2* GetDWriteFactory() const { return m_dwriteFactory.Get(); } + IWICImagingFactory2* GetWicImagingFactory() const { return m_wicFactory.Get(); } + D2D1::Matrix3x2F GetOrientationTransform2D() const { return m_orientationTransform2D; } + + private: + void CreateDeviceIndependentResources(); + void CreateDeviceResources(); + void CreateWindowSizeDependentResources(); + DXGI_MODE_ROTATION ComputeDisplayRotation(); + + // Direct3D objects. + Microsoft::WRL::ComPtr m_d3dDevice; + Microsoft::WRL::ComPtr m_d3dContext; + Microsoft::WRL::ComPtr m_swapChain; + + // Direct3D rendering objects. Required for 3D. + Microsoft::WRL::ComPtr m_d3dRenderTargetView; + Microsoft::WRL::ComPtr m_d3dDepthStencilView; + D3D11_VIEWPORT m_screenViewport; + + // Direct2D drawing components. + Microsoft::WRL::ComPtr m_d2dFactory; + Microsoft::WRL::ComPtr m_d2dDevice; + Microsoft::WRL::ComPtr m_d2dContext; + Microsoft::WRL::ComPtr m_d2dTargetBitmap; + + // DirectWrite drawing components. + Microsoft::WRL::ComPtr m_dwriteFactory; + Microsoft::WRL::ComPtr m_wicFactory; + + // Cached reference to the XAML panel. + Windows::UI::Xaml::Controls::SwapChainPanel^ m_swapChainPanel; + + // Cached device properties. + D3D_FEATURE_LEVEL m_d3dFeatureLevel; + Windows::Foundation::Size m_d3dRenderTargetSize; + Windows::Foundation::Size m_outputSize; + Windows::Foundation::Size m_logicalSize; + Windows::Graphics::Display::DisplayOrientations m_nativeOrientation; + Windows::Graphics::Display::DisplayOrientations m_currentOrientation; + float m_dpi; + float m_compositionScaleX; + float m_compositionScaleY; + + // Transforms used for display orientation. + D2D1::Matrix3x2F m_orientationTransform2D; + DirectX::XMFLOAT4X4 m_orientationTransform3D; + + // The IDeviceNotify can be held directly as it owns the DeviceResources. + IDeviceNotify* m_deviceNotify; + }; +} \ No newline at end of file diff --git a/Samples/DirectXInterop1/Common/DirectXHelper.h b/Samples/DirectXInterop1/Common/DirectXHelper.h new file mode 100644 index 0000000..1137361 --- /dev/null +++ b/Samples/DirectXInterop1/Common/DirectXHelper.h @@ -0,0 +1,63 @@ +#pragma once + +#include // For create_task + +namespace DX +{ + inline void ThrowIfFailed(HRESULT hr) + { + if (FAILED(hr)) + { + // Set a breakpoint on this line to catch Win32 API errors. + throw Platform::Exception::CreateException(hr); + } + } + + // Function that reads from a binary file asynchronously. + inline Concurrency::task> ReadDataAsync(const std::wstring& filename) + { + using namespace Windows::Storage; + using namespace Concurrency; + + auto folder = Windows::ApplicationModel::Package::Current->InstalledLocation; + + return create_task(folder->GetFileAsync(Platform::StringReference(filename.c_str()))).then([] (StorageFile^ file) + { + return FileIO::ReadBufferAsync(file); + }).then([] (Streams::IBuffer^ fileBuffer) -> std::vector + { + std::vector returnBuffer; + returnBuffer.resize(fileBuffer->Length); + Streams::DataReader::FromBuffer(fileBuffer)->ReadBytes(Platform::ArrayReference(returnBuffer.data(), fileBuffer->Length)); + return returnBuffer; + }); + } + + // Converts a length in device-independent pixels (DIPs) to a length in physical pixels. + inline float ConvertDipsToPixels(float dips, float dpi) + { + static const float dipsPerInch = 96.0f; + return floorf(dips * dpi / dipsPerInch + 0.5f); // Round to nearest integer. + } + +#if defined(_DEBUG) + // Check for SDK Layer support. + inline bool SdkLayersAvailable() + { + HRESULT hr = D3D11CreateDevice( + nullptr, + D3D_DRIVER_TYPE_NULL, // There is no need to create a real hardware device. + 0, + D3D11_CREATE_DEVICE_DEBUG, // Check for the SDK layers. + nullptr, // Any feature level will do. + 0, + D3D11_SDK_VERSION, // Always set this to D3D11_SDK_VERSION for Windows Store apps. + nullptr, // No need to keep the D3D device reference. + nullptr, // No need to know the feature level. + nullptr // No need to keep the D3D device context reference. + ); + + return SUCCEEDED(hr); + } +#endif +} diff --git a/Samples/DirectXInterop1/Common/StepTimer.h b/Samples/DirectXInterop1/Common/StepTimer.h new file mode 100644 index 0000000..286710c --- /dev/null +++ b/Samples/DirectXInterop1/Common/StepTimer.h @@ -0,0 +1,183 @@ +#pragma once + +#include + +namespace DX +{ + // Helper class for animation and simulation timing. + class StepTimer + { + public: + StepTimer() : + m_elapsedTicks(0), + m_totalTicks(0), + m_leftOverTicks(0), + m_frameCount(0), + m_framesPerSecond(0), + m_framesThisSecond(0), + m_qpcSecondCounter(0), + m_isFixedTimeStep(false), + m_targetElapsedTicks(TicksPerSecond / 60) + { + if (!QueryPerformanceFrequency(&m_qpcFrequency)) + { + throw ref new Platform::FailureException(); + } + + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw ref new Platform::FailureException(); + } + + // Initialize max delta to 1/10 of a second. + m_qpcMaxDelta = m_qpcFrequency.QuadPart / 10; + } + + // Get elapsed time since the previous Update call. + uint64 GetElapsedTicks() const { return m_elapsedTicks; } + double GetElapsedSeconds() const { return TicksToSeconds(m_elapsedTicks); } + + // Get total time since the start of the program. + uint64 GetTotalTicks() const { return m_totalTicks; } + double GetTotalSeconds() const { return TicksToSeconds(m_totalTicks); } + + // Get total number of updates since start of the program. + uint32 GetFrameCount() const { return m_frameCount; } + + // Get the current framerate. + uint32 GetFramesPerSecond() const { return m_framesPerSecond; } + + // Set whether to use fixed or variable timestep mode. + void SetFixedTimeStep(bool isFixedTimestep) { m_isFixedTimeStep = isFixedTimestep; } + + // Set how often to call Update when in fixed timestep mode. + void SetTargetElapsedTicks(uint64 targetElapsed) { m_targetElapsedTicks = targetElapsed; } + void SetTargetElapsedSeconds(double targetElapsed) { m_targetElapsedTicks = SecondsToTicks(targetElapsed); } + + // Integer format represents time using 10,000,000 ticks per second. + static const uint64 TicksPerSecond = 10000000; + + static double TicksToSeconds(uint64 ticks) { return static_cast(ticks) / TicksPerSecond; } + static uint64 SecondsToTicks(double seconds) { return static_cast(seconds * TicksPerSecond); } + + // After an intentional timing discontinuity (for instance a blocking IO operation) + // call this to avoid having the fixed timestep logic attempt a set of catch-up + // Update calls. + + void ResetElapsedTime() + { + if (!QueryPerformanceCounter(&m_qpcLastTime)) + { + throw ref new Platform::FailureException(); + } + + m_leftOverTicks = 0; + m_framesPerSecond = 0; + m_framesThisSecond = 0; + m_qpcSecondCounter = 0; + } + + // Update timer state, calling the specified Update function the appropriate number of times. + template + void Tick(const TUpdate& update) + { + // Query the current time. + LARGE_INTEGER currentTime; + + if (!QueryPerformanceCounter(¤tTime)) + { + throw ref new Platform::FailureException(); + } + + uint64 timeDelta = currentTime.QuadPart - m_qpcLastTime.QuadPart; + + m_qpcLastTime = currentTime; + m_qpcSecondCounter += timeDelta; + + // Clamp excessively large time deltas (e.g. after paused in the debugger). + if (timeDelta > m_qpcMaxDelta) + { + timeDelta = m_qpcMaxDelta; + } + + // Convert QPC units into a canonical tick format. This cannot overflow due to the previous clamp. + timeDelta *= TicksPerSecond; + timeDelta /= m_qpcFrequency.QuadPart; + + uint32 lastFrameCount = m_frameCount; + + if (m_isFixedTimeStep) + { + // Fixed timestep update logic + + // If the app is running very close to the target elapsed time (within 1/4 of a millisecond) just clamp + // the clock to exactly match the target value. This prevents tiny and irrelevant errors + // from accumulating over time. Without this clamping, a game that requested a 60 fps + // fixed update, running with vsync enabled on a 59.94 NTSC display, would eventually + // accumulate enough tiny errors that it would drop a frame. It is better to just round + // small deviations down to zero to leave things running smoothly. + + if (abs(static_cast(timeDelta - m_targetElapsedTicks)) < TicksPerSecond / 4000) + { + timeDelta = m_targetElapsedTicks; + } + + m_leftOverTicks += timeDelta; + + while (m_leftOverTicks >= m_targetElapsedTicks) + { + m_elapsedTicks = m_targetElapsedTicks; + m_totalTicks += m_targetElapsedTicks; + m_leftOverTicks -= m_targetElapsedTicks; + m_frameCount++; + + update(); + } + } + else + { + // Variable timestep update logic. + m_elapsedTicks = timeDelta; + m_totalTicks += timeDelta; + m_leftOverTicks = 0; + m_frameCount++; + + update(); + } + + // Track the current framerate. + if (m_frameCount != lastFrameCount) + { + m_framesThisSecond++; + } + + if (m_qpcSecondCounter >= static_cast(m_qpcFrequency.QuadPart)) + { + m_framesPerSecond = m_framesThisSecond; + m_framesThisSecond = 0; + m_qpcSecondCounter %= m_qpcFrequency.QuadPart; + } + } + + private: + // Source timing data uses QPC units. + LARGE_INTEGER m_qpcFrequency; + LARGE_INTEGER m_qpcLastTime; + uint64 m_qpcMaxDelta; + + // Derived timing data uses a canonical tick format. + uint64 m_elapsedTicks; + uint64 m_totalTicks; + uint64 m_leftOverTicks; + + // Members for tracking the framerate. + uint32 m_frameCount; + uint32 m_framesPerSecond; + uint32 m_framesThisSecond; + uint64 m_qpcSecondCounter; + + // Members for configuring fixed timestep mode. + bool m_isFixedTimeStep; + uint64 m_targetElapsedTicks; + }; +} diff --git a/Samples/DirectXInterop1/Content/Sample3DSceneRenderer.cpp b/Samples/DirectXInterop1/Content/Sample3DSceneRenderer.cpp new file mode 100644 index 0000000..d503f79 --- /dev/null +++ b/Samples/DirectXInterop1/Content/Sample3DSceneRenderer.cpp @@ -0,0 +1,327 @@ +#include "pch.h" +#include "Sample3DSceneRenderer.h" +#include "..\Common\DirectXHelper.h" + + +using namespace DirectXInterop1; +using namespace DirectX; +using namespace Windows::Foundation; + +// Loads vertex and pixel shaders from files and instantiates the cube geometry. +Sample3DSceneRenderer::Sample3DSceneRenderer(const std::shared_ptr& deviceResources) : + m_loadingComplete(false), + m_degreesPerSecond(45), + m_indexCount(0), + m_deviceResources(deviceResources) +{ + CreateDeviceDependentResources(); + CreateWindowSizeDependentResources(); +} + +// Initializes view parameters when the window size changes. +void Sample3DSceneRenderer::CreateWindowSizeDependentResources() +{ + Size outputSize = m_deviceResources->GetOutputSize(); + float aspectRatio = outputSize.Width / outputSize.Height; + float fovAngleY = 70.0f * XM_PI / 180.0f; + + // This is a simple example of change that can be made when the app is in + // portrait or snapped view. + if (aspectRatio < 1.0f) + { + fovAngleY *= 2.0f; + } + + // Note that the OrientationTransform3D matrix is post-multiplied here + // in order to correctly orient the scene to match the display orientation. + // This post-multiplication step is required for any draw calls that are + // made to the swap chain render target. For draw calls to other targets, + // this transform should not be applied. + + // This sample makes use of a right-handed coordinate system using row-major matrices. + XMMATRIX perspectiveMatrix = XMMatrixPerspectiveFovRH(fovAngleY, aspectRatio, 0.01f, 100.0f); + + XMFLOAT4X4 orientation = m_deviceResources->GetOrientationTransform3D(); + + XMMATRIX orientationMatrix = XMLoadFloat4x4(&orientation); + + XMStoreFloat4x4(&m_constantBufferData.mProjection, XMMatrixTranspose(perspectiveMatrix * orientationMatrix)); + + // Eye is at (0,0.7,1.5), looking at point (0,-0.1,0) with the up-vector along the y-axis. + static const XMVECTORF32 eye = { 0.0f, 2.7f, 3.5f, 0.0f }; + static const XMVECTORF32 at = { 0.0f, -0.1f, 0.0f, 0.0f }; + static const XMVECTORF32 up = { 0.0f, 1.0f, 0.0f, 0.0f }; + + XMStoreFloat4x4(&m_constantBufferData.mView, XMMatrixTranspose(XMMatrixLookAtRH(eye, at, up))); + + // Setup our lighting parameters + XMFLOAT4 vLightDirs[2] = + { + XMFLOAT4(0.0f, -0.6f, -1.0f, 1.0f), + XMFLOAT4(0.0f, 0.0f, -1.0f, 1.0f), + }; + XMFLOAT4 vLightColors[2] = + { + XMFLOAT4(0.3f, 0.9f, 0.8f, 1.0f), + XMFLOAT4(0.5f, 0.4f, 0.0f, 1.0f) + }; + + // + // Update lighting variables + // + m_constantBufferData.vLightDir[0] = vLightDirs[0]; + m_constantBufferData.vLightDir[1] = vLightDirs[1]; + m_constantBufferData.vLightColor[0] = vLightColors[0]; + m_constantBufferData.vLightColor[1] = vLightColors[1]; + m_constantBufferData.vOutputColor = XMFLOAT4(0, 0, 0, 0); +} + +// Called once per frame, rotates the cube and calculates the model and view matrices. +void Sample3DSceneRenderer::Update(DX::StepTimer const& timer) +{ + // Convert degrees to radians, then convert seconds to rotation angle + float radiansPerSecond = XMConvertToRadians(m_degreesPerSecond); + double totalRotation = timer.GetTotalSeconds() * radiansPerSecond; + float radians = static_cast(fmod(totalRotation, XM_2PI)); + + Rotate(radians); +} + +// Rotate the 3D cube model a set amount of radians. +void Sample3DSceneRenderer::Rotate(float radians) +{ + // Prepare to pass the updated model matrix to the shader + XMStoreFloat4x4(&m_constantBufferData.mWorld, XMMatrixTranspose(XMMatrixRotationY(radians))); +} + +// Renders one frame using the vertex and pixel shaders. +void Sample3DSceneRenderer::Render(Microsoft::WRL::ComPtr shaderResourceView) +{ + // Loading is asynchronous. Only draw geometry after it's loaded. + if (!m_loadingComplete) + { + return; + } + + auto context = m_deviceResources->GetD3DDeviceContext(); + + context->RSSetState(m_RasterizerState.Get()); + + // Prepare the constant buffer to send it to the graphics device. + context->UpdateSubresource(m_constantBuffer.Get(), 0, NULL, &m_constantBufferData, 0, 0); + + // Each vertex is one instance of the VertexPositionColor struct. + UINT stride = sizeof(VertexPosNormTex); + UINT offset = 0; + context->IASetVertexBuffers(0, 1, m_vertexBuffer.GetAddressOf(), &stride, &offset); + + // Each index is one 16-bit unsigned integer (short). + context->IASetIndexBuffer(m_indexBuffer.Get(), DXGI_FORMAT_R16_UINT, 0); + + context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST); + + context->IASetInputLayout(m_inputLayout.Get()); + + // Attach our vertex shader. + context->VSSetShader(m_vertexShader.Get(), nullptr, 0); + + // Send the constant buffer to the graphics device. + context->VSSetConstantBuffers(0, 1, m_constantBuffer.GetAddressOf()); + + // Attach our pixel shader. + context->PSSetShader(m_pixelShader.Get(), nullptr, 0); + + // Set the ink texture as a shader resource + context->PSSetShaderResources(0, 1, shaderResourceView.GetAddressOf()); + context->PSSetSamplers(0, 1, m_SamplerState.GetAddressOf()); + + // Draw the objects. + context->DrawIndexed(m_indexCount, 0, 0); + + // Detach the ink texture + ID3D11ShaderResourceView* pNull = nullptr; + context->PSSetShaderResources(0, 1, &pNull); +} + +void Sample3DSceneRenderer::CreateDeviceDependentResources() +{ + // Load shaders asynchronously. + auto loadVSTask = DX::ReadDataAsync(L"SampleVertexShader.cso"); + auto loadPSTask = DX::ReadDataAsync(L"SamplePixelShader.cso"); + + // After the vertex shader file is loaded, create the shader and input layout. + auto createVSTask = loadVSTask.then([this](const std::vector& fileData) { + DX::ThrowIfFailed(m_deviceResources->GetD3DDevice()->CreateVertexShader(&fileData[0], fileData.size(), nullptr, &m_vertexShader)); + + static const D3D11_INPUT_ELEMENT_DESC vertexDesc[] = + { + { "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "NORMAL", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 24, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + }; + + DX::ThrowIfFailed(m_deviceResources->GetD3DDevice()->CreateInputLayout(vertexDesc, ARRAYSIZE(vertexDesc), &fileData[0], fileData.size(), &m_inputLayout)); + + + // Create a texture sampler + D3D11_SAMPLER_DESC samplerDesc; + ZeroMemory(&samplerDesc, sizeof(D3D11_SAMPLER_DESC)); + samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; + samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.ComparisonFunc = D3D11_COMPARISON_NEVER; + samplerDesc.MinLOD = 0; + samplerDesc.MaxLOD = D3D11_FLOAT32_MAX; + + // Create the sample state + DX::ThrowIfFailed(m_deviceResources->GetD3DDevice()->CreateSamplerState(&samplerDesc, &m_SamplerState)); + }); + + // After the pixel shader file is loaded, create the shader and constant buffer. + auto createPSTask = loadPSTask.then([this](const std::vector& fileData) { + DX::ThrowIfFailed( + m_deviceResources->GetD3DDevice()->CreatePixelShader( + &fileData[0], + fileData.size(), + nullptr, + &m_pixelShader + ) + ); + + CD3D11_BUFFER_DESC constantBufferDesc(sizeof(ConstantBuffer), D3D11_BIND_CONSTANT_BUFFER); + DX::ThrowIfFailed( + m_deviceResources->GetD3DDevice()->CreateBuffer( + &constantBufferDesc, + nullptr, + &m_constantBuffer + ) + ); + }); + + // Once both shaders are loaded, create the mesh. + auto createCubeTask = (createPSTask && createVSTask).then([this]() { + + // Load mesh vertices. Each vertex has a position and a normal. + static const VertexPosNormTex cubeVertices[] = + { + // top + { XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) }, + { XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) }, + { XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) }, + { XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 1.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) }, + + // bottom + { XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) }, + { XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) }, + { XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) }, + { XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, -1.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) }, + + // left + { XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) }, + { XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) }, + { XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) }, + { XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(-1.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) }, + + // right + { XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 1.0f) }, + { XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 1.0f) }, + { XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f), XMFLOAT2(1.0f, 0.0f) }, + { XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(1.0f, 0.0f, 0.0f), XMFLOAT2(0.0f, 0.0f) }, + + // back + { XMFLOAT3(-1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f), XMFLOAT2(1.0f, 1.0f) }, + { XMFLOAT3(1.0f, -1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f), XMFLOAT2(0.0f, 1.0f) }, + { XMFLOAT3(1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f), XMFLOAT2(0.0f, 0.0f) }, + { XMFLOAT3(-1.0f, 1.0f, -1.0f), XMFLOAT3(0.0f, 0.0f, -1.0f), XMFLOAT2(1.0f, 0.0f) }, + + // front + { XMFLOAT3(-1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f), XMFLOAT2(0.0f, 1.0f) }, + { XMFLOAT3(1.0f, -1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f), XMFLOAT2(1.0f, 1.0f) }, + { XMFLOAT3(1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f), XMFLOAT2(1.0f, 0.0f) }, + { XMFLOAT3(-1.0f, 1.0f, 1.0f), XMFLOAT3(0.0f, 0.0f, 1.0f), XMFLOAT2(0.0f, 0.0f) }, + }; + + D3D11_SUBRESOURCE_DATA vertexBufferData = { 0 }; + vertexBufferData.pSysMem = cubeVertices; + vertexBufferData.SysMemPitch = 0; + vertexBufferData.SysMemSlicePitch = 0; + CD3D11_BUFFER_DESC vertexBufferDesc(sizeof(cubeVertices), D3D11_BIND_VERTEX_BUFFER); + DX::ThrowIfFailed( + m_deviceResources->GetD3DDevice()->CreateBuffer( + &vertexBufferDesc, + &vertexBufferData, + &m_vertexBuffer + ) + ); + + // Load mesh indices. Each trio of indices represents a triangle to be rendered on the screen. + static const unsigned short cubeIndices[] = + { + 3, 0, 1, + 2, 3, 1, + + 6, 5, 4, + 7, 6, 4, + + 11, 8, 9, + 10, 11, 9, + + 14, 13, 12, + 15, 14, 12, + + 19, 16, 17, + 18, 19, 17, + + 22, 21, 20, + 23, 22, 20 + }; + + m_indexCount = ARRAYSIZE(cubeIndices); + + D3D11_SUBRESOURCE_DATA indexBufferData = { 0 }; + indexBufferData.pSysMem = cubeIndices; + indexBufferData.SysMemPitch = 0; + indexBufferData.SysMemSlicePitch = 0; + + CD3D11_BUFFER_DESC indexBufferDesc(sizeof(cubeIndices), D3D11_BIND_INDEX_BUFFER); + DX::ThrowIfFailed( + m_deviceResources->GetD3DDevice()->CreateBuffer(&indexBufferDesc, &indexBufferData, &m_indexBuffer) + ); + }); + + // Once the cube is loaded, the object is ready to be rendered. + createCubeTask.then([this]() { + + // Create rasterizer state + Microsoft::WRL::ComPtr curRastState; + D3D11_RASTERIZER_DESC rDesc; + ZeroMemory(&rDesc, sizeof(rDesc)); + rDesc.AntialiasedLineEnable = false; + rDesc.CullMode = D3D11_CULL_MODE::D3D11_CULL_BACK; + rDesc.DepthBias = 0; + rDesc.DepthBiasClamp = 0.0f; + rDesc.DepthClipEnable = true; + rDesc.FillMode = D3D11_FILL_MODE::D3D11_FILL_SOLID; + rDesc.FrontCounterClockwise = false; + rDesc.MultisampleEnable = false; + rDesc.ScissorEnable = false; + rDesc.SlopeScaledDepthBias = 0.0f; + + // create a whole new rasterizer state + m_deviceResources->GetD3DDevice()->CreateRasterizerState(&rDesc, m_RasterizerState.GetAddressOf()); + + m_loadingComplete = true; + }); +} + +void Sample3DSceneRenderer::ReleaseDeviceDependentResources() +{ + m_loadingComplete = false; + m_vertexShader.Reset(); + m_inputLayout.Reset(); + m_pixelShader.Reset(); + m_constantBuffer.Reset(); + m_vertexBuffer.Reset(); + m_indexBuffer.Reset(); +} diff --git a/Samples/DirectXInterop1/Content/Sample3DSceneRenderer.h b/Samples/DirectXInterop1/Content/Sample3DSceneRenderer.h new file mode 100644 index 0000000..2d39854 --- /dev/null +++ b/Samples/DirectXInterop1/Content/Sample3DSceneRenderer.h @@ -0,0 +1,46 @@ +#pragma once + +#include "..\Common\DeviceResources.h" +#include "ShaderStructures.h" +#include "..\Common\StepTimer.h" + +namespace DirectXInterop1 +{ + // This sample renderer instantiates a basic rendering pipeline. + class Sample3DSceneRenderer + { + public: + Sample3DSceneRenderer(const std::shared_ptr& deviceResources); + void CreateDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + void ReleaseDeviceDependentResources(); + void Update(DX::StepTimer const& timer); + void Render(Microsoft::WRL::ComPtr shaderResourceView); + + private: + void Rotate(float radians); + + private: + // Cached pointer to device resources. + std::shared_ptr m_deviceResources; + + // Direct3D resources for cube geometry. + Microsoft::WRL::ComPtr m_inputLayout; + Microsoft::WRL::ComPtr m_vertexBuffer; + Microsoft::WRL::ComPtr m_indexBuffer; + Microsoft::WRL::ComPtr m_vertexShader; + Microsoft::WRL::ComPtr m_pixelShader; + Microsoft::WRL::ComPtr m_constantBuffer; + Microsoft::WRL::ComPtr m_RasterizerState; + Microsoft::WRL::ComPtr m_SamplerState; + + // System resources for cube geometry. + ConstantBuffer m_constantBufferData; + uint32 m_indexCount; + + // Variables used with the rendering loop. + bool m_loadingComplete; + float m_degreesPerSecond; + }; +} + diff --git a/Samples/DirectXInterop1/Content/SampleFpsTextRenderer.cpp b/Samples/DirectXInterop1/Content/SampleFpsTextRenderer.cpp new file mode 100644 index 0000000..01f6ab5 --- /dev/null +++ b/Samples/DirectXInterop1/Content/SampleFpsTextRenderer.cpp @@ -0,0 +1,111 @@ +#include "pch.h" +#include "SampleFpsTextRenderer.h" + +#include "Common/DirectXHelper.h" + +using namespace DirectXInterop1; + +// Initializes D2D resources used for text rendering. +SampleFpsTextRenderer::SampleFpsTextRenderer(const std::shared_ptr& deviceResources) : + m_text(L""), + m_deviceResources(deviceResources) +{ + ZeroMemory(&m_textMetrics, sizeof(DWRITE_TEXT_METRICS)); + + // Create device independent resources + DX::ThrowIfFailed( + m_deviceResources->GetDWriteFactory()->CreateTextFormat( + L"Segoe UI", + nullptr, + DWRITE_FONT_WEIGHT_LIGHT, + DWRITE_FONT_STYLE_NORMAL, + DWRITE_FONT_STRETCH_NORMAL, + 32.0f, + L"en-US", + &m_textFormat + ) + ); + + DX::ThrowIfFailed( + m_textFormat->SetParagraphAlignment(DWRITE_PARAGRAPH_ALIGNMENT_NEAR) + ); + + DX::ThrowIfFailed( + m_deviceResources->GetD2DFactory()->CreateDrawingStateBlock(&m_stateBlock) + ); + + CreateDeviceDependentResources(); +} + +// Updates the text to be displayed. +void SampleFpsTextRenderer::Update(DX::StepTimer const& timer) +{ + // Update display text. + uint32 fps = timer.GetFramesPerSecond(); + + m_text = (fps > 0) ? std::to_wstring(fps) + L" FPS" : L" - FPS"; + + DX::ThrowIfFailed( + m_deviceResources->GetDWriteFactory()->CreateTextLayout( + m_text.c_str(), + (uint32)m_text.length(), + m_textFormat.Get(), + 240.0f, // Max width of the input text. + 50.0f, // Max height of the input text. + &m_textLayout + ) + ); + + DX::ThrowIfFailed( + m_textLayout->GetMetrics(&m_textMetrics) + ); +} + +// Renders a frame to the screen. +void SampleFpsTextRenderer::Render() +{ + ID2D1DeviceContext* context = m_deviceResources->GetD2DDeviceContext(); + Windows::Foundation::Size logicalSize = m_deviceResources->GetLogicalSize(); + + context->SaveDrawingState(m_stateBlock.Get()); + context->BeginDraw(); + + // Position on the bottom right corner + D2D1::Matrix3x2F screenTranslation = D2D1::Matrix3x2F::Translation( + logicalSize.Width - m_textMetrics.layoutWidth, + logicalSize.Height - m_textMetrics.height + ); + + context->SetTransform(screenTranslation * m_deviceResources->GetOrientationTransform2D()); + + DX::ThrowIfFailed( + m_textFormat->SetTextAlignment(DWRITE_TEXT_ALIGNMENT_TRAILING) + ); + + context->DrawTextLayout( + D2D1::Point2F(0.f, 0.f), + m_textLayout.Get(), + m_whiteBrush.Get() + ); + + // Ignore D2DERR_RECREATE_TARGET here. This error indicates that the device + // is lost. It will be handled during the next call to Present. + HRESULT hr = context->EndDraw(); + if (hr != D2DERR_RECREATE_TARGET) + { + DX::ThrowIfFailed(hr); + } + + context->RestoreDrawingState(m_stateBlock.Get()); +} + +void SampleFpsTextRenderer::CreateDeviceDependentResources() +{ + DX::ThrowIfFailed( + m_deviceResources->GetD2DDeviceContext()->CreateSolidColorBrush(D2D1::ColorF(D2D1::ColorF::White), &m_whiteBrush) + ); +} +void SampleFpsTextRenderer::ReleaseDeviceDependentResources() +{ + m_whiteBrush.Reset(); +} \ No newline at end of file diff --git a/Samples/DirectXInterop1/Content/SampleFpsTextRenderer.h b/Samples/DirectXInterop1/Content/SampleFpsTextRenderer.h new file mode 100644 index 0000000..1dec852 --- /dev/null +++ b/Samples/DirectXInterop1/Content/SampleFpsTextRenderer.h @@ -0,0 +1,31 @@ +#pragma once + +#include +#include "..\Common\DeviceResources.h" +#include "..\Common\StepTimer.h" + +namespace DirectXInterop1 +{ + // Renders the current FPS value in the bottom right corner of the screen using Direct2D and DirectWrite. + class SampleFpsTextRenderer + { + public: + SampleFpsTextRenderer(const std::shared_ptr& deviceResources); + void CreateDeviceDependentResources(); + void ReleaseDeviceDependentResources(); + void Update(DX::StepTimer const& timer); + void Render(); + + private: + // Cached pointer to device resources. + std::shared_ptr m_deviceResources; + + // Resources related to text rendering. + std::wstring m_text; + DWRITE_TEXT_METRICS m_textMetrics; + Microsoft::WRL::ComPtr m_whiteBrush; + Microsoft::WRL::ComPtr m_stateBlock; + Microsoft::WRL::ComPtr m_textLayout; + Microsoft::WRL::ComPtr m_textFormat; + }; +} \ No newline at end of file diff --git a/Samples/DirectXInterop1/Content/SamplePixelShader.hlsl b/Samples/DirectXInterop1/Content/SamplePixelShader.hlsl new file mode 100644 index 0000000..0268e70 --- /dev/null +++ b/Samples/DirectXInterop1/Content/SamplePixelShader.hlsl @@ -0,0 +1,24 @@ + +Texture2D txDiffuse : register(t0); +SamplerState samLinear : register(s0); + + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float3 color : COLOR; + float2 tex : TEXCOORD0; +}; + + +// A pass-through function for the (interpolated) color data. +float4 main(PixelShaderInput input) : SV_TARGET +{ + float4 texColor = txDiffuse.Sample(samLinear, input.tex); + + // blend the texture + float3 color = input.color * (1 - texColor.a) + texColor.rgb * texColor.a; + + return float4(color, 1); +} + diff --git a/Samples/DirectXInterop1/Content/SampleVertexShader.hlsl b/Samples/DirectXInterop1/Content/SampleVertexShader.hlsl new file mode 100644 index 0000000..e2ae36a --- /dev/null +++ b/Samples/DirectXInterop1/Content/SampleVertexShader.hlsl @@ -0,0 +1,48 @@ +// A constant buffer that stores the three basic column-major matrices for composing geometry. +cbuffer ConstantBuffer : register(b0) +{ + matrix World; + matrix View; + matrix Projection; + float4 vLightDir[2]; + float4 vLightColor[2]; + float4 vOutputColor; +} + + +// Per-vertex data used as input to the vertex shader. +struct VertexShaderInput +{ + float3 pos : POSITION; + float3 norm : NORMAL; + float2 tex : TEXCOORD0; +}; + +// Per-pixel color data passed through the pixel shader. +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float3 color : COLOR; + float2 tex : TEXCOORD0; +}; + + +// Simple shader to do vertex processing on the GPU. +PixelShaderInput main(VertexShaderInput input) +{ + PixelShaderInput output; + float4 pos = float4(input.pos, 1.0f); + + // Transform the vertex position into projected space. + pos = mul(pos, World); + pos = mul(pos, View); + pos = mul(pos, Projection); + output.pos = pos; + + output.tex = input.tex; + + float4 norm = mul(float4(input.norm, 0), World); + output.color = saturate(dot(-vLightDir[0], norm) * vLightColor[0]).rgb; + + return output; +} diff --git a/Samples/DirectXInterop1/Content/ShaderStructures.h b/Samples/DirectXInterop1/Content/ShaderStructures.h new file mode 100644 index 0000000..c8031ee --- /dev/null +++ b/Samples/DirectXInterop1/Content/ShaderStructures.h @@ -0,0 +1,44 @@ +#pragma once + +namespace DirectXInterop1 +{ + // Constant buffer used to send MVP matrices to the vertex shader. + struct ModelViewProjectionConstantBuffer + { + DirectX::XMFLOAT4X4 model; + DirectX::XMFLOAT4X4 view; + DirectX::XMFLOAT4X4 projection; + }; + + // Used to send per-vertex data to the vertex shader. + struct VertexPositionColor + { + DirectX::XMFLOAT3 pos; + DirectX::XMFLOAT3 color; + }; + + + struct ConstantBuffer + { + DirectX::XMFLOAT4X4 mWorld; + DirectX::XMFLOAT4X4 mView; + DirectX::XMFLOAT4X4 mProjection; + DirectX::XMFLOAT4 vLightDir[2]; + DirectX::XMFLOAT4 vLightColor[2]; + DirectX::XMFLOAT4 vOutputColor; + }; + + struct VertexPosNormTex + { + DirectX::XMFLOAT3 Pos; + DirectX::XMFLOAT3 Norm; + DirectX::XMFLOAT2 Tex; + }; + + struct VertexPos2Tex + { + DirectX::XMFLOAT2 Pos2; + DirectX::XMFLOAT2 Tex; + }; + +} \ No newline at end of file diff --git a/Samples/DirectXInterop1/Content/TexturePS.hlsl b/Samples/DirectXInterop1/Content/TexturePS.hlsl new file mode 100644 index 0000000..4dc5f9e --- /dev/null +++ b/Samples/DirectXInterop1/Content/TexturePS.hlsl @@ -0,0 +1,16 @@ + +Texture2D texture2d : register(t0); +sampler textureSampler : register(s0); + + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; +}; + + +float4 main(PixelShaderInput input) : SV_TARGET +{ + return texture2d.Sample(textureSampler, input.tex); +} diff --git a/Samples/DirectXInterop1/Content/TextureVS.hlsl b/Samples/DirectXInterop1/Content/TextureVS.hlsl new file mode 100644 index 0000000..23d41f2 --- /dev/null +++ b/Samples/DirectXInterop1/Content/TextureVS.hlsl @@ -0,0 +1,23 @@ + + +struct VertexShaderInput +{ + float2 pos : POSITION; + float2 tex : TEXCOORD0; +}; + +struct PixelShaderInput +{ + float4 pos : SV_POSITION; + float2 tex : TEXCOORD0; +}; + + +PixelShaderInput main(VertexShaderInput input) +{ + PixelShaderInput output; + output.pos = float4(input.pos, 0.0f, 1.0f); + output.tex = input.tex; + return output; +} + diff --git a/Samples/DirectXInterop1/Content/WacomInkRenderer.cpp b/Samples/DirectXInterop1/Content/WacomInkRenderer.cpp new file mode 100644 index 0000000..e3195d1 --- /dev/null +++ b/Samples/DirectXInterop1/Content/WacomInkRenderer.cpp @@ -0,0 +1,558 @@ +#include "pch.h" +#include "wacom.ink.interop.h" +#include "..\Common\DirectXHelper.h" +#include "WacomInkRenderer.h" + + +using namespace Microsoft::WRL; +using namespace DirectXInterop1; +using namespace DirectX; +using namespace Windows::Foundation; +using namespace Wacom::Ink; +using namespace Wacom::Ink::Smoothing; +using namespace Wacom::Ink::Interop; + + + +HRESULT GetTextureFromLayer(Layer^ layer, ID3D11Texture2D** ppTexture2D) +{ + LayerProxy^ proxy = ref new LayerProxy(); + proxy->LoadLayer(layer); + IInspectable* inspectableProxy = reinterpret_cast(proxy); + + ComPtr layerProxyNative; + HRESULT hr = inspectableProxy->QueryInterface(__uuidof(ILayerProxyNative), (void**)&layerProxyNative); + + if (SUCCEEDED(hr)) + { + hr = layerProxyNative->GetTexture(ppTexture2D); + } + + proxy->Reset(); + + return hr; +} + +/* +HRESULT GetDeviceContextFromGraphics(Graphics^ graphics, ID3D11DeviceContext1** ppDeviceContext) +{ + auto gp = ref new GraphicsProxy(); + gp->LoadGraphics(graphics); + IInspectable* inspectableGP = (IInspectable*) reinterpret_cast(gp); + + ComPtr graphicsProxyNative; + HRESULT hr = inspectableGP->QueryInterface(__uuidof(IGraphicsProxyNative), (void**)&graphicsProxyNative); + + if (SUCCEEDED(hr)) + { + hr = graphicsProxyNative->GetDeviceContext(ppDeviceContext); + } + + gp->Reset(); + + return hr; +} +*/ + +RenderingContext^ CreateInkRenderingContext(ID3D11DeviceContext1* pDeviceContext) +{ + RenderingContextFactory^ factory = ref new RenderingContextFactory(); + + IInspectable* pInspectableFactory = reinterpret_cast(factory); + + ComPtr factoryNative; + + HRESULT hr = pInspectableFactory->QueryInterface(__uuidof(IRenderingContextFactoryNative), (void**)&factoryNative); + + if (FAILED(hr)) + return nullptr; + + ComPtr inspectableRenderingContext = nullptr; + + hr = factoryNative->CreateInstance(pDeviceContext, inspectableRenderingContext.GetAddressOf()); + + if (FAILED(hr)) + return nullptr; + + return reinterpret_cast(inspectableRenderingContext.Get()); +} + +Layer^ CreateLayer(ID3D11Device1* pDevice, float width, float height, float scaleFactor) +{ + LayerFactory^ factory = ref new LayerFactory(); + + IInspectable* pInspectableFactory = reinterpret_cast(factory); + + ComPtr factoryNative; + + HRESULT hr = pInspectableFactory->QueryInterface(__uuidof(ILayerFactoryNative), (void**)&factoryNative); + + if (FAILED(hr)) + return nullptr; + + ComPtr inspectableLayer = nullptr; + + hr = factoryNative->CreateInstance1(pDevice, width, height, scaleFactor, inspectableLayer.GetAddressOf()); + + if (FAILED(hr)) + return nullptr; + + return reinterpret_cast(inspectableLayer.Get()); +} + + +WacomInkRenderer::WacomInkRenderer(const std::shared_ptr& deviceResources) : + m_LoadingComplete(false), + m_RectIndicesCount(0), + m_DeviceResources(deviceResources), + m_BackgroundColor(Windows::UI::ColorHelper::FromArgb(0, 0, 0, 0)), + m_UpdateFromIndex(-1), + m_PathFinished(true), + m_IsPointerIdValid(false), + m_PointerId(0xFFFFFFFF), + m_ClearStrokeLayer(false) +{ + // Create a path builder + m_PathBuilder = ref new SpeedPathBuilder(); + m_PathBuilder->SetMovementThreshold(0.1f); + m_PathBuilder->SetNormalizationConfig(100.0f, 4000.0f); + m_PathBuilder->SetPropertyConfig(PropertyName::Width, 2.0f, 30.0f, nullptr, nullptr, PropertyFunction::Sigmoid, 0.6191646f, false); + + // Create an object that smooths input data + m_Smoothener = ref new MultiChannelSmoothener(m_PathBuilder->PathStride); + + m_RenderingContext = CreateInkRenderingContext(m_DeviceResources->GetD3DDeviceContext()); + + CreateDeviceDependentResources(); + CreateWindowSizeDependentResources(); +} + +void WacomInkRenderer::CreateWindowSizeDependentResources() +{ + Size logicalSize = m_DeviceResources->GetLogicalSize(); + + if ((logicalSize.Width == 0) || (logicalSize.Height == 0)) + { + logicalSize = { 1, 1 }; + } + + float scaleFactor = m_DeviceResources->GetCompositionScaleX(); + + m_StrokeLayer = CreateLayer(m_DeviceResources->GetD3DDevice(), logicalSize.Width, logicalSize.Height, scaleFactor); + m_RendererLayer = CreateLayer(m_DeviceResources->GetD3DDevice(), logicalSize.Width, logicalSize.Height, scaleFactor); + m_RendererPrelimLayer = CreateLayer(m_DeviceResources->GetD3DDevice(), logicalSize.Width, logicalSize.Height, scaleFactor); + + DX::ThrowIfFailed( + GetTextureFromLayer(m_StrokeLayer, m_OutputTexture.GetAddressOf()) + ); + + DX::ThrowIfFailed( + m_DeviceResources->GetD3DDevice()->CreateShaderResourceView(m_OutputTexture.Get(), nullptr, m_ShaderResourceView.GetAddressOf()) + ); + + // Create a stroke renderer + m_StrokeRenderer = ref new StrokeRenderer(); + m_StrokeRenderer->Init(m_RenderingContext, m_RendererLayer, m_RendererPrelimLayer); + m_StrokeRenderer->Brush = ref new SolidColorBrush(); + m_StrokeRenderer->StrokeWidth = nullptr; + m_StrokeRenderer->Color = Windows::UI::Colors::Red; + m_StrokeRenderer->UseVariableAlpha = false; + m_StrokeRenderer->Ts = 0.0f; + m_StrokeRenderer->Tf = 1.0f; +} + +void WacomInkRenderer::CreateDeviceDependentResources() +{ + // Load shaders asynchronously. + auto loadVSTask = DX::ReadDataAsync(L"TextureVS.cso"); + auto loadPSTask = DX::ReadDataAsync(L"TexturePS.cso"); + + CreateRasterizerState(); + + InitializeEnabledBlendState(m_BlendStateNormal.GetAddressOf()); + InitializeDisabledBlendState(m_BlendStateNone.GetAddressOf()); + + // After the vertex shader file is loaded, create the shader and input layout. + auto createVSTask = loadVSTask.then([this](const std::vector& fileData) { + DX::ThrowIfFailed(m_DeviceResources->GetD3DDevice()->CreateVertexShader(&fileData[0], fileData.size(), nullptr, &m_VertexShader)); + + // Define the input layout + static const D3D11_INPUT_ELEMENT_DESC vertexDesc[] = + { + { "POSITION", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 }, + { "TEXCOORD", 0, DXGI_FORMAT_R32G32_FLOAT, 0, 8, D3D11_INPUT_PER_VERTEX_DATA, 0 } + }; + + // create the input layout + DX::ThrowIfFailed(m_DeviceResources->GetD3DDevice()->CreateInputLayout(vertexDesc, ARRAYSIZE(vertexDesc), &fileData[0], fileData.size(), &m_InputLayout)); + + D3D11_DEPTH_STENCIL_DESC depthDisabledStencilDesc; + ZeroMemory(&depthDisabledStencilDesc, sizeof(depthDisabledStencilDesc)); + + // Create a depth stencil state which turns off the Z buffer for 2D rendering. + // The only difference is that DepthEnable is set to false, all other parameters are the same as the other depth stencil state. + depthDisabledStencilDesc.DepthEnable = false; + depthDisabledStencilDesc.DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL; + depthDisabledStencilDesc.DepthFunc = D3D11_COMPARISON_LESS; + depthDisabledStencilDesc.StencilEnable = false; + depthDisabledStencilDesc.StencilReadMask = 0xFF; + depthDisabledStencilDesc.StencilWriteMask = 0xFF; + depthDisabledStencilDesc.FrontFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; + depthDisabledStencilDesc.FrontFace.StencilDepthFailOp = D3D11_STENCIL_OP_INCR; + depthDisabledStencilDesc.FrontFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; + depthDisabledStencilDesc.FrontFace.StencilFunc = D3D11_COMPARISON_ALWAYS; + depthDisabledStencilDesc.BackFace.StencilFailOp = D3D11_STENCIL_OP_KEEP; + depthDisabledStencilDesc.BackFace.StencilDepthFailOp = D3D11_STENCIL_OP_DECR; + depthDisabledStencilDesc.BackFace.StencilPassOp = D3D11_STENCIL_OP_KEEP; + depthDisabledStencilDesc.BackFace.StencilFunc = D3D11_COMPARISON_ALWAYS; + + // Create the state using the device. + DX::ThrowIfFailed(m_DeviceResources->GetD3DDevice()->CreateDepthStencilState(&depthDisabledStencilDesc, m_DepthDisabledStencilState.GetAddressOf())); + + // Create a texture sampler + D3D11_SAMPLER_DESC samplerDesc; + ZeroMemory(&samplerDesc, sizeof(D3D11_SAMPLER_DESC)); + samplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR; + samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP; + samplerDesc.ComparisonFunc = D3D11_COMPARISON_NEVER; + samplerDesc.MinLOD = 0; + samplerDesc.MaxLOD = D3D11_FLOAT32_MAX; + + // Create the sample state + DX::ThrowIfFailed(m_DeviceResources->GetD3DDevice()->CreateSamplerState(&samplerDesc, &m_SamplerState)); + }); + + // After the pixel shader file is loaded, create the shader and constant buffer. + auto createPSTask = loadPSTask.then([this](const std::vector& fileData) { + DX::ThrowIfFailed( + m_DeviceResources->GetD3DDevice()->CreatePixelShader( + &fileData[0], + fileData.size(), + nullptr, + &m_PixelShader + ) + ); + }); + + // Once both shaders are loaded, create the mesh. + auto createCubeTask = (createPSTask && createVSTask).then([this]() { + + // Load mesh vertices. Each vertex has a position and a normal. + static const VertexPos2Tex rectVertices[] = + { + { XMFLOAT2(-1.0f, 1.0f), XMFLOAT2(0.0f, 0.0f) }, + { XMFLOAT2(1.0f, 1.0f), XMFLOAT2(1.0f, 0.0f) }, + { XMFLOAT2(-1.0f, -1.0f), XMFLOAT2(0.0f, 1.0f) }, + { XMFLOAT2(1.0f, -1.0f), XMFLOAT2(1.0f, 1.0f) }, + }; + + D3D11_SUBRESOURCE_DATA vertexBufferData = { 0 }; + vertexBufferData.pSysMem = rectVertices; + vertexBufferData.SysMemPitch = 0; + vertexBufferData.SysMemSlicePitch = 0; + + CD3D11_BUFFER_DESC vertexBufferDesc(sizeof(rectVertices), D3D11_BIND_VERTEX_BUFFER); + + DX::ThrowIfFailed( + m_DeviceResources->GetD3DDevice()->CreateBuffer(&vertexBufferDesc, &vertexBufferData, &m_VertexBuffer) + ); + + // Load mesh indices. Each trio of indices represents a triangle to be rendered on the screen. + static const unsigned short rectIndices[] = + { + 0, 1, 2, 3 + }; + + m_RectIndicesCount = ARRAYSIZE(rectIndices); + + D3D11_SUBRESOURCE_DATA indexBufferData = { 0 }; + indexBufferData.pSysMem = rectIndices; + indexBufferData.SysMemPitch = 0; + indexBufferData.SysMemSlicePitch = 0; + + CD3D11_BUFFER_DESC indexBufferDesc(sizeof(rectIndices), D3D11_BIND_INDEX_BUFFER); + + DX::ThrowIfFailed( + m_DeviceResources->GetD3DDevice()->CreateBuffer(&indexBufferDesc, &indexBufferData, &m_IndexBuffer) + ); + }); + + // Once the cube is loaded, the object is ready to be rendered. + createCubeTask.then([this]() { + + m_LoadingComplete = true; + }); +} + +void WacomInkRenderer::ReleaseDeviceDependentResources() +{ + m_LoadingComplete = false; + m_VertexShader.Reset(); + m_InputLayout.Reset(); + m_PixelShader.Reset(); + m_ConstantBuffer.Reset(); + m_VertexBuffer.Reset(); + m_IndexBuffer.Reset(); + + m_OutputTexture.Reset(); + m_SamplerState.Reset(); + m_DepthDisabledStencilState.Reset(); + m_RasterizerStateNoCulling.Reset(); + m_BlendStateNormal.Reset(); + m_BlendStateNone.Reset(); +} + +void WacomInkRenderer::CreateRasterizerState() +{ + D3D11_RASTERIZER_DESC rDesc; + ZeroMemory(&rDesc, sizeof(rDesc)); + rDesc.AntialiasedLineEnable = false; + rDesc.CullMode = D3D11_CULL_MODE::D3D11_CULL_NONE; + rDesc.DepthBias = 0; + rDesc.DepthBiasClamp = 0.0f; + rDesc.DepthClipEnable = false; + rDesc.FillMode = D3D11_FILL_MODE::D3D11_FILL_SOLID; + rDesc.FrontCounterClockwise = false; + rDesc.MultisampleEnable = false; + rDesc.ScissorEnable = false; + rDesc.SlopeScaledDepthBias = 0.0f; + + DX::ThrowIfFailed( + m_DeviceResources->GetD3DDevice()->CreateRasterizerState(&rDesc, m_RasterizerStateNoCulling.GetAddressOf()) + ); +} + +void WacomInkRenderer::InitializeEnabledBlendState(ID3D11BlendState **blendState) +{ + const D3D11_BLEND srcBlend = D3D11_BLEND_ONE; + const D3D11_BLEND srcBlendAlpha = D3D11_BLEND_ONE; + const D3D11_BLEND destBlend = D3D11_BLEND_INV_SRC_ALPHA; + const D3D11_BLEND destBlendAlpha = D3D11_BLEND_INV_SRC_ALPHA; + const D3D11_BLEND_OP blendOp = D3D11_BLEND_OP_ADD; + const D3D11_BLEND_OP blendOpAlpha = D3D11_BLEND_OP_ADD; + + D3D11_BLEND_DESC blendStateDesc; + ZeroMemory(&blendStateDesc, sizeof(D3D11_BLEND_DESC)); + blendStateDesc.RenderTarget[0].BlendEnable = TRUE; + blendStateDesc.RenderTarget[0].SrcBlend = srcBlend; + blendStateDesc.RenderTarget[0].DestBlend = destBlend; + blendStateDesc.RenderTarget[0].BlendOp = blendOp; + blendStateDesc.RenderTarget[0].SrcBlendAlpha = srcBlendAlpha; + blendStateDesc.RenderTarget[0].DestBlendAlpha = destBlendAlpha; + blendStateDesc.RenderTarget[0].BlendOpAlpha = blendOpAlpha; + blendStateDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; + + DX::ThrowIfFailed(m_DeviceResources->GetD3DDevice()->CreateBlendState(&blendStateDesc, blendState)); +} + +void WacomInkRenderer::InitializeDisabledBlendState(ID3D11BlendState **blendState) +{ + D3D11_BLEND_DESC blendStateDesc; + ZeroMemory(&blendStateDesc, sizeof(D3D11_BLEND_DESC)); + blendStateDesc.RenderTarget[0].BlendEnable = FALSE; + blendStateDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE; + blendStateDesc.RenderTarget[0].DestBlend = D3D11_BLEND_ZERO; + blendStateDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; + blendStateDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; + blendStateDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO; + blendStateDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; + blendStateDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; + + DX::ThrowIfFailed(m_DeviceResources->GetD3DDevice()->CreateBlendState(&blendStateDesc, blendState)); +} + +void WacomInkRenderer::EnableAlphaBlending(bool enable) +{ + float blendFactor[4] = { 0.0f, 0.0f, 0.0f, 0.0f }; + UINT sampleMask = 0xffffffff; + + if (enable) + { + m_DeviceResources->GetD3DDeviceContext()->OMSetBlendState(m_BlendStateNormal.Get(), blendFactor, sampleMask); + } + else + { + m_DeviceResources->GetD3DDeviceContext()->OMSetBlendState(m_BlendStateNone.Get(), blendFactor, sampleMask); + } +} + +void WacomInkRenderer::RenderInk() +{ + // Loading is asynchronous. Only draw geometry after it's loaded. + if (!m_LoadingComplete) + { + return; + } + + Concurrency::critical_section::scoped_lock lock(m_CriticalSection); + + if (m_IsPointerIdValid) + { + Windows::UI::Input::PointerPoint^ pp = Windows::UI::Input::PointerPoint::GetCurrentPoint(m_PointerId); + + AddCurrentPointToPathBuilder(InputPhase::Move, pp); + } + + if (m_ClearStrokeLayer) + { + // Reset the stroke renderer + m_StrokeRenderer->ResetAndClear(); + + // Clear the stroke layer + m_RenderingContext->SetTarget(m_StrokeLayer); + m_RenderingContext->ClearColor(m_BackgroundColor); + m_ClearStrokeLayer = false; + } + + if (m_UpdateFromIndex < 0) + return; + + Path^ currentPath = m_PathBuilder->CurrentPath; + + int numberOfPointsToDraw = currentPath->PointsCount - m_UpdateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + m_StrokeRenderer->DrawStroke(currentPath, m_UpdateFromIndex, numberOfPointsToDraw, m_PathFinished); + + // reset the starting index + m_UpdateFromIndex = -1; + + // draw preliminary path + if (!m_PathFinished) + { + Path^ prelimPathPart = m_PathBuilder->CreatePreliminaryPath(); + + if (prelimPathPart->PointsCount > 0) + { + m_Smoothener->Smooth(prelimPathPart, true); + + Path^ preliminaryPath = m_PathBuilder->FinishPreliminaryPath(prelimPathPart); + + m_StrokeRenderer->DrawPreliminaryStroke(preliminaryPath, 0, preliminaryPath->PointsCount); + } + } + + // recompose the scene within the updated area + m_RenderingContext->SetTarget(m_StrokeLayer, m_StrokeRenderer->UpdatedRect); + m_RenderingContext->ClearColor(m_BackgroundColor); + + // draw + m_StrokeRenderer->BlendStrokeUpdatedAreaInLayer(m_StrokeLayer, BlendMode::Normal); + m_RenderingContext->SetTarget(nullptr); +} + +void WacomInkRenderer::Render() +{ + // Loading is asynchronous. Only draw geometry after it's loaded. + if (!m_LoadingComplete) + { + return; + } + + auto context = m_DeviceResources->GetD3DDeviceContext(); + + // set the rasterizer state + context->RSSetState(m_RasterizerStateNoCulling.Get()); + + // enable alpha blending + EnableAlphaBlending(true); + + context->OMSetDepthStencilState(m_DepthDisabledStencilState.Get(), 1); + + UINT stride = sizeof(VertexPos2Tex); + UINT offset = 0; + context->IASetInputLayout(m_InputLayout.Get()); + context->IASetVertexBuffers(0, 1, m_VertexBuffer.GetAddressOf(), &stride, &offset); + context->IASetIndexBuffer(m_IndexBuffer.Get(), DXGI_FORMAT_R16_UINT, 0); + context->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP); + + context->VSSetShader(m_VertexShader.Get(), nullptr, 0); + + context->PSSetShader(m_PixelShader.Get(), nullptr, 0); + context->PSSetShaderResources(0, 1, m_ShaderResourceView.GetAddressOf()); + context->PSSetSamplers(0, 1, m_SamplerState.GetAddressOf()); + + // draw a rect filled with the output layer as a texture + context->DrawIndexed(m_RectIndicesCount, 0, 0); + + // detach the ink texture + ID3D11ShaderResourceView* pNull = nullptr; + context->PSSetShaderResources(0, 1, &pNull); + + // disable alpha blending + EnableAlphaBlending(false); +} + +void WacomInkRenderer::StartTracking(Windows::UI::Input::PointerPoint^ p) +{ + if (!m_LoadingComplete) + return; + + // If currently there is an unfinished stroke - do not interrupt it + if (m_IsPointerIdValid) + return; + + m_LastPoint = p; + + Concurrency::critical_section::scoped_lock lock(m_CriticalSection); + + // Capture the pointer and store its Id + m_PointerId = p->PointerId; + m_IsPointerIdValid = true; + + // Reset the state related to path building + m_UpdateFromIndex = -1; + m_PathFinished = false; + + // Reset the smoothener + m_Smoothener->Reset(); + + m_ClearStrokeLayer = true; + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase::Begin, p); + m_LastAddedPoint = p; +} + +void WacomInkRenderer::StopTracking(Windows::UI::Input::PointerPoint^ p) +{ + if (!m_LoadingComplete) + return; + + // Ignore events from other pointers + if (!m_IsPointerIdValid || (p->PointerId != m_PointerId)) + return; + + Concurrency::critical_section::scoped_lock lock(m_CriticalSection); + + // Reset the stored id and release the pointer capture + m_IsPointerIdValid = false; + m_PointerId = 0xFFFFFFFF; + + AddCurrentPointToPathBuilder(InputPhase::End, p); + m_LastAddedPoint = p; + + m_PathFinished = true; +} + +void WacomInkRenderer::AddCurrentPointToPathBuilder(InputPhase phase, Windows::UI::Input::PointerPoint^ p) +{ + Path^ pathPart = m_PathBuilder->AddPoint(phase, p); + + if (pathPart->PointsCount > 0) + { + m_Smoothener->Smooth(pathPart, phase == InputPhase::End); + + int indexOfFirstAffectedPoint; + m_PathBuilder->AddPathPart(pathPart, &indexOfFirstAffectedPoint); + + if (m_UpdateFromIndex == -1) + { + m_UpdateFromIndex = indexOfFirstAffectedPoint; + } + } +} + diff --git a/Samples/DirectXInterop1/Content/WacomInkRenderer.h b/Samples/DirectXInterop1/Content/WacomInkRenderer.h new file mode 100644 index 0000000..bb3ba9b --- /dev/null +++ b/Samples/DirectXInterop1/Content/WacomInkRenderer.h @@ -0,0 +1,83 @@ +#pragma once + +#include "..\Common\DeviceResources.h" +#include "ShaderStructures.h" + + +namespace DirectXInterop1 +{ + class WacomInkRenderer + { + private: + Concurrency::critical_section m_CriticalSection; + + Windows::UI::Input::PointerPoint^ m_LastPoint; + Windows::UI::Input::PointerPoint^ m_LastAddedPoint; + + // Wacom Ink + Wacom::Ink::RenderingContext^ m_RenderingContext; + Wacom::Ink::StrokeRenderer^ m_StrokeRenderer; + Wacom::Ink::Layer^ m_StrokeLayer; + Wacom::Ink::Layer^ m_RendererLayer; + Wacom::Ink::Layer^ m_RendererPrelimLayer; + Wacom::Ink::Path^ m_Path; + Wacom::Ink::SpeedPathBuilder^ m_PathBuilder; + Wacom::Ink::Smoothing::MultiChannelSmoothener^ m_Smoothener; + + Windows::UI::Color m_BackgroundColor; + int m_UpdateFromIndex; + bool m_PathFinished; + bool m_ClearStrokeLayer; + unsigned int m_PointerId; + bool m_IsPointerIdValid; + + Microsoft::WRL::ComPtr m_OutputTexture; + + // Cached pointer to device resources. + std::shared_ptr m_DeviceResources; + + // Direct3D resources for rect geometry. + Microsoft::WRL::ComPtr m_InputLayout; + Microsoft::WRL::ComPtr m_VertexBuffer; + Microsoft::WRL::ComPtr m_IndexBuffer; + Microsoft::WRL::ComPtr m_VertexShader; + Microsoft::WRL::ComPtr m_PixelShader; + Microsoft::WRL::ComPtr m_ConstantBuffer; + Microsoft::WRL::ComPtr m_SamplerState; + Microsoft::WRL::ComPtr m_DepthDisabledStencilState; + Microsoft::WRL::ComPtr m_RasterizerStateNoCulling; + Microsoft::WRL::ComPtr m_BlendStateNormal; + Microsoft::WRL::ComPtr m_BlendStateNone; + + // System resources for rect geometry. + uint32 m_RectIndicesCount; + + // Variables used with the rendering loop. + bool m_LoadingComplete; + + public: + Microsoft::WRL::ComPtr m_ShaderResourceView; + void EnableAlphaBlending(bool enable); + + private: + void CreateRasterizerState(); + void InitializeEnabledBlendState(ID3D11BlendState **blendState); + void InitializeDisabledBlendState(ID3D11BlendState **blendState); + void AddCurrentPointToPathBuilder(Wacom::Ink::InputPhase phase, Windows::UI::Input::PointerPoint^ p); + + public: + WacomInkRenderer(const std::shared_ptr& deviceResources); + + void CreateDeviceDependentResources(); + void ReleaseDeviceDependentResources(); + void CreateWindowSizeDependentResources(); + + void InitInking(); + void RenderInk(); + void Render(); + void CreateSampler(); + + void StartTracking(Windows::UI::Input::PointerPoint^ p); + void StopTracking(Windows::UI::Input::PointerPoint^ p); + }; +} \ No newline at end of file diff --git a/Samples/DirectXInterop1/DirectXInterop1.sln b/Samples/DirectXInterop1/DirectXInterop1.sln new file mode 100644 index 0000000..d30715d --- /dev/null +++ b/Samples/DirectXInterop1/DirectXInterop1.sln @@ -0,0 +1,40 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectXInterop1", "DirectXInterop1.vcxproj", "{B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|ARM = Release|ARM + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|ARM.ActiveCfg = Debug|ARM + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|ARM.Build.0 = Debug|ARM + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|ARM.Deploy.0 = Debug|ARM + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|x64.ActiveCfg = Debug|x64 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|x64.Build.0 = Debug|x64 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|x64.Deploy.0 = Debug|x64 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|x86.ActiveCfg = Debug|Win32 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|x86.Build.0 = Debug|Win32 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Debug|x86.Deploy.0 = Debug|Win32 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|ARM.ActiveCfg = Release|ARM + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|ARM.Build.0 = Release|ARM + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|ARM.Deploy.0 = Release|ARM + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|x64.ActiveCfg = Release|x64 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|x64.Build.0 = Release|x64 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|x64.Deploy.0 = Release|x64 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|x86.ActiveCfg = Release|Win32 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|x86.Build.0 = Release|Win32 + {B586BA4E-E7DE-47BA-8770-68D3AA8F6D21}.Release|x86.Deploy.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/DirectXInterop1/DirectXInterop1.suo b/Samples/DirectXInterop1/DirectXInterop1.suo new file mode 100644 index 0000000000000000000000000000000000000000..a16ad7821c834a0a138d844880d1a5654a10c59f GIT binary patch literal 10752 zcmeHNU2IfE6h2!-`4dEHRYY8A`KN1JXyr#V`$I+3wS)qNq%pMH-KDbKlHHb{015F$ zO_UfP*H*D2@UhC#(kigm7~%FYFW_Qk7pb*G3}*jbBY$we-`DF$X@C1Kwm@u zDb(-S1z2O9zF;}#d;+-%`59#L#`dRClGl~U&msGfpGRJW+>FdVv+4dypq~4mdM%X> zU&~$K{$GSn|D*k{?3;0tnk%(_^R3?df0;$wD}DR^H`YcUMnAwkxDa*vhxy2JkryCy zef;()%EicZ-}IqNksn7U53~E%Nb|udsWX!q!%Ur}u>tCzHo<+%cB6mR?fP%TcjNcz z^BG&{^BE5q2N?Iu`F}h8b?DFc4JbDvZ$fTG4j{jP+=kqa+=09qc?+@`|03#JZSSVt zl$drlK>~fiJ1Lo%LOx-Ie~1Iw-V1DGFp)bF2~>f<=u-^-F!(PH{51~LlL0TpK?VfG;FbP%^yPkKieSbeXgX<8 z?N=I);oRkTEK{`^O}Ch1vAKfCbx zU8{?eKF_}~a8SS7C-R6Y-E4r1e z-)?{9=$E?>!1`;VzZ*IpR%=hg^QIt;Zb&1gS~3n>pN{p1Ao&=qjs9m0`ydUc_0M=h{O(o%^!>z5OiugjRyIEjS&*BIvPIp~{aKCt*JG+*t;?d~^iLrs4Jlo? zQ`W6qKW&+~)9d=}_UEJ@#V!~HRo;WyePgkmfcT^0UnTax7QF7$>=(%2-T&A*u?AYj zmMZA4!C15Zo$J?>h`=a=xaj+_DBg%qbgP{M_eRXTAq(1EsAd<&w^S`e*4RqFzO-FOS*ODB8*x$cy0a#nWQJo6bV5^yGG zB95(P4X~XBlDK{~xS?zA(_{_C4J<&c@s9MYUbZSMzB=iLm3G{}kwycti<+M|uZ zvT4JNXVgMt;pcV?bZ!1t&#BgS(HDWA8-Q;JH}`&+d*}A#jZ3>Ysz-irT>Zn<=H^$w z{O#7+wL_!4tU~IOt%=4PcWnPd^_)a274g$1Bq=4~;+RY0Jrkf5oV$wgY({ z-Ru zwM*6m14PjtQ&Bt%jFNyBi5-c;ConRFH+uaEctieQhF{qgG35Yy5sPr_ILa)_7)p_k zW}F9NlbAZg@K%3FadrN_bH!Mag6tDYE=E4)UF5&Qk>-<{dw+&yMC2NS%xGGl#Hi;l8%B4=LAre)==ao9~%R?|uIF$BRaO`u>fJU-f_XbJkpI%p5}% GQvMen$I)*9 literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/DirectXInterop1.v12.suo b/Samples/DirectXInterop1/DirectXInterop1.v12.suo new file mode 100644 index 0000000000000000000000000000000000000000..4adc531724f35e8bd75630ba2402c3c24d6a8107 GIT binary patch literal 49152 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 kSH3Bnn*a0MQt0XCL;H3xnF$@*`M>`Bb?B_ + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {b586ba4e-e7de-47ba-8770-68d3aa8f6d21} + DirectXXamlApp + DirectXInterop1 + en-US + 14.0 + true + Windows Store + 10.0.14393.0 + 10.0.10586.0 + 10.0 + + + + Application + true + v140 + + + Application + true + v140 + + + Application + true + v140 + + + Application + false + true + v140 + true + + + Application + false + true + v140 + true + + + Application + false + true + v140 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DirectXInterop1_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;%(PreprocessorDefinitions) + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\arm; $(VCInstallDir)\lib\arm + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;%(PreprocessorDefinitions) + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;%(PreprocessorDefinitions) + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store; $(VCInstallDir)\lib + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;%(PreprocessorDefinitions) + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + 4453;28204 + _DEBUG;%(PreprocessorDefinitions) + + + + + d2d1.lib; d3d11.lib; dxgi.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + %(AdditionalLibraryDirectories); $(VCInstallDir)\lib\store\amd64; $(VCInstallDir)\lib\amd64 + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);%(AdditionalIncludeDirectories) + /bigobj %(AdditionalOptions) + 4453;28204 + NDEBUG;%(PreprocessorDefinitions) + + + + + + + + + + + + + + App.xaml + + + + + + DirectXPage.xaml + + + + + + + + + + + App.xaml + + + + + + DirectXPage.xaml + + + + + Create + Create + Create + Create + Create + Create + + + + + Designer + + + + + + Pixel + 4.0_level_9_1 + 4.0_level_9_1 + 4.0_level_9_1 + + + Vertex + 4.0_level_9_1 + 4.0_level_9_1 + 4.0_level_9_1 + + + Pixel + 4.0_level_9_1 + Pixel + Pixel + 4.0_level_9_1 + Pixel + Pixel + 4.0_level_9_1 + Pixel + + + Vertex + 4.0_level_9_1 + Vertex + Vertex + 4.0_level_9_1 + Vertex + Vertex + 4.0_level_9_1 + Vertex + + + + + Designer + + + Designer + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/DirectXInterop1/DirectXInterop1.vcxproj.filters b/Samples/DirectXInterop1/DirectXInterop1.vcxproj.filters new file mode 100644 index 0000000..49e2201 --- /dev/null +++ b/Samples/DirectXInterop1/DirectXInterop1.vcxproj.filters @@ -0,0 +1,109 @@ + + + + + b586ba4e-e7de-47ba-8770-68d3aa8f6d21 + + + e076b70d-560d-4d93-a9ca-a223bc6b4f52 + bmp;fbx;gif;jpg;jpeg;tga;tiff;tif;png + + + d70860ba-5043-420f-90b9-927dc14b10ef + + + Common + + + Common + + + Common + + + Common + + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + Content + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + Assets + + + + + + + + + + + + Content + + + + + + + + + Content + + + + + Assets + + + + + + + + + + + + + + Content + + + Content + + + \ No newline at end of file diff --git a/Samples/DirectXInterop1/DirectXInterop1Main.cpp b/Samples/DirectXInterop1/DirectXInterop1Main.cpp new file mode 100644 index 0000000..782b45a --- /dev/null +++ b/Samples/DirectXInterop1/DirectXInterop1Main.cpp @@ -0,0 +1,173 @@ +#include "pch.h" +#include "DirectXInterop1Main.h" +#include "Common\DirectXHelper.h" + +using namespace DirectXInterop1; +using namespace Platform; +using namespace Windows::Foundation; +using namespace Windows::System::Threading; +using namespace Windows::UI::Core; +using namespace Concurrency; + + + +void InputHandler::OnPointerPressed(Object^ sender, PointerEventArgs^ e) +{ + // When the pointer is pressed begin tracking the pointer movement. + m_Main.m_inkRenderer->StartTracking(e->CurrentPoint); +} + +void InputHandler::OnPointerReleased(Object^ sender, PointerEventArgs^ e) +{ + // Stop tracking pointer movement when the pointer is released. + m_Main.m_inkRenderer->StopTracking(e->CurrentPoint); +} + + + + +// Loads and initializes application assets when the application is loaded. +DirectXInterop1Main::DirectXInterop1Main(const std::shared_ptr& deviceResources) : + m_deviceResources(deviceResources) +{ + // Register to be notified if the Device is lost or recreated + m_deviceResources->RegisterDeviceNotify(this); + + // TODO: Replace this with your app's content initialization. + m_sceneRenderer = std::unique_ptr(new Sample3DSceneRenderer(m_deviceResources)); + + m_fpsTextRenderer = std::unique_ptr(new SampleFpsTextRenderer(m_deviceResources)); + + m_inkRenderer = std::unique_ptr(new WacomInkRenderer(m_deviceResources)); + + m_InputHandler = ref new InputHandler(*this); +} + +DirectXInterop1Main::~DirectXInterop1Main() +{ + // Deregister device notification + m_deviceResources->RegisterDeviceNotify(nullptr); +} + +// Updates application state when the window size changes (e.g. device orientation change) +void DirectXInterop1Main::CreateWindowSizeDependentResources() +{ + // TODO: Replace this with the size-dependent initialization of your app's content. + m_sceneRenderer->CreateWindowSizeDependentResources(); + + m_inkRenderer->CreateWindowSizeDependentResources(); +} + +void DirectXInterop1Main::StartRenderLoop() +{ + // If the animation render loop is already running then do not start another thread. + if (m_renderLoopWorker != nullptr && m_renderLoopWorker->Status == AsyncStatus::Started) + { + return; + } + + // Create a task that will be run on a background thread. + auto workItemHandler = ref new WorkItemHandler([this](IAsyncAction ^ action) + { + // The CoreIndependentInputSource will raise pointer events for the specified device types on whichever thread it's created on. + m_coreInput = m_swapChainPanel->CreateCoreIndependentInputSource( + Windows::UI::Core::CoreInputDeviceTypes::Mouse | + Windows::UI::Core::CoreInputDeviceTypes::Touch | + Windows::UI::Core::CoreInputDeviceTypes::Pen); + + // Register for pointer events, which will be raised on the background thread. + m_coreInput->PointerPressed += ref new TypedEventHandler(m_InputHandler, &InputHandler::OnPointerPressed); + m_coreInput->PointerReleased += ref new TypedEventHandler(m_InputHandler, &InputHandler::OnPointerReleased); + + // Calculate the updated frame and render once per vertical blanking interval. + while (action->Status == AsyncStatus::Started) + { + // Begin processing input messages as they're delivered. + m_coreInput->Dispatcher->ProcessEvents(Windows::UI::Core::CoreProcessEventsOption::ProcessAllIfPresent); + + critical_section::scoped_lock lock(m_criticalSection); + Update(); + if (Render()) + { + m_deviceResources->Present(); + } + } + }); + + // Run task on a dedicated high priority background thread. + m_renderLoopWorker = ThreadPool::RunAsync(workItemHandler, WorkItemPriority::High, WorkItemOptions::TimeSliced); +} + + +void DirectXInterop1Main::StopRenderLoop() +{ + m_renderLoopWorker->Cancel(); +} + +// Updates the application state once per frame. +void DirectXInterop1Main::Update() +{ + // Update scene objects. + m_timer.Tick([&]() + { + // TODO: Replace this with your app's content update functions. + m_sceneRenderer->Update(m_timer); + m_fpsTextRenderer->Update(m_timer); + }); +} + +// Renders the current frame according to the current application state. +// Returns true if the frame was rendered and is ready to be displayed. +bool DirectXInterop1Main::Render() +{ + // Don't try to render anything before the first Update. + if (m_timer.GetFrameCount() == 0) + { + return false; + } + + m_inkRenderer->RenderInk(); + m_inkRenderer->EnableAlphaBlending(false); + + auto context = m_deviceResources->GetD3DDeviceContext(); + + // Reset the viewport to target the whole screen. + auto viewport = m_deviceResources->GetScreenViewport(); + context->RSSetViewports(1, &viewport); + + // Reset render targets to the screen. + ID3D11RenderTargetView *const targets[1] = { m_deviceResources->GetBackBufferRenderTargetView() }; + context->OMSetRenderTargets(1, targets, m_deviceResources->GetDepthStencilView()); + + // Clear the back buffer and depth stencil view. + context->ClearRenderTargetView(m_deviceResources->GetBackBufferRenderTargetView(), DirectX::Colors::CornflowerBlue); + context->ClearDepthStencilView(m_deviceResources->GetDepthStencilView(), D3D11_CLEAR_DEPTH | D3D11_CLEAR_STENCIL, 1.0f, 0); + + // Render the scene objects. + // TODO: Replace this with your app's content rendering functions. + m_sceneRenderer->Render(m_inkRenderer->m_ShaderResourceView); + + m_inkRenderer->Render(); + + m_fpsTextRenderer->Render(); + + return true; +} + +// Notifies renderers that device resources need to be released. +void DirectXInterop1Main::OnDeviceLost() +{ + m_sceneRenderer->ReleaseDeviceDependentResources(); + m_fpsTextRenderer->ReleaseDeviceDependentResources(); + m_inkRenderer->ReleaseDeviceDependentResources(); +} + +// Notifies renderers that device resources may now be recreated. +void DirectXInterop1Main::OnDeviceRestored() +{ + m_sceneRenderer->CreateDeviceDependentResources(); + m_fpsTextRenderer->CreateDeviceDependentResources(); + m_inkRenderer->CreateDeviceDependentResources(); + + CreateWindowSizeDependentResources(); +} diff --git a/Samples/DirectXInterop1/DirectXInterop1Main.h b/Samples/DirectXInterop1/DirectXInterop1Main.h new file mode 100644 index 0000000..a82ae0f --- /dev/null +++ b/Samples/DirectXInterop1/DirectXInterop1Main.h @@ -0,0 +1,78 @@ +#pragma once + +#include "Common\StepTimer.h" +#include "Common\DeviceResources.h" +#include "Content\Sample3DSceneRenderer.h" +#include "Content\SampleFpsTextRenderer.h" +#include "Content\WacomInkRenderer.h" + +// Renders Direct2D and 3D content on the screen. +namespace DirectXInterop1 +{ + class DirectXInterop1Main; + + ref class InputHandler sealed + { + private: + DirectXInterop1Main& m_Main; + + internal: + InputHandler(DirectXInterop1Main& main) : + m_Main(main) + { + } + + // Independent input handling functions. + void OnPointerPressed(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e); + //void OnPointerMoved(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e); + void OnPointerReleased(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e); + }; + + class DirectXInterop1Main : public DX::IDeviceNotify + { + public: + DirectXInterop1Main(const std::shared_ptr& deviceResources); + ~DirectXInterop1Main(); + void CreateWindowSizeDependentResources(); + + void StartRenderLoop(); + void StopRenderLoop(); + Concurrency::critical_section& GetCriticalSection() { return m_criticalSection; } + + // IDeviceNotify + virtual void OnDeviceLost(); + virtual void OnDeviceRestored(); + + void SetSwapChainPanel(Windows::UI::Xaml::Controls::SwapChainPanel^ swapChainPanel) + { + m_swapChainPanel = swapChainPanel; + } + + private: + void ProcessInput(); + void Update(); + bool Render(); + + public: + std::unique_ptr m_inkRenderer; + + private: + InputHandler^ m_InputHandler; + + // Cached pointer to device resources. + std::shared_ptr m_deviceResources; + + // TODO: Replace with your own content renderers. + std::unique_ptr m_sceneRenderer; + std::unique_ptr m_fpsTextRenderer; + + Windows::Foundation::IAsyncAction^ m_renderLoopWorker; + Concurrency::critical_section m_criticalSection; + + // Rendering loop timer. + DX::StepTimer m_timer; + + Windows::UI::Core::CoreIndependentInputSource^ m_coreInput; + Windows::UI::Xaml::Controls::SwapChainPanel^ m_swapChainPanel; + }; +} \ No newline at end of file diff --git a/Samples/DirectXInterop1/DirectXInterop1_TemporaryKey.pfx b/Samples/DirectXInterop1/DirectXInterop1_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..287ea27a4f325ada18fd2842466b376dd8e44ca1 GIT binary patch literal 2512 zcmY*Zc|6qX7ygb}G#E=GWXTfOGSf9Q5gF&LfMlg zOR{8X?8FU~vI{B2o$lxNyZ3YdIOjaibIy6+^T+!h3;JmgSU^lv3gi$&fqcgZ!dU(#qeDv}g6NYl=FY$CoEz`?bfate6^3%aFs-@Q#gJ+f0u?1%PL2B{2*PLiqz#)TGrD%#S`imSi*6!09R|Fqh8 zv)!4pF(jCuQ1u~J)c&yKd38nvccMe-6W!@$i>cF1GmdWL_y~N9#hchh@Ij%PQ99bH zcRejv@4U5ZU9ZaC9~P0>B#zZJn;%=JK3#d!QoD3GSZ*H;NASIWwZfSQ0gZVStu*8! zAH{_fIxU#HSIb=ql5&?gu87Ea479P}?q=6H2V1^Lh@soc#t?KBgOTq-A8hxO;HPX+ zJr*W+TG(E|j@EpxX<5FuI92gl+AmAC#kVCYteD%&-l<#u~pks z0!6W;lTU|Ge9cmKyuGXI^i8^^vPV;IZ`C@JWD=6*)`IH?CHYze93N#-gkB#P6VRAn zRW|^Qlrg!9M&#e)Tn#$ttjbhV-R9VRP)+37MtTza8h8b;UyfNzre4hSQ%DXfrmq%l&K7MH)dD+!^M;)1fc$HG&dir$I-56gH zZ9i>ZgDJD>(jaQNXJnqT%MCLdHR0FtzU50dk?P5$^S$=rZYtHCc1x;#c|fcDGF>KOXHb>*px znvOGz^VhL)6oGf&t9fCvOt`%n$kts7!3jS8> zJ`O`5PKonn?wd&r-_x@fZj2wzjv!Q9SO{ zE-{827!!8#P|yr5I|UIjo;-W>@(|n4D6CbtIwdQAwabB~WcGahRz2@#*AX=zY5y}B zl$`fnnrF)_l)cE`SB<_csKd&d6mb2`E737$Jw_NG2<=L9^B z`F57(>9qkFBsS(X2KmprgrC5|AP^7$02u3kMQ*IoDFZ+ea0e6s7l6n>7=}LsxG|U_ zpu#{33@itDFpvu1%7{t~BnMy_Q65nJn-duozdDH+2N)a$13^F(WiAlb{1hHA1-u!_ zK)@deVweYT6%YXk4F5~<13Vc_mx03p5<~N6@Ic13B*5$ME)l@|@465MBQgdI#8ANg z|4hydqf)@m49T7e1Teyde>0%}tbEw7mEYH}O+R-k z!y|UfQ?e!WdBA(y4qEuNq+Z^RC5UMMP9ot=p^tR_N;!&5y!~aER>+!nH9fRBKFrAE z^to@fVG(n%(DA8Cm4X5Kv$5h^zSrw#ye8QO`|EfvN?Yt;_I)fHci+K4?^-=8C`-r? z{1j`ioPhqb9>zSP+gyT4Vs6{BguD%#t4!n%4p4&JSU~D^v}m*LVWxl62zdGVJk%f! z5xQ)K>rK()kJFxiHkSu}X>(N^0-L(m4Io zu+n>Jb^tvUQog99-VOh4y8Y`V^svCRzURP&hc7Hh?Rnz9htd9Jba4*lB)@L*(UItj zXA>McKTId2z1WU&HGOp+ksVxQ`uunn#%_*Wj(r!OT53r+^mba4m8edO`W<{m#pUx1 zObst8tR<2phFs1@uJ`E4VHC2{m(F%?@WOLZb)fwUk=@iPq~CtvGOrPZ`yjy?)s|`AcUoyZ2Ld$yPa+OzeZA>rW6S zmi@$NP#ZX0BjoI&*FdMOKL&>p#xTR6D0VOtKZHB9d_=BfXPXyM6b1WgFP-gIx}gu@ c_KeC9@@`_~$b7isqB_((mMAxh`SsEM0#EmA@Bjb+ literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/DirectXPage.xaml b/Samples/DirectXInterop1/DirectXPage.xaml new file mode 100644 index 0000000..862992a --- /dev/null +++ b/Samples/DirectXInterop1/DirectXPage.xaml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + diff --git a/Samples/DirectXInterop1/DirectXPage.xaml.cpp b/Samples/DirectXInterop1/DirectXPage.xaml.cpp new file mode 100644 index 0000000..b4d2113 --- /dev/null +++ b/Samples/DirectXInterop1/DirectXPage.xaml.cpp @@ -0,0 +1,184 @@ +// +// DirectXPage.xaml.cpp +// Implementation of the DirectXPage class. +// + +#include "pch.h" +#include "DirectXPage.xaml.h" + +using namespace DirectXInterop1; + +using namespace Platform; +using namespace Windows::Foundation; +using namespace Windows::Foundation::Collections; +using namespace Windows::Graphics::Display; +using namespace Windows::System::Threading; +using namespace Windows::UI::Core; +using namespace Windows::UI::Input; +using namespace Windows::UI::Xaml; +using namespace Windows::UI::Xaml::Controls; +using namespace Windows::UI::Xaml::Controls::Primitives; +using namespace Windows::UI::Xaml::Data; +using namespace Windows::UI::Xaml::Input; +using namespace Windows::UI::Xaml::Media; +using namespace Windows::UI::Xaml::Navigation; +using namespace concurrency; + +DirectXPage::DirectXPage() : + m_windowVisible(true), + m_coreInput(nullptr) +{ + InitializeComponent(); + + // Register event handlers for page lifecycle. + CoreWindow^ window = Window::Current->CoreWindow; + + window->VisibilityChanged += + ref new TypedEventHandler(this, &DirectXPage::OnVisibilityChanged); + + DisplayInformation^ currentDisplayInformation = DisplayInformation::GetForCurrentView(); + + currentDisplayInformation->DpiChanged += + ref new TypedEventHandler(this, &DirectXPage::OnDpiChanged); + + currentDisplayInformation->OrientationChanged += + ref new TypedEventHandler(this, &DirectXPage::OnOrientationChanged); + + DisplayInformation::DisplayContentsInvalidated += + ref new TypedEventHandler(this, &DirectXPage::OnDisplayContentsInvalidated); + + swapChainPanel->CompositionScaleChanged += + ref new TypedEventHandler(this, &DirectXPage::OnCompositionScaleChanged); + + swapChainPanel->SizeChanged += + ref new SizeChangedEventHandler(this, &DirectXPage::OnSwapChainPanelSizeChanged); + + // Disable all pointer visual feedback for better performance when touching. + auto pointerVisualizationSettings = PointerVisualizationSettings::GetForCurrentView(); + pointerVisualizationSettings->IsContactFeedbackEnabled = false; + pointerVisualizationSettings->IsBarrelButtonFeedbackEnabled = false; + + // At this point we have access to the device. + // We can create the device-dependent resources. + m_deviceResources = std::make_shared(); + m_deviceResources->SetSwapChainPanel(swapChainPanel); + + // Register our SwapChainPanel to get independent input pointer events + /* auto workItemHandler = ref new WorkItemHandler([this] (IAsyncAction ^) + { + // The CoreIndependentInputSource will raise pointer events for the specified device types on whichever thread it's created on. + m_coreInput = swapChainPanel->CreateCoreIndependentInputSource( + Windows::UI::Core::CoreInputDeviceTypes::Mouse | + Windows::UI::Core::CoreInputDeviceTypes::Touch | + Windows::UI::Core::CoreInputDeviceTypes::Pen + ); + + // Windows::Foundation::Point pt = m_coreInput->PointerPosition; + // double xxx = pt.X; + // double yyy = pt.Y; + + // Register for pointer events, which will be raised on the background thread. + m_coreInput->PointerPressed += ref new TypedEventHandler(this, &DirectXPage::OnPointerPressed); + m_coreInput->PointerMoved += ref new TypedEventHandler(this, &DirectXPage::OnPointerMoved); + m_coreInput->PointerReleased += ref new TypedEventHandler(this, &DirectXPage::OnPointerReleased); + + // Begin processing input messages as they're delivered. + m_coreInput->Dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessUntilQuit); + }); + + // Run task on a dedicated high priority background thread. + m_inputLoopWorker = ThreadPool::RunAsync(workItemHandler, WorkItemPriority::High, WorkItemOptions::TimeSliced); + */ + + m_main = std::unique_ptr(new DirectXInterop1Main(m_deviceResources)); + + m_main->SetSwapChainPanel(swapChainPanel); + m_main->StartRenderLoop(); +} + +DirectXPage::~DirectXPage() +{ + // Stop rendering and processing events on destruction. + m_main->StopRenderLoop(); + m_coreInput->Dispatcher->StopProcessEvents(); +} + +// Saves the current state of the app for suspend and terminate events. +void DirectXPage::SaveInternalState(IPropertySet^ state) +{ + critical_section::scoped_lock lock(m_main->GetCriticalSection()); + m_deviceResources->Trim(); + + // Stop rendering when the app is suspended. + m_main->StopRenderLoop(); + + // Put code to save app state here. +} + +// Loads the current state of the app for resume events. +void DirectXPage::LoadInternalState(IPropertySet^ state) +{ + // Put code to load app state here. + + // Start rendering when the app is resumed. + m_main->StartRenderLoop(); +} + +// Window event handlers. + +void DirectXPage::OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEventArgs^ args) +{ + m_windowVisible = args->Visible; + if (m_windowVisible) + { + m_main->StartRenderLoop(); + } + else + { + m_main->StopRenderLoop(); + } +} + +// DisplayInformation event handlers. + +void DirectXPage::OnDpiChanged(DisplayInformation^ sender, Object^ args) +{ + critical_section::scoped_lock lock(m_main->GetCriticalSection()); + m_deviceResources->SetDpi(sender->LogicalDpi); + m_main->CreateWindowSizeDependentResources(); +} + +void DirectXPage::OnOrientationChanged(DisplayInformation^ sender, Object^ args) +{ + critical_section::scoped_lock lock(m_main->GetCriticalSection()); + m_deviceResources->SetCurrentOrientation(sender->CurrentOrientation); + m_main->CreateWindowSizeDependentResources(); +} + + +void DirectXPage::OnDisplayContentsInvalidated(DisplayInformation^ sender, Object^ args) +{ + critical_section::scoped_lock lock(m_main->GetCriticalSection()); + m_deviceResources->ValidateDevice(); +} + +// Called when the app bar button is clicked. +void DirectXPage::AppBarButton_Click(Object^ sender, RoutedEventArgs^ e) +{ + // Use the app bar if it is appropriate for your app. Design the app bar, + // then fill in event handlers (like this one). +} + +void DirectXPage::OnCompositionScaleChanged(SwapChainPanel^ sender, Object^ args) +{ + critical_section::scoped_lock lock(m_main->GetCriticalSection()); + m_deviceResources->SetCompositionScale(sender->CompositionScaleX, sender->CompositionScaleY); + m_main->CreateWindowSizeDependentResources(); +} + +void DirectXPage::OnSwapChainPanelSizeChanged(Object^ sender, SizeChangedEventArgs^ e) +{ + critical_section::scoped_lock lock(m_main->GetCriticalSection()); + m_deviceResources->SetLogicalSize(e->NewSize); + m_main->CreateWindowSizeDependentResources(); +} diff --git a/Samples/DirectXInterop1/DirectXPage.xaml.h b/Samples/DirectXInterop1/DirectXPage.xaml.h new file mode 100644 index 0000000..ffa1b5f --- /dev/null +++ b/Samples/DirectXInterop1/DirectXPage.xaml.h @@ -0,0 +1,59 @@ +// +// DirectXPage.xaml.h +// Declaration of the DirectXPage class. +// + +#pragma once + +#include "DirectXPage.g.h" + +#include "Common\DeviceResources.h" +#include "DirectXInterop1Main.h" + +namespace DirectXInterop1 +{ + ///

+ /// A page that hosts a DirectX SwapChainPanel. + /// + public ref class DirectXPage sealed + { + public: + DirectXPage(); + virtual ~DirectXPage(); + + void SaveInternalState(Windows::Foundation::Collections::IPropertySet^ state); + void LoadInternalState(Windows::Foundation::Collections::IPropertySet^ state); + + private: + // XAML low-level rendering event handler. + void OnRendering(Platform::Object^ sender, Platform::Object^ args); + + // Window event handlers. + void OnVisibilityChanged(Windows::UI::Core::CoreWindow^ sender, Windows::UI::Core::VisibilityChangedEventArgs^ args); + + // DisplayInformation event handlers. + void OnDpiChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args); + void OnOrientationChanged(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args); + void OnDisplayContentsInvalidated(Windows::Graphics::Display::DisplayInformation^ sender, Platform::Object^ args); + + // Other event handlers. + void AppBarButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e); + void OnCompositionScaleChanged(Windows::UI::Xaml::Controls::SwapChainPanel^ sender, Object^ args); + void OnSwapChainPanelSizeChanged(Platform::Object^ sender, Windows::UI::Xaml::SizeChangedEventArgs^ e); + + // Track our independent input on a background worker thread. + Windows::Foundation::IAsyncAction^ m_inputLoopWorker; + Windows::UI::Core::CoreIndependentInputSource^ m_coreInput; + + // Independent input handling functions. + void OnPointerPressed(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e); + void OnPointerMoved(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e); + void OnPointerReleased(Platform::Object^ sender, Windows::UI::Core::PointerEventArgs^ e); + + // Resources used to render the DirectX content in the XAML page background. + std::shared_ptr m_deviceResources; + std::unique_ptr m_main; + bool m_windowVisible; + }; +} + diff --git a/Samples/DirectXInterop1/Generated Files/App.g.h b/Samples/DirectXInterop1/Generated Files/App.g.h new file mode 100644 index 0000000..f6923f7 --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/App.g.h @@ -0,0 +1,27 @@ +#pragma once +//------------------------------------------------------------------------------ +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +//------------------------------------------------------------------------------ + +#include "XamlTypeInfo.g.h" + +namespace DirectXInterop1 +{ + partial ref class App : public ::Windows::UI::Xaml::Application, + public ::Windows::UI::Xaml::Markup::IXamlMetadataProvider + { + public: + void InitializeComponent(); + [Windows::Foundation::Metadata::DefaultOverload] + virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Windows::UI::Xaml::Interop::TypeName type); + virtual ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlType(::Platform::String^ fullName); + virtual ::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ GetXmlnsDefinitions(); + private: + ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider; + bool _contentLoaded; + }; +} + diff --git a/Samples/DirectXInterop1/Generated Files/App.g.hpp b/Samples/DirectXInterop1/Generated Files/App.g.hpp new file mode 100644 index 0000000..c04442d --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/App.g.hpp @@ -0,0 +1,96 @@ +//------------------------------------------------------------------------------ +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +//------------------------------------------------------------------------------ + +#include "pch.h" +#include "App.xaml.h" + + +#if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION +extern "C" __declspec(dllimport) int __stdcall IsDebuggerPresent(); +#endif + +#if (defined(_M_IX86) || defined(_M_AMD64)) && !defined(_VSDESIGNER_DONT_LOAD_AS_DLL) +#if defined(_M_IX86) +#pragma comment(linker, "/EXPORT:DllGetActivationFactory=_DllGetActivationFactory@8,PRIVATE") +#pragma comment(linker, "/EXPORT:DllCanUnloadNow=_DllCanUnloadNow@0,PRIVATE") +#pragma comment(linker, "/EXPORT:VSDesignerDllMain=_VSDesignerDllMain@12,PRIVATE") +#pragma comment(linker, "/INCLUDE:___refMTAThread") +#elif defined(_M_AMD64) +#pragma comment(linker, "/EXPORT:DllGetActivationFactory=DllGetActivationFactory,PRIVATE") +#pragma comment(linker, "/EXPORT:DllCanUnloadNow,PRIVATE") +#pragma comment(linker, "/EXPORT:VSDesignerDllMain,PRIVATE") +#pragma comment(linker, "/INCLUDE:__refMTAThread") +#endif + +extern int __abi___threading_model; + +extern "C" +{ + int __stdcall _DllMainCRTStartup(void* hinstDLL, unsigned long fdwReason, void** lpvReserved); + + int __stdcall VSDesignerDllMain(void* hinstDLL, unsigned long fdwReason, void** lpvReserved) + { + __abi___threading_model = _VCCORLIB_THREADING_MODEL_OVERRIDE; + return _DllMainCRTStartup(hinstDLL, fdwReason, lpvReserved); + } +} + +#endif // (defined(_M_IX86) || defined(_M_AMD64)) && !defined(_VSDESIGNER_DONT_LOAD_AS_DLL) + +void ::DirectXInterop1::App::InitializeComponent() +{ +#if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION + UnhandledException += ref new ::Windows::UI::Xaml::UnhandledExceptionEventHandler( + [](::Platform::Object^ sender, ::Windows::UI::Xaml::UnhandledExceptionEventArgs^ e) + { + (void)sender; // Unused parameter + if (IsDebuggerPresent()) + { + ::Platform::String^ errorMessage = e->Message; + __debugbreak(); + } + }); +#endif +} + + +::Windows::UI::Xaml::Markup::IXamlType^ ::DirectXInterop1::App::GetXamlType(::Windows::UI::Xaml::Interop::TypeName type) +{ + if(_provider == nullptr) + { + _provider = ref new XamlTypeInfo::InfoProvider::XamlTypeInfoProvider(); + } + return _provider->GetXamlTypeByType(type); +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::DirectXInterop1::App::GetXamlType(::Platform::String^ fullName) +{ + if(_provider == nullptr) + { + _provider = ref new XamlTypeInfo::InfoProvider::XamlTypeInfoProvider(); + } + return _provider->GetXamlTypeByName(fullName); +} + +::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>^ ::DirectXInterop1::App::GetXmlnsDefinitions() +{ + return ref new ::Platform::Array<::Windows::UI::Xaml::Markup::XmlnsDefinition>(0); +} + +#ifndef DISABLE_XAML_GENERATED_MAIN +int __cdecl main(::Platform::Array<::Platform::String^>^ args) +{ + (void)args; // Unused parameter + ::Windows::UI::Xaml::Application::Start(ref new ::Windows::UI::Xaml::ApplicationInitializationCallback( + [](::Windows::UI::Xaml::ApplicationInitializationCallbackParams^ p) { + (void)p; // Unused parameter + auto app = ref new ::DirectXInterop1::App(); + })); +} +#endif + + diff --git a/Samples/DirectXInterop1/Generated Files/App.xaml b/Samples/DirectXInterop1/Generated Files/App.xaml new file mode 100644 index 0000000..9a4a057 --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/App.xaml @@ -0,0 +1,9 @@ + + + + diff --git a/Samples/DirectXInterop1/Generated Files/App.xbf b/Samples/DirectXInterop1/Generated Files/App.xbf new file mode 100644 index 0000000000000000000000000000000000000000..ad19d781fad259e51dcee0944e1cf4bc0fbafb39 GIT binary patch literal 532 zcmcJMyH3ME5JhidAt9v$AtV|^53wDGIHB`{2s+A$1_djSNby5?2$vQG1qB74z$fts z{0V0*Q_#>cqpP_yyF0I)gkycQqz6fD096T$JR1jjY3yrb-x~Yg*s&7_p*M`2zS9pQ z|2zu)OLrJVgOTg|UfeS|TyXaFc_&X*sF$xaVwmY9p@WI8>uzTCOhvsRuKyCV86#%VKfh!ATd-${WVM<swapChainPanel = safe_cast<::Windows::UI::Xaml::Controls::SwapChainPanel^>(__target); + } + break; + case 2: + { + this->bottomAppBar = safe_cast<::Windows::UI::Xaml::Controls::AppBar^>(__target); + } + break; + case 3: + { + ::Windows::UI::Xaml::Controls::AppBarButton^ element3 = safe_cast<::Windows::UI::Xaml::Controls::AppBarButton^>(__target); + (safe_cast<::Windows::UI::Xaml::Controls::AppBarButton^>(element3))->Click += ref new ::Windows::UI::Xaml::RoutedEventHandler(this, (void (::DirectXInterop1::DirectXPage::*) + (::Platform::Object^, ::Windows::UI::Xaml::RoutedEventArgs^))&DirectXPage::AppBarButton_Click); + } + break; + } + _contentLoaded = true; +} + +::Windows::UI::Xaml::Markup::IComponentConnector^ ::DirectXInterop1::DirectXPage::GetBindingConnector(int __connectionId, ::Platform::Object^ __target) +{ + __connectionId; // unreferenced + __target; // unreferenced + return nullptr; +} + + diff --git a/Samples/DirectXInterop1/Generated Files/DirectXPage.xaml b/Samples/DirectXInterop1/Generated Files/DirectXPage.xaml new file mode 100644 index 0000000..073a214 --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/DirectXPage.xaml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + diff --git a/Samples/DirectXInterop1/Generated Files/DirectXPage.xbf b/Samples/DirectXInterop1/Generated Files/DirectXPage.xbf new file mode 100644 index 0000000000000000000000000000000000000000..e2a9df25fa7faaa055808844ec55513fd787ad65 GIT binary patch literal 1123 zcmcIjyKd896#inzO~46?AgGn;U`q@PW>C}M+FK~AH1WxbA%y$^e9)!kExkp%-0x)^sEXB^)<@7$BYb^^WlHY3*068jCrNH5&LRWl1c`wpo`~8HN&K*5F7Nh|EZcG zJHF^ta!QA_WWv(-!R2hWnB~b|GmVKQar0z`heVrDlG({Nequo#6dtZijhqk*3^Pk1;LoxJRD=`{V&LdbE~E&l1^VCX<_$z5A59aPbl^V9}#M z>QgUYjaXgch1ey|gq9-d6=k0~k60!xv(#5MfBTyK_vovhbi8u3^pzo(e@1?TEJ@yS zbP9sbqh``SN>w0X($0WIc~I5FasV}(fcVtw_vrHHZ=`z7E>jz^yVc^dytXW4rG}!W z;m*fp`Ez8Lv92HARBC*U^lu`-D8(%Mr)%XEEB7NVpGAeN7>ZgBMrFAIn6CI; p@bYP7e2?`=kp$;}Vw5x$rj-#GrG=JlXt|t8D-P literal 0 HcmV?d00001 diff --git a/Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.h b/Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.h new file mode 100644 index 0000000..9a6f5b7 --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.h @@ -0,0 +1,57 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#pragma once + +namespace XamlBindingInfo +{ + ref class XamlBindings; + + class IXamlBindings + { + public: + virtual ~IXamlBindings() {}; + virtual bool IsInitialized() = 0; + virtual void Update() = 0; + virtual bool SetDataRoot(::Platform::Object^ data) = 0; + virtual void StopTracking() = 0; + virtual void Connect(int connectionId, ::Platform::Object^ target) = 0; + virtual void ResetTemplate() = 0; + virtual int ProcessBindings(::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs^ args) = 0; + virtual void SubscribeForDataContextChanged(::Windows::UI::Xaml::FrameworkElement^ object, ::XamlBindingInfo::XamlBindings^ handler) = 0; + }; + + ref class XamlBindings sealed : + ::Windows::UI::Xaml::IDataTemplateExtension, + ::Windows::UI::Xaml::Markup::IComponentConnector + { + internal: + XamlBindings(::XamlBindingInfo::IXamlBindings* pBindings); + void Initialize(); + void Update(); + void StopTracking(); + void Loading(::Windows::UI::Xaml::FrameworkElement^ src, ::Platform::Object^ data); + void DataContextChanged(::Windows::UI::Xaml::FrameworkElement^ sender, ::Windows::UI::Xaml::DataContextChangedEventArgs^ args); + void SubscribeForDataContextChanged(::Windows::UI::Xaml::FrameworkElement^ object); + + public: + // IComponentConnector + virtual void Connect(int connectionId, ::Platform::Object^ target); + + // IDataTemplateExtension + virtual bool ProcessBinding(unsigned int); + virtual int ProcessBindings(::Windows::UI::Xaml::Controls::ContainerContentChangingEventArgs^ args); + virtual void ResetTemplate(); + + private: + ~XamlBindings(); + + IXamlBindings* _pBindings = nullptr; + }; +} + diff --git a/Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.hpp b/Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.hpp new file mode 100644 index 0000000..32f0bd4 --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/XamlBindingInfo.g.hpp @@ -0,0 +1,13 @@ + +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#include "pch.h" + + + diff --git a/Samples/DirectXInterop1/Generated Files/XamlLibMetadataProvider.g.cpp b/Samples/DirectXInterop1/Generated Files/XamlLibMetadataProvider.g.cpp new file mode 100644 index 0000000..c65238f --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/XamlLibMetadataProvider.g.cpp @@ -0,0 +1,2 @@ + + diff --git a/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.Impl.g.cpp b/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.Impl.g.cpp new file mode 100644 index 0000000..cf5cb5d --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.Impl.g.cpp @@ -0,0 +1,579 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#include "pch.h" +#include +#include "XamlTypeInfo.g.h" + + + +// XamlTypeInfoProvider +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByType(::Windows::UI::Xaml::Interop::TypeName type) +{ + auto xamlType = GetXamlTypeByName(type.Name); + ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType); + if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType)) + { + ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType = CheckOtherMetadataProvidersForType(type); + if (libXamlType != nullptr) + { + if(libXamlType->IsConstructible || xamlType == nullptr) + { + xamlType = libXamlType; + } + } + } + return xamlType; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetXamlTypeByName(::Platform::String^ typeName) +{ + if (typeName == nullptr || typeName->IsEmpty()) + { + return nullptr; + } + + auto val = _xamlTypes.find(typeName); + ::Windows::UI::Xaml::Markup::IXamlType^ xamlType = nullptr; + if (val != _xamlTypes.end()) + { + xamlType = (val->second).Resolve<::Windows::UI::Xaml::Markup::IXamlType>(); + if(xamlType != nullptr) + { + return xamlType; + } + } + + xamlType = CreateXamlType(typeName); + ::XamlTypeInfo::InfoProvider::XamlUserType^ userXamlType = dynamic_cast<::XamlTypeInfo::InfoProvider::XamlUserType^>(xamlType); + if (xamlType == nullptr || (userXamlType != nullptr && userXamlType->IsReturnTypeStub && !userXamlType->IsLocalType)) + { + ::Windows::UI::Xaml::Markup::IXamlType^ libXamlType = CheckOtherMetadataProvidersForName(typeName); + if (libXamlType != nullptr) + { + if(libXamlType->IsConstructible || xamlType == nullptr) + { + xamlType = libXamlType; + } + } + } + + + if (xamlType != nullptr) + { + Platform::WeakReference wr(xamlType); + _xamlTypes[xamlType->FullName] = wr; + } + return xamlType; +} + +::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::GetMemberByLongName(::Platform::String^ longMemberName) +{ + if (longMemberName == nullptr || longMemberName->IsEmpty()) + { + return nullptr; + } + + auto val = _xamlMembers.find(longMemberName); + if (val != _xamlMembers.end()) + { + return val->second; + } + + auto xamlMember = CreateXamlMember(longMemberName); + + if (xamlMember != nullptr) + { + _xamlMembers[longMemberName] = xamlMember; + } + return xamlMember; +} + + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForName(::Platform::String^ typeName) +{ + ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr; + for (unsigned int i = 0; i < OtherProviders->Size; i++) + { + auto xamlType = OtherProviders->GetAt(i)->GetXamlType(typeName); + if(xamlType != nullptr) + { + if(xamlType->IsConstructible) // not Constructible means it might be a Return Type Stub + { + return xamlType; + } + foundXamlType = xamlType; + } + } + return foundXamlType; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CheckOtherMetadataProvidersForType(::Windows::UI::Xaml::Interop::TypeName t) +{ + ::Windows::UI::Xaml::Markup::IXamlType^ foundXamlType = nullptr; + for (unsigned int i = 0; i < OtherProviders->Size; i++) + { + auto xamlType = OtherProviders->GetAt(i)->GetXamlType(t); + if(xamlType != nullptr) + { + if(xamlType->IsConstructible) // not Constructible means it might be a Return Type Stub + { + return xamlType; + } + foundXamlType = xamlType; + } + } + return foundXamlType; +} + +// XamlSystemBaseType +::XamlTypeInfo::InfoProvider::XamlSystemBaseType::XamlSystemBaseType(::Platform::String^ name) : + _fullName(name) +{ +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::BaseType::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ContentProperty::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::FullName::get() +{ + return _fullName; +} + +::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::Name::get() +{ + const wchar_t* seperator = wcsrchr(_fullName->Data(), '.'); + if (seperator == nullptr) + { + return _fullName; + } + return ref new ::Platform::String(seperator); +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsArray::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsCollection::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsConstructible::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsDictionary::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsMarkupExtension::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsEnum::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsSystemType::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +bool ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::IsBindable::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ItemType::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::KeyType::get() +{ + throw ref new ::Platform::NotImplementedException; +} + +::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlSystemBaseType::UnderlyingType::get)() +{ + ::Windows::UI::Xaml::Interop::TypeName typeName; + + typeName.Name = _fullName; + typeName.Kind = ::Windows::UI::Xaml::Interop::TypeKind::Primitive; + + return typeName; +} + +::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::ActivateInstance() +{ + throw ref new ::Platform::NotImplementedException; +} + +::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::GetMember(::Platform::String^) +{ + throw ref new ::Platform::NotImplementedException; +} + +void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToVector(::Platform::Object^, ::Platform::Object^) +{ + throw ref new ::Platform::NotImplementedException; +} + +void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::AddToMap(::Platform::Object^, ::Platform::Object^, ::Platform::Object^) +{ + throw ref new ::Platform::NotImplementedException; +} + +void ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::RunInitializer() +{ + throw ref new ::Platform::NotImplementedException; +} + +::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlSystemBaseType::CreateFromString(::Platform::String^) +{ + throw ref new ::Platform::NotImplementedException; +} + +//XamlUserType +::XamlTypeInfo::InfoProvider::XamlUserType::XamlUserType(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ fullName, ::Windows::UI::Xaml::Markup::IXamlType^ baseType) : + _isArray(false), + _isMarkupExtension(false), + _isEnum(false), + _isBindable(false), + _isReturnTypeStub(false), + _isLocalType(false), + _fullName(fullName), + _provider(provider), + _baseType(baseType) +{ +} + +::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::FullName::get() +{ + return _fullName; +} + +::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlUserType::Name::get() +{ + const wchar_t *seperator = wcsrchr(_fullName->Data(), '.'); + if (seperator == nullptr) + { + return _fullName; + } + return ref new ::Platform::String(seperator); +} + +::Windows::UI::Xaml::Interop::TypeName (::XamlTypeInfo::InfoProvider::XamlUserType::UnderlyingType::get)() +{ + ::Windows::UI::Xaml::Interop::TypeName typeName; + + typeName.Name = _fullName; + typeName.Kind = KindOfType; + + return typeName; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsSystemType::get() +{ + return true; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::BaseType::get() +{ + return _baseType; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsArray::get() +{ + return _isArray; +} +void ::XamlTypeInfo::InfoProvider::XamlUserType::IsArray::set(bool value) +{ + _isArray = value; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsCollection::get() +{ + return CollectionAdd != nullptr; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsConstructible::get() +{ + return Activator != nullptr; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsDictionary::get() +{ + return DictionaryAdd != nullptr; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsMarkupExtension::get() +{ + return _isMarkupExtension; +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::IsMarkupExtension::set(bool value) +{ + _isMarkupExtension = value; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsEnum::get() +{ + return _isEnum; +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::IsEnum::set(bool value) +{ + _isEnum = value; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsBindable::get() +{ + return _isBindable; +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::IsBindable::set(bool value) +{ + _isBindable = value; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsReturnTypeStub::get() +{ + return _isReturnTypeStub; +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::IsReturnTypeStub::set(bool value) +{ + _isReturnTypeStub = value; +} + +bool ::XamlTypeInfo::InfoProvider::XamlUserType::IsLocalType::get() +{ + return _isLocalType; +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::IsLocalType::set(bool value) +{ + _isLocalType = value; +} + +::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::ContentProperty::get() +{ + return _provider->GetMemberByLongName(_contentPropertyName); +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::ContentPropertyName::set(::Platform::String^ value) +{ + _contentPropertyName = value; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::ItemType::get() +{ + return _provider->GetXamlTypeByName(_itemTypeName); +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::ItemTypeName::set(::Platform::String^ value) +{ + _itemTypeName = value; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlUserType::KeyType::get() +{ + return _provider->GetXamlTypeByName(_keyTypeName); +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::KeyTypeName::set(::Platform::String^ value) +{ + _keyTypeName = value; +} + +::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlUserType::GetMember(::Platform::String^ name) +{ + auto val = _memberNames.find(name); + if (val != _memberNames.end()) + { + return _provider->GetMemberByLongName(val->second); + } + return nullptr; +} + +::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::ActivateInstance() +{ + return Activator(); +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item) +{ + DictionaryAdd(instance, key, item); +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::AddToVector(::Platform::Object^ instance, ::Platform::Object^ item) +{ + CollectionAdd(instance, item); +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::RunInitializer() +{ + // The C++ runtime will have already run all the Static Initializers at start up. +} + +::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlUserType::CreateFromString(::Platform::String^ input) +{ + return FromStringConverter(this, input); +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::AddMemberName(::Platform::String^ shortName) +{ + _memberNames[shortName] = FullName + "." + shortName; +} + +void ::XamlTypeInfo::InfoProvider::XamlUserType::AddEnumValue(::Platform::String^ name, ::Platform::Object^ value) +{ + _enumValues[name->Data()] = value; +} + +::default::uint32 (::XamlTypeInfo::InfoProvider::XamlUserType::CreateEnumUIntFromString)(::Platform::String^ input) +{ + bool found = false; + + const std::wregex regularExpression(L"^\\s+|\\s*,\\s*|\\s+$"); + uint32 val = 0; + + for (std::wcregex_token_iterator it(input->Begin(), input->End(), regularExpression, -1), end; it != end; ++it) + { + const std::wcsub_match& subMatch = *it; + + if (subMatch.length() == 0 ) + { + continue; + } + + std::wstring lookup(subMatch.first, (unsigned int)subMatch.length()); + + try + { + auto entry = _enumValues.find(lookup); + if (entry != _enumValues.end()) + { + const auto f = entry->second; + val |= safe_cast(f); + } + else + { + val |= std::stoi(subMatch); + } + found=true; + } + catch (const std::invalid_argument& ) + { + found = false; + break; + } + } + + if(found) + { + return val; + } + throw ref new ::Platform::InvalidArgumentException(); +} + +// XamlMember +::XamlTypeInfo::InfoProvider::XamlMember::XamlMember(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ name, ::Platform::String^ typeName) : + _isAttachable(false), + _isDependencyProperty(false), + _isReadOnly(false), + _name(name), + _typeName(typeName), + _provider(provider) +{ +} + + +bool ::XamlTypeInfo::InfoProvider::XamlMember::IsAttachable::get() +{ + return _isAttachable; +} + +void ::XamlTypeInfo::InfoProvider::XamlMember::IsAttachable::set(bool value) +{ + _isAttachable = value; +} + +bool ::XamlTypeInfo::InfoProvider::XamlMember::IsDependencyProperty::get() +{ + return _isDependencyProperty; +} + +void ::XamlTypeInfo::InfoProvider::XamlMember::IsDependencyProperty::set(bool value) +{ + _isDependencyProperty = value; +} + +bool ::XamlTypeInfo::InfoProvider::XamlMember::IsReadOnly::get() +{ + return _isReadOnly; +} + +void ::XamlTypeInfo::InfoProvider::XamlMember::IsReadOnly::set(bool value) +{ + _isReadOnly = value; +} + +::Platform::String^ ::XamlTypeInfo::InfoProvider::XamlMember::Name::get() +{ + return _name; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::Type::get() +{ + return _provider->GetXamlTypeByName(_typeName); +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlMember::TargetType::get() +{ + return _provider->GetXamlTypeByName(_targetTypeName); +} + +void ::XamlTypeInfo::InfoProvider::XamlMember::TargetTypeName::set(::Platform::String^ value) +{ + _targetTypeName = value; +} + +::Platform::Object^ ::XamlTypeInfo::InfoProvider::XamlMember::GetValue(::Platform::Object^ instance) +{ + if (Getter != nullptr) + { + return Getter(instance); + } + throw ref new ::Platform::NullReferenceException(); +} + +void ::XamlTypeInfo::InfoProvider::XamlMember::SetValue(::Platform::Object^ instance, ::Platform::Object^ value) +{ + if (Setter != nullptr) + { + Setter(instance, value); + return; + } + throw ref new ::Platform::NullReferenceException(); +} + diff --git a/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.cpp b/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.cpp new file mode 100644 index 0000000..7b8ac01 --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.cpp @@ -0,0 +1,193 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#include "pch.h" +#include "XamlTypeInfo.g.h" + +#include "App.xaml.h" +#include "DirectXPage.xaml.h" +#include "XamlBindingInfo.g.hpp" +#include "App.g.hpp" +#include "DirectXPage.g.hpp" + +template +::Platform::Object^ ActivateType() +{ + return ref new T; +} + +template +void CollectionAdd(::Platform::Object^ instance, ::Platform::Object^ item) +{ + safe_cast(instance)->Append((TItem)item); +} + +template +void DictionaryAdd(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item) +{ + safe_cast(instance)->Insert((TKey)key, (TItem)item); +} + +template +::Platform::Object^ FromStringConverter(::XamlTypeInfo::InfoProvider::XamlUserType^ userType, ::Platform::String^ input) +{ + return ref new ::Platform::Box((T)userType->CreateEnumUIntFromString(input)); +} + +struct TypeInfo +{ + PCWSTR typeName; + PCWSTR contentPropertyName; + ::Platform::Object^ (*activator)(); + void (*collectionAdd)(::Platform::Object^, ::Platform::Object^); + void (*dictionaryAdd)(::Platform::Object^, ::Platform::Object^, ::Platform::Object^); + ::Platform::Object^ (*fromStringConverter)(::XamlTypeInfo::InfoProvider::XamlUserType^, ::Platform::String^); + int baseTypeIndex; + int firstMemberIndex; + int firstEnumValueIndex; + ::Windows::UI::Xaml::Interop::TypeKind kindofType; + bool isLocalType; + bool isSystemType; + bool isReturnTypeStub; + bool isBindable; +}; + +TypeInfo TypeInfos[] = +{ + // 0 + L"DirectXInterop1.DirectXPage", L"", + &ActivateType<::DirectXInterop1::DirectXPage>, nullptr, nullptr, nullptr, + 1, // Windows.UI.Xaml.Controls.Page + 0, 0, ::Windows::UI::Xaml::Interop::TypeKind::Custom, + true, false, false, false, + // 1 + L"Windows.UI.Xaml.Controls.Page", L"", + nullptr, nullptr, nullptr, nullptr, + -1, + 0, 0, ::Windows::UI::Xaml::Interop::TypeKind::Metadata, + false, true, false, false, + // 2 + L"Windows.UI.Xaml.Controls.UserControl", L"", + nullptr, nullptr, nullptr, nullptr, + -1, + 0, 0, ::Windows::UI::Xaml::Interop::TypeKind::Metadata, + false, true, false, false, + // Last type here is for padding + L"", L"", + nullptr, nullptr, nullptr, nullptr, + -1, + 0, 0,::Windows::UI::Xaml::Interop::TypeKind::Custom, + false, false, false, false, +}; + +UINT TypeInfoLookup[] = { + 0, // 0 + 0, // 1 + 0, // 2 + 0, // 3 + 0, // 4 + 0, // 5 + 0, // 6 + 0, // 7 + 0, // 8 + 0, // 9 + 0, // 10 + 0, // 11 + 0, // 12 + 0, // 13 + 0, // 14 + 0, // 15 + 0, // 16 + 0, // 17 + 0, // 18 + 0, // 19 + 0, // 20 + 0, // 21 + 0, // 22 + 0, // 23 + 0, // 24 + 0, // 25 + 0, // 26 + 0, // 27 + 1, // 28 + 1, // 29 + 2, // 30 + 2, // 31 + 2, // 32 + 2, // 33 + 2, // 34 + 2, // 35 + 2, // 36 + 3, // 37 +}; + +TypeInfo* GetTypeInfo(::Platform::String^ typeName) +{ + int typeNameLength = typeName->Length(); + if (typeNameLength < _countof(TypeInfoLookup) - 1) + { + for (UINT i = TypeInfoLookup[typeNameLength]; i < TypeInfoLookup[typeNameLength+1]; i++) + { + if (typeName == ::Platform::StringReference(TypeInfos[i].typeName)) + { + return &TypeInfos[i]; + } + } + } + return nullptr; +} + +::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::OtherProviders::get() +{ + if(_otherProviders == nullptr) + { + auto otherProviders = ref new ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>(); + _otherProviders = otherProviders; + } + return _otherProviders; +} + +::Windows::UI::Xaml::Markup::IXamlType^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlType(::Platform::String^ typeName) +{ + TypeInfo* pTypeInfo = GetTypeInfo(typeName); + TypeInfo* pNextTypeInfo = pTypeInfo + 1; + if (pTypeInfo == nullptr || pNextTypeInfo == nullptr) + { + return nullptr; + } + else if (pTypeInfo->isSystemType) + { + return ref new ::XamlTypeInfo::InfoProvider::XamlSystemBaseType(typeName); + } + else + { + ::XamlTypeInfo::InfoProvider::XamlUserType^ userType = ref new ::XamlTypeInfo::InfoProvider::XamlUserType( + this, + ::Platform::StringReference(pTypeInfo->typeName), + this->GetXamlTypeByName(::Platform::StringReference(pTypeInfo->baseTypeIndex >= 0 ? TypeInfos[pTypeInfo->baseTypeIndex].typeName : L""))); + userType->KindOfType = pTypeInfo->kindofType; + userType->Activator = pTypeInfo->activator; + userType->CollectionAdd = pTypeInfo->collectionAdd; + userType->DictionaryAdd = pTypeInfo->dictionaryAdd; + userType->FromStringConverter = pTypeInfo->fromStringConverter; + userType->ContentPropertyName = ::Platform::StringReference(pTypeInfo->contentPropertyName); + userType->IsLocalType = pTypeInfo->isLocalType; + userType->IsReturnTypeStub = pTypeInfo->isReturnTypeStub; + userType->IsBindable = pTypeInfo->isBindable; + return userType; + } +} + +::Windows::UI::Xaml::Markup::IXamlMember^ ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider::CreateXamlMember(::Platform::String^ longMemberName) +{ + ::XamlTypeInfo::InfoProvider::XamlMember^ xamlMember = nullptr; + // No Local Properties + (void)longMemberName; // Unused parameter + return xamlMember; +} + diff --git a/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.h b/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.h new file mode 100644 index 0000000..440b074 --- /dev/null +++ b/Samples/DirectXInterop1/Generated Files/XamlTypeInfo.g.h @@ -0,0 +1,351 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ +#pragma once +#include + +namespace XamlTypeInfo +{ + namespace InfoProvider + { + ref class XamlTypeInfoProvider sealed + { + public: + ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlTypeByName(::Platform::String^ typeName); + ::Windows::UI::Xaml::Markup::IXamlType^ GetXamlTypeByType(::Windows::UI::Xaml::Interop::TypeName t); + ::Windows::UI::Xaml::Markup::IXamlMember^ GetMemberByLongName(::Platform::String^ longMemberName); + void AddOtherProvider(::Windows::UI::Xaml::Markup::IXamlMetadataProvider^ otherProvider); + + private: + std::map<::Platform::String^, ::Platform::WeakReference> _xamlTypes; + std::map<::Platform::String^, ::Windows::UI::Xaml::Markup::IXamlMember^> _xamlMembers; + ::Windows::UI::Xaml::Markup::IXamlType^ CreateXamlType(::Platform::String^ typeName); + ::Windows::UI::Xaml::Markup::IXamlMember^ CreateXamlMember(::Platform::String^ longMemberName); + + ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ _otherProviders; + property ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ OtherProviders + { + ::Platform::Collections::Vector<::Windows::UI::Xaml::Markup::IXamlMetadataProvider^>^ get(); + } + + ::Windows::UI::Xaml::Markup::IXamlType^ CheckOtherMetadataProvidersForName(::Platform::String^ typeName); + ::Windows::UI::Xaml::Markup::IXamlType^ CheckOtherMetadataProvidersForType(::Windows::UI::Xaml::Interop::TypeName t); + }; + + ref class XamlSystemBaseType sealed : public ::Windows::UI::Xaml::Markup::IXamlType + { + internal: + XamlSystemBaseType(::Platform::String^ name); + + public: + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ BaseType + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlMember^ ContentProperty + { + ::Windows::UI::Xaml::Markup::IXamlMember^ get(); + } + + virtual property ::Platform::String^ FullName + { + ::Platform::String^ get(); + } + + virtual property ::Platform::String^ Name + { + ::Platform::String^ get(); + } + + virtual property bool IsArray + { + bool get(); + } + + virtual property bool IsCollection + { + bool get(); + } + + virtual property bool IsConstructible + { + bool get(); + } + + virtual property bool IsDictionary + { + bool get(); + } + + virtual property bool IsMarkupExtension + { + bool get(); + } + + virtual property bool IsEnum + { + bool get(); + } + + virtual property bool IsSystemType + { + bool get(); + } + + virtual property bool IsBindable + { + bool get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ ItemType + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ KeyType + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual property ::Windows::UI::Xaml::Interop::TypeName UnderlyingType + { + ::Windows::UI::Xaml::Interop::TypeName get(); + } + + virtual ::Platform::Object^ ActivateInstance(); + virtual ::Windows::UI::Xaml::Markup::IXamlMember^ GetMember(::Platform::String^ name); + virtual void AddToVector(::Platform::Object^ instance, ::Platform::Object^ value); + virtual void AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ value); + virtual void RunInitializer(); + virtual ::Platform::Object^ CreateFromString(::Platform::String^ value); + + private: + ::Platform::String^ _fullName; + }; + + ref class XamlUserType sealed : public [::Platform::Metadata::RuntimeClassName] ::Windows::UI::Xaml::Markup::IXamlType + { + internal: + XamlUserType(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ fullName, ::Windows::UI::Xaml::Markup::IXamlType^ baseType); + + public: + // --- Interface methods ---- + virtual property ::Platform::String^ FullName + { + ::Platform::String^ get(); + } + + virtual property ::Platform::String^ Name + { + ::Platform::String^ get(); + } + + virtual property ::Windows::UI::Xaml::Interop::TypeName UnderlyingType + { + ::Windows::UI::Xaml::Interop::TypeName get(); + } + + virtual property bool IsSystemType + { + bool get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ BaseType + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual property bool IsArray + { + bool get(); + internal: void set(bool value); + } + + virtual property bool IsCollection + { + bool get(); + } + + virtual property bool IsConstructible + { + bool get(); + } + + virtual property bool IsDictionary + { + bool get(); + } + + virtual property bool IsMarkupExtension + { + bool get(); + internal: void set(bool value); + } + + virtual property bool IsEnum + { + bool get(); + internal: void set(bool value); + } + + virtual property bool IsBindable + { + bool get(); + internal: void set(bool value); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlMember^ ContentProperty + { + ::Windows::UI::Xaml::Markup::IXamlMember^ get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ ItemType + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ KeyType + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual ::Windows::UI::Xaml::Markup::IXamlMember^ GetMember(::Platform::String^ name); + virtual ::Platform::Object^ ActivateInstance(); + virtual void AddToMap(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ value); + virtual void AddToVector(::Platform::Object^ instance, ::Platform::Object^ value); + virtual void RunInitializer(); + virtual ::Platform::Object^ CreateFromString(::Platform::String^ value); + // --- End of Interface methods + + property bool IsReturnTypeStub + { + bool get(); + internal: void set(bool value); + } + + property bool IsLocalType + { + bool get(); + internal: void set(bool value); + } + + internal: + typedef ::Platform::Object^ (*ActivatorFn)(); + typedef void (*AddToCollectionFn)(::Platform::Object^ instance, ::Platform::Object^ item); + typedef void (*AddToDictionaryFn)(::Platform::Object^ instance, ::Platform::Object^ key, ::Platform::Object^ item); + typedef ::Platform::Object^ (*StringConverterFn)(::XamlTypeInfo::InfoProvider::XamlUserType^ userType, ::Platform::String^ input); + + property ActivatorFn Activator; + property AddToCollectionFn CollectionAdd; + property AddToDictionaryFn DictionaryAdd; + property ::Windows::UI::Xaml::Interop::TypeKind KindOfType; + property StringConverterFn FromStringConverter; + + property ::Platform::String^ ContentPropertyName + { + void set(::Platform::String^ value); + } + + property ::Platform::String^ ItemTypeName + { + void set(::Platform::String^ value); + } + + property ::Platform::String^ KeyTypeName + { + void set(::Platform::String^ value); + } + + void AddMemberName(::Platform::String^ shortName); + void AddEnumValue(::Platform::String^ name, ::Platform::Object^ value); + uint32 CreateEnumUIntFromString(::Platform::String^ input); + + private: + ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider; + ::Windows::UI::Xaml::Markup::IXamlType^ _baseType; + ::Platform::String^ _contentPropertyName; + ::Platform::String^ _itemTypeName; + ::Platform::String^ _keyTypeName; + ::Platform::String^ _fullName; + std::map<::Platform::String^, ::Platform::String^> _memberNames; + std::map _enumValues; + bool _isArray = false; + bool _isMarkupExtension = false; + bool _isEnum = false; + bool _isBindable = false; + bool _isReturnTypeStub = false; + bool _isLocalType = false; + }; + + ref class XamlMember sealed : public ::Windows::UI::Xaml::Markup::IXamlMember + { + internal: + XamlMember(::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ provider, ::Platform::String^ name, ::Platform::String^ typeName); + + typedef ::Platform::Object^ (*PropertyGetterFn)(::Platform::Object^ instance); + typedef void (*PropertySetterFn)(::Platform::Object^ instance, ::Platform::Object^ value); + + property PropertyGetterFn Getter; + property PropertySetterFn Setter; + + public: + virtual property bool IsAttachable + { + bool get(); + internal: void set(bool value); + } + + virtual property bool IsDependencyProperty + { + bool get(); + internal: void set(bool value); + } + + virtual property bool IsReadOnly + { + bool get(); + internal: void set(bool value); + } + + virtual property ::Platform::String^ Name + { + ::Platform::String^ get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ Type + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual property ::Windows::UI::Xaml::Markup::IXamlType^ TargetType + { + ::Windows::UI::Xaml::Markup::IXamlType^ get(); + } + + virtual ::Platform::Object^ GetValue(::Platform::Object^ instance); + virtual void SetValue(::Platform::Object^ instance, ::Platform::Object^ value); + + internal: + virtual property ::Platform::String^ TargetTypeName + { + void set(::Platform::String^ value); + } + + private: + bool _isAttachable; + bool _isDependencyProperty; + bool _isReadOnly; + ::Platform::String^ _name; + ::Platform::String^ _targetTypeName; + ::Platform::String^ _typeName; + ::XamlTypeInfo::InfoProvider::XamlTypeInfoProvider^ _provider; + }; + } +} + diff --git a/Samples/DirectXInterop1/Package.appxmanifest b/Samples/DirectXInterop1/Package.appxmanifest new file mode 100644 index 0000000..68dc4de --- /dev/null +++ b/Samples/DirectXInterop1/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + DirectXInterop1 + Pavel + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/DirectXInterop1/pch.cpp b/Samples/DirectXInterop1/pch.cpp new file mode 100644 index 0000000..bcb5590 --- /dev/null +++ b/Samples/DirectXInterop1/pch.cpp @@ -0,0 +1 @@ +#include "pch.h" diff --git a/Samples/DirectXInterop1/pch.h b/Samples/DirectXInterop1/pch.h new file mode 100644 index 0000000..1f4fe57 --- /dev/null +++ b/Samples/DirectXInterop1/pch.h @@ -0,0 +1,16 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "App.xaml.h" \ No newline at end of file diff --git a/Samples/README.md b/Samples/README.md new file mode 100644 index 0000000..9efa627 --- /dev/null +++ b/Samples/README.md @@ -0,0 +1,21 @@ +# Tutorials + +Tutorials demonstrate how to use WILL SDK in Windows Store applications. +The tutorials are divided into parts that demonstrate various aspects and features of the SDK. +The following tutorials are provided: + +* [Tutorial 1: Drawing with Pointing Devices](Tutorials/Tutorial_01/README.md) +* [Tutorial 2: Stroke Model and Serialization](Tutorials/Tutorial_02/README.md) +* [Tutorial 3: Erasing Strokes](Tutorials/Tutorial_03/README.md) +* [Tutorial 4: Selecting Strokes](Tutorials/Tutorial_04/README.md) +* [Tutorial 5: Working with Rasters](Tutorials/Tutorial_05/README.md) +* [Tutorial 6: Pen Id](Tutorials/Tutorial_06/README.md) + +The sample code in the tutorials is written in C#. +Each tutorial has an associated project which can be compiled and run using Visual Studio 2013. + +The projects are created with Visual Studio 2013 using the following template in the New Project dialog: + +```Templates > Visual C# > Store Apps > Windows Apps > Blank App (Windows)``` + + diff --git a/Samples/Tutorials/README.md b/Samples/Tutorials/README.md new file mode 100644 index 0000000..f487774 --- /dev/null +++ b/Samples/Tutorials/README.md @@ -0,0 +1,19 @@ +# Tutorials + +Tutorials demonstrate how to use WILL SDK in Windows Store applications. +The tutorials are divided into parts that demonstrate various aspects and features of the SDK. +The following tutorials are provided: + +* [Tutorial 1: Drawing with Pointing Devices](Tutorial_01/README.md) +* [Tutorial 2: Stroke Model and Serialization](Tutorial_02/README.md) +* [Tutorial 3: Erasing Strokes](Tutorial_03/README.md) +* [Tutorial 4: Selecting Strokes](Tutorial_04/README.md) +* [Tutorial 5: Working with Rasters](Tutorial_05/README.md) +* [Tutorial 6: Pen Id](Tutorial_06/README.md) + +The sample code in the tutorials is written in C#. +Each tutorial has an associated project which can be compiled and run using Visual Studio 2013. + +The projects are created with Visual Studio 2013 using the following template in the New Project dialog: + +```Templates > Visual C# > Store Apps > Windows Apps > Blank App (Windows)``` diff --git a/Samples/Tutorials/Tutorial_01/App.xaml b/Samples/Tutorials/Tutorial_01/App.xaml new file mode 100644 index 0000000..695dd93 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/Samples/Tutorials/Tutorial_01/App.xaml.cs b/Samples/Tutorials/Tutorial_01/App.xaml.cs new file mode 100644 index 0000000..1ff48b2 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/App.xaml.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +namespace Tutorial_01 +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { +#if DEBUG + if (System.Diagnostics.Debugger.IsAttached) + { + this.DebugSettings.EnableFrameRateCounter = true; + } +#endif + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (e.PrelaunchActivated == false) + { + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + // Ensure the current window is active + Window.Current.Activate(); + } + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/Assets/LockScreenLogo.scale-200.png b/Samples/Tutorials/Tutorial_01/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3 GIT binary patch literal 1430 zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@! zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o zH-bvQi|wt~L7q$~a-gDFP!{&TQfc3fX*6=uHv* zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M zIf%q9@;fyT?0UP>tcw-bLkz;s2LlKl2qeP0w zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ ztnxttBz#NI_a@fk7SU`WtrpsfZsNs9^0(2a z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2Lflg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7 zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH z&(f2wz_Y0??Tf|g;?|1Znw6}6U43Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV yGvCsSX*m literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_01/Assets/SplashScreen.scale-200.png b/Samples/Tutorials/Tutorial_01/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9 GIT binary patch literal 7700 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 literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_01/Assets/Square150x150Logo.scale-200.png b/Samples/Tutorials/Tutorial_01/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..af49fec1a5484db1d52a7f9b5ec90a27c7030186 GIT binary patch literal 2937 zcma)84OCO-8BSud5)jwMLRVKgX(S?$n?Ld|vrsm<$CF7)&zTbyy1FE5bU`Q17MRv`9ue$;R(@8kR;#vJ*IM0>cJIAOte!d7oRgdH zd%ySjdB6L9=gX^A6)VzH7p2l@v~3zJAMw|DFy#^)F@@F*`mqUn=Il>l)8_+ab;nOW{%+iPx z+s{Eu|&pIs)Z7{La9~?xKfyl z#43?gjEL15d4WbOZo#SiP%>DB^+BcnJ=7dHEe;r#G=tuw|ka z%q@}##Uh7;tc%L_64m(kHtw74ty%BJMb)_1)#S0j`)F8_1jF7vScpsnH=0V19bO8y zR`0SjIdCUo&=>JwMQF8KHA<{ODHTiQh}0^@5QRmCA?gOH6_H3K^-_sNB^RrdNuK-R zOO*vOrKCVvDwgUck`kF(E7j{I#iiN;b*ZdCt4m@HPA`EuEqGGf4%!K<;(=I=&Vyrw z%TwcWtxa}8mCZ%Cyf&ActJ6_$ox5z6-D!0-dvnRx6t7y3d+h6QYpKWO;8OdnvERo7 zuEf>ih5`wqY)~o@OeVt-wM?Q!>QzdGRj!bz6fzYrfw$hZfAKzr2-M+D+R>}~oT574c;_3zquHcElqKIsryILt3g8n3jcMb+j?i?-L3FpZJ z2WRVBRdDPc+G5aaYg#5hpE+6nQ|(VSoxT3|biF;BUq#==-27Xi=gihDPYP$7?=9cP zYKE$jeQ|3~_L0VG-(F~2ZPyD0=k{J4Q~h(t__{-mz_w8{JDY9{`1ouzz!Vr5!ECdE z6U~O1k8c}24V7~zzXWTV-Pe4)y}wQJS&q%H5`Fo_f_JvIU489aCX$;P`u#!I-=^4ijC2{&9!O&h>mi?9oYD=GC#%)6{GzN6nQYw+Fal50!#x^asjBBR50i`+mho*ttoqV)ubM2KD9S~k7+FR4>{29?6 z{!l6kDdyTN0YJ9LgkPWeXm|gyi@zM3?0@{&pXT12w|78&W-q!RRF)&iLCEZVH<|fR zN0fr2^t8H(>L?>K#>^+jWROLral(Qy-xoBq1U7A&DV||wClb)Otd9?(gZ|8znMF}D zf<1haWz^s0qgecz;RFGt0C-B4g`jNGHsFU+;{<%t65v^sjk^h$lmWn#B0#_)9ij&d z-~lc`A)YYExi^7sBuPM^Y|wA2g*5?`K?#7tzELQYNxGo$UB$4J8RJp1k(8Jj+~hMT zlN~>M@KTTh^--8y3PK_NZ@AC!{PT=CziBzGd+wTJ^@icH!Bd}%)g8V)%K?|c&WTUk zy}qv1C%(fjRoZ4ozC3{O%@5?)XzH35zHns$pgU*Q?fj4v?fp1Qbm+j;3l;9jam9Da zXVcKjPlQ73x78QPu|Ffm6x?`~e3oD=gl=4kYK?={kD5j~QCXU)`HSdduNNENzA*2$ zOm3PzF!lN5e*06-f1Uot67wY#{o-S1!KZ7E=!~7ynnk9_iJR#kFoNbAOT#^2Gd17F zMmvU6>lndZQGd|ax9kUoXXO+$N?|j@6qpsF&_j7YXvwo_C{JpmLw5&#e6k>atv%es z5)7r*Wvv_JkUpT}M!_o!nVlEk1Zbl=a*2hQ*<|%*K1Glj^FcF`6kTzGQ3lz~2tCc@ z&x|tj;aH&1&9HwcJBcT`;{?a+pnej;M1HO(6Z{#J!cZA04hnFl;NXA+&`=7bjW_^o zfC40u3LMG?NdPtwGl>Tq6u}*QG)}-y;)lu-_>ee3kibW(69n0$0Zy!}9rQz%*v1iO zT9_H>99yIrSPYVy6^);rR}7Yo=J_T@hi+qhTZXnVWyf;JDYm5#eYLTxr*?kiNn!+Y zQ+LUkBafNJ#rH#C(?d5^;gw9o#%daEI{mA*LHPIHPU`#|H$hD zwm>0&+kahQ)E#%~k>&5@&#Vg82H?s%71=)(soi@174pi9--2{w{1$}Sz4zGn3Du&x bht0Iza^2ykEt4(epJ78uh5nDlX8(TxzDYwP literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_01/Assets/Square44x44Logo.scale-200.png b/Samples/Tutorials/Tutorial_01/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..ce342a2ec8a61291ba76c54604aea7e9d20af11b GIT binary patch literal 1647 zcmaJ?eM}Q)7(e+G1Q(|`V9JhTI2>MkceK4;p;PR&$Pi?ejk3YQ_3o`S&|W_dsOZ8# zWPTt69g`t$ab`0cj-Y0yiBSOqmd)tG7G(}M5aP0_%&9TijB#&)I{zSE^4@#z^FF`l z`8{8`o%wlL(UI|y2!cdsuVamHH~H86F!*-15em4)NqUpCQM5?aoC_eCf@lV4wvF2a zjDQn1JBL69f&@2M3rvzJcfE!eZ8FZUBlFlC5RD)it33{mF9#B82AiyQE%w)`vlwa> zv{<1sm&kSKK$&%2jSFn7$t&P%%6Ue>R=EAnG8N7fqynWG8L3p!4801a;8{+nliO(qd(jNJ_?+9W3#hLIDLoT6~3fx9=`CC-D}-AMrpEO7HK zt3$GicGPc?GmDjy7K2P@La;eu4!$zWCZ`ym{Z$b zu-O6RM&K4JT|BIZB`E-gxqG%FzanI#+2FFmqHqXG7yxWB=w55RGOM)$xMb(>kSNR z2w=1AZi%z=AmG~yea~XaXJR!v7vLn(RUnELfiB1|6D84ICOS}^Zo2AdN}<&*h}G_u z{xZ!(%>tLT3J3<5XhWy-tg+6)0nmUUENLW8TWA{R6bgVd3X;anYFZ^IRis*_P-C-r z;i>%1^eL3UI2-{w8nuFFcs0e~7J{O2k^~Ce%+Ly4U?|=!0LH=t6()xi<^I-rs+9sF z*q{E-CxZbGPeu#a;XJwE;9S1?#R&uns>^0G3p`hEUF*v`M?@h%T%J%RChmD|EVydq zmHWh*_=S%emRC*mhxaVLzT@>Z2SX0u9v*DIJ@WC^kLVdlGV6LpK$KIrlJqc zpJ921)+3JJdTx|<`G&kXpKkjGJv=76R`yYIQ{#c-`%+`#V(7}Q;&@6U8!Td1`d;?N z_9mnI#?AA}4J!r)LN4!E-@H5eXauuB7TOawS>Y|{-P?NNx-lq+z1W-+y(;39P&&LP zL{N80?&=C*qKmdA^moMZRuPcD!B<*mq$ch=0Cnlitw#txRWhb3%TQvPqjkC`F69G4b! ze7z9MZ#+;_#l?H37UqUhDFb^l&s2{oM$3I0o^Q!yx;;V)QmCMo)Tb_ui|mit8MS?U zm##6$sZZ1$@|s%?l@>4Z<*Q}sRBSKMhb4I{e5LdEhsHIHTe8Bod5c>6QtT>$XgUBz z6MK`kO$=jmt@FqggOhJ5j~e@ygRbG;<{Vu)*+nn9aQeo0;$#j;|MS=S$&L?BeV25z xs3B`@=#`5TF{^6(A1rvdY@|-RtQ|iS5{tyX+wH?;n8E)G$kykv-D^wh{{!TZT%7;_ literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_01/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/Samples/Tutorials/Tutorial_01/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c02ce97e0a802b85f6021e822c89f8bf57d5cd GIT binary patch literal 1255 zcmaJ>TWs4@7*5+{G#S+&C!qC#> zf>5N3P6jO*Cz>ug*(_DmW=)kea&m$gZ^+nyiF`;j%w@}y8)>p*SH}C`m?DXeieF2U zyQHecc_L%Gh!7GMt+hG06y;+|p4>m~}PjA}rKViGiEnn7G0ZO<>G|7q;2?NwGCM3s?eued6%hd$B+ z*kQJ{#~$S=DFE(%=E+UkmlEI*%3llUf~8Ja9YU1Vui0IbGBkW_gHB%Rd&!!ioX zs40O?i9I{};kle7GMvE7(rk`la=gTI)47=>%?q@^iL-nUo3}h4S}N-KHn8t5mVP8w z&bSErwp+37 zNJJ8?a|{r5Q3R0Z5s-LB1WHOwYC@7pCHWND#cL1cZ?{kJ368_*(UDWUDyb<}0y@o# zfMF016iMWPCb6obAxT$JlB6(2DrlXDTB&!0`!m??4F(qWMhjVZo?JXQmz`1*58Z=& zcDmB|S-E@j?BoFGix0flckqdS4jsPNzhfWyWIM98GxcLs89C(~dw%$_t;JjX-SD}E zfiGV;{8Q%8r}w9x>EEigW81>`kvnU@pK)4+xk9@+bNj9L!AAZ@SZ@q|)&BmY3+HZx zul~BeG4|}-;L%cHViQGQX?^zFfO0&#cHwel=d`lH9sJ-@Sl@n*(8J2>%Ac`IxyY?Q z{=GhWvC#gu-~Ia7*n{=+;qM?Ul_wy1+u7ho;=`>EwP^g~R@{unBds`!#@}tluZQpS zm)M~nYEifJWJGx?_6DcTy>#uh%>!H9=hb^(v`=m3F1{L>db=<5_tm+_&knAQ2EU$s Mu9UqpbNZeC0BbUo^Z)<= literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_01/Assets/StoreLogo.png b/Samples/Tutorials/Tutorial_01/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7385b56c0e4d3c6b0efe3324aa1194157d837826 GIT binary patch literal 1451 zcmaJ>eN5D57_Z|bH;{0+1#mbl)eTU3{h)Wf7EZV?;HD@XL@{B`Ui%(2aMxQ~xdXSv z5nzWi(LW)U2=Vc-cY@s7nPt{i0hc6!7xN4NNHI#EQl>YNBy8l4%x9gr_W-j zEZMQmmTIy(>;lblRfh`dIyTgc9W5d!VP$L4(kKrN1c5G~(O_#xG zAJCNTstD^5SeXFB+&$h=ToJP2H>xr$iqPs-#O*;4(!Fjw25-!gEb*)mU}=)J;Iu>w zxK(5XoD0wrPSKQ~rbL^Cw6O_03*l*}i=ydbu7adJ6y;%@tjFeXIXT+ms30pmbOP%Q zX}S;+LBh8Tea~TSkHzvX6$rYb)+n&{kSbIqh|c7hmlxmwSiq5iVhU#iEQ<>a18|O^Sln-8t&+t`*{qBWo5M?wFM(JuimAOb5!K#D}XbslM@#1ZVz_;!9U zpfEpLAOz=0g@bd6Xj_ILi-x^!M}73h^o@}hM$1jflTs|Yuj9AL@A3<-?MV4!^4q`e z)fO@A;{9K^?W?DbnesnPr6kK>$zaKo&;FhFd(GYFCIU^T+OIMb%Tqo+P%oq(IdX7S zf6+HLO?7o0m+p>~Tp5UrXWh!UH!wZ5kv!E`_w)PTpI(#Iw{AS`gH4^b(bm^ZCq^FZ zY9DD7bH}rq9mg88+KgA$Zp!iWncuU2n1AuIa@=sWvUR-s`Qb{R*kk(SPU^`$6BXz8 zn#7yaFOIK%qGxyi`dYtm#&qqox0$h=pNi#u=M8zUG@bpiZ=3sT=1}Trr}39cC)H|v zbL?W)=&s4zrh)7>L(|cc%$1#!zfL?HjpeP%T+x_a+jZ16b^iKOHxFEX$7d|8${H-* zIrOJ5w&i$>*D>AKaIoYg`;{L@jM((Kt?$N$5OnuPqVvq**Nm}(f0wwOF%iX_Pba;V z;m@wxX&NcV3?<1+u?A{y_DIj7#m3Af1rCE)o`D&Y3}0%7E;iX1yMDiS)sh0wKi!36 zL!Wmq?P^Ku&rK~HJd97KkLTRl>ScGFYZNlYytWnhmuu|)L&ND8_PmkayQb{HOY640 bno1(wj@u8DCVuFR|31B*4ek@pZJqxCDDe1x literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_01/Assets/Wide310x150Logo.scale-200.png b/Samples/Tutorials/Tutorial_01/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..288995b397fdbef1fb7e85afd71445d5de1952c5 GIT binary patch literal 3204 zcmbVPeQXow8NYmBd90>}0NP?GhXW~VaeThm=a0tV#EwJMI!)6M3}|c4_Bl3=Kd>G0 z(GHx1wl<7(tP?FsOQkTilSo*iIvF%uArExJ73~P zSv1xEy!U(Wd4A9D`FQV@W3@F^qJ@PEF$@z`Z!*BbFsS(^?B zyiAzJ+q})bkgiQHWqEb*jJD-coHYr1^iocg)l!Qa{Xqs-l~6J}p-|##ZHYofskQ3$ zI0;xzXyhazBeXhIsg5A=%ufo@f)1yy&ScKS0;HF^!r_2UE^lpZEom(+@duma3awTv zCrCL-%D_SvYWIcdHkmI}#50(fkUi)Qgx!80ju>g1za^}ff>JI8Z@^-iCiaCgg@TgF z+vtE?Q9{VQUX&MW9SYYmGcxA14%N2@7FwBTD4N<(2{nWgV8$e3?-F=L^&FrtWn~(U_Q~~^uYiyeY6-KoTnfh9AWz@ zIKje0)u!_Lw)E}G!#kEfwKVdNt(UAf9*f>tEL_(=xco-T%jTi@7YlC3hs2ik%Le0H ztj}RTeCF(5mwvi3_56>-yB?l;J>-1%!9~=fs|QcNG3J~a@JCu`4SB460s0ZO+##4fFUSGLcj_ja^fL4&BKALfb#$6$O?>P@qx2Agl^x0i&ugt zsy5Pyu=()`7HRMG3IB7F1@`_ z+-!J%#i6e^U$e#+C%Q>_qVRzWRsG^W_n+@OcX@vzI&z;mzHNb!GQ?LWA(wtpqHqTM z1OFw_{Zn?fD)p)`c`kOgv{de=v@suGRqY{N^U7gI1VF3*F=obwaXI6ob5__Yn zVTguS!%(NI09J8x#AO_aW!9W7k*UvB;IWDFC3srwftr{kHj%g)fvnAm;&h_dnl~

MY- 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 + + + + + + + + + + + + + + + + + + + + + + diff --git a/Samples/Tutorials/Tutorial_01/MainPage.xaml.cs b/Samples/Tutorials/Tutorial_01/MainPage.xaml.cs new file mode 100644 index 0000000..c9a639d --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/MainPage.xaml.cs @@ -0,0 +1,97 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Core; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 + +namespace Tutorial_01 +{ + ///

+ /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class MainPage : Page + { + public MainPage() + { + this.InitializeComponent(); + + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += MainPage_BackRequested; + } + private void MainPage_BackRequested(object sender, BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + else + { + // Remove the UI from the title bar if in-app back stack is empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Collapsed; + } + } + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= MainPage_BackRequested; + } + private void ButtonPart1_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part1)); + } + + private void ButtonPart2_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part2)); + } + + private void ButtonPart3_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part3)); + } + + private void ButtonPart4_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part4)); + } + + private void ButtonPart5_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part5)); + } + + private void ButtonPart6_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part6)); + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/Package.appxmanifest b/Samples/Tutorials/Tutorial_01/Package.appxmanifest new file mode 100644 index 0000000..3977ebd --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + Tutorial_01 + Pavel + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_01/Properties/AssemblyInfo.cs b/Samples/Tutorials/Tutorial_01/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0f81f01 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tutorial_01")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tutorial_01")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_01/Properties/Default.rd.xml b/Samples/Tutorials/Tutorial_01/Properties/Default.rd.xml new file mode 100644 index 0000000..80a960c --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_01/README.md b/Samples/Tutorials/Tutorial_01/README.md new file mode 100644 index 0000000..bea99c1 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/README.md @@ -0,0 +1,916 @@ +# Tutorial 1: Drawing with Pointing Devices + +This tutorial demonstrates how to draw strokes with WILL SDK using input data from pointing devices. + +It covers basic topics like initialization of the WILL SDK's ink engine, drawing of strokes, input handling, smoothing and preliminary paths. + +The tutorial contains the following parts: + +* [Part 1: Ink Engine Setup](#part-1-ink-engine-setup) +* [Part 2: Building Paths from Pointer Input](#part-2-building-paths-from-pointer-input) +* [Part 3: Smoothing](#part-3-smoothing) +* [Part 4: Preliminary Path](#part-4-preliminary-path) +* [Part 5: Particle Brush](#part-5-particle-brush) +* [Part 6: Translucent Solid Color Brush](#part-6-translucent-solid-color-brush) + +--- +## Part 1: Ink Engine Setup + +The WILL SDK's drawing engine for Windows is based on DirectX 11 and can be integrated with a Windows Store application with the help of a SwapChainPanel. +To add a SwapChainPanel object to a page you have to place a SwapChainPanel element in the page's XAML: + +```csharp + + ... + + + + ... + +``` +A SwapChainPanel instance called DxPanel now exists in the page and we have to associate it with WILL SDK's drawing engine. +For this purpose we create an object of type Graphics (Wacom.Ink.Graphics) and call its Initialize method, passing the DxPanel as a parameter. +This must happen after the DxPanel's ActualWidth and ActualHeight are calculated, for example in the handler of the Page_Loaded event. +Note that it is not appropriate to call Initialize in the page's constructor. + +```csharp + void Page_Loaded(object sender, RoutedEventArgs e) + { + // Create an inking graphics object and associate it with the DX panel + _graphics = new Graphics(); + _graphics.Initialize(this.DxPanel); + ... +``` + +The purpose of a graphics object is to create resources (layers and textures) and to manage the DirectX swap chain. +The pure rendering functionality is implemented by another type, called RenderingContext. +The Graphics object has an associated rendering context and we can obtain a reference to it using the Graphics object's GetRenderingContext method: + +```csharp + // Obtain the rendering context + _renderingContext = _graphics.GetRenderingContext(); +``` + +Layer objects represent surfaces that act as targets for rendering. +For the current example we can use only one layer and it should be the layer that is associated with the DirectX backbuffer. +We can use the following code to obtain a reference to this layer: + +```csharp + // Create a layer associated with the DirectX backbuffer + _backbufferLayer = _graphics.CreateBackbufferLayer(); +``` + +The StrokeRenderer type provides a simple and efficient mechanism for rendering of strokes. +The following code creates and configures an instance of the StrokeRenderer class. + +```csharp + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Init(_graphics, _graphics.Size, _graphics.Scale); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = 4; + _strokeRenderer.Color = Colors.Red; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; +``` + +At this point we are ready to start drawing. +Our goal in this part of the tutorial will be just to clear the screen and draw a static stroke. + +The stroke's path is specified as an array of control points. +Each point has a number of attributes like X position, Y position, Width and Alpha value. +The X / Y coordinates are mandatory, while the others are optional. +All the points passed to a particular DrawStroke call should have the same number of attributes. +For example you cannot mix (X, Y) points with (X, Y, Width) points in the same DrawStroke call. + +The control points are stored as a list of float values (IList). +The attributes of each point are placed in sucessive order in the list, and the same order must be maintained for all points. +In the example below we define 4 control points with their X and Y coordinates: {X:100, Y:120}, {X:200, Y:210}, {X:400, Y:120}, {X:500, Y:400}. +The points array is used to create a Path object. + +```csharp + float[] points = new float[] { 100, 120, 200, 210, 400, 120, 500, 400 }; + + Path path = new Path(points, 2); +``` + +Note that in the Path constructor we set the stride parameter to 2. +The stride is the step between the starting indices of two successive points. +In other words, the stride is the same as the number of point attributes (in this case X and Y). + +The path that we defined doesn't have individual Width values for the points. +An uniform width of 4 will be used for the whole stroke - this was specified earlier throught the StrokeWidth property of the stroke renderer. + +To render the stroke we use the DrawStroke method of the stroke renderer. +The stroke is rendered in an intermediate layer. +The ResetAndClear method should be called every time before a new stroke is started to clear the intermediate layer and reset the object's state. + +```csharp + _strokeRenderer.ResetAndClear(); + _strokeRenderer.DrawStroke(path, 0, path.PointsCount, true); +``` + +We use the SetTarget method to instruct the rendering context to use _backbufferLayer as a rendering target. +The the ClearColor method fills the whole layer with the specified solid color. + +```csharp + // Clear the backbuffer layer + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); +``` + +Now we have to blend the stroke from the stroke renderer to the backbuffer and then present the backbuffer to the screen. + +```csharp + _strokeRenderer.BlendStrokeInLayer(_backbufferLayer, BlendMode.Normal); + + // Present the backbuffer + _graphics.Present(); +``` + +When you run the example you will notice that the first point and the last point are not present in the curve and only one spline segment is drawn (between the second and the third point). +However, if you change the coordinates of the endpoints, you will notice that they affect the curve. +This behavior is normal and is due to the nature of the Catmull-Rom splines that are used internally. + +Above we presented the minimum amount of code that is necessary to display a stroke with WILL SDK. +In a real life application we will need some additional code to handle events that are triggered by the environment. + +For example when the DxPanel is resized we have to recreate the view layer and reinitialize the stroke renderer with the new size of the panel. +We also pass the new size to the graphics object through the SetLogicalSize method. + +```csharp + void DxPanel_SizeChanged(object sender, SizeChangedEventArgs e) + { + if (_renderingContext == null) + return; + + // Release existing layers + _renderingContext.SetTarget(null); + _strokeRenderer.Deinit(); + _backbufferLayer.Dispose(); + + // Set the new size + _graphics.SetLogicalSize(e.NewSize); + + // Recreate the layers + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + + _strokeRenderer.Init(_graphics, _graphics.Size, _graphics.Scale); + + ... + } +``` + +When the app is being suspended, the Trim method of the graphics should be called in order to free graphics memory allocated on the app's behalf. + +```csharp +public Part1() + { + ... + + Application.Current.Suspending += App_Suspending; + + ... + } + + void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) + { + if (_graphics != null) + { + _graphics.Trim(); + } + } +``` + +For more information on the Trim method you can visit: IDXGIDevice3::Trim. + +Another event that should be handled is DisplayInformation.DisplayContentsInvalidated. +It occurs when the display requires redrawing and we have to call the ValidateDevice in response. + +```csharp + public Part1() + { + ... + + DisplayInformation.DisplayContentsInvalidated += DisplayInformation_DisplayContentsInvalidated; + + ... + } + + void DisplayInformation_DisplayContentsInvalidated(DisplayInformation sender, object args) + { + if (_graphics != null) + { + _graphics.ValidateDevice(); + } + } +``` + +For more information on this event, please see: *DisplayInformation.DisplayContentsInvalidated*. + +Note that the objects from WILL SDK implement IDisposable and you have to dispose them when they are no longer necessary. + +--- +## Part 2: Building Paths from Pointer Input + +This part demonstrates how to draw strokes interactively while receiving input points from mouse, touch or pen/stylus. + +It is assumed that you have basic knowledge of Windows Runtime user interactions and in particular pointer input. +The following MSDN article may help you get acquainted with the topic: + +http://msdn.microsoft.com/en-us/library/windows/apps/xaml/jj150606.aspx + +We already know how to draw a stroke using a predefined path of control points. +Now we need to build the path "on the fly" from points that are supplied in the pointer events. +For this purpose we create a path builder object (in this case a SpeedPathBuilder) and configure it to produce paths with variable width depending on the pointer's velocity. +We also create a StrokeRenderer and set its StrokeWidth property to null, which means that it should use the variable width provided by the path. + +```csharp + void CreateWacomInkObjects() + { + // Create a graphics object + _graphics = new Graphics(); + + // Create a path builder + _pathBuilder = new SpeedPathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(100.0f, 4000.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 2.0f, 30.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.Color = Colors.Crimson; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + } +``` + +The rendering initialization is placed in the event handler of the Page's Loaded event and is similar to the previous part of the tutorial. +The notable difference is that now we create a second layer (_strokesLayer) that will store the output for the current stroke. +Whenever new input points arrive, we will draw the new portions of the stroke in this layer. + +```csharp +The _strokesLayer will be cleared only when a new stroke begins. + void Page_Loaded(object sender, RoutedEventArgs e) + { + InitInkRendering(); + + ... + } + + void InitInkRendering() + { + _graphics.Initialize(this.DxPanel); + _renderingContext = _graphics.GetRenderingContext(); + + InitSizeDependentResources(); + } + + void InitSizeDependentResources() + { + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + _strokeLayer = _graphics.CreateLayer(canvasSize, scale); + _strokeRenderer.Init(_graphics, canvasSize, scale); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + _graphics.Present(); + } +``` + +Handling of pointer events can be implemented in various ways, depending on the particular requirements of the application. +In our case we use a basic implementation that receives input from a single pointer and builds a path using the input points. +The same approach is used in all tutorials, regardless of whether the path is rendered as a stroke or used for manipulations. + +We will handle the following pointer events: + +```csharp + void Page_Loaded(object sender, RoutedEventArgs e) + { + ... + + // Attach to swap chain panel events + this.DxPanel.PointerPressed += DxPanel_PointerPressed; + this.DxPanel.PointerMoved += DxPanel_PointerMoved; + this.DxPanel.PointerReleased += DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost += DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled += DxPanel_PointerCanceled; + + ... + } + + void DxPanel_PointerPressed(object sender, PointerRoutedEventArgs e) + { + OnPointerInputBegin(e); + } + + void DxPanel_PointerMoved(object sender, PointerRoutedEventArgs e) + { + OnPointerInputMove(e); + } + + void DxPanel_PointerReleased(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCanceled(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCaptureLost(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } +``` +Whenever a new stroke begins we store the pressed pointer's Id in a nullable field called _pointerId. +This variable helps us filter out unwanted pointer events. +There are two state variables that are related to path building: _updateFromIndex and _pathFinished. +Both of them are reset to their initial values. + +For this tutorial we want to see just the current stroke, so we clear the _strokesLayer in OnPointerInputBegin. +We add the current point to the path with the AddCurrentPointToPathBuilder method and then call Render to update the display. + +```csharp + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + // Capture the pointer and store its Id + this.DxPanel.CapturePointer(e.Pointer); + _pointerId = e.Pointer.PointerId; + + // Reset the state related to path building + _updateFromIndex = -1; + _pathFinished = false; + + // Reset the stroke renderer + _strokeRenderer.ResetAndClear(); + + // Clear the scene + _renderingContext.SetTarget(_strokeLayer); + _renderingContext.ClearColor(_backgroundColor); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Begin, e); + + // Draw the scene + Render(); + } +``` + +The AddCurrentPointToPathBuilder method is the place where path building happens. +For each new point we first call the path builder's AddPoint method which returns a path part and then we call AddPathPart, passing the path part returned by AddPoint. +These two steps allow for additional processing to occur in between. +Note that AddPoint needs to know the current phase of the path building. +You should pass InputPhase.Begin when the stroke starts, then keep passing InputPhase.Move while the stroke continues and finally pass InputPhase.End when the stroke ends. + +```csharp + void AddCurrentPointToPathBuilder(InputPhase phase, PointerRoutedEventArgs e) + { + PointerPoint pointerPoint = e.GetCurrentPoint(this.DxPanel); + + Path pathPart = _pathBuilder.AddPoint(phase, pointerPoint); + + if (pathPart.PointsCount > 0) + { + int indexOfFirstAffectedPoint; + _pathBuilder.AddPathPart(pathPart, out indexOfFirstAffectedPoint); + + if (_updateFromIndex == -1) + { + _updateFromIndex = indexOfFirstAffectedPoint; + } + } + } +``` + +The AddPathPart method adds the new path part to the current path. +Each time we need to Draw only the latest part of the path. +For this purpose in the _updateFromIndex field we store the index from where we should start to draw. +After we Draw the new portion of the path (in the Render method), we will set _updateFromIndex to -1, meaning that the path is fully updated and no part of it should be rendered. + +The handling of the pointer's move event is much simpler. +First we check whether the event is from the pointer that we are following, then we add the current point to the path and render the scene. + +```csharp + void OnPointerInputMove(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Move, e); + + // Draw the scene + Render(); + } +``` + +When the pointer is released or cancelled, we set the _pointerId to null and release the capture. +We add the final point to the path, set the _pathFinished flag to true and call Render to update the display. + +```csharp + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Reset the stored id and release the pointer capture + _pointerId = null; + this.DxPanel.ReleasePointerCapture(e.Pointer); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.End, e); + + _pathFinished = true; + + // Draw the scene + Render(); + } +``` + +In the Render method every time we need to draw only the last few path points that have been affected by the path building process - this is the portion from _updateFromIndex to the end of the path. +We call the DrawStroke method specifying _updateFromIndex as the index of the first point to be rendered. +After that we reset the _updateFromIndex field to -1 to indicate that all available path points have been rendered. + +```csharp + void Render() + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + _updateFromIndex = -1; + + ... +``` +At this point the stroke is rendered in an intermediate layer of the stroke renderer and we have to blend it to the _strokeLayer. +For performance reasons we don't want to blend the whole stroke, but only the recently updated part of it. +For this purpose we first have to recompose the scene behind the bounding rectangle of the recent path part - in our case this is as simple as clearing the rectangle with the background color. +Then we use BlendStrokeUpdatedAreaInLayer to blend the latest portion of the stroke to the _strokesLayer. + +Finally the whole _strokesLayer is copied to _backbufferLayer and the scene is presented to the screen. + +```csharp + ... + + // recompose the scene within the updated area + _renderingContext.SetTarget(_strokeLayer, _strokeRenderer.UpdatedRect); + _renderingContext.ClearColor(_backgroundColor); + + // draw the new stroke part + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_strokeLayer, BlendMode.Normal); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_strokeLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } +``` +--- +# Part 3: Smoothing +You might have noticed that the strokes drawn in the previous part are looking somewhat jagged. +This effect is caused by the uneven input data that comes from the pointers. +It is more noticeable with some input devices and less noticeable with others, but in all cases is undesired. + +WILL SDK provides a way to make the strokes look smoother by applying a smoothing filter to the points. +This functionality is implemented by the MultiChannelSmoothener class. +As its name suggests, it can smooth multiple channels of data, which means that it can work directly with the path parts that are returned by the path builder. +The attributes of the control points (X, Y, Width, Alpha) are treated as separate channels and are processed independently from each other. + +Normally we create a MultiChannelSmoothener instance after the path builder is created and configured. +Thus we can obtain the stride from the path builder and pass it to the MultiChannelSmoothener's constructor as number of channels. + +```csharp + void CreateWacomInkObjects() + { + ... + + // Create a path builder + _pathBuilder = new SpeedPathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(100.0f, 4000.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 2.0f, 30.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create an object that smooths input data + _smoothener = new MultiChannelSmoothener(_pathBuilder.PathStride); + + ... + } +``` + +Two more steps remain to complete the integration of the smoothener with the existing code. + +First we have to reset the smoothener each time when a new stroke is started: + +```csharp + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + ... + + // Reset the smoother + _smoothener.Reset(); + + ... + } +``` + +The second step is to call the Smooth method to process the path parts that are returned from the _pathBuilder's AddPoint method. +After that the smoothed parts are passed to AddPathPart. +Note that the Smooth methods's second parameter is a boolean value that specifies whether the path should be finished. +This parameter must be set to true only for the last part of a path. + +```csharp + void AddCurrentPointToPathBuilder(InputPhase phase, PointerRoutedEventArgs e) + { + PointerPoint pointerPoint = e.GetCurrentPoint(this.DxPanel); + + Path pathPart = _pathBuilder.AddPoint(phase, pointerPoint); + + if (pathPart.PointsCount > 0) + { + _smoothener.Smooth(pathPart, phase == InputPhase.End); + + int indexOfFirstAffectedPoint; + _pathBuilder.AddPathPart(pathPart, out indexOfFirstAffectedPoint); + + if (_updateFromIndex == -1) + { + _updateFromIndex = indexOfFirstAffectedPoint; + } + } + } +``` + +At this point the strokes should look better, but you might notice that they are now lagging behind the pointer. +This is an inevitable result of the smoothing process, but the next part will explain how to work around this issue. + +--- +## Part 4: Preliminary Path +As we saw in the previous part, smoothing causes the stroke to lag behind the pointer. +We can work around this issue by drawing a curve from the last path point to the pointer's current location. +We call this curve "preliminary path". +It acts as a kind of prediction for the trajectory of the real path and might prove wrong, especially if the stroke makes a sharp turn. +We have to make sure that the preliminary path is displayed only temporarily and is replaced by the real path once it is available. + +To integrate preliminary path rendering in our example, we have to extend the Render method from Part 3. +We will insert the new piece of code after the call to DrawStroke. +We use the pathbuilder's CreatePreliminaryPath method to create a preliminary path. +After that we smooth it with the Smooth method of the multi-channel smoothener. +It is important that Smooth is called with its finish parameter set to true to indicate that the smoothing should be finished. +We pass the smoothed part to FinishPreliminaryPath to make it ready for rendering. +We call the _strokeRenderer's DrawPreliminaryStroke to draw the preliminary path in an intermediate layer. + +```csharp + void Render(bool drawPreliminaryPath) + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + _updateFromIndex = -1; + + // draw preliminary path + if (drawPreliminaryPath && !_pathFinished) + { + Path prelimPathPart = _pathBuilder.CreatePreliminaryPath(); + + if (prelimPathPart.PointsCount > 0) + { + _smoothener.Smooth(prelimPathPart, true); + + Path preliminaryPath = _pathBuilder.FinishPreliminaryPath(prelimPathPart); + + _strokeRenderer.DrawPreliminaryStroke(preliminaryPath, 0, preliminaryPath.PointsCount); + } + } + + // recompose the scene within the updated area + _renderingContext.SetTarget(_strokeLayer, _strokeRenderer.UpdatedRect); + _renderingContext.ClearColor(_backgroundColor); + + // draw + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_strokeLayer, BlendMode.Normal); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_strokeLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } +``` + +The rest of the Render method remains the same as in the previous tutorial. +The BlendStrokeUpdatedAreaInLayer blends the recent stroke part to the _strokeLayer, but now includes the preliminary stroke. + +--- +# Part 5: Particle Brush + +In the previous examples we have used a brush that fills the stroke with a solid color. +WILL SDK provides another type of brush, called particle brush, that uses textures to produce various visual effects and add some artistic touch to the strokes. +Basically particle brushes draw large number of small textures scattered along the stroke's trajectory. +Note that drawing with this kind of brush comes at a certain cost, because it is more computationally expensive. + +We have to make a few changes in our code in order to start using a particle brush. +First of all we have to replace the SolidColorBrush object with an instance of the ParticleBrush type. + +```csharp + void CreateWacomInkObjects() + { + // Create a graphics object + _graphics = new Graphics(); + + // Create a path builder + _pathBuilder = new PressurePathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(0.0f, 1.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 10.0f, 40.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + _pathBuilder.SetPropertyConfig(PropertyName.Alpha, 0.08f, 0.9f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create an object that smooths input data + _smoothener = new MultiChannelSmoothener(_pathBuilder.PathStride); + + // Create a particle brush + _brush = new ParticleBrush(); + _brush.BlendMode = BlendMode.Normal; + _brush.Spacing = 0.15f; + _brush.Scattering = 0.05f; + _brush.RotationMode = ParticleRotationMode.RotateRandom; + _brush.FillTileSize = new Size(128.0f, 128.0f); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = _brush; + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.Color = Colors.DarkOrange; + _strokeRenderer.UseVariableAlpha = true; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + } +``` + +The particle brush provides various settings that control the appearance of the stroke. +In particular in this example we set the spacing between the images to be 15% (0.15) of their width, and specify that they will spread out randomly a bit (Scattering = 0.05). +Random rotation of the images is also enabled. + +Note that we have changed the type of the path builder to PressurePathBuilder. +It will calculate path attributes like width and alpha based on the amount of pressure applied to the input device. + +Note that we have added a new setting to the configuration of the path builder: + +```csharp + _pathBuilder.SetPropertyConfig(PropertyName.Alpha, 0.08f, 0.9f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); +``` + +This code makes the transparency of the stroke dependent on the pointer's pressure. +It is not mandatory to enable this feature when using a particle brush. + +After the renderer is initialized we have to assign shape and fill textures to the brush. +This brush will draw a large number of small images (shape.png) along the path. +The stroke will be filled by tiling the image in fill.png. + +```csharp + async Task LoadBrushTextures() + { + PixelData fillPixelData = await GetPixelData(new Uri(@"ms-appx:///Assets/fill.png")); + _brush.FillTexture = _graphics.CreateTexture(fillPixelData); + + PixelData shapePixelData = await GetPixelData(new Uri("ms-appx:///Assets/shape.png")); + _brush.ShapeTexture = _graphics.CreateTexture(shapePixelData); + } +``` + +The GetPixelData method used above is a utility that loads an image from a resource into a PixelData object. +The graphics object has the ability to create textures from PixelData objects. + +```csharp + static async Task GetPixelData(Uri uri) + { + StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(uri); + + using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read)) + { + BitmapDecoder decoder = await BitmapDecoder.CreateAsync(fileStream); + + PixelDataProvider provider = await decoder.GetPixelDataAsync( + BitmapPixelFormat.Bgra8, + BitmapAlphaMode.Premultiplied, + new BitmapTransform(), + ExifOrientationMode.IgnoreExifOrientation, + ColorManagementMode.DoNotColorManage); + + var buffer = provider.DetachPixelData().AsBuffer(); + + return new PixelData(buffer, decoder.PixelWidth, decoder.PixelHeight); + } + } +``` + +The code that renders the stroke remains the same as in the previous part of the tutorial. + +--- +# Part 6: Translucent Solid Color Brush + +The solid color brush does not support variable alpha values, but can be used to translucent strokes with an uniform alpha value. + +In order to demonstrate this feature properly we have to draw multiple strokes and leave them on the screen. +This way the effect of transluceny will be visible when the new strokes are overlapping the previous ones. + +The code in this tutorial is based on the code from Part 4. +Some changes are necessary in order to implement the new scenario. + +We want to have multiple strokes on the screen at the same time. +Instead of a layer that keeps the current stroke we will use two layers: one that will store the whole scene (_sceneLayer), and another one that will store all the strokes except the current one (_allStrokesLayer). + +```csharp + private Layer _sceneLayer; + private Layer _allStrokesLayer; +``` + +Each stroke will have a different color, so there is no need to set the _strokeRenderer's Color property in advance. Following is the stroke renderer's configuration: + +```csharp + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; +``` + +The initialization code has not changed much, we initialize the stroke renderer, create the necessary layers and clear them. + +```csharp + void InitSizeDependentResources() + { + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + _sceneLayer = _graphics.CreateLayer(canvasSize, scale); + _allStrokesLayer = _graphics.CreateLayer(canvasSize, scale); + _strokeRenderer.Init(_graphics, canvasSize, scale); + + _renderingContext.SetTarget(_allStrokesLayer); + _renderingContext.ClearColor(_backgroundColor); + + _renderingContext.SetTarget(_sceneLayer); + _renderingContext.ClearColor(_backgroundColor); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + _graphics.Present(); + } +``` + +When a new stroke starts from user input, we set a new random color to the stroke renderer. +Note that the _allStrokesLayer and the _sceneLayer are not cleared in OnPointerInputBegin, because we want the previous strokes to remain on the screen. + +```csharp + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + // Capture the pointer and store its Id + this.DxPanel.CapturePointer(e.Pointer); + _pointerId = e.Pointer.PointerId; + + // Reset the state related to path building + _updateFromIndex = -1; + _pathFinished = false; + + // Reset the smoothener + _smoothener.Reset(); + + // Reset the stroke renderer + _strokeRenderer.ResetAndClear(); + + // Set a random color for the new stroke + _strokeRenderer.Color = GetRandomColor(); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Begin, e); + + // Draw the scene + Render(); + } +``` + +When the stroke is finished, we blend the rendered stroke from the stroke renderer to the _allStrokesLayer and we add the corresponding stroke object to the list of strokes. + +```csharp + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Reset the stored id and release the pointer capture + _pointerId = null; + this.DxPanel.ReleasePointerCapture(e.Pointer); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.End, e); + + _pathFinished = true; + + // Draw the scene + Render(); + + // Blend the current stroke into the current stroke layer + _strokeRenderer.BlendStrokeInLayer(_allStrokesLayer, BlendMode.Normal); + } +``` + +The rendering has to be changed to support multiple strokes. +In order to recompose the scene within the updated rectangle we need to copy the rectangle from the _allStrokesLayer. + +```csharp + void Render() + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + // reset the starting index + _updateFromIndex = -1; + + // draw preliminary path + if (!_pathFinished) + { + Path prelimPathPart = _pathBuilder.CreatePreliminaryPath(); + + if (prelimPathPart.PointsCount > 0) + { + _smoothener.Smooth(prelimPathPart, true); + + Path preliminaryPath = _pathBuilder.FinishPreliminaryPath(prelimPathPart); + + _strokeRenderer.DrawPreliminaryStroke(preliminaryPath, 0, preliminaryPath.PointsCount); + } + } + + // recompose the scene within the updated area + Rect updatedRect = _strokeRenderer.UpdatedRect; + Point destLocation = new Point(updatedRect.X, updatedRect.Y); + + // draw background and previous strokes + _renderingContext.SetTarget(_sceneLayer); + _renderingContext.DrawLayer(_allStrokesLayer, updatedRect, destLocation, BlendMode.None); + + // draw the new part + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_sceneLayer, BlendMode.Normal); + + // copy to backbuffer and present + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_sceneLayer, null, BlendMode.None); + _graphics.Present(); + } +``` + +--- diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01.csproj b/Samples/Tutorials/Tutorial_01/Tutorial_01.csproj new file mode 100644 index 0000000..12e5ffb --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01.csproj @@ -0,0 +1,192 @@ + + + + + Debug + x86 + {4160571F-3B97-4D7B-916D-B2BCDB1013EC} + AppContainerExe + Properties + Tutorial_01 + Tutorial_01 + en-US + UAP + 10.0.14393.0 + 10.0.10586.0 + 14 + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Tutorial_01_TemporaryKey.pfx + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + + + + + + App.xaml + + + MainPage.xaml + + + + Tutorial_01_Part_1.xaml + + + Tutorial_01_Part_2.xaml + + + Tutorial_01_Part_3.xaml + + + Tutorial_01_Part_4.xaml + + + Tutorial_01_Part_5.xaml + + + Tutorial_01_Part_6.xaml + + + + + Designer + + + + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + Microsoft Visual C++ 2013 Runtime Package for Windows + + + WILL Ink 2.0 + + + + 14.0 + + + + \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01.csproj.user b/Samples/Tutorials/Tutorial_01/Tutorial_01.csproj.user new file mode 100644 index 0000000..b3dcca2 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01.csproj.user @@ -0,0 +1,7 @@ + + + + 30F105C9-681E-420b-A277-7C086EAD8A4E + true + + \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml new file mode 100644 index 0000000..81001e0 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml.cs b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml.cs new file mode 100644 index 0000000..0bb4393 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_1.xaml.cs @@ -0,0 +1,187 @@ +using System; +using Wacom.Ink; +using Windows.Foundation; +using Windows.Graphics.Display; +using Windows.UI; +using Windows.UI.Core; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 + +namespace Tutorial_01 +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class Part1 : Page + { + #region Fields + + private Color _backgroundColor = Colors.Honeydew; + + private Graphics _graphics; + private RenderingContext _renderingContext; + private StrokeRenderer _strokeRenderer; + private Layer _backbufferLayer; + + #endregion + + public Part1() + { + this.InitializeComponent(); + + // Attach to events + this.Loaded += Page_Loaded; + this.Unloaded += Page_Unloaded; + Application.Current.Suspending += App_Suspending; + DisplayInformation.DisplayContentsInvalidated += DisplayInformation_DisplayContentsInvalidated; + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += Part1_BackRequested; + } + + private void Part1_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= Part1_BackRequested; + } + + void Page_Loaded(object sender, RoutedEventArgs e) + { + // Create an inking graphics object and associate it with the DX panel + _graphics = new Graphics(); + _graphics.Initialize(this.DxPanel); + + // Obtain the rendering context + _renderingContext = _graphics.GetRenderingContext(); + + // Create a layer associated with the DirectX backbuffer + _backbufferLayer = _graphics.CreateBackbufferLayer(); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Init(_graphics, _graphics.Size, _graphics.Scale); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = 4; + _strokeRenderer.Color = Colors.Red; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + + // Draw a static stroke + DrawStaticStroke(); + + // Attach to swap chain panel events + this.DxPanel.SizeChanged += DxPanel_SizeChanged; + } + + void Page_Unloaded(object sender, RoutedEventArgs e) + { + SafeDispose(_backbufferLayer); + SafeDispose(_renderingContext); + SafeDispose(_graphics); + + _backbufferLayer = null; + _renderingContext = null; + _graphics = null; + + // Detach from swap chain panel events + this.DxPanel.SizeChanged -= DxPanel_SizeChanged; + } + + void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) + { + if (_graphics != null) + { + _graphics.Trim(); + } + } + + void DisplayInformation_DisplayContentsInvalidated(DisplayInformation sender, object args) + { + if (_graphics != null) + { + _graphics.ValidateDevice(); + } + } + + void DxPanel_SizeChanged(object sender, SizeChangedEventArgs e) + { + if (_renderingContext == null) + return; + + // Release existing layers + _renderingContext.SetTarget(null); + _strokeRenderer.Deinit(); + _backbufferLayer.Dispose(); + + // Set the new size + _graphics.SetLogicalSize(e.NewSize); + + // Recreate the layers + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + + _strokeRenderer.Init(_graphics, _graphics.Size, _graphics.Scale); + + DrawStaticStroke(); + } + + void DrawStaticStroke() + { + float[] points = new float[] { 100, 120, 200, 210, 400, 120, 500, 400 }; + + Path path = new Path(points, 2, PathFormat.XY); + + _strokeRenderer.ResetAndClear(); + _strokeRenderer.DrawStroke(path, 0, path.PointsCount, true); + + // Clear the backbuffer layer + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + + _strokeRenderer.BlendStrokeInLayer(_backbufferLayer, BlendMode.Normal); + + // Present the backbuffer + _graphics.Present(); + } + + void SafeDispose(object obj) + { + IDisposable disposable = obj as IDisposable; + + if (disposable != null) + { + disposable.Dispose(); + } + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml new file mode 100644 index 0000000..009fd21 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml.cs b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml.cs new file mode 100644 index 0000000..c823f82 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_2.xaml.cs @@ -0,0 +1,348 @@ +using System; +using Wacom.Ink; +using Windows.Foundation; +using Windows.Graphics.Display; +using Windows.UI; +using Windows.UI.Core; +using Windows.UI.Input; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 + +namespace Tutorial_01 +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class Part2 : Page + { + #region Fields + + private Color _backgroundColor = Colors.Honeydew; + private uint? _pointerId; + private int _updateFromIndex; + private bool _pathFinished; + + private Graphics _graphics; + private RenderingContext _renderingContext; + private StrokeRenderer _strokeRenderer; + private Layer _backbufferLayer; + private Layer _strokeLayer; + private SpeedPathBuilder _pathBuilder; + + #endregion + + public Part2() + { + this.InitializeComponent(); + + // Attach to events + this.Loaded += Page_Loaded; + this.Unloaded += Page_Unloaded; + Application.Current.Suspending += App_Suspending; + DisplayInformation.DisplayContentsInvalidated += DisplayInformation_DisplayContentsInvalidated; + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += Part2_BackRequested; + + CreateWacomInkObjects(); + } + + private void Part2_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= Part2_BackRequested; + } + + void Page_Loaded(object sender, RoutedEventArgs e) + { + InitInkRendering(); + + // Attach to swap chain panel events + this.DxPanel.SizeChanged += DxPanel_SizeChanged; + this.DxPanel.PointerPressed += DxPanel_PointerPressed; + this.DxPanel.PointerMoved += DxPanel_PointerMoved; + this.DxPanel.PointerReleased += DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost += DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled += DxPanel_PointerCanceled; + } + + void Page_Unloaded(object sender, RoutedEventArgs e) + { + DisposeWacomInkObjects(); + + // Detach from swap chain panel events + this.DxPanel.SizeChanged -= DxPanel_SizeChanged; + this.DxPanel.PointerPressed -= DxPanel_PointerPressed; + this.DxPanel.PointerMoved -= DxPanel_PointerMoved; + this.DxPanel.PointerReleased -= DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost -= DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled -= DxPanel_PointerCanceled; + } + + void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) + { + if (_graphics != null) + { + _graphics.Trim(); + } + } + + void DisplayInformation_DisplayContentsInvalidated(DisplayInformation sender, object args) + { + if (_graphics != null) + { + _graphics.ValidateDevice(); + } + } + + #region DxPanel Event Handlers + + void DxPanel_PointerPressed(object sender, PointerRoutedEventArgs e) + { + OnPointerInputBegin(e); + } + + void DxPanel_PointerMoved(object sender, PointerRoutedEventArgs e) + { + OnPointerInputMove(e); + } + + void DxPanel_PointerReleased(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCanceled(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCaptureLost(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_SizeChanged(object sender, SizeChangedEventArgs e) + { + if (_renderingContext == null) + return; + + // release existing layers + _renderingContext.SetTarget(null); + _strokeRenderer.Deinit(); + _strokeLayer.Dispose(); + _backbufferLayer.Dispose(); + + // set the new size + _graphics.SetLogicalSize(e.NewSize); + + // recreate the layers + InitSizeDependentResources(); + } + + #endregion + + void CreateWacomInkObjects() + { + // Create a graphics object + _graphics = new Graphics(); + + // Create a path builder + _pathBuilder = new SpeedPathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(100.0f, 4000.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 2.0f, 30.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.Color = Colors.Crimson; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + } + + void InitInkRendering() + { + _graphics.Initialize(this.DxPanel); + _renderingContext = _graphics.GetRenderingContext(); + + InitSizeDependentResources(); + } + + void InitSizeDependentResources() + { + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + _strokeLayer = _graphics.CreateLayer(canvasSize, scale); + _strokeRenderer.Init(_graphics, canvasSize, scale); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + _graphics.Present(); + } + + void DisposeWacomInkObjects() + { + SafeDispose(_pathBuilder); + SafeDispose(_strokeLayer); + SafeDispose(_backbufferLayer); + SafeDispose(_renderingContext); + SafeDispose(_graphics); + + _pathBuilder = null; + _strokeLayer = null; + _backbufferLayer = null; + _renderingContext = null; + _graphics = null; + } + + void SafeDispose(object obj) + { + IDisposable disposable = obj as IDisposable; + + if (disposable != null) + { + disposable.Dispose(); + } + } + + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + // Capture the pointer and store its Id + this.DxPanel.CapturePointer(e.Pointer); + _pointerId = e.Pointer.PointerId; + + // Reset the state related to path building + _updateFromIndex = -1; + _pathFinished = false; + + // Reset the stroke renderer + _strokeRenderer.ResetAndClear(); + + // Clear the scene + _renderingContext.SetTarget(_strokeLayer); + _renderingContext.ClearColor(_backgroundColor); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Begin, e); + + // Draw the scene + Render(); + } + + void OnPointerInputMove(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Move, e); + + // Draw the scene + Render(); + } + + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Reset the stored id and release the pointer capture + _pointerId = null; + this.DxPanel.ReleasePointerCapture(e.Pointer); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.End, e); + + _pathFinished = true; + + // Draw the scene + Render(); + } + + void AddCurrentPointToPathBuilder(InputPhase phase, PointerRoutedEventArgs e) + { + PointerPoint pointerPoint = e.GetCurrentPoint(this.DxPanel); + + Path pathPart = _pathBuilder.AddPoint(phase, pointerPoint); + + if (pathPart.PointsCount > 0) + { + int indexOfFirstAffectedPoint; + _pathBuilder.AddPathPart(pathPart, out indexOfFirstAffectedPoint); + + if (_updateFromIndex == -1) + { + _updateFromIndex = indexOfFirstAffectedPoint; + } + } + } + + void Render() + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + _updateFromIndex = -1; + + // recompose the scene within the updated area + _renderingContext.SetTarget(_strokeLayer, _strokeRenderer.UpdatedRect); + _renderingContext.ClearColor(_backgroundColor); + + // draw the new stroke part + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_strokeLayer, BlendMode.Normal); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_strokeLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml new file mode 100644 index 0000000..b1026bf --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml.cs b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml.cs new file mode 100644 index 0000000..8ce21e6 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_3.xaml.cs @@ -0,0 +1,360 @@ +using System; +using Wacom.Ink; +using Wacom.Ink.Smoothing; +using Windows.Foundation; +using Windows.Graphics.Display; +using Windows.UI; +using Windows.UI.Core; +using Windows.UI.Input; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 + +namespace Tutorial_01 +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class Part3 : Page + { + #region Fields + + private Color _backgroundColor = Colors.Honeydew; + private uint? _pointerId; + private int _updateFromIndex; + private bool _pathFinished; + + private Graphics _graphics; + private RenderingContext _renderingContext; + private StrokeRenderer _strokeRenderer; + private Layer _backbufferLayer; + private Layer _strokeLayer; + private SpeedPathBuilder _pathBuilder; + private MultiChannelSmoothener _smoothener; + + #endregion + + public Part3() + { + this.InitializeComponent(); + + // Attach to events + this.Loaded += Page_Loaded; + this.Unloaded += Page_Unloaded; + Application.Current.Suspending += App_Suspending; + DisplayInformation.DisplayContentsInvalidated += DisplayInformation_DisplayContentsInvalidated; + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += Part3_BackRequested; + + CreateWacomInkObjects(); + } + + private void Part3_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= Part3_BackRequested; + } + + void Page_Loaded(object sender, RoutedEventArgs e) + { + InitInkRendering(); + + // Attach to swap chain panel events + this.DxPanel.SizeChanged += DxPanel_SizeChanged; + this.DxPanel.PointerPressed += DxPanel_PointerPressed; + this.DxPanel.PointerMoved += DxPanel_PointerMoved; + this.DxPanel.PointerReleased += DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost += DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled += DxPanel_PointerCanceled; + } + + void Page_Unloaded(object sender, RoutedEventArgs e) + { + DisposeWacomInkObjects(); + + // Detach from swap chain panel events + this.DxPanel.SizeChanged -= DxPanel_SizeChanged; + this.DxPanel.PointerPressed -= DxPanel_PointerPressed; + this.DxPanel.PointerMoved -= DxPanel_PointerMoved; + this.DxPanel.PointerReleased -= DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost -= DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled -= DxPanel_PointerCanceled; + } + + void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) + { + if (_graphics != null) + { + _graphics.Trim(); + } + } + + void DisplayInformation_DisplayContentsInvalidated(DisplayInformation sender, object args) + { + if (_graphics != null) + { + _graphics.ValidateDevice(); + } + } + + #region DxPanel Event Handlers + + void DxPanel_PointerPressed(object sender, PointerRoutedEventArgs e) + { + OnPointerInputBegin(e); + } + + void DxPanel_PointerMoved(object sender, PointerRoutedEventArgs e) + { + OnPointerInputMove(e); + } + + void DxPanel_PointerReleased(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCanceled(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCaptureLost(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_SizeChanged(object sender, SizeChangedEventArgs e) + { + if (_renderingContext == null) + return; + + // release existing layers + _renderingContext.SetTarget(null); + _strokeRenderer.Deinit(); + _strokeLayer.Dispose(); + _backbufferLayer.Dispose(); + + // set the new size + _graphics.SetLogicalSize(e.NewSize); + + // recreate the layers + InitSizeDependentResources(); + } + + #endregion + + void CreateWacomInkObjects() + { + // Create a graphics object + _graphics = new Graphics(); + + // Create a path builder + _pathBuilder = new SpeedPathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(100.0f, 4000.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 2.0f, 30.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create an object that smooths input data + _smoothener = new MultiChannelSmoothener(_pathBuilder.PathStride); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.Color = Colors.HotPink; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + } + + void InitInkRendering() + { + _graphics.Initialize(this.DxPanel); + _renderingContext = _graphics.GetRenderingContext(); + + InitSizeDependentResources(); + } + + void InitSizeDependentResources() + { + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + _strokeLayer = _graphics.CreateLayer(canvasSize, scale); + _strokeRenderer.Init(_graphics, canvasSize, scale); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + _graphics.Present(); + } + + void DisposeWacomInkObjects() + { + SafeDispose(_pathBuilder); + SafeDispose(_smoothener); + SafeDispose(_strokeLayer); + SafeDispose(_backbufferLayer); + SafeDispose(_renderingContext); + SafeDispose(_graphics); + + _pathBuilder = null; + _smoothener = null; + _strokeLayer = null; + _backbufferLayer = null; + _renderingContext = null; + _graphics = null; + } + + void SafeDispose(object obj) + { + IDisposable disposable = obj as IDisposable; + + if (disposable != null) + { + disposable.Dispose(); + } + } + + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + // Capture the pointer and store its Id + this.DxPanel.CapturePointer(e.Pointer); + _pointerId = e.Pointer.PointerId; + + // Reset the state related to path building + _updateFromIndex = -1; + _pathFinished = false; + + // Reset the smoothener + _smoothener.Reset(); + + // Reset the stroke renderer + _strokeRenderer.ResetAndClear(); + + // Clear the scene + _renderingContext.SetTarget(_strokeLayer); + _renderingContext.ClearColor(_backgroundColor); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Begin, e); + + // Draw the scene + Render(); + } + + void OnPointerInputMove(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Move, e); + + // Draw the scene + Render(); + } + + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Reset the stored id and release the pointer capture + _pointerId = null; + this.DxPanel.ReleasePointerCapture(e.Pointer); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.End, e); + + _pathFinished = true; + + // Draw the scene + Render(); + } + + void AddCurrentPointToPathBuilder(InputPhase phase, PointerRoutedEventArgs e) + { + PointerPoint pointerPoint = e.GetCurrentPoint(this.DxPanel); + + Path pathPart = _pathBuilder.AddPoint(phase, pointerPoint); + + if (pathPart.PointsCount > 0) + { + _smoothener.Smooth(pathPart, phase == InputPhase.End); + + int indexOfFirstAffectedPoint; + _pathBuilder.AddPathPart(pathPart, out indexOfFirstAffectedPoint); + + if (_updateFromIndex == -1) + { + _updateFromIndex = indexOfFirstAffectedPoint; + } + } + } + + void Render() + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + _updateFromIndex = -1; + + // recompose the scene within the updated area + _renderingContext.SetTarget(_strokeLayer, _strokeRenderer.UpdatedRect); + _renderingContext.ClearColor(_backgroundColor); + + // draw the new stroke part + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_strokeLayer, BlendMode.Normal); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_strokeLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml new file mode 100644 index 0000000..87cec7d --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml.cs b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml.cs new file mode 100644 index 0000000..22869de --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_4.xaml.cs @@ -0,0 +1,375 @@ +using System; +using Wacom.Ink; +using Wacom.Ink.Smoothing; +using Windows.Foundation; +using Windows.Graphics.Display; +using Windows.UI; +using Windows.UI.Core; +using Windows.UI.Input; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 + +namespace Tutorial_01 +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class Part4 : Page + { + #region Fields + + private Color _backgroundColor = Colors.Honeydew; + private uint? _pointerId; + private int _updateFromIndex; + private bool _pathFinished; + + private Graphics _graphics; + private RenderingContext _renderingContext; + private StrokeRenderer _strokeRenderer; + private Layer _backbufferLayer; + private Layer _strokeLayer; + private SpeedPathBuilder _pathBuilder; + private MultiChannelSmoothener _smoothener; + + #endregion + + public Part4() + { + this.InitializeComponent(); + + // Attach to events + this.Loaded += Page_Loaded; + this.Unloaded += Page_Unloaded; + Application.Current.Suspending += App_Suspending; + DisplayInformation.DisplayContentsInvalidated += DisplayInformation_DisplayContentsInvalidated; + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += Part4_BackRequested; + + CreateWacomInkObjects(); + } + + private void Part4_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= Part4_BackRequested; + } + + void Page_Loaded(object sender, RoutedEventArgs e) + { + InitInkRendering(); + + // Attach to swap chain panel events + this.DxPanel.SizeChanged += DxPanel_SizeChanged; + this.DxPanel.PointerPressed += DxPanel_PointerPressed; + this.DxPanel.PointerMoved += DxPanel_PointerMoved; + this.DxPanel.PointerReleased += DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost += DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled += DxPanel_PointerCanceled; + } + + void Page_Unloaded(object sender, RoutedEventArgs e) + { + DisposeWacomInkObjects(); + + // Detach from swap chain panel events + this.DxPanel.SizeChanged -= DxPanel_SizeChanged; + this.DxPanel.PointerPressed -= DxPanel_PointerPressed; + this.DxPanel.PointerMoved -= DxPanel_PointerMoved; + this.DxPanel.PointerReleased -= DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost -= DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled -= DxPanel_PointerCanceled; + } + + void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) + { + if (_graphics != null) + { + _graphics.Trim(); + } + } + + void DisplayInformation_DisplayContentsInvalidated(DisplayInformation sender, object args) + { + if (_graphics != null) + { + _graphics.ValidateDevice(); + } + } + + #region DxPanel Event Handlers + + void DxPanel_PointerPressed(object sender, PointerRoutedEventArgs e) + { + OnPointerInputBegin(e); + } + + void DxPanel_PointerMoved(object sender, PointerRoutedEventArgs e) + { + OnPointerInputMove(e); + } + + void DxPanel_PointerReleased(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCanceled(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCaptureLost(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_SizeChanged(object sender, SizeChangedEventArgs e) + { + if (_renderingContext == null) + return; + + // release existing layers + _renderingContext.SetTarget(null); + _strokeRenderer.Deinit(); + _strokeLayer.Dispose(); + _backbufferLayer.Dispose(); + + // set the new size + _graphics.SetLogicalSize(e.NewSize); + + // recreate the layers + InitSizeDependentResources(); + } + + #endregion + + void CreateWacomInkObjects() + { + // Create a graphics object + _graphics = new Graphics(); + + // Create a path builder + _pathBuilder = new SpeedPathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(100.0f, 4000.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 2.0f, 30.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create an object that smooths input data + _smoothener = new MultiChannelSmoothener(_pathBuilder.PathStride); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.Color = Colors.DeepPink; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + } + + void InitInkRendering() + { + _graphics.Initialize(this.DxPanel); + _renderingContext = _graphics.GetRenderingContext(); + + InitSizeDependentResources(); + } + + void InitSizeDependentResources() + { + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + _strokeLayer = _graphics.CreateLayer(canvasSize, scale); + _strokeRenderer.Init(_graphics, canvasSize, scale); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + + _graphics.Present(); + } + + void DisposeWacomInkObjects() + { + SafeDispose(_pathBuilder); + SafeDispose(_smoothener); + SafeDispose(_strokeLayer); + SafeDispose(_backbufferLayer); + SafeDispose(_renderingContext); + SafeDispose(_graphics); + + _pathBuilder = null; + _smoothener = null; + _strokeLayer = null; + _backbufferLayer = null; + _renderingContext = null; + _graphics = null; + } + + void SafeDispose(object obj) + { + IDisposable disposable = obj as IDisposable; + + if (disposable != null) + { + disposable.Dispose(); + } + } + + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + // Capture the pointer and store its Id + this.DxPanel.CapturePointer(e.Pointer); + _pointerId = e.Pointer.PointerId; + + // Reset the state related to path building + _updateFromIndex = -1; + _pathFinished = false; + + // Reset the smoothener + _smoothener.Reset(); + + // Reset the stroke renderer + _strokeRenderer.ResetAndClear(); + + // Clear the stroke layer + _renderingContext.SetTarget(_strokeLayer); + _renderingContext.ClearColor(_backgroundColor); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Begin, e); + + // Draw the scene + Render(true); + } + + void OnPointerInputMove(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + AddCurrentPointToPathBuilder(InputPhase.Move, e); + + // Draw the scene + Render(true); + } + + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Reset the stored id and release the pointer capture + _pointerId = null; + this.DxPanel.ReleasePointerCapture(e.Pointer); + + AddCurrentPointToPathBuilder(InputPhase.End, e); + + _pathFinished = true; + + // Draw the scene + Render(true); + } + + void AddCurrentPointToPathBuilder(InputPhase phase, PointerRoutedEventArgs e) + { + PointerPoint pointerPoint = e.GetCurrentPoint(this.DxPanel); + + Path pathPart = _pathBuilder.AddPoint(phase, pointerPoint); + + if (pathPart.PointsCount > 0) + { + _smoothener.Smooth(pathPart, phase == InputPhase.End); + + int indexOfFirstAffectedPoint; + _pathBuilder.AddPathPart(pathPart, out indexOfFirstAffectedPoint); + + if (_updateFromIndex == -1) + { + _updateFromIndex = indexOfFirstAffectedPoint; + } + } + } + + void Render(bool drawPreliminaryPath) + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + // reset the starting index + _updateFromIndex = -1; + + // draw preliminary path + if (drawPreliminaryPath && !_pathFinished) + { + Path prelimPathPart = _pathBuilder.CreatePreliminaryPath(); + + if (prelimPathPart.PointsCount > 0) + { + _smoothener.Smooth(prelimPathPart, true); + + Path preliminaryPath = _pathBuilder.FinishPreliminaryPath(prelimPathPart); + + _strokeRenderer.DrawPreliminaryStroke(preliminaryPath, 0, preliminaryPath.PointsCount); + } + } + + // recompose the scene within the updated area + _renderingContext.SetTarget(_strokeLayer, _strokeRenderer.UpdatedRect); + _renderingContext.ClearColor(_backgroundColor); + + // draw + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_strokeLayer, BlendMode.Normal); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_strokeLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml new file mode 100644 index 0000000..2f5a4cb --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml.cs b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml.cs new file mode 100644 index 0000000..5e5028e --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_5.xaml.cs @@ -0,0 +1,423 @@ +using System; +using System.Runtime.InteropServices.WindowsRuntime; +using System.Threading.Tasks; +using Wacom.Ink; +using Wacom.Ink.Smoothing; +using Windows.Foundation; +using Windows.Graphics.Display; +using Windows.Graphics.Imaging; +using Windows.Storage; +using Windows.Storage.Streams; +using Windows.UI; +using Windows.UI.Core; +using Windows.UI.Input; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 + +namespace Tutorial_01 +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class Part5 : Page + { + #region Fields + + private Color _backgroundColor = Colors.Honeydew; + private uint? _pointerId; + private int _updateFromIndex; + private bool _pathFinished; + + private Graphics _graphics; + private RenderingContext _renderingContext; + private StrokeRenderer _strokeRenderer; + private Layer _backbufferLayer; + private Layer _strokeLayer; + private IPathBuilder _pathBuilder; + private ParticleBrush _brush; + private MultiChannelSmoothener _smoothener; + + #endregion + + public Part5() + { + this.InitializeComponent(); + + // Attach to events + this.Loaded += Page_Loaded; + this.Unloaded += Page_Unloaded; + Application.Current.Suspending += App_Suspending; + DisplayInformation.DisplayContentsInvalidated += DisplayInformation_DisplayContentsInvalidated; + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += Part5_BackRequested; + + CreateWacomInkObjects(); + } + + private void Part5_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= Part5_BackRequested; + } + + async void Page_Loaded(object sender, RoutedEventArgs e) + { + await InitInkRendering(); + + // Attach to swap chain panel events + this.DxPanel.SizeChanged += DxPanel_SizeChanged; + this.DxPanel.PointerPressed += DxPanel_PointerPressed; + this.DxPanel.PointerMoved += DxPanel_PointerMoved; + this.DxPanel.PointerReleased += DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost += DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled += DxPanel_PointerCanceled; + } + + void Page_Unloaded(object sender, RoutedEventArgs e) + { + DisposeWacomInkObjects(); + + // Detach from swap chain panel events + this.DxPanel.SizeChanged -= DxPanel_SizeChanged; + this.DxPanel.PointerPressed -= DxPanel_PointerPressed; + this.DxPanel.PointerMoved -= DxPanel_PointerMoved; + this.DxPanel.PointerReleased -= DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost -= DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled -= DxPanel_PointerCanceled; + } + + void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) + { + if (_graphics != null) + { + _graphics.Trim(); + } + } + + void DisplayInformation_DisplayContentsInvalidated(DisplayInformation sender, object args) + { + if (_graphics != null) + { + _graphics.ValidateDevice(); + } + } + + #region DxPanel Event Handlers + + void DxPanel_PointerPressed(object sender, PointerRoutedEventArgs e) + { + OnPointerInputBegin(e); + } + + void DxPanel_PointerMoved(object sender, PointerRoutedEventArgs e) + { + OnPointerInputMove(e); + } + + void DxPanel_PointerReleased(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCanceled(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCaptureLost(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_SizeChanged(object sender, SizeChangedEventArgs e) + { + if (_renderingContext == null) + return; + + // release existing layers + _renderingContext.SetTarget(null); + _strokeRenderer.Deinit(); + _strokeLayer.Dispose(); + _backbufferLayer.Dispose(); + + // set the new size + _graphics.SetLogicalSize(e.NewSize); + + // recreate the layers + InitSizeDependentResources(); + } + + #endregion + + void CreateWacomInkObjects() + { + // Create a graphics object + _graphics = new Graphics(); + + // Create a path builder + _pathBuilder = new PressurePathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(0.0f, 1.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 10.0f, 40.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + _pathBuilder.SetPropertyConfig(PropertyName.Alpha, 0.08f, 0.9f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create an object that smooths input data + _smoothener = new MultiChannelSmoothener(_pathBuilder.PathStride); + + // Create a particle brush + _brush = new ParticleBrush(); + _brush.BlendMode = BlendMode.Normal; + _brush.Spacing = 0.15f; + _brush.Scattering = 0.05f; + _brush.RotationMode = ParticleRotationMode.RotateRandom; + _brush.FillTileSize = new Size(128.0f, 128.0f); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = _brush; + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.Color = Colors.DarkOrange; + _strokeRenderer.UseVariableAlpha = true; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + } + + async Task InitInkRendering() + { + _graphics.Initialize(this.DxPanel); + _renderingContext = _graphics.GetRenderingContext(); + + await LoadBrushTextures(); + + InitSizeDependentResources(); + } + + void InitSizeDependentResources() + { + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + _strokeLayer = _graphics.CreateLayer(canvasSize, scale); + _strokeRenderer.Init(_graphics, canvasSize, scale); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + _graphics.Present(); + } + + void DisposeWacomInkObjects() + { + SafeDispose(_pathBuilder); + SafeDispose(_brush); + SafeDispose(_smoothener); + SafeDispose(_strokeLayer); + SafeDispose(_backbufferLayer); + SafeDispose(_renderingContext); + SafeDispose(_graphics); + + _pathBuilder = null; + _brush = null; + _smoothener = null; + _strokeLayer = null; + _backbufferLayer = null; + _renderingContext = null; + _graphics = null; + } + + void SafeDispose(object obj) + { + IDisposable disposable = obj as IDisposable; + + if (disposable != null) + { + disposable.Dispose(); + } + } + + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + // Capture the pointer and store its Id + this.DxPanel.CapturePointer(e.Pointer); + _pointerId = e.Pointer.PointerId; + + // Reset the state related to path building + _updateFromIndex = -1; + _pathFinished = false; + + // Reset the smoothener + _smoothener.Reset(); + + // Clear the scene layer + _strokeRenderer.ResetAndClear(); + _renderingContext.SetTarget(_strokeLayer); + _renderingContext.ClearColor(_backgroundColor); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Begin, e); + + // Draw the scene + Render(true); + } + + void OnPointerInputMove(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Move, e); + + // Draw the scene + Render(true); + } + + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Reset the stored id and release the pointer capture + _pointerId = null; + this.DxPanel.ReleasePointerCapture(e.Pointer); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.End, e); + + _pathFinished = true; + + // Draw the scene + Render(true); + } + + void AddCurrentPointToPathBuilder(InputPhase phase, PointerRoutedEventArgs e) + { + PointerPoint pointerPoint = e.GetCurrentPoint(this.DxPanel); + + Path pathPart = _pathBuilder.AddPoint(phase, pointerPoint); + + if (pathPart.PointsCount > 0) + { + _smoothener.Smooth(pathPart, phase == InputPhase.End); + + int indexOfFirstAffectedPoint; + _pathBuilder.AddPathPart(pathPart, out indexOfFirstAffectedPoint); + + if (_updateFromIndex == -1) + { + _updateFromIndex = indexOfFirstAffectedPoint; + } + } + } + + void Render(bool drawPreliminaryPath) + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + // reset the starting index + _updateFromIndex = -1; + + // draw preliminary path + if (drawPreliminaryPath && !_pathFinished) + { + Path prelimPathPart = _pathBuilder.CreatePreliminaryPath(); + + if (prelimPathPart.PointsCount > 0) + { + _smoothener.Smooth(prelimPathPart, true); + + Path preliminaryPath = _pathBuilder.FinishPreliminaryPath(prelimPathPart); + + _strokeRenderer.DrawPreliminaryStroke(preliminaryPath, 0, preliminaryPath.PointsCount); + } + } + + // recompose the scene within the updated area + _renderingContext.SetTarget(_strokeLayer, _strokeRenderer.UpdatedRect); + _renderingContext.ClearColor(_backgroundColor); + + // draw + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_strokeLayer, BlendMode.Normal); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_strokeLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } + + async Task LoadBrushTextures() + { + PixelData fillPixelData = await GetPixelData(new Uri(@"ms-appx:///Assets/fill.png")); + _brush.FillTexture = _graphics.CreateTexture(fillPixelData); + + PixelData shapePixelData = await GetPixelData(new Uri("ms-appx:///Assets/shape.png")); + _brush.ShapeTexture = _graphics.CreateTexture(shapePixelData); + } + + static async Task GetPixelData(Uri uri) + { + StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(uri); + + using (IRandomAccessStream fileStream = await file.OpenAsync(FileAccessMode.Read)) + { + BitmapDecoder decoder = await BitmapDecoder.CreateAsync(fileStream); + + PixelDataProvider provider = await decoder.GetPixelDataAsync( + BitmapPixelFormat.Bgra8, + BitmapAlphaMode.Premultiplied, + new BitmapTransform(), + ExifOrientationMode.IgnoreExifOrientation, + ColorManagementMode.DoNotColorManage); + + var buffer = provider.DetachPixelData().AsBuffer(); + + return new PixelData(buffer, decoder.PixelWidth, decoder.PixelHeight); + } + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml new file mode 100644 index 0000000..15732ab --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml.cs b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml.cs new file mode 100644 index 0000000..878ded1 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/Tutorial_01_Part_6.xaml.cs @@ -0,0 +1,399 @@ +using System; +using Wacom.Ink; +using Wacom.Ink.Smoothing; +using Windows.Foundation; +using Windows.Graphics.Display; +using Windows.UI; +using Windows.UI.Core; +using Windows.UI.Input; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238 + +namespace Tutorial_01 +{ + /// + /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class Part6 : Page + { + #region Fields + + private Random _rand = new Random(); + private Color _backgroundColor = Colors.Honeydew; + private uint? _pointerId; + private int _updateFromIndex; + private bool _pathFinished; + + private Graphics _graphics; + private RenderingContext _renderingContext; + private StrokeRenderer _strokeRenderer; + private Layer _backbufferLayer; + private Layer _sceneLayer; + private Layer _allStrokesLayer; + private SpeedPathBuilder _pathBuilder; + private MultiChannelSmoothener _smoothener; + + #endregion + + public Part6() + { + this.InitializeComponent(); + + // Attach to events + this.Loaded += Page_Loaded; + this.Unloaded += Page_Unloaded; + Application.Current.Suspending += App_Suspending; + DisplayInformation.DisplayContentsInvalidated += DisplayInformation_DisplayContentsInvalidated; + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += Part6_BackRequested; + + CreateWacomInkObjects(); + } + + private void Part6_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + } + + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= Part6_BackRequested; + } + + void Page_Loaded(object sender, RoutedEventArgs e) + { + InitInkRendering(); + + // Attach to swap chain panel events + this.DxPanel.SizeChanged += DxPanel_SizeChanged; + this.DxPanel.PointerPressed += DxPanel_PointerPressed; + this.DxPanel.PointerMoved += DxPanel_PointerMoved; + this.DxPanel.PointerReleased += DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost += DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled += DxPanel_PointerCanceled; + } + + void Page_Unloaded(object sender, RoutedEventArgs e) + { + DisposeWacomInkObjects(); + + // Detach from swap chain panel events + this.DxPanel.SizeChanged -= DxPanel_SizeChanged; + this.DxPanel.PointerPressed -= DxPanel_PointerPressed; + this.DxPanel.PointerMoved -= DxPanel_PointerMoved; + this.DxPanel.PointerReleased -= DxPanel_PointerReleased; + this.DxPanel.PointerCaptureLost -= DxPanel_PointerCaptureLost; + this.DxPanel.PointerCanceled -= DxPanel_PointerCanceled; + } + + void App_Suspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e) + { + if (_graphics != null) + { + _graphics.Trim(); + } + } + + void DisplayInformation_DisplayContentsInvalidated(DisplayInformation sender, object args) + { + if (_graphics != null) + { + _graphics.ValidateDevice(); + } + } + + #region DxPanel Event Handlers + + void DxPanel_PointerPressed(object sender, PointerRoutedEventArgs e) + { + OnPointerInputBegin(e); + } + + void DxPanel_PointerMoved(object sender, PointerRoutedEventArgs e) + { + OnPointerInputMove(e); + } + + void DxPanel_PointerReleased(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCanceled(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_PointerCaptureLost(object sender, PointerRoutedEventArgs e) + { + OnPointerInputEnd(e); + } + + void DxPanel_SizeChanged(object sender, SizeChangedEventArgs e) + { + if (_renderingContext == null) + return; + + // release existing layers + _renderingContext.SetTarget(null); + _strokeRenderer.Deinit(); + _sceneLayer.Dispose(); + _allStrokesLayer.Dispose(); + _backbufferLayer.Dispose(); + + // set the new size + _graphics.SetLogicalSize(e.NewSize); + + // recreate the layers + InitSizeDependentResources(); + } + + #endregion + + void CreateWacomInkObjects() + { + // Create a graphics object + _graphics = new Graphics(); + + // Create a path builder + _pathBuilder = new SpeedPathBuilder(); + _pathBuilder.SetMovementThreshold(0.1f); + _pathBuilder.SetNormalizationConfig(100.0f, 4000.0f); + _pathBuilder.SetPropertyConfig(PropertyName.Width, 2.0f, 30.0f, null, null, PropertyFunction.Sigmoid, 0.6191646f, false); + + // Create an object that smooths input data + _smoothener = new MultiChannelSmoothener(_pathBuilder.PathStride); + + // Create a stroke renderer + _strokeRenderer = new StrokeRenderer(); + _strokeRenderer.Brush = new SolidColorBrush(); + _strokeRenderer.StrokeWidth = null; + _strokeRenderer.UseVariableAlpha = false; + _strokeRenderer.Ts = 0.0f; + _strokeRenderer.Tf = 1.0f; + } + + void InitInkRendering() + { + _graphics.Initialize(this.DxPanel); + _renderingContext = _graphics.GetRenderingContext(); + + InitSizeDependentResources(); + } + + void InitSizeDependentResources() + { + Size canvasSize = _graphics.Size; + float scale = _graphics.Scale; + + _backbufferLayer = _graphics.CreateBackbufferLayer(); + _sceneLayer = _graphics.CreateLayer(canvasSize, scale); + _allStrokesLayer = _graphics.CreateLayer(canvasSize, scale); + _strokeRenderer.Init(_graphics, canvasSize, scale); + + _renderingContext.SetTarget(_allStrokesLayer); + _renderingContext.ClearColor(_backgroundColor); + + _renderingContext.SetTarget(_sceneLayer); + _renderingContext.ClearColor(_backgroundColor); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + _graphics.Present(); + } + + void DisposeWacomInkObjects() + { + SafeDispose(_pathBuilder); + SafeDispose(_smoothener); + SafeDispose(_sceneLayer); + SafeDispose(_allStrokesLayer); + SafeDispose(_backbufferLayer); + SafeDispose(_renderingContext); + SafeDispose(_graphics); + + _pathBuilder = null; + _smoothener = null; + _sceneLayer = null; + _allStrokesLayer = null; + _backbufferLayer = null; + _renderingContext = null; + _graphics = null; + } + + void SafeDispose(object obj) + { + IDisposable disposable = obj as IDisposable; + + if (disposable != null) + { + disposable.Dispose(); + } + } + + Color GetRandomColor() + { + return Color.FromArgb( + (byte)_rand.Next(80, 200), + (byte)_rand.Next(0, 255), + (byte)_rand.Next(0, 255), + (byte)_rand.Next(0, 255)); + } + + void OnPointerInputBegin(PointerRoutedEventArgs e) + { + // If currently there is an unfinished stroke - do not interrupt it + if (_pointerId.HasValue) + return; + + // Capture the pointer and store its Id + this.DxPanel.CapturePointer(e.Pointer); + _pointerId = e.Pointer.PointerId; + + // Reset the state related to path building + _updateFromIndex = -1; + _pathFinished = false; + + // Reset the smoothener + _smoothener.Reset(); + + // Clear the stroke renderer + _strokeRenderer.ResetAndClear(); + + // Set a random color for the new stroke + _strokeRenderer.Color = GetRandomColor(); + + // Add the pointer point to the path builder + AddCurrentPointToPathBuilder(InputPhase.Begin, e); + + // Draw the scene + Render(); + } + + void OnPointerInputMove(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + AddCurrentPointToPathBuilder(InputPhase.Move, e); + + // Draw the scene + Render(); + } + + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + // Ignore events from other pointers + if (!_pointerId.HasValue || (e.Pointer.PointerId != _pointerId.Value)) + return; + + // Reset the stored id and release the pointer capture + _pointerId = null; + this.DxPanel.ReleasePointerCapture(e.Pointer); + + AddCurrentPointToPathBuilder(InputPhase.End, e); + + _pathFinished = true; + + // Draw the scene + Render(); + + // Blend the current stroke into the current stroke layer + _strokeRenderer.BlendStrokeInLayer(_allStrokesLayer, BlendMode.Normal); + } + + void AddCurrentPointToPathBuilder(InputPhase phase, PointerRoutedEventArgs e) + { + PointerPoint pointerPoint = e.GetCurrentPoint(this.DxPanel); + + Path pathPart = _pathBuilder.AddPoint(phase, pointerPoint); + + if (pathPart.PointsCount > 0) + { + _smoothener.Smooth(pathPart, phase == InputPhase.End); + + int indexOfFirstAffectedPoint; + _pathBuilder.AddPathPart(pathPart, out indexOfFirstAffectedPoint); + + if (_updateFromIndex == -1) + { + _updateFromIndex = indexOfFirstAffectedPoint; + } + } + } + + void Render() + { + if (_updateFromIndex < 0) + return; + + Path currentPath = _pathBuilder.CurrentPath; + + int numberOfPointsToDraw = currentPath.PointsCount - _updateFromIndex; + if (numberOfPointsToDraw <= 0) + return; + + _strokeRenderer.DrawStroke(currentPath, _updateFromIndex, numberOfPointsToDraw, _pathFinished); + + // reset the starting index + _updateFromIndex = -1; + + // draw preliminary path + if (!_pathFinished) + { + Path prelimPathPart = _pathBuilder.CreatePreliminaryPath(); + + if (prelimPathPart.PointsCount > 0) + { + _smoothener.Smooth(prelimPathPart, true); + + Path preliminaryPath = _pathBuilder.FinishPreliminaryPath(prelimPathPart); + + _strokeRenderer.DrawPreliminaryStroke(preliminaryPath, 0, preliminaryPath.PointsCount); + } + } + + // recompose the scene within the updated area + Rect updatedRect = _strokeRenderer.UpdatedRect; + Point destLocation = new Point(updatedRect.X, updatedRect.Y); + + // draw background and previous strokes + _renderingContext.SetTarget(_sceneLayer); + _renderingContext.DrawLayerAtPoint(_allStrokesLayer, updatedRect, destLocation, BlendMode.None); + + // draw the new part + _strokeRenderer.BlendStrokeUpdatedAreaInLayer(_sceneLayer, BlendMode.Normal); + + // copy to backbuffer and present + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_sceneLayer, null, BlendMode.None); + _graphics.Present(); + } + } +} diff --git a/Samples/Tutorials/Tutorial_01/project.json b/Samples/Tutorials/Tutorial_01/project.json new file mode 100644 index 0000000..92d1456 --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/project.json @@ -0,0 +1,16 @@ +{ + "dependencies": { + "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0" + }, + "frameworks": { + "uap10.0": {} + }, + "runtimes": { + "win10-arm": {}, + "win10-arm-aot": {}, + "win10-x86": {}, + "win10-x86-aot": {}, + "win10-x64": {}, + "win10-x64-aot": {} + } +} \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_01/project.lock.json b/Samples/Tutorials/Tutorial_01/project.lock.json new file mode 100644 index 0000000..6d77fcb --- /dev/null +++ b/Samples/Tutorials/Tutorial_01/project.lock.json @@ -0,0 +1,14775 @@ +{ + "locked": false, + "version": 1, + "targets": { + "UAP,Version=v10.0": { + "Microsoft.CSharp/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.CSharp.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.CSharp.dll": {} + } + }, + "Microsoft.NETCore/5.0.0": { + "dependencies": { + "Microsoft.CSharp": "4.0.0", + "Microsoft.NETCore.Targets": "1.0.0", + "Microsoft.VisualBasic": "10.0.0", + "System.AppContext": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.Immutable": "1.1.37", + "System.ComponentModel": "4.0.0", + "System.ComponentModel.Annotations": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tools": "4.0.0", + "System.Diagnostics.Tracing": "4.0.20", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Globalization.Calendars": "4.0.0", + "System.Globalization.Extensions": "4.0.0", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.Compression.ZipFile": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.IO.UnmanagedMemoryStream": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Parallel": "4.0.0", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.NetworkInformation": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Numerics.Vectors": "4.1.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Metadata": "1.0.22", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Numerics": "4.0.0", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Tasks.Dataflow": "4.5.25", + "System.Threading.Tasks.Parallel": "4.0.0", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XDocument": "4.0.10" + } + }, + "Microsoft.NETCore.Platforms/1.0.0": {}, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Runtime": "1.0.0" + }, + "compile": { + "ref/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "ref/netcore50/System.Core.dll": {}, + "ref/netcore50/System.Net.dll": {}, + "ref/netcore50/System.Numerics.dll": {}, + "ref/netcore50/System.Runtime.Serialization.dll": {}, + "ref/netcore50/System.ServiceModel.Web.dll": {}, + "ref/netcore50/System.ServiceModel.dll": {}, + "ref/netcore50/System.Windows.dll": {}, + "ref/netcore50/System.Xml.Linq.dll": {}, + "ref/netcore50/System.Xml.Serialization.dll": {}, + "ref/netcore50/System.Xml.dll": {}, + "ref/netcore50/System.dll": {}, + "ref/netcore50/mscorlib.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "lib/netcore50/System.Core.dll": {}, + "lib/netcore50/System.Net.dll": {}, + "lib/netcore50/System.Numerics.dll": {}, + "lib/netcore50/System.Runtime.Serialization.dll": {}, + "lib/netcore50/System.ServiceModel.Web.dll": {}, + "lib/netcore50/System.ServiceModel.dll": {}, + "lib/netcore50/System.Windows.dll": {}, + "lib/netcore50/System.Xml.Linq.dll": {}, + "lib/netcore50/System.Xml.Serialization.dll": {}, + "lib/netcore50/System.Xml.dll": {}, + "lib/netcore50/System.dll": {} + }, + "runtimeTargets": { + "runtimes/aot/lib/netcore50/System.ComponentModel.DataAnnotations.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Core.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Net.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Numerics.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Runtime.Serialization.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.ServiceModel.Web.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.ServiceModel.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Windows.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Xml.Linq.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Xml.Serialization.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.Xml.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/System.dll": { + "assetType": "runtime", + "rid": "aot" + }, + "runtimes/aot/lib/netcore50/mscorlib.dll": { + "assetType": "runtime", + "rid": "aot" + } + } + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Runtime.CoreCLR": "1.0.1", + "Microsoft.NETCore.Runtime.Native": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": {}, + "Microsoft.NETCore.Runtime.Native/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.0", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform": "5.0.0" + } + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": {}, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "dependencies": { + "Microsoft.NETCore": "5.0.0", + "Microsoft.NETCore.Portable.Compatibility": "1.0.0", + "Microsoft.NETCore.Runtime": "1.0.1", + "Microsoft.Win32.Primitives": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Data.Common": "4.0.0", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.StackTrace": "4.0.0", + "System.IO.IsolatedStorage": "4.0.0", + "System.Net.Http.Rtc": "4.0.0", + "System.Net.Requests": "4.0.10", + "System.Net.Sockets": "4.0.0", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Numerics.Vectors.WindowsRuntime": "4.0.0", + "System.Reflection.Context": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Runtime.Serialization.Json": "4.0.1", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Runtime.Serialization.Xml": "4.1.0", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0", + "System.ServiceModel.Duplex": "4.0.0", + "System.ServiceModel.Http": "4.0.10", + "System.ServiceModel.NetTcp": "4.0.0", + "System.ServiceModel.Primitives": "4.0.0", + "System.ServiceModel.Security": "4.0.0", + "System.Text.Encoding.CodePages": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + } + }, + "Microsoft.VisualBasic/10.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.VisualBasic.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.VisualBasic.dll": {} + } + }, + "Microsoft.Win32.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/Microsoft.Win32.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/Microsoft.Win32.Primitives.dll": {} + } + }, + "System.AppContext/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/netcore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + }, + "runtime": { + "lib/netcore50/System.Collections.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Collections.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Collections.Concurrent/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Concurrent.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Collections.NonGeneric/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.NonGeneric.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.Globalization.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Specialized.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Specialized.dll": {} + } + }, + "System.ComponentModel/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ComponentModel.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.dll": {} + } + }, + "System.ComponentModel.Annotations/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.ComponentModel": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.Annotations.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.Annotations.dll": {} + } + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + } + }, + "System.Data.Common/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Data.Common.dll": {} + }, + "runtime": { + "lib/dotnet/System.Data.Common.dll": {} + } + }, + "System.Diagnostics.Contracts/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Contracts.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Diagnostics.Debug/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Debug.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Debug.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Diagnostics.StackTrace/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Diagnostics.StackTrace.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.StackTrace.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.StackTrace.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Diagnostics.Tools/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tools.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Diagnostics.Tracing/4.0.20": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Tracing.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tracing.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tracing.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Dynamic.Runtime/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Dynamic.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Dynamic.Runtime.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Dynamic.Runtime.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Globalization/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Globalization.Calendars/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.Calendars.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.Calendars.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.Calendars.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Globalization.Extensions/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Globalization.Extensions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Globalization.Extensions.dll": {} + } + }, + "System.IO/4.0.10": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.IO.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.IO.Compression/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/netcore50/System.IO.Compression.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.Compression.dll": {} + } + }, + "System.IO.Compression.ZipFile/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.Compression.ZipFile.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.IsolatedStorage/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.IsolatedStorage.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.IsolatedStorage.dll": {} + } + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + } + }, + "System.Linq/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Linq.Expressions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Expressions.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Linq.Expressions.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Linq.Parallel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Parallel.dll": {} + } + }, + "System.Linq.Queryable/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Linq.Queryable.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Queryable.dll": {} + } + }, + "System.Net.Http/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Net.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.dll": {} + } + }, + "System.Net.Http.Rtc/4.0.0": { + "dependencies": { + "System.Net.Http": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Net.Http.Rtc.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.Rtc.dll": {} + } + }, + "System.Net.NetworkInformation/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Net.NetworkInformation.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.NetworkInformation.dll": {} + } + }, + "System.Net.Primitives/4.0.10": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Primitives.dll": {} + } + }, + "System.Net.Requests/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Net.Requests.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.Requests.dll": {} + } + }, + "System.Net.Sockets/4.0.0": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Sockets.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Sockets.dll": {} + } + }, + "System.Net.WebHeaderCollection/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.WebHeaderCollection.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.WebHeaderCollection.dll": {} + } + }, + "System.Numerics.Vectors/4.1.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.dll": {} + } + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "dependencies": { + "System.Numerics.Vectors": "4.1.0", + "System.Runtime": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + } + }, + "System.ObjectModel/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ObjectModel.dll": {} + }, + "runtime": { + "lib/dotnet/System.ObjectModel.dll": {} + } + }, + "System.Private.DataContractSerialization/4.1.0": { + "compile": { + "ref/netcore50/_._": {} + } + }, + "System.Private.Networking/4.0.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Networking.dll": {} + } + }, + "System.Private.ServiceModel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Serialization.Primitives": "4.0.10", + "System.Runtime.Serialization.Xml": "4.0.10", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.ServiceModel.dll": {} + } + }, + "System.Private.Uri/4.0.0": { + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Uri.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Private.Uri.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Reflection/4.0.10": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Reflection.Context/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Reflection.Context.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Context.dll": {} + } + }, + "System.Reflection.DispatchProxy/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.DispatchProxy.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.DispatchProxy.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.DispatchProxy.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Reflection.Metadata/1.0.22": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Reflection.TypeExtensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.TypeExtensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.TypeExtensions.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.TypeExtensions.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "lib/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime/4.0.20": { + "dependencies": { + "System.Private.Uri": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Extensions.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Handles.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.InteropServices/4.0.20": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "compile": { + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.Numerics/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.Numerics.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Numerics.dll": {} + } + }, + "System.Runtime.Serialization.Json/4.0.1": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Json.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Primitives.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.0", + "System.Xml.ReaderWriter": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Xml.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.0", + "System.IO": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + } + }, + "System.Security.Claims/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Security.Principal": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Security.Claims.dll": {} + }, + "runtime": { + "lib/dotnet/System.Security.Claims.dll": {} + } + }, + "System.Security.Principal/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Security.Principal.dll": {} + }, + "runtime": { + "lib/netcore50/System.Security.Principal.dll": {} + } + }, + "System.ServiceModel.Duplex/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Duplex.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Duplex.dll": {} + } + }, + "System.ServiceModel.Http/4.0.10": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.ServiceModel.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Http.dll": {} + } + }, + "System.ServiceModel.NetTcp/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.NetTcp.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.NetTcp.dll": {} + } + }, + "System.ServiceModel.Primitives/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Primitives.dll": {} + } + }, + "System.ServiceModel.Security/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Security.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Security.dll": {} + } + }, + "System.Text.Encoding/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Text.Encoding.CodePages/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.CodePages.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.Encoding.CodePages.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.Extensions.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.Extensions.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Text.RegularExpressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Threading.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Concurrent": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Diagnostics.Tracing": "4.0.0", + "System.Dynamic.Runtime": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + }, + "runtime": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + } + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "dependencies": { + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Threading.Tasks.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.Parallel.dll": {} + } + }, + "System.Threading.Timer/4.0.0": { + "compile": { + "ref/netcore50/System.Threading.Timer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Timer.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Timer.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + }, + "System.Xml.ReaderWriter/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.ReaderWriter.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XDocument.dll": {} + } + }, + "System.Xml.XmlDocument/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XmlDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XmlDocument.dll": {} + } + }, + "System.Xml.XmlSerializer/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Xml.XmlSerializer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Xml.XmlSerializer.dll": {} + }, + "runtimeTargets": { + "runtimes/win8-aot/lib/netcore50/System.Xml.XmlSerializer.dll": { + "assetType": "runtime", + "rid": "win8-aot" + } + } + } + }, + "UAP,Version=v10.0/win10-arm": { + "Microsoft.CSharp/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.CSharp.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.CSharp.dll": {} + } + }, + "Microsoft.NETCore/5.0.0": { + "dependencies": { + "Microsoft.CSharp": "4.0.0", + "Microsoft.NETCore.Targets": "1.0.0", + "Microsoft.VisualBasic": "10.0.0", + "System.AppContext": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.Immutable": "1.1.37", + "System.ComponentModel": "4.0.0", + "System.ComponentModel.Annotations": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tools": "4.0.0", + "System.Diagnostics.Tracing": "4.0.20", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Globalization.Calendars": "4.0.0", + "System.Globalization.Extensions": "4.0.0", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.Compression.ZipFile": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.IO.UnmanagedMemoryStream": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Parallel": "4.0.0", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.NetworkInformation": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Numerics.Vectors": "4.1.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Metadata": "1.0.22", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Numerics": "4.0.0", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Tasks.Dataflow": "4.5.25", + "System.Threading.Tasks.Parallel": "4.0.0", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XDocument": "4.0.10" + } + }, + "Microsoft.NETCore.Platforms/1.0.0": {}, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Runtime": "1.0.0" + }, + "compile": { + "ref/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "ref/netcore50/System.Core.dll": {}, + "ref/netcore50/System.Net.dll": {}, + "ref/netcore50/System.Numerics.dll": {}, + "ref/netcore50/System.Runtime.Serialization.dll": {}, + "ref/netcore50/System.ServiceModel.Web.dll": {}, + "ref/netcore50/System.ServiceModel.dll": {}, + "ref/netcore50/System.Windows.dll": {}, + "ref/netcore50/System.Xml.Linq.dll": {}, + "ref/netcore50/System.Xml.Serialization.dll": {}, + "ref/netcore50/System.Xml.dll": {}, + "ref/netcore50/System.dll": {}, + "ref/netcore50/mscorlib.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "lib/netcore50/System.Core.dll": {}, + "lib/netcore50/System.Net.dll": {}, + "lib/netcore50/System.Numerics.dll": {}, + "lib/netcore50/System.Runtime.Serialization.dll": {}, + "lib/netcore50/System.ServiceModel.Web.dll": {}, + "lib/netcore50/System.ServiceModel.dll": {}, + "lib/netcore50/System.Windows.dll": {}, + "lib/netcore50/System.Xml.Linq.dll": {}, + "lib/netcore50/System.Xml.Serialization.dll": {}, + "lib/netcore50/System.Xml.dll": {}, + "lib/netcore50/System.dll": {} + } + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Runtime.CoreCLR": "1.0.1", + "Microsoft.NETCore.Runtime.Native": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "dependencies": { + "runtime.win8-arm.Microsoft.NETCore.Runtime.CoreCLR": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.Native/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.0", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform": "5.0.0" + } + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": {}, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "dependencies": { + "Microsoft.NETCore": "5.0.0", + "Microsoft.NETCore.Portable.Compatibility": "1.0.0", + "Microsoft.NETCore.Runtime": "1.0.1", + "Microsoft.Win32.Primitives": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Data.Common": "4.0.0", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.StackTrace": "4.0.0", + "System.IO.IsolatedStorage": "4.0.0", + "System.Net.Http.Rtc": "4.0.0", + "System.Net.Requests": "4.0.10", + "System.Net.Sockets": "4.0.0", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Numerics.Vectors.WindowsRuntime": "4.0.0", + "System.Reflection.Context": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Runtime.Serialization.Json": "4.0.1", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Runtime.Serialization.Xml": "4.1.0", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0", + "System.ServiceModel.Duplex": "4.0.0", + "System.ServiceModel.Http": "4.0.10", + "System.ServiceModel.NetTcp": "4.0.0", + "System.ServiceModel.Primitives": "4.0.0", + "System.ServiceModel.Security": "4.0.0", + "System.Text.Encoding.CodePages": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + } + }, + "Microsoft.VisualBasic/10.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.VisualBasic.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.VisualBasic.dll": {} + } + }, + "Microsoft.Win32.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/Microsoft.Win32.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/Microsoft.Win32.Primitives.dll": {} + } + }, + "runtime.any.System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.DataContractSerialization.dll": {} + } + }, + "runtime.win8-arm.Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "runtimes/win8-arm/lib/dotnet/mscorlib.ni.dll": {} + }, + "native": { + "runtimes/win8-arm/native/clretwrc.dll": {}, + "runtimes/win8-arm/native/coreclr.dll": {}, + "runtimes/win8-arm/native/dbgshim.dll": {}, + "runtimes/win8-arm/native/mscordaccore.dll": {}, + "runtimes/win8-arm/native/mscordbi.dll": {}, + "runtimes/win8-arm/native/mscorrc.debug.dll": {}, + "runtimes/win8-arm/native/mscorrc.dll": {} + } + }, + "System.AppContext/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/netcore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + }, + "runtime": { + "lib/netcore50/System.Collections.dll": {} + } + }, + "System.Collections.Concurrent/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Concurrent.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Collections.NonGeneric/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.NonGeneric.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.Globalization.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Specialized.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Specialized.dll": {} + } + }, + "System.ComponentModel/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ComponentModel.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.dll": {} + } + }, + "System.ComponentModel.Annotations/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.ComponentModel": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.Annotations.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.Annotations.dll": {} + } + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + } + }, + "System.Data.Common/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Data.Common.dll": {} + }, + "runtime": { + "lib/dotnet/System.Data.Common.dll": {} + } + }, + "System.Diagnostics.Contracts/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Contracts.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Debug.dll": {} + } + }, + "System.Diagnostics.StackTrace/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Diagnostics.StackTrace.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.StackTrace.dll": {} + } + }, + "System.Diagnostics.Tools/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tools.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.20": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Tracing.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tracing.dll": {} + } + }, + "System.Dynamic.Runtime/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Dynamic.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Dynamic.Runtime.dll": {} + } + }, + "System.Globalization/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.dll": {} + } + }, + "System.Globalization.Calendars/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.Calendars.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.Calendars.dll": {} + } + }, + "System.Globalization.Extensions/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Globalization.Extensions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Globalization.Extensions.dll": {} + } + }, + "System.IO/4.0.10": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.dll": {} + } + }, + "System.IO.Compression/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.IO": "4.0.0", + "System.IO.Compression.clrcompression-arm": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/netcore50/System.IO.Compression.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.Compression.dll": {} + } + }, + "System.IO.Compression.clrcompression-arm/4.0.0": { + "native": { + "runtimes/win10-arm/native/ClrCompression.dll": {} + } + }, + "System.IO.Compression.ZipFile/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.Compression.ZipFile.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.IsolatedStorage/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.IsolatedStorage.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.IsolatedStorage.dll": {} + } + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + } + }, + "System.Linq/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Linq.Expressions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Expressions.dll": {} + } + }, + "System.Linq.Parallel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Parallel.dll": {} + } + }, + "System.Linq.Queryable/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Linq.Queryable.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Queryable.dll": {} + } + }, + "System.Net.Http/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Net.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.dll": {} + } + }, + "System.Net.Http.Rtc/4.0.0": { + "dependencies": { + "System.Net.Http": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Net.Http.Rtc.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.Rtc.dll": {} + } + }, + "System.Net.NetworkInformation/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Net.NetworkInformation.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.NetworkInformation.dll": {} + } + }, + "System.Net.Primitives/4.0.10": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Primitives.dll": {} + } + }, + "System.Net.Requests/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Net.Requests.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.Requests.dll": {} + } + }, + "System.Net.Sockets/4.0.0": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Sockets.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Sockets.dll": {} + } + }, + "System.Net.WebHeaderCollection/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.WebHeaderCollection.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.WebHeaderCollection.dll": {} + } + }, + "System.Numerics.Vectors/4.1.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.dll": {} + } + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "dependencies": { + "System.Numerics.Vectors": "4.1.0", + "System.Runtime": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + } + }, + "System.ObjectModel/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ObjectModel.dll": {} + }, + "runtime": { + "lib/dotnet/System.ObjectModel.dll": {} + } + }, + "System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "runtime.any.System.Private.DataContractSerialization": "4.1.0" + }, + "compile": { + "ref/netcore50/_._": {} + } + }, + "System.Private.Networking/4.0.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Networking.dll": {} + } + }, + "System.Private.ServiceModel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Serialization.Primitives": "4.0.10", + "System.Runtime.Serialization.Xml": "4.0.10", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.ServiceModel.dll": {} + } + }, + "System.Private.Uri/4.0.0": { + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Uri.dll": {} + } + }, + "System.Reflection/4.0.10": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.dll": {} + } + }, + "System.Reflection.Context/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Reflection.Context.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Context.dll": {} + } + }, + "System.Reflection.DispatchProxy/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.DispatchProxy.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.DispatchProxy.dll": {} + } + }, + "System.Reflection.Emit/4.0.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.dll": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.ILGeneration.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Emit.Lightweight/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.Lightweight.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.Lightweight.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Metadata/1.0.22": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Reflection.TypeExtensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.TypeExtensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "lib/netcore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.20": { + "dependencies": { + "System.Private.Uri": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.20": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "compile": { + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + } + }, + "System.Runtime.Numerics/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.Numerics.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Numerics.dll": {} + } + }, + "System.Runtime.Serialization.Json/4.0.1": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Json.dll": {} + } + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Primitives.dll": {} + } + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.0", + "System.Xml.ReaderWriter": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Xml.dll": {} + } + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.0", + "System.IO": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.dll": {} + } + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + } + }, + "System.Security.Claims/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Security.Principal": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Security.Claims.dll": {} + }, + "runtime": { + "lib/dotnet/System.Security.Claims.dll": {} + } + }, + "System.Security.Principal/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Security.Principal.dll": {} + }, + "runtime": { + "lib/netcore50/System.Security.Principal.dll": {} + } + }, + "System.ServiceModel.Duplex/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Duplex.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Duplex.dll": {} + } + }, + "System.ServiceModel.Http/4.0.10": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.ServiceModel.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Http.dll": {} + } + }, + "System.ServiceModel.NetTcp/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.NetTcp.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.NetTcp.dll": {} + } + }, + "System.ServiceModel.Primitives/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Primitives.dll": {} + } + }, + "System.ServiceModel.Security/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Security.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Security.dll": {} + } + }, + "System.Text.Encoding/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.CodePages/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.CodePages.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.Encoding.CodePages.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Text.RegularExpressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.dll": {} + } + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Concurrent": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Diagnostics.Tracing": "4.0.0", + "System.Dynamic.Runtime": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + }, + "runtime": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + } + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "dependencies": { + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Threading.Tasks.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.Parallel.dll": {} + } + }, + "System.Threading.Timer/4.0.0": { + "compile": { + "ref/netcore50/System.Threading.Timer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Timer.dll": {} + } + }, + "System.Xml.ReaderWriter/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.ReaderWriter.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XDocument.dll": {} + } + }, + "System.Xml.XmlDocument/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XmlDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XmlDocument.dll": {} + } + }, + "System.Xml.XmlSerializer/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Xml.XmlSerializer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Xml.XmlSerializer.dll": {} + } + } + }, + "UAP,Version=v10.0/win10-arm-aot": { + "Microsoft.CSharp/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.CSharp.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.CSharp.dll": {} + } + }, + "Microsoft.NETCore/5.0.0": { + "dependencies": { + "Microsoft.CSharp": "4.0.0", + "Microsoft.NETCore.Targets": "1.0.0", + "Microsoft.VisualBasic": "10.0.0", + "System.AppContext": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.Immutable": "1.1.37", + "System.ComponentModel": "4.0.0", + "System.ComponentModel.Annotations": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tools": "4.0.0", + "System.Diagnostics.Tracing": "4.0.20", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Globalization.Calendars": "4.0.0", + "System.Globalization.Extensions": "4.0.0", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.Compression.ZipFile": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.IO.UnmanagedMemoryStream": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Parallel": "4.0.0", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.NetworkInformation": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Numerics.Vectors": "4.1.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Metadata": "1.0.22", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Numerics": "4.0.0", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Tasks.Dataflow": "4.5.25", + "System.Threading.Tasks.Parallel": "4.0.0", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XDocument": "4.0.10" + } + }, + "Microsoft.NETCore.Platforms/1.0.0": {}, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Runtime": "1.0.0" + }, + "compile": { + "ref/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "ref/netcore50/System.Core.dll": {}, + "ref/netcore50/System.Net.dll": {}, + "ref/netcore50/System.Numerics.dll": {}, + "ref/netcore50/System.Runtime.Serialization.dll": {}, + "ref/netcore50/System.ServiceModel.Web.dll": {}, + "ref/netcore50/System.ServiceModel.dll": {}, + "ref/netcore50/System.Windows.dll": {}, + "ref/netcore50/System.Xml.Linq.dll": {}, + "ref/netcore50/System.Xml.Serialization.dll": {}, + "ref/netcore50/System.Xml.dll": {}, + "ref/netcore50/System.dll": {}, + "ref/netcore50/mscorlib.dll": {} + }, + "runtime": { + "runtimes/aot/lib/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "runtimes/aot/lib/netcore50/System.Core.dll": {}, + "runtimes/aot/lib/netcore50/System.Net.dll": {}, + "runtimes/aot/lib/netcore50/System.Numerics.dll": {}, + "runtimes/aot/lib/netcore50/System.Runtime.Serialization.dll": {}, + "runtimes/aot/lib/netcore50/System.ServiceModel.Web.dll": {}, + "runtimes/aot/lib/netcore50/System.ServiceModel.dll": {}, + "runtimes/aot/lib/netcore50/System.Windows.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.Linq.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.Serialization.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.dll": {}, + "runtimes/aot/lib/netcore50/System.dll": {}, + "runtimes/aot/lib/netcore50/mscorlib.dll": {} + } + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Runtime.CoreCLR": "1.0.1", + "Microsoft.NETCore.Runtime.Native": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": {}, + "Microsoft.NETCore.Runtime.Native/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.0", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform": "5.0.0" + } + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": {}, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "dependencies": { + "Microsoft.NETCore": "5.0.0", + "Microsoft.NETCore.Portable.Compatibility": "1.0.0", + "Microsoft.NETCore.Runtime": "1.0.1", + "Microsoft.Win32.Primitives": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Data.Common": "4.0.0", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.StackTrace": "4.0.0", + "System.IO.IsolatedStorage": "4.0.0", + "System.Net.Http.Rtc": "4.0.0", + "System.Net.Requests": "4.0.10", + "System.Net.Sockets": "4.0.0", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Numerics.Vectors.WindowsRuntime": "4.0.0", + "System.Reflection.Context": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Runtime.Serialization.Json": "4.0.1", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Runtime.Serialization.Xml": "4.1.0", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0", + "System.ServiceModel.Duplex": "4.0.0", + "System.ServiceModel.Http": "4.0.10", + "System.ServiceModel.NetTcp": "4.0.0", + "System.ServiceModel.Primitives": "4.0.0", + "System.ServiceModel.Security": "4.0.0", + "System.Text.Encoding.CodePages": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + } + }, + "Microsoft.VisualBasic/10.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.VisualBasic.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.VisualBasic.dll": {} + } + }, + "Microsoft.Win32.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/Microsoft.Win32.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/Microsoft.Win32.Primitives.dll": {} + } + }, + "runtime.aot.System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Private.DataContractSerialization.dll": {} + } + }, + "System.AppContext/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/netcore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Collections.dll": {} + } + }, + "System.Collections.Concurrent/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Concurrent.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Collections.NonGeneric/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.NonGeneric.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.Globalization.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Specialized.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Specialized.dll": {} + } + }, + "System.ComponentModel/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ComponentModel.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.dll": {} + } + }, + "System.ComponentModel.Annotations/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.ComponentModel": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.Annotations.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.Annotations.dll": {} + } + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + } + }, + "System.Data.Common/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Data.Common.dll": {} + }, + "runtime": { + "lib/dotnet/System.Data.Common.dll": {} + } + }, + "System.Diagnostics.Contracts/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Contracts.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Debug.dll": {} + } + }, + "System.Diagnostics.StackTrace/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Diagnostics.StackTrace.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.StackTrace.dll": {} + } + }, + "System.Diagnostics.Tools/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tools.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.20": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Tracing.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tracing.dll": {} + } + }, + "System.Dynamic.Runtime/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Dynamic.Runtime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Dynamic.Runtime.dll": {} + } + }, + "System.Globalization/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.dll": {} + } + }, + "System.Globalization.Calendars/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.Calendars.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.Calendars.dll": {} + } + }, + "System.Globalization.Extensions/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Globalization.Extensions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Globalization.Extensions.dll": {} + } + }, + "System.IO/4.0.10": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.IO.dll": {} + } + }, + "System.IO.Compression/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.IO": "4.0.0", + "System.IO.Compression.clrcompression-arm": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/netcore50/System.IO.Compression.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.Compression.dll": {} + } + }, + "System.IO.Compression.clrcompression-arm/4.0.0": { + "native": { + "runtimes/win10-arm/native/ClrCompression.dll": {} + } + }, + "System.IO.Compression.ZipFile/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.Compression.ZipFile.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.IsolatedStorage/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.IsolatedStorage.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.IsolatedStorage.dll": {} + } + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + } + }, + "System.Linq/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Linq.Expressions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Linq.Expressions.dll": {} + } + }, + "System.Linq.Parallel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Parallel.dll": {} + } + }, + "System.Linq.Queryable/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Linq.Queryable.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Queryable.dll": {} + } + }, + "System.Net.Http/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Net.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.dll": {} + } + }, + "System.Net.Http.Rtc/4.0.0": { + "dependencies": { + "System.Net.Http": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Net.Http.Rtc.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.Rtc.dll": {} + } + }, + "System.Net.NetworkInformation/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Net.NetworkInformation.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.NetworkInformation.dll": {} + } + }, + "System.Net.Primitives/4.0.10": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Primitives.dll": {} + } + }, + "System.Net.Requests/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Net.Requests.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.Requests.dll": {} + } + }, + "System.Net.Sockets/4.0.0": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Sockets.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Sockets.dll": {} + } + }, + "System.Net.WebHeaderCollection/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.WebHeaderCollection.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.WebHeaderCollection.dll": {} + } + }, + "System.Numerics.Vectors/4.1.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.dll": {} + } + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "dependencies": { + "System.Numerics.Vectors": "4.1.0", + "System.Runtime": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + } + }, + "System.ObjectModel/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ObjectModel.dll": {} + }, + "runtime": { + "lib/dotnet/System.ObjectModel.dll": {} + } + }, + "System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "runtime.aot.System.Private.DataContractSerialization": "4.1.0" + }, + "compile": { + "ref/netcore50/_._": {} + } + }, + "System.Private.Networking/4.0.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Networking.dll": {} + } + }, + "System.Private.ServiceModel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Serialization.Primitives": "4.0.10", + "System.Runtime.Serialization.Xml": "4.0.10", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.ServiceModel.dll": {} + } + }, + "System.Private.Uri/4.0.0": { + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Private.Uri.dll": {} + } + }, + "System.Reflection/4.0.10": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.dll": {} + } + }, + "System.Reflection.Context/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Reflection.Context.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Context.dll": {} + } + }, + "System.Reflection.DispatchProxy/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.DispatchProxy.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.DispatchProxy.dll": {} + } + }, + "System.Reflection.Emit/4.0.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.dll": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.ILGeneration.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Metadata/1.0.22": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Reflection.TypeExtensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.TypeExtensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.20": { + "dependencies": { + "System.Private.Uri": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.20": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "compile": { + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + } + }, + "System.Runtime.Numerics/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.Numerics.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Numerics.dll": {} + } + }, + "System.Runtime.Serialization.Json/4.0.1": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Json.dll": {} + } + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Primitives.dll": {} + } + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.0", + "System.Xml.ReaderWriter": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Xml.dll": {} + } + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.0", + "System.IO": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll": {} + } + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + } + }, + "System.Security.Claims/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Security.Principal": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Security.Claims.dll": {} + }, + "runtime": { + "lib/dotnet/System.Security.Claims.dll": {} + } + }, + "System.Security.Principal/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Security.Principal.dll": {} + }, + "runtime": { + "lib/netcore50/System.Security.Principal.dll": {} + } + }, + "System.ServiceModel.Duplex/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Duplex.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Duplex.dll": {} + } + }, + "System.ServiceModel.Http/4.0.10": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.ServiceModel.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Http.dll": {} + } + }, + "System.ServiceModel.NetTcp/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.NetTcp.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.NetTcp.dll": {} + } + }, + "System.ServiceModel.Primitives/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Primitives.dll": {} + } + }, + "System.ServiceModel.Security/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Security.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Security.dll": {} + } + }, + "System.Text.Encoding/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.CodePages/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.CodePages.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.Encoding.CodePages.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Text.RegularExpressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll": {} + } + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Concurrent": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Diagnostics.Tracing": "4.0.0", + "System.Dynamic.Runtime": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + }, + "runtime": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + } + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "dependencies": { + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Threading.Tasks.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.Parallel.dll": {} + } + }, + "System.Threading.Timer/4.0.0": { + "compile": { + "ref/netcore50/System.Threading.Timer.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Timer.dll": {} + } + }, + "System.Xml.ReaderWriter/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.ReaderWriter.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XDocument.dll": {} + } + }, + "System.Xml.XmlDocument/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XmlDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XmlDocument.dll": {} + } + }, + "System.Xml.XmlSerializer/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Xml.XmlSerializer.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Xml.XmlSerializer.dll": {} + } + } + }, + "UAP,Version=v10.0/win10-x64": { + "Microsoft.CSharp/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.CSharp.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.CSharp.dll": {} + } + }, + "Microsoft.NETCore/5.0.0": { + "dependencies": { + "Microsoft.CSharp": "4.0.0", + "Microsoft.NETCore.Targets": "1.0.0", + "Microsoft.VisualBasic": "10.0.0", + "System.AppContext": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.Immutable": "1.1.37", + "System.ComponentModel": "4.0.0", + "System.ComponentModel.Annotations": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tools": "4.0.0", + "System.Diagnostics.Tracing": "4.0.20", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Globalization.Calendars": "4.0.0", + "System.Globalization.Extensions": "4.0.0", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.Compression.ZipFile": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.IO.UnmanagedMemoryStream": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Parallel": "4.0.0", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.NetworkInformation": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Numerics.Vectors": "4.1.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Metadata": "1.0.22", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Numerics": "4.0.0", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Tasks.Dataflow": "4.5.25", + "System.Threading.Tasks.Parallel": "4.0.0", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XDocument": "4.0.10" + } + }, + "Microsoft.NETCore.Platforms/1.0.0": {}, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Runtime": "1.0.0" + }, + "compile": { + "ref/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "ref/netcore50/System.Core.dll": {}, + "ref/netcore50/System.Net.dll": {}, + "ref/netcore50/System.Numerics.dll": {}, + "ref/netcore50/System.Runtime.Serialization.dll": {}, + "ref/netcore50/System.ServiceModel.Web.dll": {}, + "ref/netcore50/System.ServiceModel.dll": {}, + "ref/netcore50/System.Windows.dll": {}, + "ref/netcore50/System.Xml.Linq.dll": {}, + "ref/netcore50/System.Xml.Serialization.dll": {}, + "ref/netcore50/System.Xml.dll": {}, + "ref/netcore50/System.dll": {}, + "ref/netcore50/mscorlib.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "lib/netcore50/System.Core.dll": {}, + "lib/netcore50/System.Net.dll": {}, + "lib/netcore50/System.Numerics.dll": {}, + "lib/netcore50/System.Runtime.Serialization.dll": {}, + "lib/netcore50/System.ServiceModel.Web.dll": {}, + "lib/netcore50/System.ServiceModel.dll": {}, + "lib/netcore50/System.Windows.dll": {}, + "lib/netcore50/System.Xml.Linq.dll": {}, + "lib/netcore50/System.Xml.Serialization.dll": {}, + "lib/netcore50/System.Xml.dll": {}, + "lib/netcore50/System.dll": {} + } + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Runtime.CoreCLR": "1.0.1", + "Microsoft.NETCore.Runtime.Native": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "dependencies": { + "runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.Native/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.0", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform": "5.0.0" + } + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": {}, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "dependencies": { + "Microsoft.NETCore": "5.0.0", + "Microsoft.NETCore.Portable.Compatibility": "1.0.0", + "Microsoft.NETCore.Runtime": "1.0.1", + "Microsoft.Win32.Primitives": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Data.Common": "4.0.0", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.StackTrace": "4.0.0", + "System.IO.IsolatedStorage": "4.0.0", + "System.Net.Http.Rtc": "4.0.0", + "System.Net.Requests": "4.0.10", + "System.Net.Sockets": "4.0.0", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Numerics.Vectors.WindowsRuntime": "4.0.0", + "System.Reflection.Context": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Runtime.Serialization.Json": "4.0.1", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Runtime.Serialization.Xml": "4.1.0", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0", + "System.ServiceModel.Duplex": "4.0.0", + "System.ServiceModel.Http": "4.0.10", + "System.ServiceModel.NetTcp": "4.0.0", + "System.ServiceModel.Primitives": "4.0.0", + "System.ServiceModel.Security": "4.0.0", + "System.Text.Encoding.CodePages": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + } + }, + "Microsoft.NETCore.Windows.ApiSets-x64/1.0.0": { + "native": { + "runtimes/win10-x64/native/_._": {} + } + }, + "Microsoft.VisualBasic/10.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.VisualBasic.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.VisualBasic.dll": {} + } + }, + "Microsoft.Win32.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/Microsoft.Win32.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/Microsoft.Win32.Primitives.dll": {} + } + }, + "runtime.any.System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.DataContractSerialization.dll": {} + } + }, + "runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Windows.ApiSets-x64": "1.0.0" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "runtimes/win7-x64/lib/dotnet/mscorlib.ni.dll": {} + }, + "native": { + "runtimes/win7-x64/native/clretwrc.dll": {}, + "runtimes/win7-x64/native/coreclr.dll": {}, + "runtimes/win7-x64/native/dbgshim.dll": {}, + "runtimes/win7-x64/native/mscordaccore.dll": {}, + "runtimes/win7-x64/native/mscordbi.dll": {}, + "runtimes/win7-x64/native/mscorrc.debug.dll": {}, + "runtimes/win7-x64/native/mscorrc.dll": {} + } + }, + "System.AppContext/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/netcore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + }, + "runtime": { + "lib/netcore50/System.Collections.dll": {} + } + }, + "System.Collections.Concurrent/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Concurrent.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Collections.NonGeneric/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.NonGeneric.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.Globalization.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Specialized.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Specialized.dll": {} + } + }, + "System.ComponentModel/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ComponentModel.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.dll": {} + } + }, + "System.ComponentModel.Annotations/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.ComponentModel": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.Annotations.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.Annotations.dll": {} + } + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + } + }, + "System.Data.Common/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Data.Common.dll": {} + }, + "runtime": { + "lib/dotnet/System.Data.Common.dll": {} + } + }, + "System.Diagnostics.Contracts/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Contracts.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Debug.dll": {} + } + }, + "System.Diagnostics.StackTrace/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Diagnostics.StackTrace.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.StackTrace.dll": {} + } + }, + "System.Diagnostics.Tools/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tools.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.20": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Tracing.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tracing.dll": {} + } + }, + "System.Dynamic.Runtime/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Dynamic.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Dynamic.Runtime.dll": {} + } + }, + "System.Globalization/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.dll": {} + } + }, + "System.Globalization.Calendars/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.Calendars.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.Calendars.dll": {} + } + }, + "System.Globalization.Extensions/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Globalization.Extensions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Globalization.Extensions.dll": {} + } + }, + "System.IO/4.0.10": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.dll": {} + } + }, + "System.IO.Compression/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.IO": "4.0.0", + "System.IO.Compression.clrcompression-x64": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/netcore50/System.IO.Compression.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.Compression.dll": {} + } + }, + "System.IO.Compression.clrcompression-x64/4.0.0": { + "native": { + "runtimes/win10-x64/native/ClrCompression.dll": {} + } + }, + "System.IO.Compression.ZipFile/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.Compression.ZipFile.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.IsolatedStorage/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.IsolatedStorage.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.IsolatedStorage.dll": {} + } + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + } + }, + "System.Linq/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Linq.Expressions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Expressions.dll": {} + } + }, + "System.Linq.Parallel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Parallel.dll": {} + } + }, + "System.Linq.Queryable/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Linq.Queryable.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Queryable.dll": {} + } + }, + "System.Net.Http/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Net.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.dll": {} + } + }, + "System.Net.Http.Rtc/4.0.0": { + "dependencies": { + "System.Net.Http": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Net.Http.Rtc.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.Rtc.dll": {} + } + }, + "System.Net.NetworkInformation/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Net.NetworkInformation.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.NetworkInformation.dll": {} + } + }, + "System.Net.Primitives/4.0.10": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Primitives.dll": {} + } + }, + "System.Net.Requests/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Net.Requests.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.Requests.dll": {} + } + }, + "System.Net.Sockets/4.0.0": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Sockets.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Sockets.dll": {} + } + }, + "System.Net.WebHeaderCollection/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.WebHeaderCollection.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.WebHeaderCollection.dll": {} + } + }, + "System.Numerics.Vectors/4.1.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.dll": {} + } + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "dependencies": { + "System.Numerics.Vectors": "4.1.0", + "System.Runtime": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + } + }, + "System.ObjectModel/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ObjectModel.dll": {} + }, + "runtime": { + "lib/dotnet/System.ObjectModel.dll": {} + } + }, + "System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "runtime.any.System.Private.DataContractSerialization": "4.1.0" + }, + "compile": { + "ref/netcore50/_._": {} + } + }, + "System.Private.Networking/4.0.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Networking.dll": {} + } + }, + "System.Private.ServiceModel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Serialization.Primitives": "4.0.10", + "System.Runtime.Serialization.Xml": "4.0.10", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.ServiceModel.dll": {} + } + }, + "System.Private.Uri/4.0.0": { + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Uri.dll": {} + } + }, + "System.Reflection/4.0.10": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.dll": {} + } + }, + "System.Reflection.Context/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Reflection.Context.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Context.dll": {} + } + }, + "System.Reflection.DispatchProxy/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.DispatchProxy.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.DispatchProxy.dll": {} + } + }, + "System.Reflection.Emit/4.0.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.dll": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.ILGeneration.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Emit.Lightweight/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.Lightweight.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.Lightweight.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Metadata/1.0.22": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Reflection.TypeExtensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.TypeExtensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "lib/netcore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.20": { + "dependencies": { + "System.Private.Uri": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.20": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "compile": { + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + } + }, + "System.Runtime.Numerics/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.Numerics.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Numerics.dll": {} + } + }, + "System.Runtime.Serialization.Json/4.0.1": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Json.dll": {} + } + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Primitives.dll": {} + } + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.0", + "System.Xml.ReaderWriter": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Xml.dll": {} + } + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.0", + "System.IO": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.dll": {} + } + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + } + }, + "System.Security.Claims/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Security.Principal": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Security.Claims.dll": {} + }, + "runtime": { + "lib/dotnet/System.Security.Claims.dll": {} + } + }, + "System.Security.Principal/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Security.Principal.dll": {} + }, + "runtime": { + "lib/netcore50/System.Security.Principal.dll": {} + } + }, + "System.ServiceModel.Duplex/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Duplex.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Duplex.dll": {} + } + }, + "System.ServiceModel.Http/4.0.10": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.ServiceModel.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Http.dll": {} + } + }, + "System.ServiceModel.NetTcp/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.NetTcp.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.NetTcp.dll": {} + } + }, + "System.ServiceModel.Primitives/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Primitives.dll": {} + } + }, + "System.ServiceModel.Security/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Security.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Security.dll": {} + } + }, + "System.Text.Encoding/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.CodePages/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.CodePages.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.Encoding.CodePages.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Text.RegularExpressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.dll": {} + } + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Concurrent": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Diagnostics.Tracing": "4.0.0", + "System.Dynamic.Runtime": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + }, + "runtime": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + } + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "dependencies": { + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Threading.Tasks.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.Parallel.dll": {} + } + }, + "System.Threading.Timer/4.0.0": { + "compile": { + "ref/netcore50/System.Threading.Timer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Timer.dll": {} + } + }, + "System.Xml.ReaderWriter/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.ReaderWriter.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XDocument.dll": {} + } + }, + "System.Xml.XmlDocument/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XmlDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XmlDocument.dll": {} + } + }, + "System.Xml.XmlSerializer/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Xml.XmlSerializer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Xml.XmlSerializer.dll": {} + } + } + }, + "UAP,Version=v10.0/win10-x64-aot": { + "Microsoft.CSharp/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.CSharp.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.CSharp.dll": {} + } + }, + "Microsoft.NETCore/5.0.0": { + "dependencies": { + "Microsoft.CSharp": "4.0.0", + "Microsoft.NETCore.Targets": "1.0.0", + "Microsoft.VisualBasic": "10.0.0", + "System.AppContext": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.Immutable": "1.1.37", + "System.ComponentModel": "4.0.0", + "System.ComponentModel.Annotations": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tools": "4.0.0", + "System.Diagnostics.Tracing": "4.0.20", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Globalization.Calendars": "4.0.0", + "System.Globalization.Extensions": "4.0.0", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.Compression.ZipFile": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.IO.UnmanagedMemoryStream": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Parallel": "4.0.0", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.NetworkInformation": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Numerics.Vectors": "4.1.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Metadata": "1.0.22", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Numerics": "4.0.0", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Tasks.Dataflow": "4.5.25", + "System.Threading.Tasks.Parallel": "4.0.0", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XDocument": "4.0.10" + } + }, + "Microsoft.NETCore.Platforms/1.0.0": {}, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Runtime": "1.0.0" + }, + "compile": { + "ref/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "ref/netcore50/System.Core.dll": {}, + "ref/netcore50/System.Net.dll": {}, + "ref/netcore50/System.Numerics.dll": {}, + "ref/netcore50/System.Runtime.Serialization.dll": {}, + "ref/netcore50/System.ServiceModel.Web.dll": {}, + "ref/netcore50/System.ServiceModel.dll": {}, + "ref/netcore50/System.Windows.dll": {}, + "ref/netcore50/System.Xml.Linq.dll": {}, + "ref/netcore50/System.Xml.Serialization.dll": {}, + "ref/netcore50/System.Xml.dll": {}, + "ref/netcore50/System.dll": {}, + "ref/netcore50/mscorlib.dll": {} + }, + "runtime": { + "runtimes/aot/lib/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "runtimes/aot/lib/netcore50/System.Core.dll": {}, + "runtimes/aot/lib/netcore50/System.Net.dll": {}, + "runtimes/aot/lib/netcore50/System.Numerics.dll": {}, + "runtimes/aot/lib/netcore50/System.Runtime.Serialization.dll": {}, + "runtimes/aot/lib/netcore50/System.ServiceModel.Web.dll": {}, + "runtimes/aot/lib/netcore50/System.ServiceModel.dll": {}, + "runtimes/aot/lib/netcore50/System.Windows.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.Linq.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.Serialization.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.dll": {}, + "runtimes/aot/lib/netcore50/System.dll": {}, + "runtimes/aot/lib/netcore50/mscorlib.dll": {} + } + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Runtime.CoreCLR": "1.0.1", + "Microsoft.NETCore.Runtime.Native": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": {}, + "Microsoft.NETCore.Runtime.Native/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.0", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform": "5.0.0" + } + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": {}, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "dependencies": { + "Microsoft.NETCore": "5.0.0", + "Microsoft.NETCore.Portable.Compatibility": "1.0.0", + "Microsoft.NETCore.Runtime": "1.0.1", + "Microsoft.Win32.Primitives": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Data.Common": "4.0.0", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.StackTrace": "4.0.0", + "System.IO.IsolatedStorage": "4.0.0", + "System.Net.Http.Rtc": "4.0.0", + "System.Net.Requests": "4.0.10", + "System.Net.Sockets": "4.0.0", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Numerics.Vectors.WindowsRuntime": "4.0.0", + "System.Reflection.Context": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Runtime.Serialization.Json": "4.0.1", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Runtime.Serialization.Xml": "4.1.0", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0", + "System.ServiceModel.Duplex": "4.0.0", + "System.ServiceModel.Http": "4.0.10", + "System.ServiceModel.NetTcp": "4.0.0", + "System.ServiceModel.Primitives": "4.0.0", + "System.ServiceModel.Security": "4.0.0", + "System.Text.Encoding.CodePages": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + } + }, + "Microsoft.VisualBasic/10.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.VisualBasic.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.VisualBasic.dll": {} + } + }, + "Microsoft.Win32.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/Microsoft.Win32.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/Microsoft.Win32.Primitives.dll": {} + } + }, + "runtime.aot.System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Private.DataContractSerialization.dll": {} + } + }, + "System.AppContext/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/netcore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Collections.dll": {} + } + }, + "System.Collections.Concurrent/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Concurrent.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Collections.NonGeneric/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.NonGeneric.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.Globalization.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Specialized.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Specialized.dll": {} + } + }, + "System.ComponentModel/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ComponentModel.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.dll": {} + } + }, + "System.ComponentModel.Annotations/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.ComponentModel": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.Annotations.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.Annotations.dll": {} + } + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + } + }, + "System.Data.Common/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Data.Common.dll": {} + }, + "runtime": { + "lib/dotnet/System.Data.Common.dll": {} + } + }, + "System.Diagnostics.Contracts/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Contracts.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Debug.dll": {} + } + }, + "System.Diagnostics.StackTrace/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Diagnostics.StackTrace.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.StackTrace.dll": {} + } + }, + "System.Diagnostics.Tools/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tools.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.20": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Tracing.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tracing.dll": {} + } + }, + "System.Dynamic.Runtime/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Dynamic.Runtime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Dynamic.Runtime.dll": {} + } + }, + "System.Globalization/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.dll": {} + } + }, + "System.Globalization.Calendars/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.Calendars.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.Calendars.dll": {} + } + }, + "System.Globalization.Extensions/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Globalization.Extensions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Globalization.Extensions.dll": {} + } + }, + "System.IO/4.0.10": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.IO.dll": {} + } + }, + "System.IO.Compression/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.IO": "4.0.0", + "System.IO.Compression.clrcompression-x64": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/netcore50/System.IO.Compression.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.Compression.dll": {} + } + }, + "System.IO.Compression.clrcompression-x64/4.0.0": { + "native": { + "runtimes/win10-x64/native/ClrCompression.dll": {} + } + }, + "System.IO.Compression.ZipFile/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.Compression.ZipFile.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.IsolatedStorage/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.IsolatedStorage.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.IsolatedStorage.dll": {} + } + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + } + }, + "System.Linq/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Linq.Expressions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Linq.Expressions.dll": {} + } + }, + "System.Linq.Parallel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Parallel.dll": {} + } + }, + "System.Linq.Queryable/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Linq.Queryable.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Queryable.dll": {} + } + }, + "System.Net.Http/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Net.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.dll": {} + } + }, + "System.Net.Http.Rtc/4.0.0": { + "dependencies": { + "System.Net.Http": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Net.Http.Rtc.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.Rtc.dll": {} + } + }, + "System.Net.NetworkInformation/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Net.NetworkInformation.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.NetworkInformation.dll": {} + } + }, + "System.Net.Primitives/4.0.10": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Primitives.dll": {} + } + }, + "System.Net.Requests/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Net.Requests.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.Requests.dll": {} + } + }, + "System.Net.Sockets/4.0.0": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Sockets.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Sockets.dll": {} + } + }, + "System.Net.WebHeaderCollection/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.WebHeaderCollection.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.WebHeaderCollection.dll": {} + } + }, + "System.Numerics.Vectors/4.1.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.dll": {} + } + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "dependencies": { + "System.Numerics.Vectors": "4.1.0", + "System.Runtime": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + } + }, + "System.ObjectModel/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ObjectModel.dll": {} + }, + "runtime": { + "lib/dotnet/System.ObjectModel.dll": {} + } + }, + "System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "runtime.aot.System.Private.DataContractSerialization": "4.1.0" + }, + "compile": { + "ref/netcore50/_._": {} + } + }, + "System.Private.Networking/4.0.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Networking.dll": {} + } + }, + "System.Private.ServiceModel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Serialization.Primitives": "4.0.10", + "System.Runtime.Serialization.Xml": "4.0.10", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.ServiceModel.dll": {} + } + }, + "System.Private.Uri/4.0.0": { + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Private.Uri.dll": {} + } + }, + "System.Reflection/4.0.10": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.dll": {} + } + }, + "System.Reflection.Context/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Reflection.Context.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Context.dll": {} + } + }, + "System.Reflection.DispatchProxy/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.DispatchProxy.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.DispatchProxy.dll": {} + } + }, + "System.Reflection.Emit/4.0.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.dll": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.ILGeneration.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Metadata/1.0.22": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Reflection.TypeExtensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.TypeExtensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.20": { + "dependencies": { + "System.Private.Uri": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.20": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "compile": { + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + } + }, + "System.Runtime.Numerics/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.Numerics.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Numerics.dll": {} + } + }, + "System.Runtime.Serialization.Json/4.0.1": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Json.dll": {} + } + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Primitives.dll": {} + } + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.0", + "System.Xml.ReaderWriter": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Xml.dll": {} + } + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.0", + "System.IO": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll": {} + } + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + } + }, + "System.Security.Claims/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Security.Principal": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Security.Claims.dll": {} + }, + "runtime": { + "lib/dotnet/System.Security.Claims.dll": {} + } + }, + "System.Security.Principal/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Security.Principal.dll": {} + }, + "runtime": { + "lib/netcore50/System.Security.Principal.dll": {} + } + }, + "System.ServiceModel.Duplex/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Duplex.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Duplex.dll": {} + } + }, + "System.ServiceModel.Http/4.0.10": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.ServiceModel.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Http.dll": {} + } + }, + "System.ServiceModel.NetTcp/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.NetTcp.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.NetTcp.dll": {} + } + }, + "System.ServiceModel.Primitives/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Primitives.dll": {} + } + }, + "System.ServiceModel.Security/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Security.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Security.dll": {} + } + }, + "System.Text.Encoding/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.CodePages/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.CodePages.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.Encoding.CodePages.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Text.RegularExpressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll": {} + } + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Concurrent": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Diagnostics.Tracing": "4.0.0", + "System.Dynamic.Runtime": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + }, + "runtime": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + } + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "dependencies": { + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Threading.Tasks.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.Parallel.dll": {} + } + }, + "System.Threading.Timer/4.0.0": { + "compile": { + "ref/netcore50/System.Threading.Timer.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Timer.dll": {} + } + }, + "System.Xml.ReaderWriter/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.ReaderWriter.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XDocument.dll": {} + } + }, + "System.Xml.XmlDocument/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XmlDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XmlDocument.dll": {} + } + }, + "System.Xml.XmlSerializer/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Xml.XmlSerializer.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Xml.XmlSerializer.dll": {} + } + } + }, + "UAP,Version=v10.0/win10-x86": { + "Microsoft.CSharp/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.CSharp.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.CSharp.dll": {} + } + }, + "Microsoft.NETCore/5.0.0": { + "dependencies": { + "Microsoft.CSharp": "4.0.0", + "Microsoft.NETCore.Targets": "1.0.0", + "Microsoft.VisualBasic": "10.0.0", + "System.AppContext": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.Immutable": "1.1.37", + "System.ComponentModel": "4.0.0", + "System.ComponentModel.Annotations": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tools": "4.0.0", + "System.Diagnostics.Tracing": "4.0.20", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Globalization.Calendars": "4.0.0", + "System.Globalization.Extensions": "4.0.0", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.Compression.ZipFile": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.IO.UnmanagedMemoryStream": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Parallel": "4.0.0", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.NetworkInformation": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Numerics.Vectors": "4.1.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Metadata": "1.0.22", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Numerics": "4.0.0", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Tasks.Dataflow": "4.5.25", + "System.Threading.Tasks.Parallel": "4.0.0", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XDocument": "4.0.10" + } + }, + "Microsoft.NETCore.Platforms/1.0.0": {}, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Runtime": "1.0.0" + }, + "compile": { + "ref/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "ref/netcore50/System.Core.dll": {}, + "ref/netcore50/System.Net.dll": {}, + "ref/netcore50/System.Numerics.dll": {}, + "ref/netcore50/System.Runtime.Serialization.dll": {}, + "ref/netcore50/System.ServiceModel.Web.dll": {}, + "ref/netcore50/System.ServiceModel.dll": {}, + "ref/netcore50/System.Windows.dll": {}, + "ref/netcore50/System.Xml.Linq.dll": {}, + "ref/netcore50/System.Xml.Serialization.dll": {}, + "ref/netcore50/System.Xml.dll": {}, + "ref/netcore50/System.dll": {}, + "ref/netcore50/mscorlib.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "lib/netcore50/System.Core.dll": {}, + "lib/netcore50/System.Net.dll": {}, + "lib/netcore50/System.Numerics.dll": {}, + "lib/netcore50/System.Runtime.Serialization.dll": {}, + "lib/netcore50/System.ServiceModel.Web.dll": {}, + "lib/netcore50/System.ServiceModel.dll": {}, + "lib/netcore50/System.Windows.dll": {}, + "lib/netcore50/System.Xml.Linq.dll": {}, + "lib/netcore50/System.Xml.Serialization.dll": {}, + "lib/netcore50/System.Xml.dll": {}, + "lib/netcore50/System.dll": {} + } + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Runtime.CoreCLR": "1.0.1", + "Microsoft.NETCore.Runtime.Native": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "dependencies": { + "runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.Native/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.0", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform": "5.0.0" + } + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": {}, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "dependencies": { + "Microsoft.NETCore": "5.0.0", + "Microsoft.NETCore.Portable.Compatibility": "1.0.0", + "Microsoft.NETCore.Runtime": "1.0.1", + "Microsoft.Win32.Primitives": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Data.Common": "4.0.0", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.StackTrace": "4.0.0", + "System.IO.IsolatedStorage": "4.0.0", + "System.Net.Http.Rtc": "4.0.0", + "System.Net.Requests": "4.0.10", + "System.Net.Sockets": "4.0.0", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Numerics.Vectors.WindowsRuntime": "4.0.0", + "System.Reflection.Context": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Runtime.Serialization.Json": "4.0.1", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Runtime.Serialization.Xml": "4.1.0", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0", + "System.ServiceModel.Duplex": "4.0.0", + "System.ServiceModel.Http": "4.0.10", + "System.ServiceModel.NetTcp": "4.0.0", + "System.ServiceModel.Primitives": "4.0.0", + "System.ServiceModel.Security": "4.0.0", + "System.Text.Encoding.CodePages": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + } + }, + "Microsoft.NETCore.Windows.ApiSets-x86/1.0.0": { + "native": { + "runtimes/win10-x86/native/_._": {} + } + }, + "Microsoft.VisualBasic/10.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.VisualBasic.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.VisualBasic.dll": {} + } + }, + "Microsoft.Win32.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/Microsoft.Win32.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/Microsoft.Win32.Primitives.dll": {} + } + }, + "runtime.any.System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.DataContractSerialization.dll": {} + } + }, + "runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Windows.ApiSets-x86": "1.0.0" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "runtimes/win7-x86/lib/dotnet/mscorlib.ni.dll": {} + }, + "native": { + "runtimes/win7-x86/native/clretwrc.dll": {}, + "runtimes/win7-x86/native/coreclr.dll": {}, + "runtimes/win7-x86/native/dbgshim.dll": {}, + "runtimes/win7-x86/native/mscordaccore.dll": {}, + "runtimes/win7-x86/native/mscordbi.dll": {}, + "runtimes/win7-x86/native/mscorrc.debug.dll": {}, + "runtimes/win7-x86/native/mscorrc.dll": {} + } + }, + "System.AppContext/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/netcore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + }, + "runtime": { + "lib/netcore50/System.Collections.dll": {} + } + }, + "System.Collections.Concurrent/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Concurrent.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Collections.NonGeneric/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.NonGeneric.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.Globalization.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Specialized.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Specialized.dll": {} + } + }, + "System.ComponentModel/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ComponentModel.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.dll": {} + } + }, + "System.ComponentModel.Annotations/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.ComponentModel": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.Annotations.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.Annotations.dll": {} + } + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + } + }, + "System.Data.Common/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Data.Common.dll": {} + }, + "runtime": { + "lib/dotnet/System.Data.Common.dll": {} + } + }, + "System.Diagnostics.Contracts/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Contracts.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Debug.dll": {} + } + }, + "System.Diagnostics.StackTrace/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Diagnostics.StackTrace.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.StackTrace.dll": {} + } + }, + "System.Diagnostics.Tools/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tools.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.20": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Tracing.dll": {} + }, + "runtime": { + "lib/netcore50/System.Diagnostics.Tracing.dll": {} + } + }, + "System.Dynamic.Runtime/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Dynamic.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Dynamic.Runtime.dll": {} + } + }, + "System.Globalization/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.dll": {} + } + }, + "System.Globalization.Calendars/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.Calendars.dll": {} + }, + "runtime": { + "lib/netcore50/System.Globalization.Calendars.dll": {} + } + }, + "System.Globalization.Extensions/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Globalization.Extensions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Globalization.Extensions.dll": {} + } + }, + "System.IO/4.0.10": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.dll": {} + } + }, + "System.IO.Compression/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.IO": "4.0.0", + "System.IO.Compression.clrcompression-x86": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/netcore50/System.IO.Compression.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.Compression.dll": {} + } + }, + "System.IO.Compression.clrcompression-x86/4.0.0": { + "native": { + "runtimes/win10-x86/native/ClrCompression.dll": {} + } + }, + "System.IO.Compression.ZipFile/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.Compression.ZipFile.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.IsolatedStorage/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.IsolatedStorage.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.IsolatedStorage.dll": {} + } + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + } + }, + "System.Linq/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Emit.Lightweight": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Linq.Expressions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Expressions.dll": {} + } + }, + "System.Linq.Parallel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Parallel.dll": {} + } + }, + "System.Linq.Queryable/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Linq.Queryable.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Queryable.dll": {} + } + }, + "System.Net.Http/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Net.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.dll": {} + } + }, + "System.Net.Http.Rtc/4.0.0": { + "dependencies": { + "System.Net.Http": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Net.Http.Rtc.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.Rtc.dll": {} + } + }, + "System.Net.NetworkInformation/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Net.NetworkInformation.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.NetworkInformation.dll": {} + } + }, + "System.Net.Primitives/4.0.10": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Primitives.dll": {} + } + }, + "System.Net.Requests/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Net.Requests.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.Requests.dll": {} + } + }, + "System.Net.Sockets/4.0.0": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Sockets.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Sockets.dll": {} + } + }, + "System.Net.WebHeaderCollection/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.WebHeaderCollection.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.WebHeaderCollection.dll": {} + } + }, + "System.Numerics.Vectors/4.1.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.dll": {} + } + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "dependencies": { + "System.Numerics.Vectors": "4.1.0", + "System.Runtime": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + } + }, + "System.ObjectModel/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ObjectModel.dll": {} + }, + "runtime": { + "lib/dotnet/System.ObjectModel.dll": {} + } + }, + "System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "runtime.any.System.Private.DataContractSerialization": "4.1.0" + }, + "compile": { + "ref/netcore50/_._": {} + } + }, + "System.Private.Networking/4.0.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Networking.dll": {} + } + }, + "System.Private.ServiceModel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Serialization.Primitives": "4.0.10", + "System.Runtime.Serialization.Xml": "4.0.10", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.ServiceModel.dll": {} + } + }, + "System.Private.Uri/4.0.0": { + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Uri.dll": {} + } + }, + "System.Reflection/4.0.10": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.dll": {} + } + }, + "System.Reflection.Context/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Reflection.Context.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Context.dll": {} + } + }, + "System.Reflection.DispatchProxy/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.DispatchProxy.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.DispatchProxy.dll": {} + } + }, + "System.Reflection.Emit/4.0.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.dll": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.ILGeneration.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Emit.Lightweight/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.Lightweight.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.Lightweight.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Metadata/1.0.22": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Reflection.TypeExtensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.TypeExtensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "lib/netcore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.20": { + "dependencies": { + "System.Private.Uri": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.20": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "compile": { + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + } + }, + "System.Runtime.Numerics/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.Numerics.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Numerics.dll": {} + } + }, + "System.Runtime.Serialization.Json/4.0.1": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Json.dll": {} + } + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Primitives.dll": {} + } + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.0", + "System.Xml.ReaderWriter": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Serialization.Xml.dll": {} + } + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.0", + "System.IO": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.dll": {} + } + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + } + }, + "System.Security.Claims/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Security.Principal": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Security.Claims.dll": {} + }, + "runtime": { + "lib/dotnet/System.Security.Claims.dll": {} + } + }, + "System.Security.Principal/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Security.Principal.dll": {} + }, + "runtime": { + "lib/netcore50/System.Security.Principal.dll": {} + } + }, + "System.ServiceModel.Duplex/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Duplex.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Duplex.dll": {} + } + }, + "System.ServiceModel.Http/4.0.10": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.ServiceModel.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Http.dll": {} + } + }, + "System.ServiceModel.NetTcp/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.NetTcp.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.NetTcp.dll": {} + } + }, + "System.ServiceModel.Primitives/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Primitives.dll": {} + } + }, + "System.ServiceModel.Security/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Security.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Security.dll": {} + } + }, + "System.Text.Encoding/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.CodePages/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.CodePages.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.Encoding.CodePages.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + }, + "runtime": { + "lib/netcore50/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Text.RegularExpressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.dll": {} + } + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Concurrent": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Diagnostics.Tracing": "4.0.0", + "System.Dynamic.Runtime": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + }, + "runtime": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + } + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "dependencies": { + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Threading.Tasks.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.Parallel.dll": {} + } + }, + "System.Threading.Timer/4.0.0": { + "compile": { + "ref/netcore50/System.Threading.Timer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Timer.dll": {} + } + }, + "System.Xml.ReaderWriter/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.ReaderWriter.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XDocument.dll": {} + } + }, + "System.Xml.XmlDocument/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XmlDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XmlDocument.dll": {} + } + }, + "System.Xml.XmlSerializer/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Xml.XmlSerializer.dll": {} + }, + "runtime": { + "lib/netcore50/System.Xml.XmlSerializer.dll": {} + } + } + }, + "UAP,Version=v10.0/win10-x86-aot": { + "Microsoft.CSharp/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.CSharp.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.CSharp.dll": {} + } + }, + "Microsoft.NETCore/5.0.0": { + "dependencies": { + "Microsoft.CSharp": "4.0.0", + "Microsoft.NETCore.Targets": "1.0.0", + "Microsoft.VisualBasic": "10.0.0", + "System.AppContext": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.Immutable": "1.1.37", + "System.ComponentModel": "4.0.0", + "System.ComponentModel.Annotations": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tools": "4.0.0", + "System.Diagnostics.Tracing": "4.0.20", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Globalization.Calendars": "4.0.0", + "System.Globalization.Extensions": "4.0.0", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.Compression.ZipFile": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.IO.UnmanagedMemoryStream": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Parallel": "4.0.0", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.NetworkInformation": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Numerics.Vectors": "4.1.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Metadata": "1.0.22", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Numerics": "4.0.0", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Tasks.Dataflow": "4.5.25", + "System.Threading.Tasks.Parallel": "4.0.0", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XDocument": "4.0.10" + } + }, + "Microsoft.NETCore.Platforms/1.0.0": {}, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Runtime": "1.0.0" + }, + "compile": { + "ref/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "ref/netcore50/System.Core.dll": {}, + "ref/netcore50/System.Net.dll": {}, + "ref/netcore50/System.Numerics.dll": {}, + "ref/netcore50/System.Runtime.Serialization.dll": {}, + "ref/netcore50/System.ServiceModel.Web.dll": {}, + "ref/netcore50/System.ServiceModel.dll": {}, + "ref/netcore50/System.Windows.dll": {}, + "ref/netcore50/System.Xml.Linq.dll": {}, + "ref/netcore50/System.Xml.Serialization.dll": {}, + "ref/netcore50/System.Xml.dll": {}, + "ref/netcore50/System.dll": {}, + "ref/netcore50/mscorlib.dll": {} + }, + "runtime": { + "runtimes/aot/lib/netcore50/System.ComponentModel.DataAnnotations.dll": {}, + "runtimes/aot/lib/netcore50/System.Core.dll": {}, + "runtimes/aot/lib/netcore50/System.Net.dll": {}, + "runtimes/aot/lib/netcore50/System.Numerics.dll": {}, + "runtimes/aot/lib/netcore50/System.Runtime.Serialization.dll": {}, + "runtimes/aot/lib/netcore50/System.ServiceModel.Web.dll": {}, + "runtimes/aot/lib/netcore50/System.ServiceModel.dll": {}, + "runtimes/aot/lib/netcore50/System.Windows.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.Linq.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.Serialization.dll": {}, + "runtimes/aot/lib/netcore50/System.Xml.dll": {}, + "runtimes/aot/lib/netcore50/System.dll": {}, + "runtimes/aot/lib/netcore50/mscorlib.dll": {} + } + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "dependencies": { + "Microsoft.NETCore.Runtime.CoreCLR": "1.0.1", + "Microsoft.NETCore.Runtime.Native": "1.0.1" + } + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": {}, + "Microsoft.NETCore.Runtime.Native/1.0.1": {}, + "Microsoft.NETCore.Targets/1.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.0.0", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform": "5.0.0" + } + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": {}, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "dependencies": { + "Microsoft.NETCore": "5.0.0", + "Microsoft.NETCore.Portable.Compatibility": "1.0.0", + "Microsoft.NETCore.Runtime": "1.0.1", + "Microsoft.Win32.Primitives": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Data.Common": "4.0.0", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.StackTrace": "4.0.0", + "System.IO.IsolatedStorage": "4.0.0", + "System.Net.Http.Rtc": "4.0.0", + "System.Net.Requests": "4.0.10", + "System.Net.Sockets": "4.0.0", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Numerics.Vectors.WindowsRuntime": "4.0.0", + "System.Reflection.Context": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Runtime.Serialization.Json": "4.0.1", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Runtime.Serialization.Xml": "4.1.0", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Runtime.WindowsRuntime.UI.Xaml": "4.0.0", + "System.ServiceModel.Duplex": "4.0.0", + "System.ServiceModel.Http": "4.0.10", + "System.ServiceModel.NetTcp": "4.0.0", + "System.ServiceModel.Primitives": "4.0.0", + "System.ServiceModel.Security": "4.0.0", + "System.Text.Encoding.CodePages": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + } + }, + "Microsoft.VisualBasic/10.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Dynamic.Runtime": "4.0.10", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/netcore50/Microsoft.VisualBasic.dll": {} + }, + "runtime": { + "lib/netcore50/Microsoft.VisualBasic.dll": {} + } + }, + "Microsoft.Win32.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/Microsoft.Win32.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/Microsoft.Win32.Primitives.dll": {} + } + }, + "runtime.aot.System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/dotnet/_._": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Private.DataContractSerialization.dll": {} + } + }, + "System.AppContext/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.AppContext.dll": {} + }, + "runtime": { + "lib/netcore50/System.AppContext.dll": {} + } + }, + "System.Collections/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Collections.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Collections.dll": {} + } + }, + "System.Collections.Concurrent/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Concurrent.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Concurrent.dll": {} + } + }, + "System.Collections.Immutable/1.1.37": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Collections.Immutable.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Immutable.dll": {} + } + }, + "System.Collections.NonGeneric/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.NonGeneric.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.NonGeneric.dll": {} + } + }, + "System.Collections.Specialized/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.Globalization.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Collections.Specialized.dll": {} + }, + "runtime": { + "lib/dotnet/System.Collections.Specialized.dll": {} + } + }, + "System.ComponentModel/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ComponentModel.dll": {} + }, + "runtime": { + "lib/netcore50/System.ComponentModel.dll": {} + } + }, + "System.ComponentModel.Annotations/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.ComponentModel": "4.0.0", + "System.Globalization": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.Annotations.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.Annotations.dll": {} + } + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + }, + "runtime": { + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll": {} + } + }, + "System.Data.Common/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Globalization": "4.0.10", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Data.Common.dll": {} + }, + "runtime": { + "lib/dotnet/System.Data.Common.dll": {} + } + }, + "System.Diagnostics.Contracts/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Contracts.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Contracts.dll": {} + } + }, + "System.Diagnostics.Debug/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Debug.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Debug.dll": {} + } + }, + "System.Diagnostics.StackTrace/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Diagnostics.StackTrace.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.StackTrace.dll": {} + } + }, + "System.Diagnostics.Tools/4.0.0": { + "compile": { + "ref/netcore50/System.Diagnostics.Tools.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tools.dll": {} + } + }, + "System.Diagnostics.Tracing/4.0.20": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Diagnostics.Tracing.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tracing.dll": {} + } + }, + "System.Dynamic.Runtime/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Dynamic.Runtime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Dynamic.Runtime.dll": {} + } + }, + "System.Globalization/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.dll": {} + } + }, + "System.Globalization.Calendars/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Globalization.Calendars.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Globalization.Calendars.dll": {} + } + }, + "System.Globalization.Extensions/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Globalization.Extensions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Globalization.Extensions.dll": {} + } + }, + "System.IO/4.0.10": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Runtime": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.IO.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.IO.dll": {} + } + }, + "System.IO.Compression/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.IO": "4.0.0", + "System.IO.Compression.clrcompression-x86": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/netcore50/System.IO.Compression.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.Compression.dll": {} + } + }, + "System.IO.Compression.clrcompression-x86/4.0.0": { + "native": { + "runtimes/win10-x86/native/ClrCompression.dll": {} + } + }, + "System.IO.Compression.ZipFile/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.Compression.ZipFile.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.Compression.ZipFile.dll": {} + } + }, + "System.IO.FileSystem/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.FileSystem.dll": {} + } + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.IO.FileSystem.Primitives.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.FileSystem.Primitives.dll": {} + } + }, + "System.IO.IsolatedStorage/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.IsolatedStorage.dll": {} + }, + "runtime": { + "lib/netcore50/System.IO.IsolatedStorage.dll": {} + } + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "dependencies": { + "System.IO": "4.0.10", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + }, + "runtime": { + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll": {} + } + }, + "System.Linq/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.dll": {} + } + }, + "System.Linq.Expressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Linq.Expressions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Linq.Expressions.dll": {} + } + }, + "System.Linq.Parallel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Linq.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Parallel.dll": {} + } + }, + "System.Linq.Queryable/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Linq.Queryable.dll": {} + }, + "runtime": { + "lib/netcore50/System.Linq.Queryable.dll": {} + } + }, + "System.Net.Http/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Net.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.dll": {} + } + }, + "System.Net.Http.Rtc/4.0.0": { + "dependencies": { + "System.Net.Http": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Net.Http.Rtc.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Http.Rtc.dll": {} + } + }, + "System.Net.NetworkInformation/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Runtime.InteropServices.WindowsRuntime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Net.NetworkInformation.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.NetworkInformation.dll": {} + } + }, + "System.Net.Primitives/4.0.10": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Primitives.dll": {} + } + }, + "System.Net.Requests/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.IO": "4.0.10", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Net.Requests.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.Requests.dll": {} + } + }, + "System.Net.Sockets/4.0.0": { + "dependencies": { + "System.Private.Networking": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.Sockets.dll": {} + }, + "runtime": { + "lib/netcore50/System.Net.Sockets.dll": {} + } + }, + "System.Net.WebHeaderCollection/4.0.0": { + "dependencies": { + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Net.WebHeaderCollection.dll": {} + }, + "runtime": { + "lib/dotnet/System.Net.WebHeaderCollection.dll": {} + } + }, + "System.Numerics.Vectors/4.1.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Numerics.Vectors.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.dll": {} + } + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "dependencies": { + "System.Numerics.Vectors": "4.1.0", + "System.Runtime": "4.0.20", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + }, + "runtime": { + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll": {} + } + }, + "System.ObjectModel/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.ObjectModel.dll": {} + }, + "runtime": { + "lib/dotnet/System.ObjectModel.dll": {} + } + }, + "System.Private.DataContractSerialization/4.1.0": { + "dependencies": { + "runtime.aot.System.Private.DataContractSerialization": "4.1.0" + }, + "compile": { + "ref/netcore50/_._": {} + } + }, + "System.Private.Networking/4.0.0": { + "dependencies": { + "Microsoft.Win32.Primitives": "4.0.0", + "System.Collections": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Overlapped": "4.0.0", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.Networking.dll": {} + } + }, + "System.Private.ServiceModel/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Collections.Concurrent": "4.0.10", + "System.Collections.NonGeneric": "4.0.0", + "System.Collections.Specialized": "4.0.0", + "System.ComponentModel.EventBasedAsync": "4.0.10", + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.Compression": "4.0.0", + "System.Linq": "4.0.0", + "System.Linq.Expressions": "4.0.10", + "System.Linq.Queryable": "4.0.0", + "System.Net.Http": "4.0.0", + "System.Net.Primitives": "4.0.10", + "System.Net.WebHeaderCollection": "4.0.0", + "System.ObjectModel": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.DispatchProxy": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Runtime.Serialization.Primitives": "4.0.10", + "System.Runtime.Serialization.Xml": "4.0.10", + "System.Runtime.WindowsRuntime": "4.0.10", + "System.Security.Claims": "4.0.0", + "System.Security.Principal": "4.0.0", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10", + "System.Threading.Timer": "4.0.0", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0", + "System.Xml.XmlSerializer": "4.0.10" + }, + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "lib/netcore50/System.Private.ServiceModel.dll": {} + } + }, + "System.Private.Uri/4.0.0": { + "compile": { + "ref/netcore50/_._": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Private.Uri.dll": {} + } + }, + "System.Reflection/4.0.10": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Reflection.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.dll": {} + } + }, + "System.Reflection.Context/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Reflection.Context.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Context.dll": {} + } + }, + "System.Reflection.DispatchProxy/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.DispatchProxy.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.DispatchProxy.dll": {} + } + }, + "System.Reflection.Emit/4.0.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.dll": {} + } + }, + "System.Reflection.Emit.ILGeneration/4.0.0": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Reflection.Emit.ILGeneration.dll": {} + }, + "runtime": { + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll": {} + } + }, + "System.Reflection.Extensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Reflection.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll": {} + } + }, + "System.Reflection.Metadata/1.0.22": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Immutable": "1.1.37", + "System.Diagnostics.Debug": "4.0.0", + "System.IO": "4.0.0", + "System.Reflection": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.0", + "System.Text.Encoding": "4.0.0", + "System.Text.Encoding.Extensions": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + }, + "runtime": { + "lib/dotnet/System.Reflection.Metadata.dll": {} + } + }, + "System.Reflection.Primitives/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Reflection.Primitives.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll": {} + } + }, + "System.Reflection.TypeExtensions/4.0.0": { + "dependencies": { + "System.Diagnostics.Contracts": "4.0.0", + "System.Diagnostics.Debug": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Reflection.TypeExtensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Reflection.TypeExtensions.dll": {} + } + }, + "System.Resources.ResourceManager/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Reflection": "4.0.10", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Resources.ResourceManager.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll": {} + } + }, + "System.Runtime/4.0.20": { + "dependencies": { + "System.Private.Uri": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.dll": {} + } + }, + "System.Runtime.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.Runtime.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll": {} + } + }, + "System.Runtime.Handles/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.Handles.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll": {} + } + }, + "System.Runtime.InteropServices/4.0.20": { + "dependencies": { + "System.Reflection": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Handles": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Runtime.InteropServices.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.dll": {} + } + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "compile": { + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll": {} + } + }, + "System.Runtime.Numerics/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.Numerics.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.Numerics.dll": {} + } + }, + "System.Runtime.Serialization.Json/4.0.1": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Json.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Json.dll": {} + } + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Primitives.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Primitives.dll": {} + } + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "dependencies": { + "System.IO": "4.0.0", + "System.Private.DataContractSerialization": "4.1.0", + "System.Runtime": "4.0.0", + "System.Runtime.Serialization.Primitives": "4.1.0", + "System.Text.Encoding": "4.0.0", + "System.Xml.ReaderWriter": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.Serialization.Xml.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Xml.dll": {} + } + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "dependencies": { + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.0", + "System.IO": "4.0.10", + "System.ObjectModel": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll": {} + } + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "dependencies": { + "System.Globalization": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.WindowsRuntime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + }, + "runtime": { + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll": {} + } + }, + "System.Security.Claims/4.0.0": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Globalization": "4.0.0", + "System.IO": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Security.Principal": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Security.Claims.dll": {} + }, + "runtime": { + "lib/dotnet/System.Security.Claims.dll": {} + } + }, + "System.Security.Principal/4.0.0": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/netcore50/System.Security.Principal.dll": {} + }, + "runtime": { + "lib/netcore50/System.Security.Principal.dll": {} + } + }, + "System.ServiceModel.Duplex/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Duplex.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Duplex.dll": {} + } + }, + "System.ServiceModel.Http/4.0.10": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/dotnet/System.ServiceModel.Http.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Http.dll": {} + } + }, + "System.ServiceModel.NetTcp/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.NetTcp.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.NetTcp.dll": {} + } + }, + "System.ServiceModel.Primitives/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Primitives.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Primitives.dll": {} + } + }, + "System.ServiceModel.Security/4.0.0": { + "dependencies": { + "System.Private.ServiceModel": "4.0.0", + "System.Runtime": "4.0.20" + }, + "compile": { + "ref/netcore50/System.ServiceModel.Security.dll": {} + }, + "runtime": { + "lib/netcore50/System.ServiceModel.Security.dll": {} + } + }, + "System.Text.Encoding/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.dll": {} + } + }, + "System.Text.Encoding.CodePages/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.CodePages.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.Encoding.CodePages.dll": {} + } + }, + "System.Text.Encoding.Extensions/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Text.Encoding": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.Encoding.Extensions.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.Extensions.dll": {} + } + }, + "System.Text.RegularExpressions/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Globalization": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Text.RegularExpressions.dll": {} + }, + "runtime": { + "lib/dotnet/System.Text.RegularExpressions.dll": {} + } + }, + "System.Threading/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.dll": {} + } + }, + "System.Threading.Overlapped/4.0.0": { + "dependencies": { + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.0", + "System.Runtime.Handles": "4.0.0", + "System.Runtime.InteropServices": "4.0.20", + "System.Threading": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Threading.Overlapped.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Overlapped.dll": {} + } + }, + "System.Threading.Tasks/4.0.10": { + "dependencies": { + "System.Runtime": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Threading.Tasks.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll": {} + } + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "dependencies": { + "System.Collections": "4.0.0", + "System.Collections.Concurrent": "4.0.0", + "System.Diagnostics.Debug": "4.0.0", + "System.Diagnostics.Tracing": "4.0.0", + "System.Dynamic.Runtime": "4.0.0", + "System.Linq": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.0", + "System.Runtime.Extensions": "4.0.0", + "System.Threading": "4.0.0", + "System.Threading.Tasks": "4.0.0" + }, + "compile": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + }, + "runtime": { + "lib/dotnet/System.Threading.Tasks.Dataflow.dll": {} + } + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "dependencies": { + "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Diagnostics.Tracing": "4.0.20", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Threading": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/netcore50/System.Threading.Tasks.Parallel.dll": {} + }, + "runtime": { + "lib/netcore50/System.Threading.Tasks.Parallel.dll": {} + } + }, + "System.Threading.Timer/4.0.0": { + "compile": { + "ref/netcore50/System.Threading.Timer.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Threading.Timer.dll": {} + } + }, + "System.Xml.ReaderWriter/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.IO.FileSystem": "4.0.0", + "System.IO.FileSystem.Primitives": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Runtime.InteropServices": "4.0.20", + "System.Text.Encoding": "4.0.10", + "System.Text.Encoding.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading.Tasks": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.ReaderWriter.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.ReaderWriter.dll": {} + } + }, + "System.Xml.XDocument/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Reflection": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XDocument.dll": {} + } + }, + "System.Xml.XmlDocument/4.0.0": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.Encoding": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10" + }, + "compile": { + "ref/dotnet/System.Xml.XmlDocument.dll": {} + }, + "runtime": { + "lib/dotnet/System.Xml.XmlDocument.dll": {} + } + }, + "System.Xml.XmlSerializer/4.0.10": { + "dependencies": { + "System.Collections": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", + "System.Globalization": "4.0.10", + "System.IO": "4.0.10", + "System.Linq": "4.0.0", + "System.Reflection": "4.0.10", + "System.Reflection.Emit": "4.0.0", + "System.Reflection.Emit.ILGeneration": "4.0.0", + "System.Reflection.Extensions": "4.0.0", + "System.Reflection.Primitives": "4.0.0", + "System.Reflection.TypeExtensions": "4.0.0", + "System.Resources.ResourceManager": "4.0.0", + "System.Runtime": "4.0.20", + "System.Runtime.Extensions": "4.0.10", + "System.Text.RegularExpressions": "4.0.10", + "System.Threading": "4.0.10", + "System.Xml.ReaderWriter": "4.0.10", + "System.Xml.XmlDocument": "4.0.0" + }, + "compile": { + "ref/dotnet/System.Xml.XmlSerializer.dll": {} + }, + "runtime": { + "runtimes/win8-aot/lib/netcore50/System.Xml.XmlSerializer.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.CSharp/4.0.0": { + "sha512": "oWqeKUxHXdK6dL2CFjgMcaBISbkk+AqEg+yvJHE4DElNzS4QaTsCflgkkqZwVlWby1Dg9zo9n+iCAMFefFdJ/A==", + "type": "package", + "files": [ + "Microsoft.CSharp.4.0.0.nupkg.sha512", + "Microsoft.CSharp.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/Microsoft.CSharp.dll", + "lib/net45/_._", + "lib/netcore50/Microsoft.CSharp.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/Microsoft.CSharp.dll", + "ref/dotnet/Microsoft.CSharp.xml", + "ref/dotnet/de/Microsoft.CSharp.xml", + "ref/dotnet/es/Microsoft.CSharp.xml", + "ref/dotnet/fr/Microsoft.CSharp.xml", + "ref/dotnet/it/Microsoft.CSharp.xml", + "ref/dotnet/ja/Microsoft.CSharp.xml", + "ref/dotnet/ko/Microsoft.CSharp.xml", + "ref/dotnet/ru/Microsoft.CSharp.xml", + "ref/dotnet/zh-hans/Microsoft.CSharp.xml", + "ref/dotnet/zh-hant/Microsoft.CSharp.xml", + "ref/net45/_._", + "ref/netcore50/Microsoft.CSharp.dll", + "ref/netcore50/Microsoft.CSharp.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "Microsoft.NETCore/5.0.0": { + "sha512": "QQMp0yYQbIdfkKhdEE6Umh2Xonau7tasG36Trw/YlHoWgYQLp7T9L+ZD8EPvdj5ubRhtOuKEKwM7HMpkagB9ZA==", + "type": "package", + "files": [ + "Microsoft.NETCore.5.0.0.nupkg.sha512", + "Microsoft.NETCore.nuspec", + "_._" + ] + }, + "Microsoft.NETCore.Platforms/1.0.0": { + "sha512": "0N77OwGZpXqUco2C/ynv1os7HqdFYifvNIbveLDKqL5PZaz05Rl9enCwVBjF61aumHKueLWIJ3prnmdAXxww4A==", + "type": "package", + "files": [ + "Microsoft.NETCore.Platforms.1.0.0.nupkg.sha512", + "Microsoft.NETCore.Platforms.nuspec", + "runtime.json" + ] + }, + "Microsoft.NETCore.Portable.Compatibility/1.0.0": { + "sha512": "5/IFqf2zN1jzktRJitxO+5kQ+0AilcIbPvSojSJwDG3cGNSMZg44LXLB5E9RkSETE0Wh4QoALdNh1koKoF7/mA==", + "type": "package", + "files": [ + "Microsoft.NETCore.Portable.Compatibility.1.0.0.nupkg.sha512", + "Microsoft.NETCore.Portable.Compatibility.nuspec", + "lib/dnxcore50/System.ComponentModel.DataAnnotations.dll", + "lib/dnxcore50/System.Core.dll", + "lib/dnxcore50/System.Net.dll", + "lib/dnxcore50/System.Numerics.dll", + "lib/dnxcore50/System.Runtime.Serialization.dll", + "lib/dnxcore50/System.ServiceModel.Web.dll", + "lib/dnxcore50/System.ServiceModel.dll", + "lib/dnxcore50/System.Windows.dll", + "lib/dnxcore50/System.Xml.Linq.dll", + "lib/dnxcore50/System.Xml.Serialization.dll", + "lib/dnxcore50/System.Xml.dll", + "lib/dnxcore50/System.dll", + "lib/net45/_._", + "lib/netcore50/System.ComponentModel.DataAnnotations.dll", + "lib/netcore50/System.Core.dll", + "lib/netcore50/System.Net.dll", + "lib/netcore50/System.Numerics.dll", + "lib/netcore50/System.Runtime.Serialization.dll", + "lib/netcore50/System.ServiceModel.Web.dll", + "lib/netcore50/System.ServiceModel.dll", + "lib/netcore50/System.Windows.dll", + "lib/netcore50/System.Xml.Linq.dll", + "lib/netcore50/System.Xml.Serialization.dll", + "lib/netcore50/System.Xml.dll", + "lib/netcore50/System.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.ComponentModel.DataAnnotations.dll", + "ref/dotnet/System.Core.dll", + "ref/dotnet/System.Net.dll", + "ref/dotnet/System.Numerics.dll", + "ref/dotnet/System.Runtime.Serialization.dll", + "ref/dotnet/System.ServiceModel.Web.dll", + "ref/dotnet/System.ServiceModel.dll", + "ref/dotnet/System.Windows.dll", + "ref/dotnet/System.Xml.Linq.dll", + "ref/dotnet/System.Xml.Serialization.dll", + "ref/dotnet/System.Xml.dll", + "ref/dotnet/System.dll", + "ref/dotnet/mscorlib.dll", + "ref/net45/_._", + "ref/netcore50/System.ComponentModel.DataAnnotations.dll", + "ref/netcore50/System.Core.dll", + "ref/netcore50/System.Net.dll", + "ref/netcore50/System.Numerics.dll", + "ref/netcore50/System.Runtime.Serialization.dll", + "ref/netcore50/System.ServiceModel.Web.dll", + "ref/netcore50/System.ServiceModel.dll", + "ref/netcore50/System.Windows.dll", + "ref/netcore50/System.Xml.Linq.dll", + "ref/netcore50/System.Xml.Serialization.dll", + "ref/netcore50/System.Xml.dll", + "ref/netcore50/System.dll", + "ref/netcore50/mscorlib.dll", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/aot/lib/netcore50/System.ComponentModel.DataAnnotations.dll", + "runtimes/aot/lib/netcore50/System.Core.dll", + "runtimes/aot/lib/netcore50/System.Net.dll", + "runtimes/aot/lib/netcore50/System.Numerics.dll", + "runtimes/aot/lib/netcore50/System.Runtime.Serialization.dll", + "runtimes/aot/lib/netcore50/System.ServiceModel.Web.dll", + "runtimes/aot/lib/netcore50/System.ServiceModel.dll", + "runtimes/aot/lib/netcore50/System.Windows.dll", + "runtimes/aot/lib/netcore50/System.Xml.Linq.dll", + "runtimes/aot/lib/netcore50/System.Xml.Serialization.dll", + "runtimes/aot/lib/netcore50/System.Xml.dll", + "runtimes/aot/lib/netcore50/System.dll", + "runtimes/aot/lib/netcore50/mscorlib.dll" + ] + }, + "Microsoft.NETCore.Runtime/1.0.1": { + "sha512": "WIblAPds88Mwvcu8OjmspmHLG9zyay//n1jMVxQlxikGzZBIeRDz/O7o9qBtOR+vDpfn+Y2EbzdCmPb3brMGRg==", + "type": "package", + "files": [ + "Microsoft.NETCore.Runtime.1.0.1.nupkg.sha512", + "Microsoft.NETCore.Runtime.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt" + ] + }, + "Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "sha512": "EQlk4pidS+VppUSjhCCMXYlw9mf/47BwyM5XIX/gQHp5/qedKG7jypSMy0SGwv80U5mr1juQC0YROqjr7j8nTA==", + "type": "package", + "files": [ + "Microsoft.NETCore.Runtime.CoreCLR.1.0.1.nupkg.sha512", + "Microsoft.NETCore.Runtime.CoreCLR.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "runtime.json" + ] + }, + "Microsoft.NETCore.Runtime.Native/1.0.1": { + "sha512": "VeZR/qn/+FRH5rd1htnwBFIzSBW6xiA7Yu2UzaHKKlyf9Ev9xVXIOitWnkvb/tJMTKdmiCzmfi2TsAMajUHNZA==", + "type": "package", + "files": [ + "Microsoft.NETCore.Runtime.Native.1.0.1.nupkg.sha512", + "Microsoft.NETCore.Runtime.Native.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt" + ] + }, + "Microsoft.NETCore.Targets/1.0.0": { + "sha512": "XfITpPjYLYRmAeZtb9diw6P7ylLQsSC1U2a/xj10iQpnHxkiLEBXop/psw15qMPuNca7lqgxWvzZGpQxphuXaw==", + "type": "package", + "files": [ + "Microsoft.NETCore.Targets.1.0.0.nupkg.sha512", + "Microsoft.NETCore.Targets.nuspec", + "runtime.json" + ] + }, + "Microsoft.NETCore.Targets.UniversalWindowsPlatform/5.0.0": { + "sha512": "jszcJ6okLlhqF4OQbhSbixLOuLUyVT3BP7Y7/i7fcDMwnHBd1Pmdz6M1Al9SMDKVLA2oSaItg4tq6C0ydv8lYQ==", + "type": "package", + "files": [ + "Microsoft.NETCore.Targets.UniversalWindowsPlatform.5.0.0.nupkg.sha512", + "Microsoft.NETCore.Targets.UniversalWindowsPlatform.nuspec", + "runtime.json" + ] + }, + "Microsoft.NETCore.UniversalWindowsPlatform/5.1.0": { + "sha512": "6xdZAZALSJB65rRfOAfB6+aVBBc42Oz8jr8Cqy8J7A34zWVBV9l612lwbEsf6KJ1YdtocJsNcA8sLId3vJL/FA==", + "type": "package", + "files": [ + "Microsoft.NETCore.UniversalWindowsPlatform.5.1.0.nupkg.sha512", + "Microsoft.NETCore.UniversalWindowsPlatform.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt" + ] + }, + "Microsoft.NETCore.Windows.ApiSets-x64/1.0.0": { + "sha512": "NC+dpFMdhujz2sWAdJ8EmBk07p1zOlNi0FCCnZEbzftABpw9xZ99EMP/bUJrPTgCxHfzJAiuLPOtAauzVINk0w==", + "type": "package", + "files": [ + "Microsoft.NETCore.Windows.ApiSets-x64.1.0.0.nupkg.sha512", + "Microsoft.NETCore.Windows.ApiSets-x64.nuspec", + "runtimes/win10-x64/native/_._", + "runtimes/win7-x64/native/API-MS-Win-Base-Util-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Core-Kernel32-Private-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Core-Kernel32-Private-L1-1-1.dll", + "runtimes/win7-x64/native/API-MS-Win-Core-Kernel32-Private-L1-1-2.dll", + "runtimes/win7-x64/native/API-MS-Win-Core-PrivateProfile-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Core-ProcessTopology-Obsolete-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Core-String-L2-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Core-StringAnsi-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-EventLog-Legacy-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Eventing-ClassicProvider-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Eventing-Consumer-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Eventing-Controller-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Eventing-Legacy-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Eventing-Provider-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-Security-LsaPolicy-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-devices-config-L1-1-0.dll", + "runtimes/win7-x64/native/API-MS-Win-devices-config-L1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-com-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-com-private-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-comm-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-console-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-console-l2-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-datetime-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-datetime-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-debug-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-debug-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-delayload-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-errorhandling-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-errorhandling-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-fibers-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-fibers-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-file-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-file-l1-2-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-file-l1-2-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-file-l2-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-file-l2-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-handle-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-heap-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-heap-obsolete-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-interlocked-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-io-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-io-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-kernel32-legacy-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-kernel32-legacy-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-kernel32-legacy-l1-1-2.dll", + "runtimes/win7-x64/native/api-ms-win-core-libraryloader-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-libraryloader-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-localization-l1-2-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-localization-l1-2-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-localization-l2-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-localization-obsolete-l1-2-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-memory-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-memory-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-memory-l1-1-2.dll", + "runtimes/win7-x64/native/api-ms-win-core-memory-l1-1-3.dll", + "runtimes/win7-x64/native/api-ms-win-core-namedpipe-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-namedpipe-l1-2-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-normalization-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-privateprofile-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-processenvironment-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-processenvironment-l1-2-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-processsecurity-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-processthreads-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-processthreads-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-processthreads-l1-1-2.dll", + "runtimes/win7-x64/native/api-ms-win-core-profile-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-psapi-ansi-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-psapi-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-psapi-obsolete-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-realtime-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-registry-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-registry-l2-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-rtlsupport-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-shlwapi-legacy-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-shutdown-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-shutdown-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-string-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-string-obsolete-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-string-obsolete-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-stringloader-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-stringloader-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-synch-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-synch-l1-2-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-sysinfo-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-sysinfo-l1-2-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-sysinfo-l1-2-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-sysinfo-l1-2-2.dll", + "runtimes/win7-x64/native/api-ms-win-core-sysinfo-l1-2-3.dll", + "runtimes/win7-x64/native/api-ms-win-core-threadpool-l1-2-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-threadpool-legacy-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-threadpool-private-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-timezone-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-url-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-util-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-version-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-winrt-error-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-winrt-error-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-core-winrt-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-winrt-registration-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-winrt-robuffer-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-winrt-string-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-wow64-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-xstate-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-core-xstate-l2-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-ro-typeresolution-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-security-base-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-security-cpwl-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-security-cryptoapi-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-security-lsalookup-l2-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-security-lsalookup-l2-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-security-provider-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-security-sddl-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-service-core-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-service-core-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-service-management-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-service-management-l2-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-service-private-l1-1-0.dll", + "runtimes/win7-x64/native/api-ms-win-service-private-l1-1-1.dll", + "runtimes/win7-x64/native/api-ms-win-service-winsvc-l1-1-0.dll", + "runtimes/win7-x64/native/ext-ms-win-advapi32-encryptedfile-l1-1-0.dll", + "runtimes/win8-x64/native/API-MS-Win-Core-Kernel32-Private-L1-1-1.dll", + "runtimes/win8-x64/native/API-MS-Win-Core-Kernel32-Private-L1-1-2.dll", + "runtimes/win8-x64/native/API-MS-Win-devices-config-L1-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-file-l1-2-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-file-l2-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-kernel32-legacy-l1-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-kernel32-legacy-l1-1-2.dll", + "runtimes/win8-x64/native/api-ms-win-core-localization-l1-2-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-localization-obsolete-l1-2-0.dll", + "runtimes/win8-x64/native/api-ms-win-core-memory-l1-1-2.dll", + "runtimes/win8-x64/native/api-ms-win-core-memory-l1-1-3.dll", + "runtimes/win8-x64/native/api-ms-win-core-namedpipe-l1-2-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-privateprofile-l1-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-processthreads-l1-1-2.dll", + "runtimes/win8-x64/native/api-ms-win-core-shutdown-l1-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-string-obsolete-l1-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-stringloader-l1-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-sysinfo-l1-2-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-sysinfo-l1-2-2.dll", + "runtimes/win8-x64/native/api-ms-win-core-sysinfo-l1-2-3.dll", + "runtimes/win8-x64/native/api-ms-win-core-winrt-error-l1-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-core-xstate-l2-1-0.dll", + "runtimes/win8-x64/native/api-ms-win-security-cpwl-l1-1-0.dll", + "runtimes/win8-x64/native/api-ms-win-security-cryptoapi-l1-1-0.dll", + "runtimes/win8-x64/native/api-ms-win-security-lsalookup-l2-1-1.dll", + "runtimes/win8-x64/native/api-ms-win-service-private-l1-1-1.dll", + "runtimes/win81-x64/native/API-MS-Win-Core-Kernel32-Private-L1-1-2.dll", + "runtimes/win81-x64/native/api-ms-win-core-kernel32-legacy-l1-1-2.dll", + "runtimes/win81-x64/native/api-ms-win-core-memory-l1-1-3.dll", + "runtimes/win81-x64/native/api-ms-win-core-namedpipe-l1-2-1.dll", + "runtimes/win81-x64/native/api-ms-win-core-string-obsolete-l1-1-1.dll", + "runtimes/win81-x64/native/api-ms-win-core-sysinfo-l1-2-2.dll", + "runtimes/win81-x64/native/api-ms-win-core-sysinfo-l1-2-3.dll", + "runtimes/win81-x64/native/api-ms-win-security-cpwl-l1-1-0.dll" + ] + }, + "Microsoft.NETCore.Windows.ApiSets-x86/1.0.0": { + "sha512": "/HDRdhz5bZyhHwQ/uk/IbnDIX5VDTsHntEZYkTYo57dM+U3Ttel9/OJv0mjL64wTO/QKUJJNKp9XO+m7nSVjJQ==", + "type": "package", + "files": [ + "Microsoft.NETCore.Windows.ApiSets-x86.1.0.0.nupkg.sha512", + "Microsoft.NETCore.Windows.ApiSets-x86.nuspec", + "runtimes/win10-x86/native/_._", + "runtimes/win7-x86/native/API-MS-Win-Base-Util-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Core-Kernel32-Private-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Core-Kernel32-Private-L1-1-1.dll", + "runtimes/win7-x86/native/API-MS-Win-Core-Kernel32-Private-L1-1-2.dll", + "runtimes/win7-x86/native/API-MS-Win-Core-PrivateProfile-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Core-ProcessTopology-Obsolete-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Core-String-L2-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Core-StringAnsi-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-EventLog-Legacy-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Eventing-ClassicProvider-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Eventing-Consumer-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Eventing-Controller-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Eventing-Legacy-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Eventing-Provider-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-Security-LsaPolicy-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-devices-config-L1-1-0.dll", + "runtimes/win7-x86/native/API-MS-Win-devices-config-L1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-com-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-com-private-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-comm-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-console-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-console-l2-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-datetime-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-datetime-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-debug-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-debug-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-delayload-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-errorhandling-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-errorhandling-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-fibers-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-fibers-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-file-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-file-l1-2-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-file-l1-2-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-file-l2-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-file-l2-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-handle-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-heap-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-heap-obsolete-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-interlocked-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-io-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-io-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-kernel32-legacy-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-kernel32-legacy-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-kernel32-legacy-l1-1-2.dll", + "runtimes/win7-x86/native/api-ms-win-core-libraryloader-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-libraryloader-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-localization-l1-2-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-localization-l1-2-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-localization-l2-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-localization-obsolete-l1-2-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-memory-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-memory-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-memory-l1-1-2.dll", + "runtimes/win7-x86/native/api-ms-win-core-memory-l1-1-3.dll", + "runtimes/win7-x86/native/api-ms-win-core-namedpipe-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-namedpipe-l1-2-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-normalization-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-privateprofile-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-processenvironment-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-processenvironment-l1-2-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-processsecurity-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-processthreads-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-processthreads-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-processthreads-l1-1-2.dll", + "runtimes/win7-x86/native/api-ms-win-core-profile-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-psapi-ansi-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-psapi-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-psapi-obsolete-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-realtime-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-registry-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-registry-l2-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-rtlsupport-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-shlwapi-legacy-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-shlwapi-obsolete-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-shutdown-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-shutdown-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-string-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-string-obsolete-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-string-obsolete-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-stringloader-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-stringloader-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-synch-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-synch-l1-2-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-sysinfo-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-sysinfo-l1-2-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-sysinfo-l1-2-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-sysinfo-l1-2-2.dll", + "runtimes/win7-x86/native/api-ms-win-core-sysinfo-l1-2-3.dll", + "runtimes/win7-x86/native/api-ms-win-core-threadpool-l1-2-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-threadpool-legacy-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-threadpool-private-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-timezone-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-url-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-util-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-version-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-winrt-error-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-winrt-error-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-core-winrt-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-winrt-registration-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-winrt-robuffer-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-winrt-roparameterizediid-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-winrt-string-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-wow64-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-xstate-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-core-xstate-l2-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-ro-typeresolution-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-security-base-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-security-cpwl-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-security-cryptoapi-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-security-lsalookup-l2-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-security-lsalookup-l2-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-security-provider-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-security-sddl-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-service-core-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-service-core-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-service-management-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-service-management-l2-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-service-private-l1-1-0.dll", + "runtimes/win7-x86/native/api-ms-win-service-private-l1-1-1.dll", + "runtimes/win7-x86/native/api-ms-win-service-winsvc-l1-1-0.dll", + "runtimes/win7-x86/native/ext-ms-win-advapi32-encryptedfile-l1-1-0.dll", + "runtimes/win8-x86/native/API-MS-Win-Core-Kernel32-Private-L1-1-1.dll", + "runtimes/win8-x86/native/API-MS-Win-Core-Kernel32-Private-L1-1-2.dll", + "runtimes/win8-x86/native/API-MS-Win-devices-config-L1-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-file-l1-2-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-file-l2-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-kernel32-legacy-l1-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-kernel32-legacy-l1-1-2.dll", + "runtimes/win8-x86/native/api-ms-win-core-localization-l1-2-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-localization-obsolete-l1-2-0.dll", + "runtimes/win8-x86/native/api-ms-win-core-memory-l1-1-2.dll", + "runtimes/win8-x86/native/api-ms-win-core-memory-l1-1-3.dll", + "runtimes/win8-x86/native/api-ms-win-core-namedpipe-l1-2-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-privateprofile-l1-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-processthreads-l1-1-2.dll", + "runtimes/win8-x86/native/api-ms-win-core-shutdown-l1-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-string-obsolete-l1-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-stringloader-l1-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-sysinfo-l1-2-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-sysinfo-l1-2-2.dll", + "runtimes/win8-x86/native/api-ms-win-core-sysinfo-l1-2-3.dll", + "runtimes/win8-x86/native/api-ms-win-core-winrt-error-l1-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-core-xstate-l2-1-0.dll", + "runtimes/win8-x86/native/api-ms-win-security-cpwl-l1-1-0.dll", + "runtimes/win8-x86/native/api-ms-win-security-cryptoapi-l1-1-0.dll", + "runtimes/win8-x86/native/api-ms-win-security-lsalookup-l2-1-1.dll", + "runtimes/win8-x86/native/api-ms-win-service-private-l1-1-1.dll", + "runtimes/win81-x86/native/API-MS-Win-Core-Kernel32-Private-L1-1-2.dll", + "runtimes/win81-x86/native/api-ms-win-core-kernel32-legacy-l1-1-2.dll", + "runtimes/win81-x86/native/api-ms-win-core-memory-l1-1-3.dll", + "runtimes/win81-x86/native/api-ms-win-core-namedpipe-l1-2-1.dll", + "runtimes/win81-x86/native/api-ms-win-core-string-obsolete-l1-1-1.dll", + "runtimes/win81-x86/native/api-ms-win-core-sysinfo-l1-2-2.dll", + "runtimes/win81-x86/native/api-ms-win-core-sysinfo-l1-2-3.dll", + "runtimes/win81-x86/native/api-ms-win-security-cpwl-l1-1-0.dll" + ] + }, + "Microsoft.VisualBasic/10.0.0": { + "sha512": "5BEm2/HAVd97whRlCChU7rmSh/9cwGlZ/NTNe3Jl07zuPWfKQq5TUvVNUmdvmEe8QRecJLZ4/e7WF1i1O8V42g==", + "type": "package", + "files": [ + "Microsoft.VisualBasic.10.0.0.nupkg.sha512", + "Microsoft.VisualBasic.nuspec", + "lib/dotnet/Microsoft.VisualBasic.dll", + "lib/net45/_._", + "lib/netcore50/Microsoft.VisualBasic.dll", + "lib/win8/_._", + "lib/wpa81/_._", + "ref/dotnet/Microsoft.VisualBasic.dll", + "ref/dotnet/Microsoft.VisualBasic.xml", + "ref/dotnet/de/Microsoft.VisualBasic.xml", + "ref/dotnet/es/Microsoft.VisualBasic.xml", + "ref/dotnet/fr/Microsoft.VisualBasic.xml", + "ref/dotnet/it/Microsoft.VisualBasic.xml", + "ref/dotnet/ja/Microsoft.VisualBasic.xml", + "ref/dotnet/ko/Microsoft.VisualBasic.xml", + "ref/dotnet/ru/Microsoft.VisualBasic.xml", + "ref/dotnet/zh-hans/Microsoft.VisualBasic.xml", + "ref/dotnet/zh-hant/Microsoft.VisualBasic.xml", + "ref/net45/_._", + "ref/netcore50/Microsoft.VisualBasic.dll", + "ref/netcore50/Microsoft.VisualBasic.xml", + "ref/win8/_._", + "ref/wpa81/_._" + ] + }, + "Microsoft.Win32.Primitives/4.0.0": { + "sha512": "CypEz9/lLOup8CEhiAmvr7aLs1zKPYyEU1sxQeEr6G0Ci8/F0Y6pYR1zzkROjM8j8Mq0typmbu676oYyvErQvg==", + "type": "package", + "files": [ + "Microsoft.Win32.Primitives.4.0.0.nupkg.sha512", + "Microsoft.Win32.Primitives.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/Microsoft.Win32.Primitives.dll", + "lib/net46/Microsoft.Win32.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/Microsoft.Win32.Primitives.dll", + "ref/dotnet/Microsoft.Win32.Primitives.xml", + "ref/dotnet/de/Microsoft.Win32.Primitives.xml", + "ref/dotnet/es/Microsoft.Win32.Primitives.xml", + "ref/dotnet/fr/Microsoft.Win32.Primitives.xml", + "ref/dotnet/it/Microsoft.Win32.Primitives.xml", + "ref/dotnet/ja/Microsoft.Win32.Primitives.xml", + "ref/dotnet/ko/Microsoft.Win32.Primitives.xml", + "ref/dotnet/ru/Microsoft.Win32.Primitives.xml", + "ref/dotnet/zh-hans/Microsoft.Win32.Primitives.xml", + "ref/dotnet/zh-hant/Microsoft.Win32.Primitives.xml", + "ref/net46/Microsoft.Win32.Primitives.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "runtime.any.System.Private.DataContractSerialization/4.1.0": { + "sha512": "nJ5sB6Q7vbOEZ+tm/L7XISxO0Az6tkMup5rhpgPboVpUKgMnsdWiDvSlzzpK/bsiYxMIJCJ4Xrt2abt8Z1beJw==", + "type": "package", + "files": [ + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/DNXCore50/System.Private.DataContractSerialization.dll", + "lib/netcore50/System.Private.DataContractSerialization.dll", + "ref/dotnet/_._", + "runtime.any.System.Private.DataContractSerialization.4.1.0.nupkg.sha512", + "runtime.any.System.Private.DataContractSerialization.nuspec", + "runtimes/aot/lib/netcore50/_._" + ] + }, + "runtime.aot.System.Private.DataContractSerialization/4.1.0": { + "sha512": "0GKgzv1P8U+1x0grF5xg9xAjjVahzAZwGNF6ff8/CeXi+1isQYi7vZ/GhiyU7zDaQnKmSOj1/tTZqhOo5P4yTA==", + "type": "package", + "files": [ + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "ref/dotnet/_._", + "runtime.aot.System.Private.DataContractSerialization.4.1.0.nupkg.sha512", + "runtime.aot.System.Private.DataContractSerialization.nuspec", + "runtimes/win8-aot/lib/netcore50/System.Private.DataContractSerialization.dll" + ] + }, + "runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "sha512": "RGzhZPvizLZVtpUAnRHdIlluBT+IBgj9YuJcpUzvE9X9sDfSIzKLmHoAYeuQDOKXjRiy1qWh6/qsgXF9K8LDrQ==", + "type": "package", + "files": [ + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "ref/dotnet/_._", + "runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR.1.0.1.nupkg.sha512", + "runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR.nuspec", + "runtimes/win7-x64/lib/dotnet/mscorlib.ni.dll", + "runtimes/win7-x64/native/clretwrc.dll", + "runtimes/win7-x64/native/coreclr.dll", + "runtimes/win7-x64/native/dbgshim.dll", + "runtimes/win7-x64/native/mscordaccore.dll", + "runtimes/win7-x64/native/mscordbi.dll", + "runtimes/win7-x64/native/mscorrc.debug.dll", + "runtimes/win7-x64/native/mscorrc.dll" + ] + }, + "runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "sha512": "Sm4ZEOX0J7RLguqTTv/S1df8DHy+ndLPCg8qlth3icuO6awpSzkqte5gQMV4pSci5YduMed9mgRGcPe3EQ5l2w==", + "type": "package", + "files": [ + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "ref/dotnet/_._", + "runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR.1.0.1.nupkg.sha512", + "runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR.nuspec", + "runtimes/win7-x86/lib/dotnet/mscorlib.ni.dll", + "runtimes/win7-x86/native/clretwrc.dll", + "runtimes/win7-x86/native/coreclr.dll", + "runtimes/win7-x86/native/dbgshim.dll", + "runtimes/win7-x86/native/mscordaccore.dll", + "runtimes/win7-x86/native/mscordbi.dll", + "runtimes/win7-x86/native/mscorrc.debug.dll", + "runtimes/win7-x86/native/mscorrc.dll" + ] + }, + "runtime.win8-arm.Microsoft.NETCore.Runtime.CoreCLR/1.0.1": { + "sha512": "sO14C2owb6uCS+OuoCUO6baXQQrG4D3rfOtE6iL1RNsiTTe/rjQC7NZY0iWmUjzd7+g+5ejaEv4x3sM2KRAUSw==", + "type": "package", + "files": [ + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "ref/dotnet/_._", + "runtime.win8-arm.Microsoft.NETCore.Runtime.CoreCLR.1.0.1.nupkg.sha512", + "runtime.win8-arm.Microsoft.NETCore.Runtime.CoreCLR.nuspec", + "runtimes/win8-arm/lib/dotnet/mscorlib.ni.dll", + "runtimes/win8-arm/native/clretwrc.dll", + "runtimes/win8-arm/native/coreclr.dll", + "runtimes/win8-arm/native/dbgshim.dll", + "runtimes/win8-arm/native/mscordaccore.dll", + "runtimes/win8-arm/native/mscordbi.dll", + "runtimes/win8-arm/native/mscorrc.debug.dll", + "runtimes/win8-arm/native/mscorrc.dll" + ] + }, + "System.AppContext/4.0.0": { + "sha512": "gUoYgAWDC3+xhKeU5KSLbYDhTdBYk9GssrMSCcWUADzOglW+s0AmwVhOUGt2tL5xUl7ZXoYTPdA88zCgKrlG0A==", + "type": "package", + "files": [ + "System.AppContext.4.0.0.nupkg.sha512", + "System.AppContext.nuspec", + "lib/DNXCore50/System.AppContext.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.AppContext.dll", + "lib/netcore50/System.AppContext.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.AppContext.dll", + "ref/dotnet/System.AppContext.xml", + "ref/dotnet/de/System.AppContext.xml", + "ref/dotnet/es/System.AppContext.xml", + "ref/dotnet/fr/System.AppContext.xml", + "ref/dotnet/it/System.AppContext.xml", + "ref/dotnet/ja/System.AppContext.xml", + "ref/dotnet/ko/System.AppContext.xml", + "ref/dotnet/ru/System.AppContext.xml", + "ref/dotnet/zh-hans/System.AppContext.xml", + "ref/dotnet/zh-hant/System.AppContext.xml", + "ref/net46/System.AppContext.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Collections/4.0.10": { + "sha512": "ux6ilcZZjV/Gp7JEZpe+2V1eTueq6NuoGRM3eZCFuPM25hLVVgCRuea6STW8hvqreIOE59irJk5/ovpA5xQipw==", + "type": "package", + "files": [ + "System.Collections.4.0.10.nupkg.sha512", + "System.Collections.nuspec", + "lib/DNXCore50/System.Collections.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Collections.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Collections.dll", + "ref/dotnet/System.Collections.xml", + "ref/dotnet/de/System.Collections.xml", + "ref/dotnet/es/System.Collections.xml", + "ref/dotnet/fr/System.Collections.xml", + "ref/dotnet/it/System.Collections.xml", + "ref/dotnet/ja/System.Collections.xml", + "ref/dotnet/ko/System.Collections.xml", + "ref/dotnet/ru/System.Collections.xml", + "ref/dotnet/zh-hans/System.Collections.xml", + "ref/dotnet/zh-hant/System.Collections.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Collections.dll" + ] + }, + "System.Collections.Concurrent/4.0.10": { + "sha512": "ZtMEqOPAjAIqR8fqom9AOKRaB94a+emO2O8uOP6vyJoNswSPrbiwN7iH53rrVpvjMVx0wr4/OMpI7486uGZjbw==", + "type": "package", + "files": [ + "System.Collections.Concurrent.4.0.10.nupkg.sha512", + "System.Collections.Concurrent.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Collections.Concurrent.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Collections.Concurrent.dll", + "ref/dotnet/System.Collections.Concurrent.xml", + "ref/dotnet/de/System.Collections.Concurrent.xml", + "ref/dotnet/es/System.Collections.Concurrent.xml", + "ref/dotnet/fr/System.Collections.Concurrent.xml", + "ref/dotnet/it/System.Collections.Concurrent.xml", + "ref/dotnet/ja/System.Collections.Concurrent.xml", + "ref/dotnet/ko/System.Collections.Concurrent.xml", + "ref/dotnet/ru/System.Collections.Concurrent.xml", + "ref/dotnet/zh-hans/System.Collections.Concurrent.xml", + "ref/dotnet/zh-hant/System.Collections.Concurrent.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Collections.Immutable/1.1.37": { + "sha512": "fTpqwZYBzoklTT+XjTRK8KxvmrGkYHzBiylCcKyQcxiOM8k+QvhNBxRvFHDWzy4OEP5f8/9n+xQ9mEgEXY+muA==", + "type": "package", + "files": [ + "System.Collections.Immutable.1.1.37.nupkg.sha512", + "System.Collections.Immutable.nuspec", + "lib/dotnet/System.Collections.Immutable.dll", + "lib/dotnet/System.Collections.Immutable.xml", + "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.dll", + "lib/portable-net45+win8+wp8+wpa81/System.Collections.Immutable.xml" + ] + }, + "System.Collections.NonGeneric/4.0.0": { + "sha512": "rVgwrFBMkmp8LI6GhAYd6Bx+2uLIXjRfNg6Ie+ASfX8ESuh9e2HNxFy2yh1MPIXZq3OAYa+0mmULVwpnEC6UDA==", + "type": "package", + "files": [ + "System.Collections.NonGeneric.4.0.0.nupkg.sha512", + "System.Collections.NonGeneric.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Collections.NonGeneric.dll", + "lib/net46/System.Collections.NonGeneric.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Collections.NonGeneric.dll", + "ref/dotnet/System.Collections.NonGeneric.xml", + "ref/dotnet/de/System.Collections.NonGeneric.xml", + "ref/dotnet/es/System.Collections.NonGeneric.xml", + "ref/dotnet/fr/System.Collections.NonGeneric.xml", + "ref/dotnet/it/System.Collections.NonGeneric.xml", + "ref/dotnet/ja/System.Collections.NonGeneric.xml", + "ref/dotnet/ko/System.Collections.NonGeneric.xml", + "ref/dotnet/ru/System.Collections.NonGeneric.xml", + "ref/dotnet/zh-hans/System.Collections.NonGeneric.xml", + "ref/dotnet/zh-hant/System.Collections.NonGeneric.xml", + "ref/net46/System.Collections.NonGeneric.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Collections.Specialized/4.0.0": { + "sha512": "poJFwQCUOoXqvdoGxx+3p8Z63yawcYKPBSFP67Z2jICeOINvEIQZN7mVOAnC7gsVF0WU+A2wtVwfhagC7UCgAg==", + "type": "package", + "files": [ + "System.Collections.Specialized.4.0.0.nupkg.sha512", + "System.Collections.Specialized.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Collections.Specialized.dll", + "lib/net46/System.Collections.Specialized.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Collections.Specialized.dll", + "ref/dotnet/System.Collections.Specialized.xml", + "ref/dotnet/de/System.Collections.Specialized.xml", + "ref/dotnet/es/System.Collections.Specialized.xml", + "ref/dotnet/fr/System.Collections.Specialized.xml", + "ref/dotnet/it/System.Collections.Specialized.xml", + "ref/dotnet/ja/System.Collections.Specialized.xml", + "ref/dotnet/ko/System.Collections.Specialized.xml", + "ref/dotnet/ru/System.Collections.Specialized.xml", + "ref/dotnet/zh-hans/System.Collections.Specialized.xml", + "ref/dotnet/zh-hant/System.Collections.Specialized.xml", + "ref/net46/System.Collections.Specialized.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.ComponentModel/4.0.0": { + "sha512": "BzpLdSi++ld7rJLOOt5f/G9GxujP202bBgKORsHcGV36rLB0mfSA2h8chTMoBzFhgN7TE14TmJ2J7Q1RyNCTAw==", + "type": "package", + "files": [ + "System.ComponentModel.4.0.0.nupkg.sha512", + "System.ComponentModel.nuspec", + "lib/dotnet/System.ComponentModel.dll", + "lib/net45/_._", + "lib/netcore50/System.ComponentModel.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.ComponentModel.dll", + "ref/dotnet/System.ComponentModel.xml", + "ref/dotnet/de/System.ComponentModel.xml", + "ref/dotnet/es/System.ComponentModel.xml", + "ref/dotnet/fr/System.ComponentModel.xml", + "ref/dotnet/it/System.ComponentModel.xml", + "ref/dotnet/ja/System.ComponentModel.xml", + "ref/dotnet/ko/System.ComponentModel.xml", + "ref/dotnet/ru/System.ComponentModel.xml", + "ref/dotnet/zh-hans/System.ComponentModel.xml", + "ref/dotnet/zh-hant/System.ComponentModel.xml", + "ref/net45/_._", + "ref/netcore50/System.ComponentModel.dll", + "ref/netcore50/System.ComponentModel.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._" + ] + }, + "System.ComponentModel.Annotations/4.0.10": { + "sha512": "7+XGyEZx24nP1kpHxCB9e+c6D0fdVDvFwE1xujE9BzlXyNVcy5J5aIO0H/ECupx21QpyRvzZibGAHfL/XLL6dw==", + "type": "package", + "files": [ + "System.ComponentModel.Annotations.4.0.10.nupkg.sha512", + "System.ComponentModel.Annotations.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.ComponentModel.Annotations.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.ComponentModel.Annotations.dll", + "ref/dotnet/System.ComponentModel.Annotations.xml", + "ref/dotnet/de/System.ComponentModel.Annotations.xml", + "ref/dotnet/es/System.ComponentModel.Annotations.xml", + "ref/dotnet/fr/System.ComponentModel.Annotations.xml", + "ref/dotnet/it/System.ComponentModel.Annotations.xml", + "ref/dotnet/ja/System.ComponentModel.Annotations.xml", + "ref/dotnet/ko/System.ComponentModel.Annotations.xml", + "ref/dotnet/ru/System.ComponentModel.Annotations.xml", + "ref/dotnet/zh-hans/System.ComponentModel.Annotations.xml", + "ref/dotnet/zh-hant/System.ComponentModel.Annotations.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.ComponentModel.EventBasedAsync/4.0.10": { + "sha512": "d6kXcHUgP0jSPXEQ6hXJYCO6CzfoCi7t9vR3BfjSQLrj4HzpuATpx1gkN7itmTW1O+wjuw6rai4378Nj6N70yw==", + "type": "package", + "files": [ + "System.ComponentModel.EventBasedAsync.4.0.10.nupkg.sha512", + "System.ComponentModel.EventBasedAsync.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.ComponentModel.EventBasedAsync.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.ComponentModel.EventBasedAsync.dll", + "ref/dotnet/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/de/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/es/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/fr/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/it/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/ja/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/ko/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/ru/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/zh-hans/System.ComponentModel.EventBasedAsync.xml", + "ref/dotnet/zh-hant/System.ComponentModel.EventBasedAsync.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Data.Common/4.0.0": { + "sha512": "SA7IdoTWiImVr0exDM68r0mKmR4f/qFGxZUrJQKu4YS7F+3afWzSOCezHxWdevQ0ONi4WRQsOiv+Zf9p8H0Feg==", + "type": "package", + "files": [ + "System.Data.Common.4.0.0.nupkg.sha512", + "System.Data.Common.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Data.Common.dll", + "lib/net46/System.Data.Common.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Data.Common.dll", + "ref/dotnet/System.Data.Common.xml", + "ref/dotnet/de/System.Data.Common.xml", + "ref/dotnet/es/System.Data.Common.xml", + "ref/dotnet/fr/System.Data.Common.xml", + "ref/dotnet/it/System.Data.Common.xml", + "ref/dotnet/ja/System.Data.Common.xml", + "ref/dotnet/ko/System.Data.Common.xml", + "ref/dotnet/ru/System.Data.Common.xml", + "ref/dotnet/zh-hans/System.Data.Common.xml", + "ref/dotnet/zh-hant/System.Data.Common.xml", + "ref/net46/System.Data.Common.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Diagnostics.Contracts/4.0.0": { + "sha512": "lMc7HNmyIsu0pKTdA4wf+FMq5jvouUd+oUpV4BdtyqoV0Pkbg9u/7lTKFGqpjZRQosWHq1+B32Lch2wf4AmloA==", + "type": "package", + "files": [ + "System.Diagnostics.Contracts.4.0.0.nupkg.sha512", + "System.Diagnostics.Contracts.nuspec", + "lib/DNXCore50/System.Diagnostics.Contracts.dll", + "lib/net45/_._", + "lib/netcore50/System.Diagnostics.Contracts.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Diagnostics.Contracts.dll", + "ref/dotnet/System.Diagnostics.Contracts.xml", + "ref/dotnet/de/System.Diagnostics.Contracts.xml", + "ref/dotnet/es/System.Diagnostics.Contracts.xml", + "ref/dotnet/fr/System.Diagnostics.Contracts.xml", + "ref/dotnet/it/System.Diagnostics.Contracts.xml", + "ref/dotnet/ja/System.Diagnostics.Contracts.xml", + "ref/dotnet/ko/System.Diagnostics.Contracts.xml", + "ref/dotnet/ru/System.Diagnostics.Contracts.xml", + "ref/dotnet/zh-hans/System.Diagnostics.Contracts.xml", + "ref/dotnet/zh-hant/System.Diagnostics.Contracts.xml", + "ref/net45/_._", + "ref/netcore50/System.Diagnostics.Contracts.dll", + "ref/netcore50/System.Diagnostics.Contracts.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Contracts.dll" + ] + }, + "System.Diagnostics.Debug/4.0.10": { + "sha512": "pi2KthuvI2LWV2c2V+fwReDsDiKpNl040h6DcwFOb59SafsPT/V1fCy0z66OKwysurJkBMmp5j5CBe3Um+ub0g==", + "type": "package", + "files": [ + "System.Diagnostics.Debug.4.0.10.nupkg.sha512", + "System.Diagnostics.Debug.nuspec", + "lib/DNXCore50/System.Diagnostics.Debug.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Diagnostics.Debug.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Diagnostics.Debug.dll", + "ref/dotnet/System.Diagnostics.Debug.xml", + "ref/dotnet/de/System.Diagnostics.Debug.xml", + "ref/dotnet/es/System.Diagnostics.Debug.xml", + "ref/dotnet/fr/System.Diagnostics.Debug.xml", + "ref/dotnet/it/System.Diagnostics.Debug.xml", + "ref/dotnet/ja/System.Diagnostics.Debug.xml", + "ref/dotnet/ko/System.Diagnostics.Debug.xml", + "ref/dotnet/ru/System.Diagnostics.Debug.xml", + "ref/dotnet/zh-hans/System.Diagnostics.Debug.xml", + "ref/dotnet/zh-hant/System.Diagnostics.Debug.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Debug.dll" + ] + }, + "System.Diagnostics.StackTrace/4.0.0": { + "sha512": "PItgenqpRiMqErvQONBlfDwctKpWVrcDSW5pppNZPJ6Bpiyz+KjsWoSiaqs5dt03HEbBTMNCrZb8KCkh7YfXmw==", + "type": "package", + "files": [ + "System.Diagnostics.StackTrace.4.0.0.nupkg.sha512", + "System.Diagnostics.StackTrace.nuspec", + "lib/DNXCore50/System.Diagnostics.StackTrace.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Diagnostics.StackTrace.dll", + "lib/netcore50/System.Diagnostics.StackTrace.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Diagnostics.StackTrace.dll", + "ref/dotnet/System.Diagnostics.StackTrace.xml", + "ref/dotnet/de/System.Diagnostics.StackTrace.xml", + "ref/dotnet/es/System.Diagnostics.StackTrace.xml", + "ref/dotnet/fr/System.Diagnostics.StackTrace.xml", + "ref/dotnet/it/System.Diagnostics.StackTrace.xml", + "ref/dotnet/ja/System.Diagnostics.StackTrace.xml", + "ref/dotnet/ko/System.Diagnostics.StackTrace.xml", + "ref/dotnet/ru/System.Diagnostics.StackTrace.xml", + "ref/dotnet/zh-hans/System.Diagnostics.StackTrace.xml", + "ref/dotnet/zh-hant/System.Diagnostics.StackTrace.xml", + "ref/net46/System.Diagnostics.StackTrace.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.StackTrace.dll" + ] + }, + "System.Diagnostics.Tools/4.0.0": { + "sha512": "uw5Qi2u5Cgtv4xv3+8DeB63iaprPcaEHfpeJqlJiLjIVy6v0La4ahJ6VW9oPbJNIjcavd24LKq0ctT9ssuQXsw==", + "type": "package", + "files": [ + "System.Diagnostics.Tools.4.0.0.nupkg.sha512", + "System.Diagnostics.Tools.nuspec", + "lib/DNXCore50/System.Diagnostics.Tools.dll", + "lib/net45/_._", + "lib/netcore50/System.Diagnostics.Tools.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Diagnostics.Tools.dll", + "ref/dotnet/System.Diagnostics.Tools.xml", + "ref/dotnet/de/System.Diagnostics.Tools.xml", + "ref/dotnet/es/System.Diagnostics.Tools.xml", + "ref/dotnet/fr/System.Diagnostics.Tools.xml", + "ref/dotnet/it/System.Diagnostics.Tools.xml", + "ref/dotnet/ja/System.Diagnostics.Tools.xml", + "ref/dotnet/ko/System.Diagnostics.Tools.xml", + "ref/dotnet/ru/System.Diagnostics.Tools.xml", + "ref/dotnet/zh-hans/System.Diagnostics.Tools.xml", + "ref/dotnet/zh-hant/System.Diagnostics.Tools.xml", + "ref/net45/_._", + "ref/netcore50/System.Diagnostics.Tools.dll", + "ref/netcore50/System.Diagnostics.Tools.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tools.dll" + ] + }, + "System.Diagnostics.Tracing/4.0.20": { + "sha512": "gn/wexGHc35Fv++5L1gYHMY5g25COfiZ0PGrL+3PfwzoJd4X2LbTAm/U8d385SI6BKQBI/z4dQfvneS9J27+Tw==", + "type": "package", + "files": [ + "System.Diagnostics.Tracing.4.0.20.nupkg.sha512", + "System.Diagnostics.Tracing.nuspec", + "lib/DNXCore50/System.Diagnostics.Tracing.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Diagnostics.Tracing.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Diagnostics.Tracing.dll", + "ref/dotnet/System.Diagnostics.Tracing.xml", + "ref/dotnet/de/System.Diagnostics.Tracing.xml", + "ref/dotnet/es/System.Diagnostics.Tracing.xml", + "ref/dotnet/fr/System.Diagnostics.Tracing.xml", + "ref/dotnet/it/System.Diagnostics.Tracing.xml", + "ref/dotnet/ja/System.Diagnostics.Tracing.xml", + "ref/dotnet/ko/System.Diagnostics.Tracing.xml", + "ref/dotnet/ru/System.Diagnostics.Tracing.xml", + "ref/dotnet/zh-hans/System.Diagnostics.Tracing.xml", + "ref/dotnet/zh-hant/System.Diagnostics.Tracing.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Diagnostics.Tracing.dll" + ] + }, + "System.Dynamic.Runtime/4.0.10": { + "sha512": "r10VTLdlxtYp46BuxomHnwx7vIoMOr04CFoC/jJJfY22f7HQQ4P+cXY2Nxo6/rIxNNqOxwdbQQwv7Gl88Jsu1w==", + "type": "package", + "files": [ + "System.Dynamic.Runtime.4.0.10.nupkg.sha512", + "System.Dynamic.Runtime.nuspec", + "lib/DNXCore50/System.Dynamic.Runtime.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Dynamic.Runtime.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Dynamic.Runtime.dll", + "ref/dotnet/System.Dynamic.Runtime.xml", + "ref/dotnet/de/System.Dynamic.Runtime.xml", + "ref/dotnet/es/System.Dynamic.Runtime.xml", + "ref/dotnet/fr/System.Dynamic.Runtime.xml", + "ref/dotnet/it/System.Dynamic.Runtime.xml", + "ref/dotnet/ja/System.Dynamic.Runtime.xml", + "ref/dotnet/ko/System.Dynamic.Runtime.xml", + "ref/dotnet/ru/System.Dynamic.Runtime.xml", + "ref/dotnet/zh-hans/System.Dynamic.Runtime.xml", + "ref/dotnet/zh-hant/System.Dynamic.Runtime.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtime.json", + "runtimes/win8-aot/lib/netcore50/System.Dynamic.Runtime.dll" + ] + }, + "System.Globalization/4.0.10": { + "sha512": "kzRtbbCNAxdafFBDogcM36ehA3th8c1PGiz8QRkZn8O5yMBorDHSK8/TGJPYOaCS5zdsGk0u9qXHnW91nqy7fw==", + "type": "package", + "files": [ + "System.Globalization.4.0.10.nupkg.sha512", + "System.Globalization.nuspec", + "lib/DNXCore50/System.Globalization.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Globalization.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Globalization.dll", + "ref/dotnet/System.Globalization.xml", + "ref/dotnet/de/System.Globalization.xml", + "ref/dotnet/es/System.Globalization.xml", + "ref/dotnet/fr/System.Globalization.xml", + "ref/dotnet/it/System.Globalization.xml", + "ref/dotnet/ja/System.Globalization.xml", + "ref/dotnet/ko/System.Globalization.xml", + "ref/dotnet/ru/System.Globalization.xml", + "ref/dotnet/zh-hans/System.Globalization.xml", + "ref/dotnet/zh-hant/System.Globalization.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Globalization.dll" + ] + }, + "System.Globalization.Calendars/4.0.0": { + "sha512": "cL6WrdGKnNBx9W/iTr+jbffsEO4RLjEtOYcpVSzPNDoli6X5Q6bAfWtJYbJNOPi8Q0fXgBEvKK1ncFL/3FTqlA==", + "type": "package", + "files": [ + "System.Globalization.Calendars.4.0.0.nupkg.sha512", + "System.Globalization.Calendars.nuspec", + "lib/DNXCore50/System.Globalization.Calendars.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Globalization.Calendars.dll", + "lib/netcore50/System.Globalization.Calendars.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Globalization.Calendars.dll", + "ref/dotnet/System.Globalization.Calendars.xml", + "ref/dotnet/de/System.Globalization.Calendars.xml", + "ref/dotnet/es/System.Globalization.Calendars.xml", + "ref/dotnet/fr/System.Globalization.Calendars.xml", + "ref/dotnet/it/System.Globalization.Calendars.xml", + "ref/dotnet/ja/System.Globalization.Calendars.xml", + "ref/dotnet/ko/System.Globalization.Calendars.xml", + "ref/dotnet/ru/System.Globalization.Calendars.xml", + "ref/dotnet/zh-hans/System.Globalization.Calendars.xml", + "ref/dotnet/zh-hant/System.Globalization.Calendars.xml", + "ref/net46/System.Globalization.Calendars.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Globalization.Calendars.dll" + ] + }, + "System.Globalization.Extensions/4.0.0": { + "sha512": "rqbUXiwpBCvJ18ySCsjh20zleazO+6fr3s5GihC2sVwhyS0MUl6+oc5Rzk0z6CKkS4kmxbZQSeZLsK7cFSO0ng==", + "type": "package", + "files": [ + "System.Globalization.Extensions.4.0.0.nupkg.sha512", + "System.Globalization.Extensions.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Globalization.Extensions.dll", + "lib/net46/System.Globalization.Extensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Globalization.Extensions.dll", + "ref/dotnet/System.Globalization.Extensions.xml", + "ref/dotnet/de/System.Globalization.Extensions.xml", + "ref/dotnet/es/System.Globalization.Extensions.xml", + "ref/dotnet/fr/System.Globalization.Extensions.xml", + "ref/dotnet/it/System.Globalization.Extensions.xml", + "ref/dotnet/ja/System.Globalization.Extensions.xml", + "ref/dotnet/ko/System.Globalization.Extensions.xml", + "ref/dotnet/ru/System.Globalization.Extensions.xml", + "ref/dotnet/zh-hans/System.Globalization.Extensions.xml", + "ref/dotnet/zh-hant/System.Globalization.Extensions.xml", + "ref/net46/System.Globalization.Extensions.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.IO/4.0.10": { + "sha512": "kghf1CeYT+W2lw8a50/GxFz5HR9t6RkL4BvjxtTp1NxtEFWywnMA9W8FH/KYXiDNThcw9u/GOViDON4iJFGXIQ==", + "type": "package", + "files": [ + "System.IO.4.0.10.nupkg.sha512", + "System.IO.nuspec", + "lib/DNXCore50/System.IO.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.IO.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.IO.dll", + "ref/dotnet/System.IO.xml", + "ref/dotnet/de/System.IO.xml", + "ref/dotnet/es/System.IO.xml", + "ref/dotnet/fr/System.IO.xml", + "ref/dotnet/it/System.IO.xml", + "ref/dotnet/ja/System.IO.xml", + "ref/dotnet/ko/System.IO.xml", + "ref/dotnet/ru/System.IO.xml", + "ref/dotnet/zh-hans/System.IO.xml", + "ref/dotnet/zh-hant/System.IO.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.IO.dll" + ] + }, + "System.IO.Compression/4.0.0": { + "sha512": "S+ljBE3py8pujTrsOOYHtDg2cnAifn6kBu/pfh1hMWIXd8DoVh0ADTA6Puv4q+nYj+Msm6JoFLNwuRSmztbsDQ==", + "type": "package", + "files": [ + "System.IO.Compression.4.0.0.nupkg.sha512", + "System.IO.Compression.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.IO.Compression.dll", + "lib/net45/_._", + "lib/netcore50/System.IO.Compression.dll", + "lib/win8/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.IO.Compression.dll", + "ref/dotnet/System.IO.Compression.xml", + "ref/dotnet/de/System.IO.Compression.xml", + "ref/dotnet/es/System.IO.Compression.xml", + "ref/dotnet/fr/System.IO.Compression.xml", + "ref/dotnet/it/System.IO.Compression.xml", + "ref/dotnet/ja/System.IO.Compression.xml", + "ref/dotnet/ko/System.IO.Compression.xml", + "ref/dotnet/ru/System.IO.Compression.xml", + "ref/dotnet/zh-hans/System.IO.Compression.xml", + "ref/dotnet/zh-hant/System.IO.Compression.xml", + "ref/net45/_._", + "ref/netcore50/System.IO.Compression.dll", + "ref/netcore50/System.IO.Compression.xml", + "ref/win8/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtime.json" + ] + }, + "System.IO.Compression.clrcompression-arm/4.0.0": { + "sha512": "Kk21GecAbI+H6tMP6/lMssGObbhoHwLiREiB5UkNMCypdxACuF+6gmrdDTousCUcbH28CJeo7tArrnUc+bchuw==", + "type": "package", + "files": [ + "System.IO.Compression.clrcompression-arm.4.0.0.nupkg.sha512", + "System.IO.Compression.clrcompression-arm.nuspec", + "runtimes/win10-arm/native/ClrCompression.dll", + "runtimes/win7-arm/native/clrcompression.dll" + ] + }, + "System.IO.Compression.clrcompression-x64/4.0.0": { + "sha512": "Lqr+URMwKzf+8HJF6YrqEqzKzDzFJTE4OekaxqdIns71r8Ufbd8SbZa0LKl9q+7nu6Em4SkIEXVMB7plSXekOw==", + "type": "package", + "files": [ + "System.IO.Compression.clrcompression-x64.4.0.0.nupkg.sha512", + "System.IO.Compression.clrcompression-x64.nuspec", + "runtimes/win10-x64/native/ClrCompression.dll", + "runtimes/win7-x64/native/clrcompression.dll" + ] + }, + "System.IO.Compression.clrcompression-x86/4.0.0": { + "sha512": "GmevpuaMRzYDXHu+xuV10fxTO8DsP7OKweWxYtkaxwVnDSj9X6RBupSiXdiveq9yj/xjZ1NbG+oRRRb99kj+VQ==", + "type": "package", + "files": [ + "System.IO.Compression.clrcompression-x86.4.0.0.nupkg.sha512", + "System.IO.Compression.clrcompression-x86.nuspec", + "runtimes/win10-x86/native/ClrCompression.dll", + "runtimes/win7-x86/native/clrcompression.dll" + ] + }, + "System.IO.Compression.ZipFile/4.0.0": { + "sha512": "pwntmtsJqtt6Lez4Iyv4GVGW6DaXUTo9Rnlsx0MFagRgX+8F/sxG5S/IzDJabBj68sUWViz1QJrRZL4V9ngWDg==", + "type": "package", + "files": [ + "System.IO.Compression.ZipFile.4.0.0.nupkg.sha512", + "System.IO.Compression.ZipFile.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.IO.Compression.ZipFile.dll", + "lib/net46/System.IO.Compression.ZipFile.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.IO.Compression.ZipFile.dll", + "ref/dotnet/System.IO.Compression.ZipFile.xml", + "ref/dotnet/de/System.IO.Compression.ZipFile.xml", + "ref/dotnet/es/System.IO.Compression.ZipFile.xml", + "ref/dotnet/fr/System.IO.Compression.ZipFile.xml", + "ref/dotnet/it/System.IO.Compression.ZipFile.xml", + "ref/dotnet/ja/System.IO.Compression.ZipFile.xml", + "ref/dotnet/ko/System.IO.Compression.ZipFile.xml", + "ref/dotnet/ru/System.IO.Compression.ZipFile.xml", + "ref/dotnet/zh-hans/System.IO.Compression.ZipFile.xml", + "ref/dotnet/zh-hant/System.IO.Compression.ZipFile.xml", + "ref/net46/System.IO.Compression.ZipFile.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.IO.FileSystem/4.0.0": { + "sha512": "eo05SPWfG+54UA0wxgRIYOuOslq+2QrJLXZaJDDsfLXG15OLguaItW39NYZTqUb4DeGOkU4R0wpOLOW4ynMUDQ==", + "type": "package", + "files": [ + "System.IO.FileSystem.4.0.0.nupkg.sha512", + "System.IO.FileSystem.nuspec", + "lib/DNXCore50/System.IO.FileSystem.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.IO.FileSystem.dll", + "lib/netcore50/System.IO.FileSystem.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.IO.FileSystem.dll", + "ref/dotnet/System.IO.FileSystem.xml", + "ref/dotnet/de/System.IO.FileSystem.xml", + "ref/dotnet/es/System.IO.FileSystem.xml", + "ref/dotnet/fr/System.IO.FileSystem.xml", + "ref/dotnet/it/System.IO.FileSystem.xml", + "ref/dotnet/ja/System.IO.FileSystem.xml", + "ref/dotnet/ko/System.IO.FileSystem.xml", + "ref/dotnet/ru/System.IO.FileSystem.xml", + "ref/dotnet/zh-hans/System.IO.FileSystem.xml", + "ref/dotnet/zh-hant/System.IO.FileSystem.xml", + "ref/net46/System.IO.FileSystem.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.IO.FileSystem.Primitives/4.0.0": { + "sha512": "7pJUvYi/Yq3A5nagqCCiOw3+aJp3xXc/Cjr8dnJDnER3/6kX3LEencfqmXUcPl9+7OvRNyPMNhqsLAcMK6K/KA==", + "type": "package", + "files": [ + "System.IO.FileSystem.Primitives.4.0.0.nupkg.sha512", + "System.IO.FileSystem.Primitives.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.IO.FileSystem.Primitives.dll", + "lib/net46/System.IO.FileSystem.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.IO.FileSystem.Primitives.dll", + "ref/dotnet/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/de/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/es/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/fr/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/it/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ja/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ko/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/ru/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/zh-hans/System.IO.FileSystem.Primitives.xml", + "ref/dotnet/zh-hant/System.IO.FileSystem.Primitives.xml", + "ref/net46/System.IO.FileSystem.Primitives.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.IO.IsolatedStorage/4.0.0": { + "sha512": "d5KimUbZ49Ki6A/uwU+Iodng+nhJvpRs7hr/828cfeXC02LxUiggnRnAu+COtWcKvJ2YbBmAGOcO4GLK4fX1+w==", + "type": "package", + "files": [ + "System.IO.IsolatedStorage.4.0.0.nupkg.sha512", + "System.IO.IsolatedStorage.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/netcore50/System.IO.IsolatedStorage.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.IO.IsolatedStorage.dll", + "ref/dotnet/System.IO.IsolatedStorage.xml", + "ref/dotnet/de/System.IO.IsolatedStorage.xml", + "ref/dotnet/es/System.IO.IsolatedStorage.xml", + "ref/dotnet/fr/System.IO.IsolatedStorage.xml", + "ref/dotnet/it/System.IO.IsolatedStorage.xml", + "ref/dotnet/ja/System.IO.IsolatedStorage.xml", + "ref/dotnet/ko/System.IO.IsolatedStorage.xml", + "ref/dotnet/ru/System.IO.IsolatedStorage.xml", + "ref/dotnet/zh-hans/System.IO.IsolatedStorage.xml", + "ref/dotnet/zh-hant/System.IO.IsolatedStorage.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.IO.UnmanagedMemoryStream/4.0.0": { + "sha512": "i2xczgQfwHmolORBNHxV9b5izP8VOBxgSA2gf+H55xBvwqtR+9r9adtzlc7at0MAwiLcsk6V1TZlv2vfRQr8Sw==", + "type": "package", + "files": [ + "System.IO.UnmanagedMemoryStream.4.0.0.nupkg.sha512", + "System.IO.UnmanagedMemoryStream.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.IO.UnmanagedMemoryStream.dll", + "lib/net46/System.IO.UnmanagedMemoryStream.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.IO.UnmanagedMemoryStream.dll", + "ref/dotnet/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/de/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/es/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/fr/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/it/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/ja/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/ko/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/ru/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/zh-hans/System.IO.UnmanagedMemoryStream.xml", + "ref/dotnet/zh-hant/System.IO.UnmanagedMemoryStream.xml", + "ref/net46/System.IO.UnmanagedMemoryStream.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Linq/4.0.0": { + "sha512": "r6Hlc+ytE6m/9UBr+nNRRdoJEWjoeQiT3L3lXYFDHoXk3VYsRBCDNXrawcexw7KPLaH0zamQLiAb6avhZ50cGg==", + "type": "package", + "files": [ + "System.Linq.4.0.0.nupkg.sha512", + "System.Linq.nuspec", + "lib/dotnet/System.Linq.dll", + "lib/net45/_._", + "lib/netcore50/System.Linq.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Linq.dll", + "ref/dotnet/System.Linq.xml", + "ref/dotnet/de/System.Linq.xml", + "ref/dotnet/es/System.Linq.xml", + "ref/dotnet/fr/System.Linq.xml", + "ref/dotnet/it/System.Linq.xml", + "ref/dotnet/ja/System.Linq.xml", + "ref/dotnet/ko/System.Linq.xml", + "ref/dotnet/ru/System.Linq.xml", + "ref/dotnet/zh-hans/System.Linq.xml", + "ref/dotnet/zh-hant/System.Linq.xml", + "ref/net45/_._", + "ref/netcore50/System.Linq.dll", + "ref/netcore50/System.Linq.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._" + ] + }, + "System.Linq.Expressions/4.0.10": { + "sha512": "qhFkPqRsTfXBaacjQhxwwwUoU7TEtwlBIULj7nG7i4qAkvivil31VvOvDKppCSui5yGw0/325ZeNaMYRvTotXw==", + "type": "package", + "files": [ + "System.Linq.Expressions.4.0.10.nupkg.sha512", + "System.Linq.Expressions.nuspec", + "lib/DNXCore50/System.Linq.Expressions.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Linq.Expressions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Linq.Expressions.dll", + "ref/dotnet/System.Linq.Expressions.xml", + "ref/dotnet/de/System.Linq.Expressions.xml", + "ref/dotnet/es/System.Linq.Expressions.xml", + "ref/dotnet/fr/System.Linq.Expressions.xml", + "ref/dotnet/it/System.Linq.Expressions.xml", + "ref/dotnet/ja/System.Linq.Expressions.xml", + "ref/dotnet/ko/System.Linq.Expressions.xml", + "ref/dotnet/ru/System.Linq.Expressions.xml", + "ref/dotnet/zh-hans/System.Linq.Expressions.xml", + "ref/dotnet/zh-hant/System.Linq.Expressions.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtime.json", + "runtimes/win8-aot/lib/netcore50/System.Linq.Expressions.dll" + ] + }, + "System.Linq.Parallel/4.0.0": { + "sha512": "PtH7KKh1BbzVow4XY17pnrn7Io63ApMdwzRE2o2HnzsKQD/0o7X5xe6mxrDUqTm9ZCR3/PNhAlP13VY1HnHsbA==", + "type": "package", + "files": [ + "System.Linq.Parallel.4.0.0.nupkg.sha512", + "System.Linq.Parallel.nuspec", + "lib/dotnet/System.Linq.Parallel.dll", + "lib/net45/_._", + "lib/netcore50/System.Linq.Parallel.dll", + "lib/win8/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Linq.Parallel.dll", + "ref/dotnet/System.Linq.Parallel.xml", + "ref/dotnet/de/System.Linq.Parallel.xml", + "ref/dotnet/es/System.Linq.Parallel.xml", + "ref/dotnet/fr/System.Linq.Parallel.xml", + "ref/dotnet/it/System.Linq.Parallel.xml", + "ref/dotnet/ja/System.Linq.Parallel.xml", + "ref/dotnet/ko/System.Linq.Parallel.xml", + "ref/dotnet/ru/System.Linq.Parallel.xml", + "ref/dotnet/zh-hans/System.Linq.Parallel.xml", + "ref/dotnet/zh-hant/System.Linq.Parallel.xml", + "ref/net45/_._", + "ref/netcore50/System.Linq.Parallel.dll", + "ref/netcore50/System.Linq.Parallel.xml", + "ref/win8/_._", + "ref/wpa81/_._" + ] + }, + "System.Linq.Queryable/4.0.0": { + "sha512": "DIlvCNn3ucFvwMMzXcag4aFnFJ1fdxkQ5NqwJe9Nh7y8ozzhDm07YakQL/yoF3P1dLzY1T2cTpuwbAmVSdXyBA==", + "type": "package", + "files": [ + "System.Linq.Queryable.4.0.0.nupkg.sha512", + "System.Linq.Queryable.nuspec", + "lib/dotnet/System.Linq.Queryable.dll", + "lib/net45/_._", + "lib/netcore50/System.Linq.Queryable.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Linq.Queryable.dll", + "ref/dotnet/System.Linq.Queryable.xml", + "ref/dotnet/de/System.Linq.Queryable.xml", + "ref/dotnet/es/System.Linq.Queryable.xml", + "ref/dotnet/fr/System.Linq.Queryable.xml", + "ref/dotnet/it/System.Linq.Queryable.xml", + "ref/dotnet/ja/System.Linq.Queryable.xml", + "ref/dotnet/ko/System.Linq.Queryable.xml", + "ref/dotnet/ru/System.Linq.Queryable.xml", + "ref/dotnet/zh-hans/System.Linq.Queryable.xml", + "ref/dotnet/zh-hant/System.Linq.Queryable.xml", + "ref/net45/_._", + "ref/netcore50/System.Linq.Queryable.dll", + "ref/netcore50/System.Linq.Queryable.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._" + ] + }, + "System.Net.Http/4.0.0": { + "sha512": "mZuAl7jw/mFY8jUq4ITKECxVBh9a8SJt9BC/+lJbmo7cRKspxE3PsITz+KiaCEsexN5WYPzwBOx0oJH/0HlPyQ==", + "type": "package", + "files": [ + "System.Net.Http.4.0.0.nupkg.sha512", + "System.Net.Http.nuspec", + "lib/DNXCore50/System.Net.Http.dll", + "lib/net45/_._", + "lib/netcore50/System.Net.Http.dll", + "lib/win8/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Net.Http.dll", + "ref/dotnet/System.Net.Http.xml", + "ref/dotnet/de/System.Net.Http.xml", + "ref/dotnet/es/System.Net.Http.xml", + "ref/dotnet/fr/System.Net.Http.xml", + "ref/dotnet/it/System.Net.Http.xml", + "ref/dotnet/ja/System.Net.Http.xml", + "ref/dotnet/ko/System.Net.Http.xml", + "ref/dotnet/ru/System.Net.Http.xml", + "ref/dotnet/zh-hans/System.Net.Http.xml", + "ref/dotnet/zh-hant/System.Net.Http.xml", + "ref/net45/_._", + "ref/netcore50/System.Net.Http.dll", + "ref/netcore50/System.Net.Http.xml", + "ref/win8/_._", + "ref/wpa81/_._" + ] + }, + "System.Net.Http.Rtc/4.0.0": { + "sha512": "PlE+oJgXdbxPmZYR6GBywRkyIPovjB1Y0SYHizj2Iflgu80uJQC4szl9gue4rKI2FgXiEbj9JL7wL5K3mp9HAQ==", + "type": "package", + "files": [ + "System.Net.Http.Rtc.4.0.0.nupkg.sha512", + "System.Net.Http.Rtc.nuspec", + "lib/netcore50/System.Net.Http.Rtc.dll", + "lib/win8/_._", + "ref/dotnet/System.Net.Http.Rtc.dll", + "ref/dotnet/System.Net.Http.Rtc.xml", + "ref/dotnet/de/System.Net.Http.Rtc.xml", + "ref/dotnet/es/System.Net.Http.Rtc.xml", + "ref/dotnet/fr/System.Net.Http.Rtc.xml", + "ref/dotnet/it/System.Net.Http.Rtc.xml", + "ref/dotnet/ja/System.Net.Http.Rtc.xml", + "ref/dotnet/ko/System.Net.Http.Rtc.xml", + "ref/dotnet/ru/System.Net.Http.Rtc.xml", + "ref/dotnet/zh-hans/System.Net.Http.Rtc.xml", + "ref/dotnet/zh-hant/System.Net.Http.Rtc.xml", + "ref/netcore50/System.Net.Http.Rtc.dll", + "ref/netcore50/System.Net.Http.Rtc.xml", + "ref/win8/_._" + ] + }, + "System.Net.NetworkInformation/4.0.0": { + "sha512": "D68KCf5VK1G1GgFUwD901gU6cnMITksOdfdxUCt9ReCZfT1pigaDqjJ7XbiLAM4jm7TfZHB7g5mbOf1mbG3yBA==", + "type": "package", + "files": [ + "System.Net.NetworkInformation.4.0.0.nupkg.sha512", + "System.Net.NetworkInformation.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Net.NetworkInformation.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Net.NetworkInformation.dll", + "ref/dotnet/System.Net.NetworkInformation.xml", + "ref/dotnet/de/System.Net.NetworkInformation.xml", + "ref/dotnet/es/System.Net.NetworkInformation.xml", + "ref/dotnet/fr/System.Net.NetworkInformation.xml", + "ref/dotnet/it/System.Net.NetworkInformation.xml", + "ref/dotnet/ja/System.Net.NetworkInformation.xml", + "ref/dotnet/ko/System.Net.NetworkInformation.xml", + "ref/dotnet/ru/System.Net.NetworkInformation.xml", + "ref/dotnet/zh-hans/System.Net.NetworkInformation.xml", + "ref/dotnet/zh-hant/System.Net.NetworkInformation.xml", + "ref/net45/_._", + "ref/netcore50/System.Net.NetworkInformation.dll", + "ref/netcore50/System.Net.NetworkInformation.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Net.Primitives/4.0.10": { + "sha512": "YQqIpmMhnKjIbT7rl6dlf7xM5DxaMR+whduZ9wKb9OhMLjoueAJO3HPPJI+Naf3v034kb+xZqdc3zo44o3HWcg==", + "type": "package", + "files": [ + "System.Net.Primitives.4.0.10.nupkg.sha512", + "System.Net.Primitives.nuspec", + "lib/DNXCore50/System.Net.Primitives.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Net.Primitives.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Net.Primitives.dll", + "ref/dotnet/System.Net.Primitives.xml", + "ref/dotnet/de/System.Net.Primitives.xml", + "ref/dotnet/es/System.Net.Primitives.xml", + "ref/dotnet/fr/System.Net.Primitives.xml", + "ref/dotnet/it/System.Net.Primitives.xml", + "ref/dotnet/ja/System.Net.Primitives.xml", + "ref/dotnet/ko/System.Net.Primitives.xml", + "ref/dotnet/ru/System.Net.Primitives.xml", + "ref/dotnet/zh-hans/System.Net.Primitives.xml", + "ref/dotnet/zh-hant/System.Net.Primitives.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Net.Requests/4.0.10": { + "sha512": "A6XBR7TztiIQg6hx7VGfbBKmRTAavUERm2E7pmNz/gZeGvwyP0lcKHZxylJtNVKj7DPwr91bD87oLY6zZYntcg==", + "type": "package", + "files": [ + "System.Net.Requests.4.0.10.nupkg.sha512", + "System.Net.Requests.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Net.Requests.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Net.Requests.dll", + "ref/dotnet/System.Net.Requests.xml", + "ref/dotnet/de/System.Net.Requests.xml", + "ref/dotnet/es/System.Net.Requests.xml", + "ref/dotnet/fr/System.Net.Requests.xml", + "ref/dotnet/it/System.Net.Requests.xml", + "ref/dotnet/ja/System.Net.Requests.xml", + "ref/dotnet/ko/System.Net.Requests.xml", + "ref/dotnet/ru/System.Net.Requests.xml", + "ref/dotnet/zh-hans/System.Net.Requests.xml", + "ref/dotnet/zh-hant/System.Net.Requests.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Net.Sockets/4.0.0": { + "sha512": "7bBNLdO6Xw0BGyFVSxjloGXMvsc3qQmW+70bYMLwHEAVivMK8zx+E7XO8CeJnAko2mFj6R402E798EGYUksFcQ==", + "type": "package", + "files": [ + "System.Net.Sockets.4.0.0.nupkg.sha512", + "System.Net.Sockets.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Net.Sockets.dll", + "lib/netcore50/System.Net.Sockets.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Net.Sockets.dll", + "ref/dotnet/System.Net.Sockets.xml", + "ref/dotnet/de/System.Net.Sockets.xml", + "ref/dotnet/es/System.Net.Sockets.xml", + "ref/dotnet/fr/System.Net.Sockets.xml", + "ref/dotnet/it/System.Net.Sockets.xml", + "ref/dotnet/ja/System.Net.Sockets.xml", + "ref/dotnet/ko/System.Net.Sockets.xml", + "ref/dotnet/ru/System.Net.Sockets.xml", + "ref/dotnet/zh-hans/System.Net.Sockets.xml", + "ref/dotnet/zh-hant/System.Net.Sockets.xml", + "ref/net46/System.Net.Sockets.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Net.WebHeaderCollection/4.0.0": { + "sha512": "IsIZAsHm/yK7R/XASnEc4EMffFLIMgYchG3/zJv6B4LwMnXZwrVlSPpNbPgEVb0lSXyztsn7A6sIPAACQQ2vTQ==", + "type": "package", + "files": [ + "System.Net.WebHeaderCollection.4.0.0.nupkg.sha512", + "System.Net.WebHeaderCollection.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Net.WebHeaderCollection.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Net.WebHeaderCollection.dll", + "ref/dotnet/System.Net.WebHeaderCollection.xml", + "ref/dotnet/de/System.Net.WebHeaderCollection.xml", + "ref/dotnet/es/System.Net.WebHeaderCollection.xml", + "ref/dotnet/fr/System.Net.WebHeaderCollection.xml", + "ref/dotnet/it/System.Net.WebHeaderCollection.xml", + "ref/dotnet/ja/System.Net.WebHeaderCollection.xml", + "ref/dotnet/ko/System.Net.WebHeaderCollection.xml", + "ref/dotnet/ru/System.Net.WebHeaderCollection.xml", + "ref/dotnet/zh-hans/System.Net.WebHeaderCollection.xml", + "ref/dotnet/zh-hant/System.Net.WebHeaderCollection.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Numerics.Vectors/4.1.0": { + "sha512": "jpubR06GWPoZA0oU5xLM7kHeV59/CKPBXZk4Jfhi0T3DafxbrdueHZ8kXlb+Fb5nd3DAyyMh2/eqEzLX0xv6Qg==", + "type": "package", + "files": [ + "System.Numerics.Vectors.4.1.0.nupkg.sha512", + "System.Numerics.Vectors.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Numerics.Vectors.dll", + "lib/net46/System.Numerics.Vectors.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Numerics.Vectors.dll", + "ref/net46/System.Numerics.Vectors.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Numerics.Vectors.WindowsRuntime/4.0.0": { + "sha512": "Ly7GvoPFZq6GyfZpfS0E7uCk1cinl5BANAngXVuau3lD2QqZJMHitzlPv6n1FlIn6krfv99X2IPkIaVzUwDHXA==", + "type": "package", + "files": [ + "System.Numerics.Vectors.WindowsRuntime.4.0.0.nupkg.sha512", + "System.Numerics.Vectors.WindowsRuntime.nuspec", + "lib/dotnet/System.Numerics.Vectors.WindowsRuntime.dll" + ] + }, + "System.ObjectModel/4.0.10": { + "sha512": "Djn1wb0vP662zxbe+c3mOhvC4vkQGicsFs1Wi0/GJJpp3Eqp+oxbJ+p2Sx3O0efYueggAI5SW+BqEoczjfr1cA==", + "type": "package", + "files": [ + "System.ObjectModel.4.0.10.nupkg.sha512", + "System.ObjectModel.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.ObjectModel.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.ObjectModel.dll", + "ref/dotnet/System.ObjectModel.xml", + "ref/dotnet/de/System.ObjectModel.xml", + "ref/dotnet/es/System.ObjectModel.xml", + "ref/dotnet/fr/System.ObjectModel.xml", + "ref/dotnet/it/System.ObjectModel.xml", + "ref/dotnet/ja/System.ObjectModel.xml", + "ref/dotnet/ko/System.ObjectModel.xml", + "ref/dotnet/ru/System.ObjectModel.xml", + "ref/dotnet/zh-hans/System.ObjectModel.xml", + "ref/dotnet/zh-hant/System.ObjectModel.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Private.DataContractSerialization/4.1.0": { + "sha512": "jihi0lC7TMGx8QtMuz3tRFoXdP0BHbceAdd3gvRbNnxM3W93jSRE/cocQyGf64wlC/1etjHKPwnwdu+PDJkjnA==", + "type": "package", + "files": [ + "System.Private.DataContractSerialization.4.1.0.nupkg.sha512", + "System.Private.DataContractSerialization.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "ref/dnxcore50/_._", + "ref/netcore50/_._", + "runtime.json" + ] + }, + "System.Private.Networking/4.0.0": { + "sha512": "RUEqdBdJjISC65dO8l4LdN7vTdlXH+attUpKnauDUHVtLbIKdlDB9LKoLzCQsTQRP7vzUJHWYXznHJBkjAA7yA==", + "type": "package", + "files": [ + "System.Private.Networking.4.0.0.nupkg.sha512", + "System.Private.Networking.nuspec", + "lib/DNXCore50/System.Private.Networking.dll", + "lib/netcore50/System.Private.Networking.dll", + "ref/dnxcore50/_._", + "ref/netcore50/_._" + ] + }, + "System.Private.ServiceModel/4.0.0": { + "sha512": "cm2wEa1f9kuUq/2k8uIwepgZJi5HdxXSnjGQIeXmAb7RaWfZPEC/iamv9GJ67b5LPnCZHR0KvtFqh82e8AAYSw==", + "type": "package", + "files": [ + "System.Private.ServiceModel.4.0.0.nupkg.sha512", + "System.Private.ServiceModel.nuspec", + "lib/DNXCore50/System.Private.ServiceModel.dll", + "lib/netcore50/System.Private.ServiceModel.dll", + "ref/dnxcore50/_._", + "ref/netcore50/_._" + ] + }, + "System.Private.Uri/4.0.0": { + "sha512": "CtuxaCKcRIvPcsqquVl3mPp79EDZPMr2UogfiFCxCs+t2z1VjbpQsKNs1GHZ8VQetqbk1mr0V1yAfMe6y8CHDA==", + "type": "package", + "files": [ + "System.Private.Uri.4.0.0.nupkg.sha512", + "System.Private.Uri.nuspec", + "lib/DNXCore50/System.Private.Uri.dll", + "lib/netcore50/System.Private.Uri.dll", + "ref/dnxcore50/_._", + "ref/netcore50/_._", + "runtimes/win8-aot/lib/netcore50/System.Private.Uri.dll" + ] + }, + "System.Reflection/4.0.10": { + "sha512": "WZ+4lEE4gqGx6mrqLhSiW4oi6QLPWwdNjzhhTONmhELOrW8Cw9phlO9tltgvRUuQUqYtBiliFwhO5S5fCJElVw==", + "type": "package", + "files": [ + "System.Reflection.4.0.10.nupkg.sha512", + "System.Reflection.nuspec", + "lib/DNXCore50/System.Reflection.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Reflection.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Reflection.dll", + "ref/dotnet/System.Reflection.xml", + "ref/dotnet/de/System.Reflection.xml", + "ref/dotnet/es/System.Reflection.xml", + "ref/dotnet/fr/System.Reflection.xml", + "ref/dotnet/it/System.Reflection.xml", + "ref/dotnet/ja/System.Reflection.xml", + "ref/dotnet/ko/System.Reflection.xml", + "ref/dotnet/ru/System.Reflection.xml", + "ref/dotnet/zh-hans/System.Reflection.xml", + "ref/dotnet/zh-hant/System.Reflection.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Reflection.dll" + ] + }, + "System.Reflection.Context/4.0.0": { + "sha512": "Gz4sUHHFd/52RjHccSHbOXdujJEWKfL3gIaA+ekxvQaQfJGbI2tPzA0Uv3WTCTDRGHgtoNq5WS9E007Dt4P/VQ==", + "type": "package", + "files": [ + "System.Reflection.Context.4.0.0.nupkg.sha512", + "System.Reflection.Context.nuspec", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Context.dll", + "lib/win8/_._", + "ref/dotnet/System.Reflection.Context.dll", + "ref/dotnet/System.Reflection.Context.xml", + "ref/dotnet/de/System.Reflection.Context.xml", + "ref/dotnet/es/System.Reflection.Context.xml", + "ref/dotnet/fr/System.Reflection.Context.xml", + "ref/dotnet/it/System.Reflection.Context.xml", + "ref/dotnet/ja/System.Reflection.Context.xml", + "ref/dotnet/ko/System.Reflection.Context.xml", + "ref/dotnet/ru/System.Reflection.Context.xml", + "ref/dotnet/zh-hans/System.Reflection.Context.xml", + "ref/dotnet/zh-hant/System.Reflection.Context.xml", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Context.dll", + "ref/netcore50/System.Reflection.Context.xml", + "ref/win8/_._" + ] + }, + "System.Reflection.DispatchProxy/4.0.0": { + "sha512": "Kd/4o6DqBfJA4058X8oGEu1KlT8Ej0A+WGeoQgZU2h+3f2vC8NRbHxeOSZvxj9/MPZ1RYmZMGL1ApO9xG/4IVA==", + "type": "package", + "files": [ + "System.Reflection.DispatchProxy.4.0.0.nupkg.sha512", + "System.Reflection.DispatchProxy.nuspec", + "lib/DNXCore50/System.Reflection.DispatchProxy.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Reflection.DispatchProxy.dll", + "lib/netcore50/System.Reflection.DispatchProxy.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Reflection.DispatchProxy.dll", + "ref/dotnet/System.Reflection.DispatchProxy.xml", + "ref/dotnet/de/System.Reflection.DispatchProxy.xml", + "ref/dotnet/es/System.Reflection.DispatchProxy.xml", + "ref/dotnet/fr/System.Reflection.DispatchProxy.xml", + "ref/dotnet/it/System.Reflection.DispatchProxy.xml", + "ref/dotnet/ja/System.Reflection.DispatchProxy.xml", + "ref/dotnet/ko/System.Reflection.DispatchProxy.xml", + "ref/dotnet/ru/System.Reflection.DispatchProxy.xml", + "ref/dotnet/zh-hans/System.Reflection.DispatchProxy.xml", + "ref/dotnet/zh-hant/System.Reflection.DispatchProxy.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtime.json", + "runtimes/win8-aot/lib/netcore50/System.Reflection.DispatchProxy.dll" + ] + }, + "System.Reflection.Emit/4.0.0": { + "sha512": "CqnQz5LbNbiSxN10cv3Ehnw3j1UZOBCxnE0OO0q/keGQ5ENjyFM6rIG4gm/i0dX6EjdpYkAgKcI/mhZZCaBq4A==", + "type": "package", + "files": [ + "System.Reflection.Emit.4.0.0.nupkg.sha512", + "System.Reflection.Emit.nuspec", + "lib/DNXCore50/System.Reflection.Emit.dll", + "lib/MonoAndroid10/_._", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.dll", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/dotnet/System.Reflection.Emit.dll", + "ref/dotnet/System.Reflection.Emit.xml", + "ref/dotnet/de/System.Reflection.Emit.xml", + "ref/dotnet/es/System.Reflection.Emit.xml", + "ref/dotnet/fr/System.Reflection.Emit.xml", + "ref/dotnet/it/System.Reflection.Emit.xml", + "ref/dotnet/ja/System.Reflection.Emit.xml", + "ref/dotnet/ko/System.Reflection.Emit.xml", + "ref/dotnet/ru/System.Reflection.Emit.xml", + "ref/dotnet/zh-hans/System.Reflection.Emit.xml", + "ref/dotnet/zh-hant/System.Reflection.Emit.xml", + "ref/net45/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Reflection.Emit.ILGeneration/4.0.0": { + "sha512": "02okuusJ0GZiHZSD2IOLIN41GIn6qOr7i5+86C98BPuhlwWqVABwebiGNvhDiXP1f9a6CxEigC7foQD42klcDg==", + "type": "package", + "files": [ + "System.Reflection.Emit.ILGeneration.4.0.0.nupkg.sha512", + "System.Reflection.Emit.ILGeneration.nuspec", + "lib/DNXCore50/System.Reflection.Emit.ILGeneration.dll", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.ILGeneration.dll", + "lib/wp80/_._", + "ref/dotnet/System.Reflection.Emit.ILGeneration.dll", + "ref/dotnet/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/de/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/es/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/fr/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/it/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/ja/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/ko/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/ru/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/zh-hans/System.Reflection.Emit.ILGeneration.xml", + "ref/dotnet/zh-hant/System.Reflection.Emit.ILGeneration.xml", + "ref/net45/_._", + "ref/wp80/_._" + ] + }, + "System.Reflection.Emit.Lightweight/4.0.0": { + "sha512": "DJZhHiOdkN08xJgsJfDjkuOreLLmMcU8qkEEqEHqyhkPUZMMQs0lE8R+6+68BAFWgcdzxtNu0YmIOtEug8j00w==", + "type": "package", + "files": [ + "System.Reflection.Emit.Lightweight.4.0.0.nupkg.sha512", + "System.Reflection.Emit.Lightweight.nuspec", + "lib/DNXCore50/System.Reflection.Emit.Lightweight.dll", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Emit.Lightweight.dll", + "lib/wp80/_._", + "ref/dotnet/System.Reflection.Emit.Lightweight.dll", + "ref/dotnet/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/de/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/es/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/fr/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/it/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/ja/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/ko/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/ru/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/zh-hans/System.Reflection.Emit.Lightweight.xml", + "ref/dotnet/zh-hant/System.Reflection.Emit.Lightweight.xml", + "ref/net45/_._", + "ref/wp80/_._" + ] + }, + "System.Reflection.Extensions/4.0.0": { + "sha512": "dbYaZWCyFAu1TGYUqR2n+Q+1casSHPR2vVW0WVNkXpZbrd2BXcZ7cpvpu9C98CTHtNmyfMWCLpCclDqly23t6A==", + "type": "package", + "files": [ + "System.Reflection.Extensions.4.0.0.nupkg.sha512", + "System.Reflection.Extensions.nuspec", + "lib/DNXCore50/System.Reflection.Extensions.dll", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Extensions.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Reflection.Extensions.dll", + "ref/dotnet/System.Reflection.Extensions.xml", + "ref/dotnet/de/System.Reflection.Extensions.xml", + "ref/dotnet/es/System.Reflection.Extensions.xml", + "ref/dotnet/fr/System.Reflection.Extensions.xml", + "ref/dotnet/it/System.Reflection.Extensions.xml", + "ref/dotnet/ja/System.Reflection.Extensions.xml", + "ref/dotnet/ko/System.Reflection.Extensions.xml", + "ref/dotnet/ru/System.Reflection.Extensions.xml", + "ref/dotnet/zh-hans/System.Reflection.Extensions.xml", + "ref/dotnet/zh-hant/System.Reflection.Extensions.xml", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Extensions.dll", + "ref/netcore50/System.Reflection.Extensions.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Reflection.Extensions.dll" + ] + }, + "System.Reflection.Metadata/1.0.22": { + "sha512": "ltoL/teiEdy5W9fyYdtFr2xJ/4nHyksXLK9dkPWx3ubnj7BVfsSWxvWTg9EaJUXjhWvS/AeTtugZA1/IDQyaPQ==", + "type": "package", + "files": [ + "System.Reflection.Metadata.1.0.22.nupkg.sha512", + "System.Reflection.Metadata.nuspec", + "lib/dotnet/System.Reflection.Metadata.dll", + "lib/dotnet/System.Reflection.Metadata.xml", + "lib/portable-net45+win8/System.Reflection.Metadata.dll", + "lib/portable-net45+win8/System.Reflection.Metadata.xml" + ] + }, + "System.Reflection.Primitives/4.0.0": { + "sha512": "n9S0XpKv2ruc17FSnaiX6nV47VfHTZ1wLjKZlAirUZCvDQCH71mVp+Ohabn0xXLh5pK2PKp45HCxkqu5Fxn/lA==", + "type": "package", + "files": [ + "System.Reflection.Primitives.4.0.0.nupkg.sha512", + "System.Reflection.Primitives.nuspec", + "lib/DNXCore50/System.Reflection.Primitives.dll", + "lib/net45/_._", + "lib/netcore50/System.Reflection.Primitives.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Reflection.Primitives.dll", + "ref/dotnet/System.Reflection.Primitives.xml", + "ref/dotnet/de/System.Reflection.Primitives.xml", + "ref/dotnet/es/System.Reflection.Primitives.xml", + "ref/dotnet/fr/System.Reflection.Primitives.xml", + "ref/dotnet/it/System.Reflection.Primitives.xml", + "ref/dotnet/ja/System.Reflection.Primitives.xml", + "ref/dotnet/ko/System.Reflection.Primitives.xml", + "ref/dotnet/ru/System.Reflection.Primitives.xml", + "ref/dotnet/zh-hans/System.Reflection.Primitives.xml", + "ref/dotnet/zh-hant/System.Reflection.Primitives.xml", + "ref/net45/_._", + "ref/netcore50/System.Reflection.Primitives.dll", + "ref/netcore50/System.Reflection.Primitives.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Reflection.Primitives.dll" + ] + }, + "System.Reflection.TypeExtensions/4.0.0": { + "sha512": "YRM/msNAM86hdxPyXcuZSzmTO0RQFh7YMEPBLTY8cqXvFPYIx2x99bOyPkuU81wRYQem1c1HTkImQ2DjbOBfew==", + "type": "package", + "files": [ + "System.Reflection.TypeExtensions.4.0.0.nupkg.sha512", + "System.Reflection.TypeExtensions.nuspec", + "lib/DNXCore50/System.Reflection.TypeExtensions.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/System.Reflection.TypeExtensions.dll", + "lib/netcore50/System.Reflection.TypeExtensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Reflection.TypeExtensions.dll", + "ref/dotnet/System.Reflection.TypeExtensions.xml", + "ref/dotnet/de/System.Reflection.TypeExtensions.xml", + "ref/dotnet/es/System.Reflection.TypeExtensions.xml", + "ref/dotnet/fr/System.Reflection.TypeExtensions.xml", + "ref/dotnet/it/System.Reflection.TypeExtensions.xml", + "ref/dotnet/ja/System.Reflection.TypeExtensions.xml", + "ref/dotnet/ko/System.Reflection.TypeExtensions.xml", + "ref/dotnet/ru/System.Reflection.TypeExtensions.xml", + "ref/dotnet/zh-hans/System.Reflection.TypeExtensions.xml", + "ref/dotnet/zh-hant/System.Reflection.TypeExtensions.xml", + "ref/net46/System.Reflection.TypeExtensions.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Reflection.TypeExtensions.dll" + ] + }, + "System.Resources.ResourceManager/4.0.0": { + "sha512": "qmqeZ4BJgjfU+G2JbrZt4Dk1LsMxO4t+f/9HarNY6w8pBgweO6jT+cknUH7c3qIrGvyUqraBhU45Eo6UtA0fAw==", + "type": "package", + "files": [ + "System.Resources.ResourceManager.4.0.0.nupkg.sha512", + "System.Resources.ResourceManager.nuspec", + "lib/DNXCore50/System.Resources.ResourceManager.dll", + "lib/net45/_._", + "lib/netcore50/System.Resources.ResourceManager.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Resources.ResourceManager.dll", + "ref/dotnet/System.Resources.ResourceManager.xml", + "ref/dotnet/de/System.Resources.ResourceManager.xml", + "ref/dotnet/es/System.Resources.ResourceManager.xml", + "ref/dotnet/fr/System.Resources.ResourceManager.xml", + "ref/dotnet/it/System.Resources.ResourceManager.xml", + "ref/dotnet/ja/System.Resources.ResourceManager.xml", + "ref/dotnet/ko/System.Resources.ResourceManager.xml", + "ref/dotnet/ru/System.Resources.ResourceManager.xml", + "ref/dotnet/zh-hans/System.Resources.ResourceManager.xml", + "ref/dotnet/zh-hant/System.Resources.ResourceManager.xml", + "ref/net45/_._", + "ref/netcore50/System.Resources.ResourceManager.dll", + "ref/netcore50/System.Resources.ResourceManager.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Resources.ResourceManager.dll" + ] + }, + "System.Runtime/4.0.20": { + "sha512": "X7N/9Bz7jVPorqdVFO86ns1sX6MlQM+WTxELtx+Z4VG45x9+LKmWH0GRqjgKprUnVuwmfB9EJ9DQng14Z7/zwg==", + "type": "package", + "files": [ + "System.Runtime.4.0.20.nupkg.sha512", + "System.Runtime.nuspec", + "lib/DNXCore50/System.Runtime.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Runtime.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Runtime.dll", + "ref/dotnet/System.Runtime.xml", + "ref/dotnet/de/System.Runtime.xml", + "ref/dotnet/es/System.Runtime.xml", + "ref/dotnet/fr/System.Runtime.xml", + "ref/dotnet/it/System.Runtime.xml", + "ref/dotnet/ja/System.Runtime.xml", + "ref/dotnet/ko/System.Runtime.xml", + "ref/dotnet/ru/System.Runtime.xml", + "ref/dotnet/zh-hans/System.Runtime.xml", + "ref/dotnet/zh-hant/System.Runtime.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.dll" + ] + }, + "System.Runtime.Extensions/4.0.10": { + "sha512": "5dsEwf3Iml7d5OZeT20iyOjT+r+okWpN7xI2v+R4cgd3WSj4DeRPTvPFjDpacbVW4skCAZ8B9hxXJYgkCFKJ1A==", + "type": "package", + "files": [ + "System.Runtime.Extensions.4.0.10.nupkg.sha512", + "System.Runtime.Extensions.nuspec", + "lib/DNXCore50/System.Runtime.Extensions.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Runtime.Extensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Runtime.Extensions.dll", + "ref/dotnet/System.Runtime.Extensions.xml", + "ref/dotnet/de/System.Runtime.Extensions.xml", + "ref/dotnet/es/System.Runtime.Extensions.xml", + "ref/dotnet/fr/System.Runtime.Extensions.xml", + "ref/dotnet/it/System.Runtime.Extensions.xml", + "ref/dotnet/ja/System.Runtime.Extensions.xml", + "ref/dotnet/ko/System.Runtime.Extensions.xml", + "ref/dotnet/ru/System.Runtime.Extensions.xml", + "ref/dotnet/zh-hans/System.Runtime.Extensions.xml", + "ref/dotnet/zh-hant/System.Runtime.Extensions.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Extensions.dll" + ] + }, + "System.Runtime.Handles/4.0.0": { + "sha512": "638VhpRq63tVcQ6HDb3um3R/J2BtR1Sa96toHo6PcJGPXEPEsleCuqhBgX2gFCz0y0qkutANwW6VPPY5wQu1XQ==", + "type": "package", + "files": [ + "System.Runtime.Handles.4.0.0.nupkg.sha512", + "System.Runtime.Handles.nuspec", + "lib/DNXCore50/System.Runtime.Handles.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Runtime.Handles.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Runtime.Handles.dll", + "ref/dotnet/System.Runtime.Handles.xml", + "ref/dotnet/de/System.Runtime.Handles.xml", + "ref/dotnet/es/System.Runtime.Handles.xml", + "ref/dotnet/fr/System.Runtime.Handles.xml", + "ref/dotnet/it/System.Runtime.Handles.xml", + "ref/dotnet/ja/System.Runtime.Handles.xml", + "ref/dotnet/ko/System.Runtime.Handles.xml", + "ref/dotnet/ru/System.Runtime.Handles.xml", + "ref/dotnet/zh-hans/System.Runtime.Handles.xml", + "ref/dotnet/zh-hant/System.Runtime.Handles.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Handles.dll" + ] + }, + "System.Runtime.InteropServices/4.0.20": { + "sha512": "ZgDyBYfEnjWoz/viS6VOswA6XOkDSH2DzgbpczbW50RywhnCgTl+w3JEvtAiOGyIh8cyx1NJq80jsNBSUr8Pig==", + "type": "package", + "files": [ + "System.Runtime.InteropServices.4.0.20.nupkg.sha512", + "System.Runtime.InteropServices.nuspec", + "lib/DNXCore50/System.Runtime.InteropServices.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Runtime.InteropServices.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Runtime.InteropServices.dll", + "ref/dotnet/System.Runtime.InteropServices.xml", + "ref/dotnet/de/System.Runtime.InteropServices.xml", + "ref/dotnet/es/System.Runtime.InteropServices.xml", + "ref/dotnet/fr/System.Runtime.InteropServices.xml", + "ref/dotnet/it/System.Runtime.InteropServices.xml", + "ref/dotnet/ja/System.Runtime.InteropServices.xml", + "ref/dotnet/ko/System.Runtime.InteropServices.xml", + "ref/dotnet/ru/System.Runtime.InteropServices.xml", + "ref/dotnet/zh-hans/System.Runtime.InteropServices.xml", + "ref/dotnet/zh-hant/System.Runtime.InteropServices.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.dll" + ] + }, + "System.Runtime.InteropServices.WindowsRuntime/4.0.0": { + "sha512": "K5MGSvw/sGPKQYdOVqSpsVbHBE8HccHIDEhUNjM1lui65KGF/slNZfijGU87ggQiVXTI802ebKiOYBkwiLotow==", + "type": "package", + "files": [ + "System.Runtime.InteropServices.WindowsRuntime.4.0.0.nupkg.sha512", + "System.Runtime.InteropServices.WindowsRuntime.nuspec", + "lib/net45/_._", + "lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Runtime.InteropServices.WindowsRuntime.dll", + "ref/dotnet/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/de/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/es/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/fr/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/it/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/ja/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/ko/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/ru/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/zh-hans/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/dotnet/zh-hant/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/net45/_._", + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll", + "ref/netcore50/System.Runtime.InteropServices.WindowsRuntime.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.InteropServices.WindowsRuntime.dll" + ] + }, + "System.Runtime.Numerics/4.0.0": { + "sha512": "aAYGEOE01nabQLufQ4YO8WuSyZzOqGcksi8m1BRW8ppkmssR7en8TqiXcBkB2gTkCnKG/Ai2NQY8CgdmgZw/fw==", + "type": "package", + "files": [ + "System.Runtime.Numerics.4.0.0.nupkg.sha512", + "System.Runtime.Numerics.nuspec", + "lib/dotnet/System.Runtime.Numerics.dll", + "lib/net45/_._", + "lib/netcore50/System.Runtime.Numerics.dll", + "lib/win8/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Runtime.Numerics.dll", + "ref/dotnet/System.Runtime.Numerics.xml", + "ref/dotnet/de/System.Runtime.Numerics.xml", + "ref/dotnet/es/System.Runtime.Numerics.xml", + "ref/dotnet/fr/System.Runtime.Numerics.xml", + "ref/dotnet/it/System.Runtime.Numerics.xml", + "ref/dotnet/ja/System.Runtime.Numerics.xml", + "ref/dotnet/ko/System.Runtime.Numerics.xml", + "ref/dotnet/ru/System.Runtime.Numerics.xml", + "ref/dotnet/zh-hans/System.Runtime.Numerics.xml", + "ref/dotnet/zh-hant/System.Runtime.Numerics.xml", + "ref/net45/_._", + "ref/netcore50/System.Runtime.Numerics.dll", + "ref/netcore50/System.Runtime.Numerics.xml", + "ref/win8/_._", + "ref/wpa81/_._" + ] + }, + "System.Runtime.Serialization.Json/4.0.1": { + "sha512": "MUqpQDHlwFAy3v+fVzLN26SMGCPW/J2n4vfsBfScPiut/+Kp77Pcy1nWX2FC83WskFMepvmjMcXwTYZ75FCK0Q==", + "type": "package", + "files": [ + "System.Runtime.Serialization.Json.4.0.1.nupkg.sha512", + "System.Runtime.Serialization.Json.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/DNXCore50/System.Runtime.Serialization.Json.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/netcore50/System.Runtime.Serialization.Json.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet5.1/System.Runtime.Serialization.Json.dll", + "ref/dotnet5.1/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/de/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/es/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/fr/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/it/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/ja/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/ko/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/ru/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/zh-hans/System.Runtime.Serialization.Json.xml", + "ref/dotnet5.1/zh-hant/System.Runtime.Serialization.Json.xml", + "ref/net45/_._", + "ref/netcore50/System.Runtime.Serialization.Json.dll", + "ref/netcore50/System.Runtime.Serialization.Json.xml", + "ref/netcore50/de/System.Runtime.Serialization.Json.xml", + "ref/netcore50/es/System.Runtime.Serialization.Json.xml", + "ref/netcore50/fr/System.Runtime.Serialization.Json.xml", + "ref/netcore50/it/System.Runtime.Serialization.Json.xml", + "ref/netcore50/ja/System.Runtime.Serialization.Json.xml", + "ref/netcore50/ko/System.Runtime.Serialization.Json.xml", + "ref/netcore50/ru/System.Runtime.Serialization.Json.xml", + "ref/netcore50/zh-hans/System.Runtime.Serialization.Json.xml", + "ref/netcore50/zh-hant/System.Runtime.Serialization.Json.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Json.dll" + ] + }, + "System.Runtime.Serialization.Primitives/4.1.0": { + "sha512": "2UBnpTwpEi5dzbNJ8KhbOZ7Te1XQNov9MrtJ+dcnqogjACPNzbOiGT2uU9XgZg+sdbPvr4VMvVjFwJ85uLLCuA==", + "type": "package", + "files": [ + "System.Runtime.Serialization.Primitives.4.1.0.nupkg.sha512", + "System.Runtime.Serialization.Primitives.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet5.4/System.Runtime.Serialization.Primitives.dll", + "lib/net45/_._", + "lib/net46/System.Runtime.Serialization.Primitives.dll", + "lib/netcore50/System.Runtime.Serialization.Primitives.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet5.1/System.Runtime.Serialization.Primitives.dll", + "ref/dotnet5.1/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/de/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/es/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/fr/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/it/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/ja/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/ko/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/ru/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/zh-hans/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.1/zh-hant/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/System.Runtime.Serialization.Primitives.dll", + "ref/dotnet5.4/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/de/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/es/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/fr/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/it/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/ja/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/ko/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/ru/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/zh-hans/System.Runtime.Serialization.Primitives.xml", + "ref/dotnet5.4/zh-hant/System.Runtime.Serialization.Primitives.xml", + "ref/net45/_._", + "ref/net46/System.Runtime.Serialization.Primitives.dll", + "ref/netcore50/System.Runtime.Serialization.Primitives.dll", + "ref/netcore50/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/de/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/es/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/fr/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/it/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/ja/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/ko/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/ru/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/zh-hans/System.Runtime.Serialization.Primitives.xml", + "ref/netcore50/zh-hant/System.Runtime.Serialization.Primitives.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Primitives.dll" + ] + }, + "System.Runtime.Serialization.Xml/4.1.0": { + "sha512": "7TvzeIeNvT2GLpmSy/3J1VIkT70MroNujIiBWBe0qeM6/QFPdCcF/1Zxx9Ohc/iZUPAANb1wMruCAiYY2HTTrg==", + "type": "package", + "files": [ + "System.Runtime.Serialization.Xml.4.1.0.nupkg.sha512", + "System.Runtime.Serialization.Xml.nuspec", + "ThirdPartyNotices.txt", + "dotnet_library_license.txt", + "lib/DNXCore50/System.Runtime.Serialization.Xml.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net45/_._", + "lib/net46/System.Runtime.Serialization.Xml.dll", + "lib/netcore50/System.Runtime.Serialization.Xml.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet5.1/System.Runtime.Serialization.Xml.dll", + "ref/dotnet5.1/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/de/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/es/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/fr/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/it/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/ja/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/ko/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/ru/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/zh-hans/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.1/zh-hant/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/System.Runtime.Serialization.Xml.dll", + "ref/dotnet5.4/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/de/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/es/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/fr/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/it/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/ja/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/ko/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/ru/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/zh-hans/System.Runtime.Serialization.Xml.xml", + "ref/dotnet5.4/zh-hant/System.Runtime.Serialization.Xml.xml", + "ref/net45/_._", + "ref/net46/System.Runtime.Serialization.Xml.dll", + "ref/netcore50/System.Runtime.Serialization.Xml.dll", + "ref/netcore50/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/de/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/es/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/fr/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/it/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/ja/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/ko/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/ru/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/zh-hans/System.Runtime.Serialization.Xml.xml", + "ref/netcore50/zh-hant/System.Runtime.Serialization.Xml.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.Serialization.Xml.dll" + ] + }, + "System.Runtime.WindowsRuntime/4.0.10": { + "sha512": "9w6ypdnEw8RrLRlxTbLAYrap4eL1xIQeNoOaumQVOQ8TTD/5g9FGrBtY3KLiGxAPieN9AwAAEIDkugU85Cwuvg==", + "type": "package", + "files": [ + "System.Runtime.WindowsRuntime.4.0.10.nupkg.sha512", + "System.Runtime.WindowsRuntime.nuspec", + "lib/netcore50/System.Runtime.WindowsRuntime.dll", + "lib/win81/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Runtime.WindowsRuntime.dll", + "ref/dotnet/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/de/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/es/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/fr/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/it/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/ja/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/ko/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/ru/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/zh-hans/System.Runtime.WindowsRuntime.xml", + "ref/dotnet/zh-hant/System.Runtime.WindowsRuntime.xml", + "ref/netcore50/System.Runtime.WindowsRuntime.dll", + "ref/netcore50/System.Runtime.WindowsRuntime.xml", + "ref/win81/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Runtime.WindowsRuntime.dll" + ] + }, + "System.Runtime.WindowsRuntime.UI.Xaml/4.0.0": { + "sha512": "2GY3fkXBMQOyyO9ovaH46CN6MD2ck/Gvk4VNAgVDvtmfO3HXYFNd+bB05WhVcJrHKbfKZNwfwZKpYZ+OsVFsLw==", + "type": "package", + "files": [ + "System.Runtime.WindowsRuntime.UI.Xaml.4.0.0.nupkg.sha512", + "System.Runtime.WindowsRuntime.UI.Xaml.nuspec", + "lib/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll", + "lib/win8/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Runtime.WindowsRuntime.UI.Xaml.dll", + "ref/dotnet/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/de/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/es/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/fr/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/it/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/ja/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/ko/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/ru/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/zh-hans/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/dotnet/zh-hant/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.dll", + "ref/netcore50/System.Runtime.WindowsRuntime.UI.Xaml.xml", + "ref/win8/_._", + "ref/wpa81/_._" + ] + }, + "System.Security.Claims/4.0.0": { + "sha512": "94NFR/7JN3YdyTH7hl2iSvYmdA8aqShriTHectcK+EbizT71YczMaG6LuqJBQP/HWo66AQyikYYM9aw+4EzGXg==", + "type": "package", + "files": [ + "System.Security.Claims.4.0.0.nupkg.sha512", + "System.Security.Claims.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Security.Claims.dll", + "lib/net46/System.Security.Claims.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Security.Claims.dll", + "ref/dotnet/System.Security.Claims.xml", + "ref/dotnet/de/System.Security.Claims.xml", + "ref/dotnet/es/System.Security.Claims.xml", + "ref/dotnet/fr/System.Security.Claims.xml", + "ref/dotnet/it/System.Security.Claims.xml", + "ref/dotnet/ja/System.Security.Claims.xml", + "ref/dotnet/ko/System.Security.Claims.xml", + "ref/dotnet/ru/System.Security.Claims.xml", + "ref/dotnet/zh-hans/System.Security.Claims.xml", + "ref/dotnet/zh-hant/System.Security.Claims.xml", + "ref/net46/System.Security.Claims.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Security.Principal/4.0.0": { + "sha512": "FOhq3jUOONi6fp5j3nPYJMrKtSJlqAURpjiO3FaDIV4DJNEYymWW5uh1pfxySEB8dtAW+I66IypzNge/w9OzZQ==", + "type": "package", + "files": [ + "System.Security.Principal.4.0.0.nupkg.sha512", + "System.Security.Principal.nuspec", + "lib/dotnet/System.Security.Principal.dll", + "lib/net45/_._", + "lib/netcore50/System.Security.Principal.dll", + "lib/win8/_._", + "lib/wp80/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Security.Principal.dll", + "ref/dotnet/System.Security.Principal.xml", + "ref/dotnet/de/System.Security.Principal.xml", + "ref/dotnet/es/System.Security.Principal.xml", + "ref/dotnet/fr/System.Security.Principal.xml", + "ref/dotnet/it/System.Security.Principal.xml", + "ref/dotnet/ja/System.Security.Principal.xml", + "ref/dotnet/ko/System.Security.Principal.xml", + "ref/dotnet/ru/System.Security.Principal.xml", + "ref/dotnet/zh-hans/System.Security.Principal.xml", + "ref/dotnet/zh-hant/System.Security.Principal.xml", + "ref/net45/_._", + "ref/netcore50/System.Security.Principal.dll", + "ref/netcore50/System.Security.Principal.xml", + "ref/win8/_._", + "ref/wp80/_._", + "ref/wpa81/_._" + ] + }, + "System.ServiceModel.Duplex/4.0.0": { + "sha512": "JFeDn+IsiwAVJkNNnM7MLefJOnzYhovaHnjk3lzEnUWkYZJeAKrcgLdK6GE2GNjb5mEV8Pad/E0JcA8eCr3eWQ==", + "type": "package", + "files": [ + "System.ServiceModel.Duplex.4.0.0.nupkg.sha512", + "System.ServiceModel.Duplex.nuspec", + "lib/DNXCore50/System.ServiceModel.Duplex.dll", + "lib/net45/_._", + "lib/netcore50/System.ServiceModel.Duplex.dll", + "lib/win8/_._", + "ref/dotnet/System.ServiceModel.Duplex.dll", + "ref/dotnet/System.ServiceModel.Duplex.xml", + "ref/dotnet/de/System.ServiceModel.Duplex.xml", + "ref/dotnet/es/System.ServiceModel.Duplex.xml", + "ref/dotnet/fr/System.ServiceModel.Duplex.xml", + "ref/dotnet/it/System.ServiceModel.Duplex.xml", + "ref/dotnet/ja/System.ServiceModel.Duplex.xml", + "ref/dotnet/ko/System.ServiceModel.Duplex.xml", + "ref/dotnet/ru/System.ServiceModel.Duplex.xml", + "ref/dotnet/zh-hans/System.ServiceModel.Duplex.xml", + "ref/dotnet/zh-hant/System.ServiceModel.Duplex.xml", + "ref/net45/_._", + "ref/netcore50/System.ServiceModel.Duplex.dll", + "ref/netcore50/System.ServiceModel.Duplex.xml", + "ref/win8/_._" + ] + }, + "System.ServiceModel.Http/4.0.10": { + "sha512": "Vyl7lmvMlXJamtnDugoXuAgAQGSqtA7omK3zDBYByhbYeBC2hRBchgyXox7e5vEO+29TeB1IpoLWQGb7tO9h6A==", + "type": "package", + "files": [ + "System.ServiceModel.Http.4.0.10.nupkg.sha512", + "System.ServiceModel.Http.nuspec", + "lib/DNXCore50/System.ServiceModel.Http.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.ServiceModel.Http.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.ServiceModel.Http.dll", + "ref/dotnet/System.ServiceModel.Http.xml", + "ref/dotnet/de/System.ServiceModel.Http.xml", + "ref/dotnet/es/System.ServiceModel.Http.xml", + "ref/dotnet/fr/System.ServiceModel.Http.xml", + "ref/dotnet/it/System.ServiceModel.Http.xml", + "ref/dotnet/ja/System.ServiceModel.Http.xml", + "ref/dotnet/ko/System.ServiceModel.Http.xml", + "ref/dotnet/ru/System.ServiceModel.Http.xml", + "ref/dotnet/zh-hans/System.ServiceModel.Http.xml", + "ref/dotnet/zh-hant/System.ServiceModel.Http.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.ServiceModel.NetTcp/4.0.0": { + "sha512": "lV2Cdcso9jOS0KBtgHZHzTLe/Lx/ERdPcvF4dlepUie6/+BOMYTOgg2C7OdpIjp3fwUNXq8nhU+IilmEyjuf/A==", + "type": "package", + "files": [ + "System.ServiceModel.NetTcp.4.0.0.nupkg.sha512", + "System.ServiceModel.NetTcp.nuspec", + "lib/DNXCore50/System.ServiceModel.NetTcp.dll", + "lib/net45/_._", + "lib/netcore50/System.ServiceModel.NetTcp.dll", + "lib/win8/_._", + "ref/dotnet/System.ServiceModel.NetTcp.dll", + "ref/dotnet/System.ServiceModel.NetTcp.xml", + "ref/dotnet/de/System.ServiceModel.NetTcp.xml", + "ref/dotnet/es/System.ServiceModel.NetTcp.xml", + "ref/dotnet/fr/System.ServiceModel.NetTcp.xml", + "ref/dotnet/it/System.ServiceModel.NetTcp.xml", + "ref/dotnet/ja/System.ServiceModel.NetTcp.xml", + "ref/dotnet/ko/System.ServiceModel.NetTcp.xml", + "ref/dotnet/ru/System.ServiceModel.NetTcp.xml", + "ref/dotnet/zh-hans/System.ServiceModel.NetTcp.xml", + "ref/dotnet/zh-hant/System.ServiceModel.NetTcp.xml", + "ref/net45/_._", + "ref/netcore50/System.ServiceModel.NetTcp.dll", + "ref/netcore50/System.ServiceModel.NetTcp.xml", + "ref/win8/_._" + ] + }, + "System.ServiceModel.Primitives/4.0.0": { + "sha512": "uF5VYQWR07LgiZkzUr8qjwvqOaIAfwU566MneD4WuC14d8FLJNsAgCJUYhBGB7COjH7HTqnP9ZFmr6c+L83Stg==", + "type": "package", + "files": [ + "System.ServiceModel.Primitives.4.0.0.nupkg.sha512", + "System.ServiceModel.Primitives.nuspec", + "lib/DNXCore50/System.ServiceModel.Primitives.dll", + "lib/net45/_._", + "lib/netcore50/System.ServiceModel.Primitives.dll", + "lib/win8/_._", + "ref/dotnet/System.ServiceModel.Primitives.dll", + "ref/dotnet/System.ServiceModel.Primitives.xml", + "ref/dotnet/de/System.ServiceModel.Primitives.xml", + "ref/dotnet/es/System.ServiceModel.Primitives.xml", + "ref/dotnet/fr/System.ServiceModel.Primitives.xml", + "ref/dotnet/it/System.ServiceModel.Primitives.xml", + "ref/dotnet/ja/System.ServiceModel.Primitives.xml", + "ref/dotnet/ko/System.ServiceModel.Primitives.xml", + "ref/dotnet/ru/System.ServiceModel.Primitives.xml", + "ref/dotnet/zh-hans/System.ServiceModel.Primitives.xml", + "ref/dotnet/zh-hant/System.ServiceModel.Primitives.xml", + "ref/net45/_._", + "ref/netcore50/System.ServiceModel.Primitives.dll", + "ref/netcore50/System.ServiceModel.Primitives.xml", + "ref/win8/_._" + ] + }, + "System.ServiceModel.Security/4.0.0": { + "sha512": "sPVzsnd8w/TJsW/4sYA9eIGP+RtlpN0AhKLGKf9ywdGGmHPi0kkuX2mx412dM3GN0e4oifuISwvZqby/sI8Feg==", + "type": "package", + "files": [ + "System.ServiceModel.Security.4.0.0.nupkg.sha512", + "System.ServiceModel.Security.nuspec", + "lib/DNXCore50/System.ServiceModel.Security.dll", + "lib/net45/_._", + "lib/netcore50/System.ServiceModel.Security.dll", + "lib/win8/_._", + "ref/dotnet/System.ServiceModel.Security.dll", + "ref/dotnet/System.ServiceModel.Security.xml", + "ref/dotnet/de/System.ServiceModel.Security.xml", + "ref/dotnet/es/System.ServiceModel.Security.xml", + "ref/dotnet/fr/System.ServiceModel.Security.xml", + "ref/dotnet/it/System.ServiceModel.Security.xml", + "ref/dotnet/ja/System.ServiceModel.Security.xml", + "ref/dotnet/ko/System.ServiceModel.Security.xml", + "ref/dotnet/ru/System.ServiceModel.Security.xml", + "ref/dotnet/zh-hans/System.ServiceModel.Security.xml", + "ref/dotnet/zh-hant/System.ServiceModel.Security.xml", + "ref/net45/_._", + "ref/netcore50/System.ServiceModel.Security.dll", + "ref/netcore50/System.ServiceModel.Security.xml", + "ref/win8/_._" + ] + }, + "System.Text.Encoding/4.0.10": { + "sha512": "fNlSFgy4OuDlJrP9SFFxMlaLazq6ipv15sU5TiEgg9UCVnA/OgoVUfymFp4AOk1jOkW5SVxWbeeIUptcM+m/Vw==", + "type": "package", + "files": [ + "System.Text.Encoding.4.0.10.nupkg.sha512", + "System.Text.Encoding.nuspec", + "lib/DNXCore50/System.Text.Encoding.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Text.Encoding.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Text.Encoding.dll", + "ref/dotnet/System.Text.Encoding.xml", + "ref/dotnet/de/System.Text.Encoding.xml", + "ref/dotnet/es/System.Text.Encoding.xml", + "ref/dotnet/fr/System.Text.Encoding.xml", + "ref/dotnet/it/System.Text.Encoding.xml", + "ref/dotnet/ja/System.Text.Encoding.xml", + "ref/dotnet/ko/System.Text.Encoding.xml", + "ref/dotnet/ru/System.Text.Encoding.xml", + "ref/dotnet/zh-hans/System.Text.Encoding.xml", + "ref/dotnet/zh-hant/System.Text.Encoding.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.dll" + ] + }, + "System.Text.Encoding.CodePages/4.0.0": { + "sha512": "ZHBTr1AXLjY9OuYR7pKx5xfN6QFye1kgd5QAbGrvfCOu7yxRnJs3VUaxERe1fOlnF0mi/xD/Dvb3T3x3HNuPWQ==", + "type": "package", + "files": [ + "System.Text.Encoding.CodePages.4.0.0.nupkg.sha512", + "System.Text.Encoding.CodePages.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Text.Encoding.CodePages.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Text.Encoding.CodePages.dll", + "ref/dotnet/System.Text.Encoding.CodePages.xml", + "ref/dotnet/de/System.Text.Encoding.CodePages.xml", + "ref/dotnet/es/System.Text.Encoding.CodePages.xml", + "ref/dotnet/fr/System.Text.Encoding.CodePages.xml", + "ref/dotnet/it/System.Text.Encoding.CodePages.xml", + "ref/dotnet/ja/System.Text.Encoding.CodePages.xml", + "ref/dotnet/ko/System.Text.Encoding.CodePages.xml", + "ref/dotnet/ru/System.Text.Encoding.CodePages.xml", + "ref/dotnet/zh-hans/System.Text.Encoding.CodePages.xml", + "ref/dotnet/zh-hant/System.Text.Encoding.CodePages.xml", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Text.Encoding.Extensions/4.0.10": { + "sha512": "TZvlwXMxKo3bSRIcsWZLCIzIhLbvlz+mGeKYRZv/zUiSoQzGOwkYeBu6hOw2XPQgKqT0F4Rv8zqKdvmp2fWKYg==", + "type": "package", + "files": [ + "System.Text.Encoding.Extensions.4.0.10.nupkg.sha512", + "System.Text.Encoding.Extensions.nuspec", + "lib/DNXCore50/System.Text.Encoding.Extensions.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Text.Encoding.Extensions.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Text.Encoding.Extensions.dll", + "ref/dotnet/System.Text.Encoding.Extensions.xml", + "ref/dotnet/de/System.Text.Encoding.Extensions.xml", + "ref/dotnet/es/System.Text.Encoding.Extensions.xml", + "ref/dotnet/fr/System.Text.Encoding.Extensions.xml", + "ref/dotnet/it/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ja/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ko/System.Text.Encoding.Extensions.xml", + "ref/dotnet/ru/System.Text.Encoding.Extensions.xml", + "ref/dotnet/zh-hans/System.Text.Encoding.Extensions.xml", + "ref/dotnet/zh-hant/System.Text.Encoding.Extensions.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Text.Encoding.Extensions.dll" + ] + }, + "System.Text.RegularExpressions/4.0.10": { + "sha512": "0vDuHXJePpfMCecWBNOabOKCvzfTbFMNcGgklt3l5+RqHV5SzmF7RUVpuet8V0rJX30ROlL66xdehw2Rdsn2DA==", + "type": "package", + "files": [ + "System.Text.RegularExpressions.4.0.10.nupkg.sha512", + "System.Text.RegularExpressions.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Text.RegularExpressions.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Text.RegularExpressions.dll", + "ref/dotnet/System.Text.RegularExpressions.xml", + "ref/dotnet/de/System.Text.RegularExpressions.xml", + "ref/dotnet/es/System.Text.RegularExpressions.xml", + "ref/dotnet/fr/System.Text.RegularExpressions.xml", + "ref/dotnet/it/System.Text.RegularExpressions.xml", + "ref/dotnet/ja/System.Text.RegularExpressions.xml", + "ref/dotnet/ko/System.Text.RegularExpressions.xml", + "ref/dotnet/ru/System.Text.RegularExpressions.xml", + "ref/dotnet/zh-hans/System.Text.RegularExpressions.xml", + "ref/dotnet/zh-hant/System.Text.RegularExpressions.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Threading/4.0.10": { + "sha512": "0w6pRxIEE7wuiOJeKabkDgeIKmqf4ER1VNrs6qFwHnooEE78yHwi/bKkg5Jo8/pzGLm0xQJw0nEmPXt1QBAIUA==", + "type": "package", + "files": [ + "System.Threading.4.0.10.nupkg.sha512", + "System.Threading.nuspec", + "lib/DNXCore50/System.Threading.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Threading.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Threading.dll", + "ref/dotnet/System.Threading.xml", + "ref/dotnet/de/System.Threading.xml", + "ref/dotnet/es/System.Threading.xml", + "ref/dotnet/fr/System.Threading.xml", + "ref/dotnet/it/System.Threading.xml", + "ref/dotnet/ja/System.Threading.xml", + "ref/dotnet/ko/System.Threading.xml", + "ref/dotnet/ru/System.Threading.xml", + "ref/dotnet/zh-hans/System.Threading.xml", + "ref/dotnet/zh-hant/System.Threading.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Threading.dll" + ] + }, + "System.Threading.Overlapped/4.0.0": { + "sha512": "X5LuQFhM5FTqaez3eXKJ9CbfSGZ7wj6j4hSVtxct3zmwQXLqG95qoWdvILcgN7xtrDOBIFtpiyDg0vmoI0jE2A==", + "type": "package", + "files": [ + "System.Threading.Overlapped.4.0.0.nupkg.sha512", + "System.Threading.Overlapped.nuspec", + "lib/DNXCore50/System.Threading.Overlapped.dll", + "lib/net46/System.Threading.Overlapped.dll", + "lib/netcore50/System.Threading.Overlapped.dll", + "ref/dotnet/System.Threading.Overlapped.dll", + "ref/dotnet/System.Threading.Overlapped.xml", + "ref/dotnet/de/System.Threading.Overlapped.xml", + "ref/dotnet/es/System.Threading.Overlapped.xml", + "ref/dotnet/fr/System.Threading.Overlapped.xml", + "ref/dotnet/it/System.Threading.Overlapped.xml", + "ref/dotnet/ja/System.Threading.Overlapped.xml", + "ref/dotnet/ko/System.Threading.Overlapped.xml", + "ref/dotnet/ru/System.Threading.Overlapped.xml", + "ref/dotnet/zh-hans/System.Threading.Overlapped.xml", + "ref/dotnet/zh-hant/System.Threading.Overlapped.xml", + "ref/net46/System.Threading.Overlapped.dll" + ] + }, + "System.Threading.Tasks/4.0.10": { + "sha512": "NOwJGDfk79jR0bnzosbXLVD/PdI8KzBeESoa3CofEM5v9R5EBfcI0Jyf18stx+0IYV9okmDIDxVtxq9TbnR9bQ==", + "type": "package", + "files": [ + "System.Threading.Tasks.4.0.10.nupkg.sha512", + "System.Threading.Tasks.nuspec", + "lib/DNXCore50/System.Threading.Tasks.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Threading.Tasks.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Threading.Tasks.dll", + "ref/dotnet/System.Threading.Tasks.xml", + "ref/dotnet/de/System.Threading.Tasks.xml", + "ref/dotnet/es/System.Threading.Tasks.xml", + "ref/dotnet/fr/System.Threading.Tasks.xml", + "ref/dotnet/it/System.Threading.Tasks.xml", + "ref/dotnet/ja/System.Threading.Tasks.xml", + "ref/dotnet/ko/System.Threading.Tasks.xml", + "ref/dotnet/ru/System.Threading.Tasks.xml", + "ref/dotnet/zh-hans/System.Threading.Tasks.xml", + "ref/dotnet/zh-hant/System.Threading.Tasks.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtimes/win8-aot/lib/netcore50/System.Threading.Tasks.dll" + ] + }, + "System.Threading.Tasks.Dataflow/4.5.25": { + "sha512": "Y5/Dj+tYlDxHBwie7bFKp3+1uSG4vqTJRF7Zs7kaUQ3ahYClffCTxvgjrJyPclC+Le55uE7bMLgjZQVOQr3Jfg==", + "type": "package", + "files": [ + "System.Threading.Tasks.Dataflow.4.5.25.nupkg.sha512", + "System.Threading.Tasks.Dataflow.nuspec", + "lib/dotnet/System.Threading.Tasks.Dataflow.XML", + "lib/dotnet/System.Threading.Tasks.Dataflow.dll", + "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Dataflow.XML", + "lib/portable-net45+win8+wp8+wpa81/System.Threading.Tasks.Dataflow.dll", + "lib/portable-net45+win8+wpa81/System.Threading.Tasks.Dataflow.XML", + "lib/portable-net45+win8+wpa81/System.Threading.Tasks.Dataflow.dll" + ] + }, + "System.Threading.Tasks.Parallel/4.0.0": { + "sha512": "GXDhjPhF3nE4RtDia0W6JR4UMdmhOyt9ibHmsNV6GLRT4HAGqU636Teo4tqvVQOFp2R6b1ffxPXiRaoqtzGxuA==", + "type": "package", + "files": [ + "System.Threading.Tasks.Parallel.4.0.0.nupkg.sha512", + "System.Threading.Tasks.Parallel.nuspec", + "lib/dotnet/System.Threading.Tasks.Parallel.dll", + "lib/net45/_._", + "lib/netcore50/System.Threading.Tasks.Parallel.dll", + "lib/win8/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Threading.Tasks.Parallel.dll", + "ref/dotnet/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/de/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/es/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/fr/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/it/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/ja/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/ko/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/ru/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/zh-hans/System.Threading.Tasks.Parallel.xml", + "ref/dotnet/zh-hant/System.Threading.Tasks.Parallel.xml", + "ref/net45/_._", + "ref/netcore50/System.Threading.Tasks.Parallel.dll", + "ref/netcore50/System.Threading.Tasks.Parallel.xml", + "ref/win8/_._", + "ref/wpa81/_._" + ] + }, + "System.Threading.Timer/4.0.0": { + "sha512": "BIdJH5/e4FnVl7TkRUiE3pWytp7OYiRUGtwUbyLewS/PhKiLepFetdtlW+FvDYOVn60Q2NMTrhHhJ51q+sVW5g==", + "type": "package", + "files": [ + "System.Threading.Timer.4.0.0.nupkg.sha512", + "System.Threading.Timer.nuspec", + "lib/DNXCore50/System.Threading.Timer.dll", + "lib/net451/_._", + "lib/netcore50/System.Threading.Timer.dll", + "lib/win81/_._", + "lib/wpa81/_._", + "ref/dotnet/System.Threading.Timer.dll", + "ref/dotnet/System.Threading.Timer.xml", + "ref/dotnet/de/System.Threading.Timer.xml", + "ref/dotnet/es/System.Threading.Timer.xml", + "ref/dotnet/fr/System.Threading.Timer.xml", + "ref/dotnet/it/System.Threading.Timer.xml", + "ref/dotnet/ja/System.Threading.Timer.xml", + "ref/dotnet/ko/System.Threading.Timer.xml", + "ref/dotnet/ru/System.Threading.Timer.xml", + "ref/dotnet/zh-hans/System.Threading.Timer.xml", + "ref/dotnet/zh-hant/System.Threading.Timer.xml", + "ref/net451/_._", + "ref/netcore50/System.Threading.Timer.dll", + "ref/netcore50/System.Threading.Timer.xml", + "ref/win81/_._", + "ref/wpa81/_._", + "runtimes/win8-aot/lib/netcore50/System.Threading.Timer.dll" + ] + }, + "System.Xml.ReaderWriter/4.0.10": { + "sha512": "VdmWWMH7otrYV7D+cviUo7XjX0jzDnD/lTGSZTlZqfIQ5PhXk85j+6P0TK9od3PnOd5ZIM+pOk01G/J+3nh9/w==", + "type": "package", + "files": [ + "System.Xml.ReaderWriter.4.0.10.nupkg.sha512", + "System.Xml.ReaderWriter.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Xml.ReaderWriter.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Xml.ReaderWriter.dll", + "ref/dotnet/System.Xml.ReaderWriter.xml", + "ref/dotnet/de/System.Xml.ReaderWriter.xml", + "ref/dotnet/es/System.Xml.ReaderWriter.xml", + "ref/dotnet/fr/System.Xml.ReaderWriter.xml", + "ref/dotnet/it/System.Xml.ReaderWriter.xml", + "ref/dotnet/ja/System.Xml.ReaderWriter.xml", + "ref/dotnet/ko/System.Xml.ReaderWriter.xml", + "ref/dotnet/ru/System.Xml.ReaderWriter.xml", + "ref/dotnet/zh-hans/System.Xml.ReaderWriter.xml", + "ref/dotnet/zh-hant/System.Xml.ReaderWriter.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Xml.XDocument/4.0.10": { + "sha512": "+ej0g0INnXDjpS2tDJsLO7/BjyBzC+TeBXLeoGnvRrm4AuBH9PhBjjZ1IuKWOhCkxPkFognUOKhZHS2glIOlng==", + "type": "package", + "files": [ + "System.Xml.XDocument.4.0.10.nupkg.sha512", + "System.Xml.XDocument.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Xml.XDocument.dll", + "lib/net46/_._", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Xml.XDocument.dll", + "ref/dotnet/System.Xml.XDocument.xml", + "ref/dotnet/de/System.Xml.XDocument.xml", + "ref/dotnet/es/System.Xml.XDocument.xml", + "ref/dotnet/fr/System.Xml.XDocument.xml", + "ref/dotnet/it/System.Xml.XDocument.xml", + "ref/dotnet/ja/System.Xml.XDocument.xml", + "ref/dotnet/ko/System.Xml.XDocument.xml", + "ref/dotnet/ru/System.Xml.XDocument.xml", + "ref/dotnet/zh-hans/System.Xml.XDocument.xml", + "ref/dotnet/zh-hant/System.Xml.XDocument.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Xml.XmlDocument/4.0.0": { + "sha512": "H5qTx2+AXgaKE5wehU1ZYeYPFpp/rfFh69/937NvwCrDqbIkvJRmIFyKKpkoMI6gl9hGfuVizfIudVTMyowCXw==", + "type": "package", + "files": [ + "System.Xml.XmlDocument.4.0.0.nupkg.sha512", + "System.Xml.XmlDocument.nuspec", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/dotnet/System.Xml.XmlDocument.dll", + "lib/net46/System.Xml.XmlDocument.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Xml.XmlDocument.dll", + "ref/dotnet/System.Xml.XmlDocument.xml", + "ref/dotnet/de/System.Xml.XmlDocument.xml", + "ref/dotnet/es/System.Xml.XmlDocument.xml", + "ref/dotnet/fr/System.Xml.XmlDocument.xml", + "ref/dotnet/it/System.Xml.XmlDocument.xml", + "ref/dotnet/ja/System.Xml.XmlDocument.xml", + "ref/dotnet/ko/System.Xml.XmlDocument.xml", + "ref/dotnet/ru/System.Xml.XmlDocument.xml", + "ref/dotnet/zh-hans/System.Xml.XmlDocument.xml", + "ref/dotnet/zh-hant/System.Xml.XmlDocument.xml", + "ref/net46/System.Xml.XmlDocument.dll", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._" + ] + }, + "System.Xml.XmlSerializer/4.0.10": { + "sha512": "OKhE6vruk88z/hl0lmfrMvXteTASgJUagu6PT6S10i9uLbvDR3pTwB6jVgiwa2D2qtTB+eneZbS9jljhPXhTtg==", + "type": "package", + "files": [ + "System.Xml.XmlSerializer.4.0.10.nupkg.sha512", + "System.Xml.XmlSerializer.nuspec", + "lib/DNXCore50/System.Xml.XmlSerializer.dll", + "lib/MonoAndroid10/_._", + "lib/MonoTouch10/_._", + "lib/net46/_._", + "lib/netcore50/System.Xml.XmlSerializer.dll", + "lib/xamarinios10/_._", + "lib/xamarinmac20/_._", + "ref/MonoAndroid10/_._", + "ref/MonoTouch10/_._", + "ref/dotnet/System.Xml.XmlSerializer.dll", + "ref/dotnet/System.Xml.XmlSerializer.xml", + "ref/dotnet/de/System.Xml.XmlSerializer.xml", + "ref/dotnet/es/System.Xml.XmlSerializer.xml", + "ref/dotnet/fr/System.Xml.XmlSerializer.xml", + "ref/dotnet/it/System.Xml.XmlSerializer.xml", + "ref/dotnet/ja/System.Xml.XmlSerializer.xml", + "ref/dotnet/ko/System.Xml.XmlSerializer.xml", + "ref/dotnet/ru/System.Xml.XmlSerializer.xml", + "ref/dotnet/zh-hans/System.Xml.XmlSerializer.xml", + "ref/dotnet/zh-hant/System.Xml.XmlSerializer.xml", + "ref/net46/_._", + "ref/xamarinios10/_._", + "ref/xamarinmac20/_._", + "runtime.json", + "runtimes/win8-aot/lib/netcore50/System.Xml.XmlSerializer.dll" + ] + } + }, + "projectFileDependencyGroups": { + "": [ + "Microsoft.NETCore.UniversalWindowsPlatform >= 5.1.0" + ], + "UAP,Version=v10.0": [] + } +} \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_02/App.xaml b/Samples/Tutorials/Tutorial_02/App.xaml new file mode 100644 index 0000000..fb195bb --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/App.xaml @@ -0,0 +1,8 @@ + + + diff --git a/Samples/Tutorials/Tutorial_02/App.xaml.cs b/Samples/Tutorials/Tutorial_02/App.xaml.cs new file mode 100644 index 0000000..2c066f0 --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/App.xaml.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.ApplicationModel; +using Windows.ApplicationModel.Activation; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +namespace Tutorial_02 +{ + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { + /// + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). + /// + public App() + { + this.InitializeComponent(); + this.Suspending += OnSuspending; + } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { +#if DEBUG + if (System.Diagnostics.Debugger.IsAttached) + { + this.DebugSettings.EnableFrameRateCounter = true; + } +#endif + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (e.PrelaunchActivated == false) + { + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + // Ensure the current window is active + Window.Current.Activate(); + } + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + } +} diff --git a/Samples/Tutorials/Tutorial_02/Assets/LockScreenLogo.scale-200.png b/Samples/Tutorials/Tutorial_02/Assets/LockScreenLogo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..735f57adb5dfc01886d137b4e493d7e97cf13af3 GIT binary patch literal 1430 zcmaJ>TTC2P7~aKltDttVHYH6u8Io4i*}3fO&d$gd*bA_<3j~&e7%8(eXJLfhS!M@! zKrliY>>6yT4+Kr95$!DoD(Qn-5TP|{V_KS`k~E6(LGS@#`v$hQo&^^BKsw3HIsZBT z_y6C2n`lK@apunKojRQ^(_P}Mgewt$(^BBKCTZ;*xa?J3wQ7~@S0lUvbcLeq1Bg4o zH-bvQi|wt~L7q$~a-gDFP!{&TQfc3fX*6=uHv* zT&1&U(-)L%Xp^djI2?~eBF2cxC@YOP$+9d?P&h?lPy-9M2UT9fg5jKm1t$m#iWE{M zIf%q9@;fyT?0UP>tcw-bLkz;s2LlKl2qeP0w zECS7Ate+Awk|KQ+DOk;fl}Xsy4o^CY=pwq%QAAKKl628_yNPsK>?A>%D8fQG6IgdJ ztnxttBz#NI_a@fk7SU`WtrpsfZsNs9^0(2a z@C3#YO3>k~w7?2hipBf{#b6`}Xw1hlG$yi?;1dDs7k~xDAw@jiI*+tc;t2Lflg&bM)0!Y;0_@=w%`LW^8DsYpS#-bLOklX9r?Ei}TScw|4DbpW%+7 zFgAI)f51s}{y-eWb|vrU-Ya!GuYKP)J7z#*V_k^Xo>4!1Yqj*m)x&0L^tg3GJbVAJ zJ-Pl$R=NAabouV=^z_t;^K*0AvFs!vYU>_<|I^#c?>>CR<(T?=%{;U=aI*SbZADLH z&(f2wz_Y0??Tf|g;?|1Znw6}6U43Q#qNRwv1vp9uFn1)V#*4p&%$mP9x&15^OaBiDS(XppT|z^>;B{PLVEbS3IFYV yGvCsSX*m literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_02/Assets/SplashScreen.scale-200.png b/Samples/Tutorials/Tutorial_02/Assets/SplashScreen.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..023e7f1feda78d5100569825acedfd213a0d84e9 GIT binary patch literal 7700 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 literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_02/Assets/Square150x150Logo.scale-200.png b/Samples/Tutorials/Tutorial_02/Assets/Square150x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..af49fec1a5484db1d52a7f9b5ec90a27c7030186 GIT binary patch literal 2937 zcma)84OCO-8BSud5)jwMLRVKgX(S?$n?Ld|vrsm<$CF7)&zTbyy1FE5bU`Q17MRv`9ue$;R(@8kR;#vJ*IM0>cJIAOte!d7oRgdH zd%ySjdB6L9=gX^A6)VzH7p2l@v~3zJAMw|DFy#^)F@@F*`mqUn=Il>l)8_+ab;nOW{%+iPx z+s{Eu|&pIs)Z7{La9~?xKfyl z#43?gjEL15d4WbOZo#SiP%>DB^+BcnJ=7dHEe;r#G=tuw|ka z%q@}##Uh7;tc%L_64m(kHtw74ty%BJMb)_1)#S0j`)F8_1jF7vScpsnH=0V19bO8y zR`0SjIdCUo&=>JwMQF8KHA<{ODHTiQh}0^@5QRmCA?gOH6_H3K^-_sNB^RrdNuK-R zOO*vOrKCVvDwgUck`kF(E7j{I#iiN;b*ZdCt4m@HPA`EuEqGGf4%!K<;(=I=&Vyrw z%TwcWtxa}8mCZ%Cyf&ActJ6_$ox5z6-D!0-dvnRx6t7y3d+h6QYpKWO;8OdnvERo7 zuEf>ih5`wqY)~o@OeVt-wM?Q!>QzdGRj!bz6fzYrfw$hZfAKzr2-M+D+R>}~oT574c;_3zquHcElqKIsryILt3g8n3jcMb+j?i?-L3FpZJ z2WRVBRdDPc+G5aaYg#5hpE+6nQ|(VSoxT3|biF;BUq#==-27Xi=gihDPYP$7?=9cP zYKE$jeQ|3~_L0VG-(F~2ZPyD0=k{J4Q~h(t__{-mz_w8{JDY9{`1ouzz!Vr5!ECdE z6U~O1k8c}24V7~zzXWTV-Pe4)y}wQJS&q%H5`Fo_f_JvIU489aCX$;P`u#!I-=^4ijC2{&9!O&h>mi?9oYD=GC#%)6{GzN6nQYw+Fal50!#x^asjBBR50i`+mho*ttoqV)ubM2KD9S~k7+FR4>{29?6 z{!l6kDdyTN0YJ9LgkPWeXm|gyi@zM3?0@{&pXT12w|78&W-q!RRF)&iLCEZVH<|fR zN0fr2^t8H(>L?>K#>^+jWROLral(Qy-xoBq1U7A&DV||wClb)Otd9?(gZ|8znMF}D zf<1haWz^s0qgecz;RFGt0C-B4g`jNGHsFU+;{<%t65v^sjk^h$lmWn#B0#_)9ij&d z-~lc`A)YYExi^7sBuPM^Y|wA2g*5?`K?#7tzELQYNxGo$UB$4J8RJp1k(8Jj+~hMT zlN~>M@KTTh^--8y3PK_NZ@AC!{PT=CziBzGd+wTJ^@icH!Bd}%)g8V)%K?|c&WTUk zy}qv1C%(fjRoZ4ozC3{O%@5?)XzH35zHns$pgU*Q?fj4v?fp1Qbm+j;3l;9jam9Da zXVcKjPlQ73x78QPu|Ffm6x?`~e3oD=gl=4kYK?={kD5j~QCXU)`HSdduNNENzA*2$ zOm3PzF!lN5e*06-f1Uot67wY#{o-S1!KZ7E=!~7ynnk9_iJR#kFoNbAOT#^2Gd17F zMmvU6>lndZQGd|ax9kUoXXO+$N?|j@6qpsF&_j7YXvwo_C{JpmLw5&#e6k>atv%es z5)7r*Wvv_JkUpT}M!_o!nVlEk1Zbl=a*2hQ*<|%*K1Glj^FcF`6kTzGQ3lz~2tCc@ z&x|tj;aH&1&9HwcJBcT`;{?a+pnej;M1HO(6Z{#J!cZA04hnFl;NXA+&`=7bjW_^o zfC40u3LMG?NdPtwGl>Tq6u}*QG)}-y;)lu-_>ee3kibW(69n0$0Zy!}9rQz%*v1iO zT9_H>99yIrSPYVy6^);rR}7Yo=J_T@hi+qhTZXnVWyf;JDYm5#eYLTxr*?kiNn!+Y zQ+LUkBafNJ#rH#C(?d5^;gw9o#%daEI{mA*LHPIHPU`#|H$hD zwm>0&+kahQ)E#%~k>&5@&#Vg82H?s%71=)(soi@174pi9--2{w{1$}Sz4zGn3Du&x bht0Iza^2ykEt4(epJ78uh5nDlX8(TxzDYwP literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_02/Assets/Square44x44Logo.scale-200.png b/Samples/Tutorials/Tutorial_02/Assets/Square44x44Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..ce342a2ec8a61291ba76c54604aea7e9d20af11b GIT binary patch literal 1647 zcmaJ?eM}Q)7(e+G1Q(|`V9JhTI2>MkceK4;p;PR&$Pi?ejk3YQ_3o`S&|W_dsOZ8# zWPTt69g`t$ab`0cj-Y0yiBSOqmd)tG7G(}M5aP0_%&9TijB#&)I{zSE^4@#z^FF`l z`8{8`o%wlL(UI|y2!cdsuVamHH~H86F!*-15em4)NqUpCQM5?aoC_eCf@lV4wvF2a zjDQn1JBL69f&@2M3rvzJcfE!eZ8FZUBlFlC5RD)it33{mF9#B82AiyQE%w)`vlwa> zv{<1sm&kSKK$&%2jSFn7$t&P%%6Ue>R=EAnG8N7fqynWG8L3p!4801a;8{+nliO(qd(jNJ_?+9W3#hLIDLoT6~3fx9=`CC-D}-AMrpEO7HK zt3$GicGPc?GmDjy7K2P@La;eu4!$zWCZ`ym{Z$b zu-O6RM&K4JT|BIZB`E-gxqG%FzanI#+2FFmqHqXG7yxWB=w55RGOM)$xMb(>kSNR z2w=1AZi%z=AmG~yea~XaXJR!v7vLn(RUnELfiB1|6D84ICOS}^Zo2AdN}<&*h}G_u z{xZ!(%>tLT3J3<5XhWy-tg+6)0nmUUENLW8TWA{R6bgVd3X;anYFZ^IRis*_P-C-r z;i>%1^eL3UI2-{w8nuFFcs0e~7J{O2k^~Ce%+Ly4U?|=!0LH=t6()xi<^I-rs+9sF z*q{E-CxZbGPeu#a;XJwE;9S1?#R&uns>^0G3p`hEUF*v`M?@h%T%J%RChmD|EVydq zmHWh*_=S%emRC*mhxaVLzT@>Z2SX0u9v*DIJ@WC^kLVdlGV6LpK$KIrlJqc zpJ921)+3JJdTx|<`G&kXpKkjGJv=76R`yYIQ{#c-`%+`#V(7}Q;&@6U8!Td1`d;?N z_9mnI#?AA}4J!r)LN4!E-@H5eXauuB7TOawS>Y|{-P?NNx-lq+z1W-+y(;39P&&LP zL{N80?&=C*qKmdA^moMZRuPcD!B<*mq$ch=0Cnlitw#txRWhb3%TQvPqjkC`F69G4b! ze7z9MZ#+;_#l?H37UqUhDFb^l&s2{oM$3I0o^Q!yx;;V)QmCMo)Tb_ui|mit8MS?U zm##6$sZZ1$@|s%?l@>4Z<*Q}sRBSKMhb4I{e5LdEhsHIHTe8Bod5c>6QtT>$XgUBz z6MK`kO$=jmt@FqggOhJ5j~e@ygRbG;<{Vu)*+nn9aQeo0;$#j;|MS=S$&L?BeV25z xs3B`@=#`5TF{^6(A1rvdY@|-RtQ|iS5{tyX+wH?;n8E)G$kykv-D^wh{{!TZT%7;_ literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_02/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/Samples/Tutorials/Tutorial_02/Assets/Square44x44Logo.targetsize-24_altform-unplated.png new file mode 100644 index 0000000000000000000000000000000000000000..f6c02ce97e0a802b85f6021e822c89f8bf57d5cd GIT binary patch literal 1255 zcmaJ>TWs4@7*5+{G#S+&C!qC#> zf>5N3P6jO*Cz>ug*(_DmW=)kea&m$gZ^+nyiF`;j%w@}y8)>p*SH}C`m?DXeieF2U zyQHecc_L%Gh!7GMt+hG06y;+|p4>m~}PjA}rKViGiEnn7G0ZO<>G|7q;2?NwGCM3s?eued6%hd$B+ z*kQJ{#~$S=DFE(%=E+UkmlEI*%3llUf~8Ja9YU1Vui0IbGBkW_gHB%Rd&!!ioX zs40O?i9I{};kle7GMvE7(rk`la=gTI)47=>%?q@^iL-nUo3}h4S}N-KHn8t5mVP8w z&bSErwp+37 zNJJ8?a|{r5Q3R0Z5s-LB1WHOwYC@7pCHWND#cL1cZ?{kJ368_*(UDWUDyb<}0y@o# zfMF016iMWPCb6obAxT$JlB6(2DrlXDTB&!0`!m??4F(qWMhjVZo?JXQmz`1*58Z=& zcDmB|S-E@j?BoFGix0flckqdS4jsPNzhfWyWIM98GxcLs89C(~dw%$_t;JjX-SD}E zfiGV;{8Q%8r}w9x>EEigW81>`kvnU@pK)4+xk9@+bNj9L!AAZ@SZ@q|)&BmY3+HZx zul~BeG4|}-;L%cHViQGQX?^zFfO0&#cHwel=d`lH9sJ-@Sl@n*(8J2>%Ac`IxyY?Q z{=GhWvC#gu-~Ia7*n{=+;qM?Ul_wy1+u7ho;=`>EwP^g~R@{unBds`!#@}tluZQpS zm)M~nYEifJWJGx?_6DcTy>#uh%>!H9=hb^(v`=m3F1{L>db=<5_tm+_&knAQ2EU$s Mu9UqpbNZeC0BbUo^Z)<= literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_02/Assets/StoreLogo.png b/Samples/Tutorials/Tutorial_02/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..7385b56c0e4d3c6b0efe3324aa1194157d837826 GIT binary patch literal 1451 zcmaJ>eN5D57_Z|bH;{0+1#mbl)eTU3{h)Wf7EZV?;HD@XL@{B`Ui%(2aMxQ~xdXSv z5nzWi(LW)U2=Vc-cY@s7nPt{i0hc6!7xN4NNHI#EQl>YNBy8l4%x9gr_W-j zEZMQmmTIy(>;lblRfh`dIyTgc9W5d!VP$L4(kKrN1c5G~(O_#xG zAJCNTstD^5SeXFB+&$h=ToJP2H>xr$iqPs-#O*;4(!Fjw25-!gEb*)mU}=)J;Iu>w zxK(5XoD0wrPSKQ~rbL^Cw6O_03*l*}i=ydbu7adJ6y;%@tjFeXIXT+ms30pmbOP%Q zX}S;+LBh8Tea~TSkHzvX6$rYb)+n&{kSbIqh|c7hmlxmwSiq5iVhU#iEQ<>a18|O^Sln-8t&+t`*{qBWo5M?wFM(JuimAOb5!K#D}XbslM@#1ZVz_;!9U zpfEpLAOz=0g@bd6Xj_ILi-x^!M}73h^o@}hM$1jflTs|Yuj9AL@A3<-?MV4!^4q`e z)fO@A;{9K^?W?DbnesnPr6kK>$zaKo&;FhFd(GYFCIU^T+OIMb%Tqo+P%oq(IdX7S zf6+HLO?7o0m+p>~Tp5UrXWh!UH!wZ5kv!E`_w)PTpI(#Iw{AS`gH4^b(bm^ZCq^FZ zY9DD7bH}rq9mg88+KgA$Zp!iWncuU2n1AuIa@=sWvUR-s`Qb{R*kk(SPU^`$6BXz8 zn#7yaFOIK%qGxyi`dYtm#&qqox0$h=pNi#u=M8zUG@bpiZ=3sT=1}Trr}39cC)H|v zbL?W)=&s4zrh)7>L(|cc%$1#!zfL?HjpeP%T+x_a+jZ16b^iKOHxFEX$7d|8${H-* zIrOJ5w&i$>*D>AKaIoYg`;{L@jM((Kt?$N$5OnuPqVvq**Nm}(f0wwOF%iX_Pba;V z;m@wxX&NcV3?<1+u?A{y_DIj7#m3Af1rCE)o`D&Y3}0%7E;iX1yMDiS)sh0wKi!36 zL!Wmq?P^Ku&rK~HJd97KkLTRl>ScGFYZNlYytWnhmuu|)L&ND8_PmkayQb{HOY640 bno1(wj@u8DCVuFR|31B*4ek@pZJqxCDDe1x literal 0 HcmV?d00001 diff --git a/Samples/Tutorials/Tutorial_02/Assets/Wide310x150Logo.scale-200.png b/Samples/Tutorials/Tutorial_02/Assets/Wide310x150Logo.scale-200.png new file mode 100644 index 0000000000000000000000000000000000000000..288995b397fdbef1fb7e85afd71445d5de1952c5 GIT binary patch literal 3204 zcmbVPeQXow8NYmBd90>}0NP?GhXW~VaeThm=a0tV#EwJMI!)6M3}|c4_Bl3=Kd>G0 z(GHx1wl<7(tP?FsOQkTilSo*iIvF%uArExJ73~P zSv1xEy!U(Wd4A9D`FQV@W3@F^qJ@PEF$@z`Z!*BbFsS(^?B zyiAzJ+q})bkgiQHWqEb*jJD-coHYr1^iocg)l!Qa{Xqs-l~6J}p-|##ZHYofskQ3$ zI0;xzXyhazBeXhIsg5A=%ufo@f)1yy&ScKS0;HF^!r_2UE^lpZEom(+@duma3awTv zCrCL-%D_SvYWIcdHkmI}#50(fkUi)Qgx!80ju>g1za^}ff>JI8Z@^-iCiaCgg@TgF z+vtE?Q9{VQUX&MW9SYYmGcxA14%N2@7FwBTD4N<(2{nWgV8$e3?-F=L^&FrtWn~(U_Q~~^uYiyeY6-KoTnfh9AWz@ zIKje0)u!_Lw)E}G!#kEfwKVdNt(UAf9*f>tEL_(=xco-T%jTi@7YlC3hs2ik%Le0H ztj}RTeCF(5mwvi3_56>-yB?l;J>-1%!9~=fs|QcNG3J~a@JCu`4SB460s0ZO+##4fFUSGLcj_ja^fL4&BKALfb#$6$O?>P@qx2Agl^x0i&ugt zsy5Pyu=()`7HRMG3IB7F1@`_ z+-!J%#i6e^U$e#+C%Q>_qVRzWRsG^W_n+@OcX@vzI&z;mzHNb!GQ?LWA(wtpqHqTM z1OFw_{Zn?fD)p)`c`kOgv{de=v@suGRqY{N^U7gI1VF3*F=obwaXI6ob5__Yn zVTguS!%(NI09J8x#AO_aW!9W7k*UvB;IWDFC3srwftr{kHj%g)fvnAm;&h_dnl~

MY- zf+K}sCe8qU6Ujs`3ua{U0Of$R_gVQBuUA za0v=mu#vIOqiiAZOr&h*$WyOw&k-xr$;G4Ixa!#TJNr>95(h>l%)PUy4p+^SgR(uR zta%k*?ny-+nAr8spEk1fo{J4i!b^Fia`N{_F6@zidA2ZTTrjl#^5Z-2KfB@Cu}l9s z(*|Z2jc?p~vn2f)3y9i*7zJV1L{$?|&q)4oaT;uXi6>1GkRXVTOzAz(RHEmr=eFIi z`}<>-Q?K0GN8!IYxeP1XKXO+jsJbp~o^);Bc;%b7Flpe7;1`Ny@3r7ZR;?R)aJt8C ziNlEC<@3f_lIV4TwV}&e;D!Ee5_|e#g0LUh=5vmYWYm7&2h*M>QPKvGh9-)wfMMW3 z8J9b%1k7dzPzO0_NGQy92BZ^FR6R~6;^6?lqO;-QUP4BY%cG%3vEhbm#>4vIhPBh3 z-+pZGjh$x%Hp{?=FHsMp0&wNPlj00us{&`1ZOZTqs8%4X&xH=UDr*xyBW(Zp&Em94 zf)ZSfn#yg0N)>!1kWdkqJ^S*z0FF5|fj&qcE#Na|%OY0$uO>!&hP+1ywfD_WXk@4J(?MBftK7>$Nvqh@tDuarN%PrTLQ2Uzysx>UV=V zk^RrDSvdQ?0;=hY67EgII-f4`t=+i*yS=Y~!XlqIy_4x&%+OdfbKOFPXS2X5%4R{N z$SQMX^AK6(fA + + + + + + + + + + + + + + + + diff --git a/Samples/Tutorials/Tutorial_02/MainPage.xaml.cs b/Samples/Tutorials/Tutorial_02/MainPage.xaml.cs new file mode 100644 index 0000000..5e2300b --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/MainPage.xaml.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Core; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409 + +namespace Tutorial_02 +{ + ///

+ /// An empty page that can be used on its own or navigated to within a Frame. + /// + public sealed partial class MainPage : Page + { + public MainPage() + { + this.InitializeComponent(); + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested += MainPage_BackRequested; + } + + private void MainPage_BackRequested(object sender, Windows.UI.Core.BackRequestedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + if (rootFrame == null) + return; + + // Navigate back if possible, and if the event has not + // already been handled . + if (rootFrame.CanGoBack && e.Handled == false) + { + e.Handled = true; + rootFrame.GoBack(); + } + } + protected override void OnNavigatedTo(NavigationEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + if (rootFrame.CanGoBack) + { + // Show UI in title bar if opted-in and in-app backstack is not empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Visible; + } + else + { + // Remove the UI from the title bar if in-app back stack is empty. + SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility = + AppViewBackButtonVisibility.Collapsed; + } + } + protected override void OnNavigatedFrom(NavigationEventArgs e) + { + Windows.UI.Core.SystemNavigationManager.GetForCurrentView().BackRequested -= MainPage_BackRequested; + } + + private void ButtonPart1_Clicked(object sender, RoutedEventArgs e) + { + } + + private void ButtonPart2_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part2)); + } + + private void ButtonPart3_Clicked(object sender, RoutedEventArgs e) + { + this.Frame.Navigate(typeof(Part3)); + } + } +} diff --git a/Samples/Tutorials/Tutorial_02/Package.appxmanifest b/Samples/Tutorials/Tutorial_02/Package.appxmanifest new file mode 100644 index 0000000..c326408 --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/Package.appxmanifest @@ -0,0 +1,49 @@ + + + + + + + + + + Tutorial_02 + Pavel + Assets\StoreLogo.png + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_02/Properties/AssemblyInfo.cs b/Samples/Tutorials/Tutorial_02/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f3f8aa6 --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/Properties/AssemblyInfo.cs @@ -0,0 +1,29 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Tutorial_02")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Tutorial_02")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: ComVisible(false)] \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_02/Properties/Default.rd.xml b/Samples/Tutorials/Tutorial_02/Properties/Default.rd.xml new file mode 100644 index 0000000..80a960c --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/Properties/Default.rd.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_02/README.md b/Samples/Tutorials/Tutorial_02/README.md new file mode 100644 index 0000000..6ecdb2c --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/README.md @@ -0,0 +1,416 @@ +# Tutorial 2: Stroke Model and Serialization + +This tutorial demonstrates how to create a simple stroke model class and use it for path building, rendering and serialization. +The applications demonstrated in Part 2 and Part 3 are able to display multiple strokes at the same time, save the currently displayed strokes to a file and load them back. + +* [Part 1: Stroke Model](#part-1-stroke-model) +* [Part 2: Stroke Serialization](#part-2-stroke-serialization) +* [Part 3: WILL format](#part-3-will-format) + +--- +## Part 1: Stroke Model + +In the previous tutorial we used the term "stroke", but there was no such abstraction in the code. +Now we will create a type that encapsulates the stroke related data in order to simplify the code in the subsequent examples. + +Let's call the new type Stroke and declare the following fields and properties: + +```csharp + internal class Stroke + { + private Path _path; + + public Path Path + { + get + { + return _path; + } + } + + public float? Width { get; set; } + public Color Color { get; set; } + public float Ts { get; set; } + public float Tf { get; set; } + + ... + } +``` + +These properties, along with the control path are required for stroke rendering. + +We will need a constructor that will initialize the stroke with a specified color and a path. +The path that we will normally pass to this constructor will be the pathbuilder's built-in path, so we create a copy of the passed path instead of just keeping a reference to it. + +```csharp + public Stroke(Path srcPath, Color color) + { + // Make a copy of the source path + IList srcPathData = srcPath.Data; + List pathData = new List(); + + for (int i = 0; i < srcPathData.Count; i++) + { + pathData.Add(srcPathData[i]); + } + + _path = new Path(pathData, srcPath.DataStride); + + this.Width = null; + this.Color = color; + this.Ts = 0.0f; + this.Tf = 1.0f; + } +``` + +The second constructor will be used when creating strokes from deserialized stroke data: + +```csharp + public Stroke(StrokeData strokeData) + { + _path = strokeData.Path; + + this.Width = strokeData.Width; + this.Color = strokeData.Color; + this.Ts = strokeData.Ts; + this.Tf = strokeData.Tf; + } +``` + +In the next part of the tutorial we will integrate the Stroke class in the example code. + +--- +## Part 2: Stroke Serialization + +In Part 1 we introduced the Stroke class that will help us demonstrate the serialization / deserialization features included in WILL SDK. +Now we are going to demonstrate how to save stroke data to a binary stream and load it in order to draw the saved strokes on the screen. + +This tutorial is based on the code from Tutorial 1, Part 6. +A few changes are necessary in order to integrate the Stroke class in the code. + +We need to declare a list of Stroke objects that will contain the data for the strokes displayed on the screen. + +```csharp + private List _strokes = new List(); +``` + +When a stroke is finished, we have to create a corresponding Stroke object and add it to the list of strokes. +Note that we pass the current path of the _pathBuilder to the Stroke constructor and it creates a copy of this path. + +```csharp + void OnPointerInputEnd(PointerRoutedEventArgs e) + { + ... + + // Store the current stroke + _strokes.Add(new Stroke(_pathBuilder.CurrentPath, _strokeRenderer.Color)); + } +``` + +At this point the application are able to draw strokes and retain them in the _strokes collection. +We will add some functionality to save the retained strokes to a file on a button click. +For this purpose we use the StrokeEncoder type from the WILL SDK. +For each stroke in the _strokes collection we call the StrokeEncoder's Encode method, passing the relevant data. +When done, we call the encoder's GetData method to obtain an IBuffer, which we save to a file. + +```csharp + async void ButtonSave_Clicked(object sender, RoutedEventArgs e) + { + // save the finished strokes + using (StrokeEncoder encoder = new StrokeEncoder()) + { + foreach (Stroke s in _strokes) + { + encoder.Encode(2, s.Path, s.Width, s.Color, s.Ts, s.Tf, -1, 0, BlendMode.Normal); + } + + IBuffer buffer = encoder.GetData(); + + if (buffer != null) + { + StorageFile storageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(_fileName, CreationCollisionOption.ReplaceExisting); + + if (storageFile != null) + { + await FileIO.WriteBufferAsync(storageFile, buffer); + } + } + } + } +``` + +In order to load the strokes back from the file we have to use the StrokeDecoder class. +The StrokeDecoder's DecodeCurrent method will return a StrokeData object for each stroke. +We can create Stroke objects directly from the StrokeData objects using one of the Stroke class's constructors. +We add the newly created Stroke objects to the _strokes list and also to a temporary list that will be used for rendering of the loaded strokes: + +```csharp + async void ButtonLoad_Clicked(object sender, RoutedEventArgs e) + { + StorageFile storageFile = null; + + try + { + storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync(_fileName); + } + catch (System.IO.FileNotFoundException) + { + } + + List loadedStrokes = new List(); + + if (storageFile != null) + { + IBuffer buffer = await FileIO.ReadBufferAsync(storageFile); + + using (StrokeDecoder decoder = new StrokeDecoder(buffer)) + { + while (decoder.MoveNext()) + { + StrokeData strokeData = decoder.DecodeCurrent(); + Stroke stroke = new Stroke(strokeData); + + loadedStrokes.Add(stroke); + _strokes.Add(stroke); + } + } + } + + if (loadedStrokes.Count > 0) + { + _renderingContext.SetTarget(_allStrokesLayer); + + foreach (Stroke s in loadedStrokes) + { + _strokeRenderer.Color = s.Color; + _strokeRenderer.Ts = s.Ts; + _strokeRenderer.Tf = s.Tf; + + // draw the stroke in the strokes layer + _strokeRenderer.ResetAndClear(); + _strokeRenderer.DrawStroke(s.Path, 0, s.Path.PointsCount, true); + _strokeRenderer.BlendStrokeInLayer(_allStrokesLayer, BlendMode.Normal); + } + + // copy the strokes layer to the scene layer + _renderingContext.SetTarget(_sceneLayer); + _renderingContext.DrawLayer(_allStrokesLayer, null, BlendMode.None); + + // copy the strokes layer to the backbuffer layer + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_allStrokesLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } + } +``` + +We render the loaded strokes into the _allStrokesLayer - after that it contains all previous strokes as well as all the newly loaded strokes. +Note that the _allStrokesLayer layer is not cleared before the strokes are rendered and similarly the _strokes collection is not cleared before the Stroke instances are added to it. +This is necessary to keep the layer and the collection synchronized. + +We copy the _allStrokesLayer to the _sceneLayer to keep it up to date and copy the _allStrokesLayer to the _backbufferLayer in order to present the scene. + +When we need to clear the strokes we use the following code: + +```csharp + void ButtonClear_Clicked(object sender, RoutedEventArgs e) + { + // clear the strokes collection + _strokes.Clear(); + + // clear the scene layer + _renderingContext.SetTarget(_sceneLayer); + _renderingContext.ClearColor(_backgroundColor); + + _renderingContext.SetTarget(_allStrokesLayer); + _renderingContext.ClearColor(_backgroundColor); + + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.ClearColor(_backgroundColor); + + _graphics.Present(); + } +``` + +We maintain integrity by clearing both the _strokes collection and layers. + +--- +## Part 3: WILL format + +WILL SDK provides a file format for serialization of stroke data. +The format is called WILL and is based on the OPC specification. + +The main functionality in regards to manipulation of WILL files is provided by the WillDocument type. +A WillDocument can contain one or more sections. +Each section is a hierarchical structure consisting of groups, strokes, images and other graphical elements. + +In order to store stroke data in a WILL file, first we have to encode it into binary form just like in the previous part of the tutorial. + +```csharp + async void ButtonSave_Clicked(object sender, RoutedEventArgs e) + { + IBuffer strokesBuffer; + + // serialize the strokes to a buffer + using (StrokeEncoder encoder = new StrokeEncoder()) + { + foreach (Stroke s in _strokes) + { + encoder.Encode(2, s.Path, s.Width, s.Color, s.Ts, s.Tf, null, null, BlendMode.Normal); + } + + strokesBuffer = encoder.GetData(); + } + + ... +``` + +The next step is to create and configure a WillDocument instance. +The WillDocument type exposes several properties that let you store metadata like document title, last modified date, application name etc. + +```csharp + ... + + // Create a WILL document + WillDocument willDoc = new WillDocument(); + willDoc.Modified = DateTime.Now; + willDoc.Title = "Willx Doc 1"; + willDoc.Application = "Tutorial 2"; + willDoc.AppVersion = "1.0.0"; + + ... +``` + +Next we create a document section that will represent the scene. + +```csharp + ... + + // Create a document section + Section section = new Section(); + willDoc.AddSection(section); + + ... +``` + +We add an image element and assign the encoded stroke data to it. + +```csharp + ... + + // Add a PathsElement to the section and specify that the strokes buffer contains the data for the paths. + PathsElement paths = new PathsElement(); + section.AppendChild(paths); + paths.PathsDataProvider = new BufferDataProvider(strokesBuffer, DataFormat.ProtobufStrokes); + + ... +``` + +The final step is to save the WILL document to a storage file. + +```csharp + ... + + // Save the WILL document into a storage file. + StorageFile storageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(_fileName, CreationCollisionOption.ReplaceExisting); + + await willDoc.SaveToFileAsync(storageFile); + } +``` + +In order to read the scene from an existing file we have to use the LoadFromFile method. + +```csharp + async void ButtonLoad_Clicked(object sender, RoutedEventArgs e) + { + try + { + // Create a WILL document and load it from a storage file. + StorageFile storageFile = await ApplicationData.Current.LocalFolder.GetFileAsync(_fileName); + + WillDocument willDoc = new WillDocument(); + await willDoc.LoadFromFileAsync(storageFile); + + ... +``` + +Since we know that the strokes are stored in the first image element of the first section, we search directly for this element and decode the strokes from the data assigned to it. +The stroke data is provided in the form of a buffer that we have to pass to the StrokeDecoder class. + +```csharp + ... + + List loadedStrokes = new List(); + + // Get the first section and load the strokes from it. + Section section = willDoc.Sections.FirstOrDefault(); + + if (section != null) + { + PathsElement pathsElement = section.Elements.FirstOrDefault() as PathsElement; + + if (pathsElement != null) + { + IBuffer buffer = await pathsElement.PathsDataProvider.GetDataAsync(); + + if (buffer != null) + { + using (StrokeDecoder decoder = new StrokeDecoder(buffer)) + { + while (decoder.MoveNext()) + { + StrokeData strokeData = decoder.DecodeCurrent(); + Stroke stroke = new Stroke(strokeData); + + loadedStrokes.Add(stroke); + _strokes.Add(stroke); + } + } + } + } + } + + ... +``` + +If we manage to load some strokes from the file, we render them to the screen using the code below. + +```csharp + ... + + if (loadedStrokes.Count > 0) + { + foreach (Stroke s in loadedStrokes) + { + _strokeRenderer.Color = s.Color; + _strokeRenderer.Ts = s.Ts; + _strokeRenderer.Tf = s.Tf; + + // draw the stroke in the strokes layer + _strokeRenderer.ResetAndClear(); + _strokeRenderer.DrawStroke(s.Path, 0, s.Path.PointsCount, true); + _strokeRenderer.BlendStrokeInLayer(_allStrokesLayer, BlendMode.Normal); + } + + // copy the strokes layer to the scene layer + _renderingContext.SetTarget(_sceneLayer); + _renderingContext.DrawLayer(_allStrokesLayer, null, BlendMode.None); + + // copy the strokes layer to the backbuffer layer + _renderingContext.SetTarget(_backbufferLayer); + _renderingContext.DrawLayer(_allStrokesLayer, null, BlendMode.None); + + // present + _graphics.Present(); + } + } + catch (System.IO.FileNotFoundException) + { + } + } +``` + +--- + diff --git a/Samples/Tutorials/Tutorial_02/Stroke.cs b/Samples/Tutorials/Tutorial_02/Stroke.cs new file mode 100644 index 0000000..4092c3b --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/Stroke.cs @@ -0,0 +1,41 @@ +using Wacom.Ink; +using Wacom.Ink.Serialization; +using Windows.UI; + +namespace Tutorial_02 +{ + internal class Stroke + { + #region Constructors + + public Stroke(StrokeData strokeData) + { + Path = strokeData.Path; + Width = strokeData.Width; + Color = strokeData.Color; + Ts = strokeData.Ts; + Tf = strokeData.Tf; + } + public Stroke(Path srcPath, Color color) + { + Path = srcPath.ClonePath(); + + Width = null; + Color = color; + Ts = 0.0f; + Tf = 1.0f; + } + + #endregion + + #region Properties + + public Path Path { get; private set; } + public float? Width { get; set; } + public Color Color { get; set; } + public float Ts { get; set; } + public float Tf { get; set; } + + #endregion + } +} diff --git a/Samples/Tutorials/Tutorial_02/Tutorial_02.csproj b/Samples/Tutorials/Tutorial_02/Tutorial_02.csproj new file mode 100644 index 0000000..e19f805 --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/Tutorial_02.csproj @@ -0,0 +1,163 @@ + + + + + Debug + x86 + {B44FF315-E9B7-47E2-ADA7-26BB22FA5B00} + AppContainerExe + Properties + Tutorial_02 + Tutorial_02 + en-US + UAP + 10.0.14393.0 + 10.0.10586.0 + 14 + 512 + {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Tutorial_02_TemporaryKey.pfx + + + true + bin\x86\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x86 + false + prompt + true + + + bin\x86\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x86 + false + prompt + true + true + + + true + bin\ARM\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + ARM + false + prompt + true + + + bin\ARM\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + ARM + false + prompt + true + true + + + true + bin\x64\Debug\ + DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP + ;2008 + full + x64 + false + prompt + true + + + bin\x64\Release\ + TRACE;NETFX_CORE;WINDOWS_UWP + true + ;2008 + pdbonly + x64 + false + prompt + true + true + + + + + + + + App.xaml + + + MainPage.xaml + + + + + Tutorial_02_Part_2.xaml + + + Tutorial_02_Part_3.xaml + + + + + Designer + + + + + + + + + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + Microsoft Visual C++ 2013 Runtime Package for Windows + + + WILL Ink 2.0 + + + + 14.0 + + + + \ No newline at end of file diff --git a/Samples/Tutorials/Tutorial_02/Tutorial_02_Part_2.xaml b/Samples/Tutorials/Tutorial_02/Tutorial_02_Part_2.xaml new file mode 100644 index 0000000..b89aa62 --- /dev/null +++ b/Samples/Tutorials/Tutorial_02/Tutorial_02_Part_2.xaml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + +