diff --git a/src/Middleware/CORS/samples/Directory.Build.props b/src/Middleware/CORS/samples/Directory.Build.props deleted file mode 100644 index b49282fb6f..0000000000 --- a/src/Middleware/CORS/samples/Directory.Build.props +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/Middleware/CORS/test/FunctionalTests/Assert.cs b/src/Middleware/CORS/test/FunctionalTests/Assert.cs index 6e1ab583d7..43c7558998 100644 --- a/src/Middleware/CORS/test/FunctionalTests/Assert.cs +++ b/src/Middleware/CORS/test/FunctionalTests/Assert.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Text; diff --git a/src/Middleware/CORS/test/FunctionalTests/CORS.FunctionalTests.csproj b/src/Middleware/CORS/test/FunctionalTests/CORS.FunctionalTests.csproj index 1c0e5a12a1..1813a56d69 100644 --- a/src/Middleware/CORS/test/FunctionalTests/CORS.FunctionalTests.csproj +++ b/src/Middleware/CORS/test/FunctionalTests/CORS.FunctionalTests.csproj @@ -15,8 +15,6 @@ - - diff --git a/src/Middleware/CORS/test/FunctionalTests/CorsMiddlewareFunctionalTest.cs b/src/Middleware/CORS/test/FunctionalTests/CorsMiddlewareFunctionalTest.cs index 2990bd53a9..3730b3f0ed 100644 --- a/src/Middleware/CORS/test/FunctionalTests/CorsMiddlewareFunctionalTest.cs +++ b/src/Middleware/CORS/test/FunctionalTests/CorsMiddlewareFunctionalTest.cs @@ -56,6 +56,9 @@ namespace FunctionalTests } // Disallow the test from downloading \ installing chromium. processStartInfo.Environment["PUPPETEER_SKIP_CHROMIUM_DOWNLOAD"] = "true"; + processStartInfo.Environment["DESTINATION_PORT"] = deploymentResult.DestinationResult.HttpClient.BaseAddress.Port.ToString(); + processStartInfo.Environment["ORIGIN_PORT"] = deploymentResult.OriginResult.HttpClient.BaseAddress.Port.ToString(); + processStartInfo.Environment["SECOND_ORIGIN_PORT"] = deploymentResult.SecondOriginResult.HttpClient.BaseAddress.Port.ToString(); // Act var result = await ProcessManager.RunProcessAsync(processStartInfo, loggerFactory.CreateLogger("ProcessManager")); @@ -66,7 +69,7 @@ namespace FunctionalTests } } - private static async Task CreateDeployments(ILoggerFactory loggerFactory, string startup) + private static async Task CreateDeployments(ILoggerFactory loggerFactory, string startup) { // https://github.com/aspnet/AspNetCore/issues/7990 #pragma warning disable 0618 @@ -80,30 +83,12 @@ namespace FunctionalTests "Debug"; #endif - var destinationParameters = new DeploymentParameters - { - TargetFramework = "netcoreapp3.0", - RuntimeFlavor = RuntimeFlavor.CoreClr, - ServerType = ServerType.Kestrel, - ApplicationPath = Path.Combine(solutionPath, "CORS", "samples", "SampleDestination"), - PublishApplicationBeforeDeployment = false, - ApplicationType = ApplicationType.Portable, - Configuration = configuration, - EnvironmentVariables = - { - ["CORS_STARTUP"] = startup - } - }; - - var destinationFactory = ApplicationDeployerFactory.Create(destinationParameters, loggerFactory); - var destinationDeployment = await destinationFactory.DeployAsync(); - var originParameters = new DeploymentParameters { TargetFramework = "netcoreapp3.0", RuntimeFlavor = RuntimeFlavor.CoreClr, ServerType = ServerType.Kestrel, - ApplicationPath = Path.Combine(solutionPath, "CORS", "samples", "SampleOrigin"), + ApplicationPath = Path.Combine(solutionPath, "CORS", "test", "testassets", "TestOrigin"), PublishApplicationBeforeDeployment = false, ApplicationType = ApplicationType.Portable, Configuration = configuration, @@ -112,19 +97,46 @@ namespace FunctionalTests var originFactory = ApplicationDeployerFactory.Create(originParameters, loggerFactory); var originDeployment = await originFactory.DeployAsync(); - return new SamplesDeploymentResult(originFactory, originDeployment, destinationFactory, destinationDeployment); + var secondOriginFactory = ApplicationDeployerFactory.Create(originParameters, loggerFactory); + var secondOriginDeployment = await originFactory.DeployAsync(); + + var port = originDeployment.HttpClient.BaseAddress.Port; + var destinationParameters = new DeploymentParameters + { + TargetFramework = "netcoreapp3.0", + RuntimeFlavor = RuntimeFlavor.CoreClr, + ServerType = ServerType.Kestrel, + ApplicationPath = Path.Combine(solutionPath, "CORS", "test", "testassets", "TestDestination"), + PublishApplicationBeforeDeployment = false, + ApplicationType = ApplicationType.Portable, + Configuration = configuration, + EnvironmentVariables = + { + ["CORS_STARTUP"] = startup, + ["ORIGIN_PORT"] = port.ToString() + } + }; + + var destinationFactory = ApplicationDeployerFactory.Create(destinationParameters, loggerFactory); + var destinationDeployment = await destinationFactory.DeployAsync(); + + return new CorsDeploymentResult(originFactory, originDeployment, secondOriginFactory, secondOriginDeployment, destinationFactory, destinationDeployment); } - private readonly struct SamplesDeploymentResult : IDisposable + private readonly struct CorsDeploymentResult : IDisposable { - public SamplesDeploymentResult( + public CorsDeploymentResult( ApplicationDeployer originDeployer, DeploymentResult originResult, + ApplicationDeployer secondOriginDeployer, + DeploymentResult secondOriginResult, ApplicationDeployer destinationDeployer, DeploymentResult destinationResult) { OriginDeployer = originDeployer; OriginResult = originResult; + SecondOriginDeployer = secondOriginDeployer; + SecondOriginResult = secondOriginResult; DestinationDeployer = destinationDeployer; DestinationResult = destinationResult; } @@ -133,6 +145,10 @@ namespace FunctionalTests public DeploymentResult OriginResult { get; } + public ApplicationDeployer SecondOriginDeployer { get; } + + public DeploymentResult SecondOriginResult { get; } + public ApplicationDeployer DestinationDeployer { get; } public DeploymentResult DestinationResult { get; } @@ -140,6 +156,7 @@ namespace FunctionalTests public void Dispose() { OriginDeployer.Dispose(); + SecondOriginDeployer.Dispose(); DestinationDeployer.Dispose(); } } diff --git a/src/Middleware/CORS/test/FunctionalTests/test.js b/src/Middleware/CORS/test/FunctionalTests/test.js index f994029bf2..b9f0ab54fe 100644 --- a/src/Middleware/CORS/test/FunctionalTests/test.js +++ b/src/Middleware/CORS/test/FunctionalTests/test.js @@ -1,8 +1,11 @@ -const puppeteer = require('puppeteer'); +const puppeteer = require('puppeteer'); const os = require("os"); const hostname = os.hostname(); +const originPortVar = process.env.ORIGIN_PORT; +const destinationPortVar = process.env.DESTINATION_PORT; +const secondOriginPortVar = process.env.SECOND_ORIGIN_PORT; -const corsServerPath = `http://${hostname}:9000`; +const corsServerPath = `http://${hostname}:${destinationPortVar}`; // e.g., npm test --debug // In debug mode we show the editor, slow down operations, and increase the timeout for each test @@ -47,7 +50,7 @@ describe('Browser is initialized', () => { }); describe('CORS allowed origin tests ', () => { - const testPagePath = `http://${hostname}:9001/`; + const testPagePath = `http://${hostname}:${originPortVar}/`; let page; beforeAll(async () => { @@ -228,7 +231,7 @@ describe('CORS allowed origin tests ', () => { }); describe('CORS disallowed origin tests ', () => { - const testPagePath = `http://${hostname}:9002/`; + const testPagePath = `http://${hostname}:${secondOriginPortVar}/`; let page; beforeAll(async () => { diff --git a/src/Middleware/CORS/samples/SampleDestination/Program.cs b/src/Middleware/CORS/test/testassets/TestDestination/Program.cs similarity index 79% rename from src/Middleware/CORS/samples/SampleDestination/Program.cs rename to src/Middleware/CORS/test/testassets/TestDestination/Program.cs index 5a3e1dd7cc..c135367631 100644 --- a/src/Middleware/CORS/samples/SampleDestination/Program.cs +++ b/src/Middleware/CORS/test/testassets/TestDestination/Program.cs @@ -2,7 +2,9 @@ // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; +using System.Diagnostics; using System.IO; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Logging; @@ -12,15 +14,13 @@ namespace SampleDestination { public static void Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel() - .UseUrls("http://+:9000") - .UseContentRoot(Directory.GetCurrentDirectory()) - .ConfigureLogging(factory => factory.AddConsole()) + using (var host = WebHost.CreateDefaultBuilder(args) + .UseUrls("http://+:0") .UseStartup(GetStartupType()) - .Build(); - - host.Run(); + .Build()) + { + host.Run(); + } } private static Type GetStartupType() diff --git a/src/Middleware/CORS/samples/SampleDestination/Startup.cs b/src/Middleware/CORS/test/testassets/TestDestination/Startup.cs similarity index 96% rename from src/Middleware/CORS/samples/SampleDestination/Startup.cs rename to src/Middleware/CORS/test/testassets/TestDestination/Startup.cs index 9f3614c295..721532f259 100644 --- a/src/Middleware/CORS/samples/SampleDestination/Startup.cs +++ b/src/Middleware/CORS/test/testassets/TestDestination/Startup.cs @@ -1,6 +1,8 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; +using System.Diagnostics; using System.Net; using System.Text; using System.Threading.Tasks; @@ -14,7 +16,7 @@ namespace SampleDestination { public class Startup { - private static readonly string DefaultAllowedOrigin = $"http://{Dns.GetHostName()}:9001"; + private static readonly string DefaultAllowedOrigin = $"http://{Dns.GetHostName()}:{Environment.GetEnvironmentVariable("ORIGIN_PORT")}"; private readonly ILogger _logger; public Startup(ILoggerFactory loggerFactory) diff --git a/src/Middleware/CORS/samples/SampleDestination/StartupWithoutEndpointRouting.cs b/src/Middleware/CORS/test/testassets/TestDestination/StartupWithoutEndpointRouting.cs similarity index 96% rename from src/Middleware/CORS/samples/SampleDestination/StartupWithoutEndpointRouting.cs rename to src/Middleware/CORS/test/testassets/TestDestination/StartupWithoutEndpointRouting.cs index d4a95f40b4..c473124052 100644 --- a/src/Middleware/CORS/samples/SampleDestination/StartupWithoutEndpointRouting.cs +++ b/src/Middleware/CORS/test/testassets/TestDestination/StartupWithoutEndpointRouting.cs @@ -1,6 +1,7 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Net; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; @@ -12,7 +13,7 @@ namespace SampleDestination { public class StartupWithoutEndpointRouting { - private static readonly string DefaultAllowedOrigin = $"http://{Dns.GetHostName()}:9001"; + private static readonly string DefaultAllowedOrigin = $"http://{Dns.GetHostName()}:{Environment.GetEnvironmentVariable("ORIGIN_PORT")}"; private readonly ILogger _logger; public StartupWithoutEndpointRouting(ILoggerFactory loggerFactory) diff --git a/src/Middleware/CORS/samples/SampleDestination/SampleDestination.csproj b/src/Middleware/CORS/test/testassets/TestDestination/TestDestination.csproj similarity index 87% rename from src/Middleware/CORS/samples/SampleDestination/SampleDestination.csproj rename to src/Middleware/CORS/test/testassets/TestDestination/TestDestination.csproj index bf841bc00b..080cf3e910 100644 --- a/src/Middleware/CORS/samples/SampleDestination/SampleDestination.csproj +++ b/src/Middleware/CORS/test/testassets/TestDestination/TestDestination.csproj @@ -6,6 +6,7 @@ + diff --git a/src/Middleware/CORS/samples/SampleDestination/SampleMiddleware.cs b/src/Middleware/CORS/test/testassets/TestDestination/TestMiddleware.cs similarity index 100% rename from src/Middleware/CORS/samples/SampleDestination/SampleMiddleware.cs rename to src/Middleware/CORS/test/testassets/TestDestination/TestMiddleware.cs diff --git a/src/Middleware/CORS/samples/SampleOrigin/Program.cs b/src/Middleware/CORS/test/testassets/TestOrigin/Program.cs similarity index 52% rename from src/Middleware/CORS/samples/SampleOrigin/Program.cs rename to src/Middleware/CORS/test/testassets/TestOrigin/Program.cs index 0d7fb8ac92..b1f8036fdb 100644 --- a/src/Middleware/CORS/samples/SampleOrigin/Program.cs +++ b/src/Middleware/CORS/test/testassets/TestOrigin/Program.cs @@ -1,7 +1,9 @@ // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System.Diagnostics; using System.IO; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Logging; @@ -11,15 +13,10 @@ namespace SampleOrigin { public static void Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel() - .UseUrls("http://+:9001", "http://+:9002") - .UseContentRoot(Directory.GetCurrentDirectory()) - .ConfigureLogging(factory => factory.AddConsole()) - .UseStartup() - .Build(); - - host.Run(); + using (var host = WebHost.CreateDefaultBuilder(args).UseUrls("http://+:0").UseStartup().Build()) + { + host.Run(); + } } } } diff --git a/src/Middleware/CORS/samples/SampleOrigin/Startup.cs b/src/Middleware/CORS/test/testassets/TestOrigin/Startup.cs similarity index 100% rename from src/Middleware/CORS/samples/SampleOrigin/Startup.cs rename to src/Middleware/CORS/test/testassets/TestOrigin/Startup.cs diff --git a/src/Middleware/CORS/samples/SampleOrigin/SampleOrigin.csproj b/src/Middleware/CORS/test/testassets/TestOrigin/TestOrigin.csproj similarity index 88% rename from src/Middleware/CORS/samples/SampleOrigin/SampleOrigin.csproj rename to src/Middleware/CORS/test/testassets/TestOrigin/TestOrigin.csproj index 94b56d727e..055d7b1363 100644 --- a/src/Middleware/CORS/samples/SampleOrigin/SampleOrigin.csproj +++ b/src/Middleware/CORS/test/testassets/TestOrigin/TestOrigin.csproj @@ -6,6 +6,7 @@ + diff --git a/src/Middleware/CORS/samples/SampleOrigin/wwwroot/index.htm b/src/Middleware/CORS/test/testassets/TestOrigin/wwwroot/index.htm similarity index 100% rename from src/Middleware/CORS/samples/SampleOrigin/wwwroot/index.htm rename to src/Middleware/CORS/test/testassets/TestOrigin/wwwroot/index.htm diff --git a/src/Middleware/CORS/samples/SampleOrigin/wwwroot/test.htm b/src/Middleware/CORS/test/testassets/TestOrigin/wwwroot/test.htm similarity index 100% rename from src/Middleware/CORS/samples/SampleOrigin/wwwroot/test.htm rename to src/Middleware/CORS/test/testassets/TestOrigin/wwwroot/test.htm diff --git a/src/Middleware/Middleware.sln b/src/Middleware/Middleware.sln index 83594e3fea..aa94cdf17f 100644 --- a/src/Middleware/Middleware.sln +++ b/src/Middleware/Middleware.sln @@ -245,10 +245,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataPr EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CORS.FunctionalTests", "CORS\test\FunctionalTests\CORS.FunctionalTests.csproj", "{E025D98E-BD85-474A-98A9-E7F44F392F8E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleDestination", "CORS\samples\SampleDestination\SampleDestination.csproj", "{52CDD110-77DD-4C4D-8C72-4570F6EF20DD}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleOrigin", "CORS\samples\SampleOrigin\SampleOrigin.csproj", "{198FFE3B-0346-4856-A6C9-8752D51C4EB3}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Server.IISIntegration", "..\Servers\IIS\IISIntegration\src\Microsoft.AspNetCore.Server.IISIntegration.csproj", "{47B6636D-09A3-47AE-9303-9F5D15EEE9D8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NodeServices", "NodeServices", "{17B409B3-7EC6-49D8-847E-CFAA319E01B5}" @@ -295,6 +291,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Author EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.RequestThrottling.Microbenchmarks", "RequestThrottling\perf\Microbenchmarks\Microsoft.AspNetCore.RequestThrottling.Microbenchmarks.csproj", "{737B26B4-CFC6-4B44-9070-DD36334E85B3}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestDestination", "CORS\test\testassets\TestDestination\TestDestination.csproj", "{DFEB537A-2D35-4C62-8A13-42798DF66A80}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TestOrigin", "CORS\test\testassets\TestOrigin\TestOrigin.csproj", "{E0521105-3A7B-480B-B962-0BFC2838D919}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore", "..\DefaultBuilder\src\Microsoft.AspNetCore.csproj", "{46B4FE62-06A1-4D54-B3E8-D8B4B3560075}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1385,30 +1387,6 @@ Global {E025D98E-BD85-474A-98A9-E7F44F392F8E}.Release|x64.Build.0 = Release|Any CPU {E025D98E-BD85-474A-98A9-E7F44F392F8E}.Release|x86.ActiveCfg = Release|Any CPU {E025D98E-BD85-474A-98A9-E7F44F392F8E}.Release|x86.Build.0 = Release|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Debug|x64.ActiveCfg = Debug|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Debug|x64.Build.0 = Debug|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Debug|x86.ActiveCfg = Debug|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Debug|x86.Build.0 = Debug|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Release|Any CPU.Build.0 = Release|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Release|x64.ActiveCfg = Release|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Release|x64.Build.0 = Release|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Release|x86.ActiveCfg = Release|Any CPU - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD}.Release|x86.Build.0 = Release|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Debug|x64.ActiveCfg = Debug|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Debug|x64.Build.0 = Debug|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Debug|x86.ActiveCfg = Debug|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Debug|x86.Build.0 = Debug|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Release|Any CPU.Build.0 = Release|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Release|x64.ActiveCfg = Release|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Release|x64.Build.0 = Release|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Release|x86.ActiveCfg = Release|Any CPU - {198FFE3B-0346-4856-A6C9-8752D51C4EB3}.Release|x86.Build.0 = Release|Any CPU {47B6636D-09A3-47AE-9303-9F5D15EEE9D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {47B6636D-09A3-47AE-9303-9F5D15EEE9D8}.Debug|Any CPU.Build.0 = Debug|Any CPU {47B6636D-09A3-47AE-9303-9F5D15EEE9D8}.Debug|x64.ActiveCfg = Debug|Any CPU @@ -1613,6 +1591,42 @@ Global {737B26B4-CFC6-4B44-9070-DD36334E85B3}.Release|x64.Build.0 = Release|Any CPU {737B26B4-CFC6-4B44-9070-DD36334E85B3}.Release|x86.ActiveCfg = Release|Any CPU {737B26B4-CFC6-4B44-9070-DD36334E85B3}.Release|x86.Build.0 = Release|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Debug|x64.ActiveCfg = Debug|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Debug|x64.Build.0 = Debug|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Debug|x86.ActiveCfg = Debug|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Debug|x86.Build.0 = Debug|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Release|Any CPU.Build.0 = Release|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Release|x64.ActiveCfg = Release|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Release|x64.Build.0 = Release|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Release|x86.ActiveCfg = Release|Any CPU + {DFEB537A-2D35-4C62-8A13-42798DF66A80}.Release|x86.Build.0 = Release|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Debug|x64.ActiveCfg = Debug|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Debug|x64.Build.0 = Debug|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Debug|x86.ActiveCfg = Debug|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Debug|x86.Build.0 = Debug|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Release|Any CPU.Build.0 = Release|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Release|x64.ActiveCfg = Release|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Release|x64.Build.0 = Release|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Release|x86.ActiveCfg = Release|Any CPU + {E0521105-3A7B-480B-B962-0BFC2838D919}.Release|x86.Build.0 = Release|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Debug|Any CPU.Build.0 = Debug|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Debug|x64.ActiveCfg = Debug|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Debug|x64.Build.0 = Debug|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Debug|x86.ActiveCfg = Debug|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Debug|x86.Build.0 = Debug|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Release|Any CPU.ActiveCfg = Release|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Release|Any CPU.Build.0 = Release|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Release|x64.ActiveCfg = Release|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Release|x64.Build.0 = Release|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Release|x86.ActiveCfg = Release|Any CPU + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1719,8 +1733,6 @@ Global {227030D6-99AD-4C6A-AE70-1333BCBE8705} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0} {7343B4E4-C5A2-49E2-B431-4D1E6A26E424} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0} {E025D98E-BD85-474A-98A9-E7F44F392F8E} = {4967DE1B-FEC2-4C2B-8F7F-6262D67C9434} - {52CDD110-77DD-4C4D-8C72-4570F6EF20DD} = {7CF63806-4C4F-4C48-8922-A75113975308} - {198FFE3B-0346-4856-A6C9-8752D51C4EB3} = {7CF63806-4C4F-4C48-8922-A75113975308} {47B6636D-09A3-47AE-9303-9F5D15EEE9D8} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0} {C801B6A3-906F-406F-BA25-EAE0B4BCE5C9} = {17B409B3-7EC6-49D8-847E-CFAA319E01B5} {40951683-DBC4-437A-BBAB-2FA7147E11EA} = {17B409B3-7EC6-49D8-847E-CFAA319E01B5} @@ -1740,6 +1752,9 @@ Global {7E2EA6E2-31FE-418A-9AE4-955A4C708AE7} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0} {CDDD7C43-5BEB-4E3E-8A59-FCDC83C9FBCF} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0} {737B26B4-CFC6-4B44-9070-DD36334E85B3} = {8C9AA8A2-9D1F-4450-9F8D-56BAB6F3D343} + {DFEB537A-2D35-4C62-8A13-42798DF66A80} = {BD7B3AD8-0BA6-405F-8CF6-24B9464D4B5B} + {E0521105-3A7B-480B-B962-0BFC2838D919} = {BD7B3AD8-0BA6-405F-8CF6-24B9464D4B5B} + {46B4FE62-06A1-4D54-B3E8-D8B4B3560075} = {ACA6DDB9-7592-47CE-A740-D15BF307E9E0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {83786312-A93B-4BB4-AB06-7C6913A59AFA}