diff --git a/MeloNX-XC/MeloNX.xcodeproj/project.pbxproj b/MeloNX-XC/MeloNX.xcodeproj/project.pbxproj index a55c8e096..9d11421a6 100644 --- a/MeloNX-XC/MeloNX.xcodeproj/project.pbxproj +++ b/MeloNX-XC/MeloNX.xcodeproj/project.pbxproj @@ -131,6 +131,7 @@ isa = PBXNativeTarget; buildConfigurationList = 4E87E29A2CCE2C1100F54325 /* Build configuration list for PBXNativeTarget "MeloNX" */; buildPhases = ( + 4ECF0AD52CD0FB5B00A3820B /* ShellScript */, 4E87E2882CCE2C1000F54325 /* Sources */, 4E87E2892CCE2C1000F54325 /* Frameworks */, 4E87E28A2CCE2C1000F54325 /* Resources */, @@ -198,6 +199,28 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 4ECF0AD52CD0FB5B00A3820B /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/bash; + shellScript = " +"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 4E87E2882CCE2C1000F54325 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -359,6 +382,11 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; @@ -400,6 +428,11 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; diff --git a/MeloNX-XC/MeloNX/ContentView.swift b/MeloNX-XC/MeloNX/ContentView.swift index 079dd0334..0f3306ee4 100644 --- a/MeloNX-XC/MeloNX/ContentView.swift +++ b/MeloNX-XC/MeloNX/ContentView.swift @@ -52,7 +52,6 @@ struct ContentView: View { } func startEmulation(game: URL) { - setenv("DOTNET_EnableDiagnostics", "0", 1) setenv("HOME", String(validatingUTF8: getenv("HOME"))! + "/Documents", 1) setenv("MVK_CONFIG_LOG_LEVEL", "4", 1) @@ -63,12 +62,20 @@ func startEmulation(game: URL) { graphicsBackend: "Vulkan" ) - DispatchQueue.main.async { - patchMakeKeyAndVisible() - SDL_SetMainReady() - SDL_iPhoneSetEventPump(SDL_TRUE) - SDL_Init(SDL_INIT_VIDEO) + patchMakeKeyAndVisible() + SDL_SetMainReady() + SDL_iPhoneSetEventPump(SDL_TRUE) + print(SDL_Init(SDL_INIT_VIDEO)) + + let window = SDL_CreateWindow("Ryujinx", Int32(SDL_WINDOWPOS_CENTERED_MASK), Int32(SDL_WINDOWPOS_CENTERED_MASK), 640, 480, SDL_WINDOW_SHOWN.rawValue | SDL_WINDOW_ALLOW_HIGHDPI.rawValue) + if window == nil { + print("Error creating SDL window: \(String(cString: SDL_GetError()))") + } else { + print("SDL Window created successfully!") } + + // SDL_Init(SDL_INIT_VIDEO) + let emulator = RyujinxEmulator() do { try emulator.startWithRunLoop(config: config) @@ -87,10 +94,11 @@ func patchMakeKeyAndVisible() { extension UIWindow { @objc func wdb_makeKeyAndVisible() { print("Making window key and visible...") - self.windowScene = (UIApplication.shared.connectedScenes.first! as! UIWindowScene) + if #available(iOS 13.0, *) { + self.windowScene = (UIApplication.shared.connectedScenes.first! as! UIWindowScene) + } self.wdb_makeKeyAndVisible() theWindow = self - reconnectVirtualController() } } @@ -106,7 +114,9 @@ func showVirtualController(url: URL) { g_gcVirtualController = GCVirtualController(configuration: config) g_gcVirtualController.connect { err in print("Controller connect: \(String(describing: err))") - startEmulation(game: url) + DispatchQueue.main.async { + startEmulation(game: url) + } } } diff --git a/MeloNX-XC/MeloNX/Core/Ryujinx.swift b/MeloNX-XC/MeloNX/Core/Ryujinx.swift index 430ae58cb..69fcf5626 100644 --- a/MeloNX-XC/MeloNX/Core/Ryujinx.swift +++ b/MeloNX-XC/MeloNX/Core/Ryujinx.swift @@ -68,6 +68,7 @@ class RyujinxEmulator { // args.append(contentsOf: ["--fullscreen", "true"]) args.append(contentsOf: ["--enable-debug-logs", "true"]) args.append(contentsOf: ["--enable-trace-logs", "true"]) + // args.append(contentsOf: ["--list-inputs-ids", "true"]) args.append(contentsOf: ["--input-id-1", "1-47150005-05ac-0000-0100-00004f066d01"]) // args.append("--input-path") @@ -106,7 +107,7 @@ class RyujinxEmulator { let port = Port() runLoop.add(port, forMode: .default) - DispatchQueue.main.async { + //DispatchQueue.main.async { do { try Self.start(with: config) } catch { @@ -114,7 +115,7 @@ class RyujinxEmulator { self.isRunning = false return } - } + // } diff --git a/src/Ryujinx.HLE/Switch.cs b/src/Ryujinx.HLE/Switch.cs index 4083328d0..0c7112c0a 100644 --- a/src/Ryujinx.HLE/Switch.cs +++ b/src/Ryujinx.HLE/Switch.cs @@ -52,6 +52,7 @@ namespace Ryujinx.HLE Gpu = new GpuContext(Configuration.GpuRenderer); System = new HOS.Horizon(this); Statistics = new PerformanceStatistics(); + Hid = new Hid(this, System.HidStorage); Processes = new ProcessLoader(this); TamperMachine = new TamperMachine(); diff --git a/src/Ryujinx.Headless.SDL2/WindowBase.cs b/src/Ryujinx.Headless.SDL2/WindowBase.cs index 9603a86be..9facead38 100644 --- a/src/Ryujinx.Headless.SDL2/WindowBase.cs +++ b/src/Ryujinx.Headless.SDL2/WindowBase.cs @@ -196,7 +196,7 @@ namespace Ryujinx.Headless.SDL2 throw new Exception(errorMessage); } - SetWindowIcon(); + // SetWindowIcon(); _windowId = SDL_GetWindowID(WindowHandle); SDL2Driver.Instance.RegisterWindow(_windowId, HandleWindowEvent); @@ -218,6 +218,15 @@ namespace Ryujinx.Headless.SDL2 Height = evnt.window.data2; Renderer?.Window.SetSize(Width, Height); MouseDriver.SetClientSize(Width, Height); + // if (Renderer != null && Renderer.Window != null) + // { + // Renderer.Window.SetSize(Width, Height); + // } + // else + // { + // Logger.Error?.Print(LogClass.Application, "Renderer or Window is null."); + // } + // MouseDriver.SetClientSize(Width, Height); } break; diff --git a/src/src.sln b/src/src.sln new file mode 100644 index 000000000..0f1ad8f25 --- /dev/null +++ b/src/src.sln @@ -0,0 +1,259 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.002.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ARMeilleure", "ARMeilleure\ARMeilleure.csproj", "{92028C81-6D42-42B8-ACE9-F6A0C735125D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Headless.SDL2", "Ryujinx.Headless.SDL2\Ryujinx.Headless.SDL2.csproj", "{BCA26137-98AE-4DFC-95E4-2EC3C9EA8520}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Horizon.Kernel.Generators", "Ryujinx.Horizon.Kernel.Generators\Ryujinx.Horizon.Kernel.Generators.csproj", "{7C43CDDE-E3FA-48BB-AEEF-696D5B96CE57}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Vulkan", "Ryujinx.Graphics.Vulkan\Ryujinx.Graphics.Vulkan.csproj", "{4509928D-F3F8-42E6-ACF0-DBAA533F85FC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Video", "Ryujinx.Graphics.Video\Ryujinx.Graphics.Video.csproj", "{DDC0E4F8-5CF5-4F49-B497-02E60DA623A0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Input.SDL2", "Ryujinx.Input.SDL2\Ryujinx.Input.SDL2.csproj", "{30ECA87A-E699-40A0-A1C0-8E4E3CA746AF}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Horizon.Generators", "Ryujinx.Horizon.Generators\Ryujinx.Horizon.Generators.csproj", "{3DCC6730-9571-4D08-BC0C-772B39E55020}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Audio.Backends.SDL2", "Ryujinx.Audio.Backends.SDL2\Ryujinx.Audio.Backends.SDL2.csproj", "{A23C389C-941B-4021-965F-C5EE6B572A4F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Device", "Ryujinx.Graphics.Device\Ryujinx.Graphics.Device.csproj", "{0AE5EBE7-4121-49EE-99C2-6442255FDBE0}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.HLE.Generators", "Ryujinx.HLE.Generators\Ryujinx.HLE.Generators.csproj", "{A426D174-5943-4876-9BD5-0B29D8E9E67D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Shader", "Ryujinx.Graphics.Shader\Ryujinx.Graphics.Shader.csproj", "{76ED2C02-B77C-4EAA-BEF9-FEC4B4E29FD1}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Texture", "Ryujinx.Graphics.Texture\Ryujinx.Graphics.Texture.csproj", "{189172BD-B480-47F8-AC61-B66E3297E5D4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Common", "Ryujinx.Common\Ryujinx.Common.csproj", "{F2FDF393-89A1-4412-B565-09DF4279B4E3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Host1x", "Ryujinx.Graphics.Host1x\Ryujinx.Graphics.Host1x.csproj", "{F7FB045C-B4BE-470B-A6D3-1E7E844E9904}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Horizon.Common", "Ryujinx.Horizon.Common\Ryujinx.Horizon.Common.csproj", "{E0335FAF-720B-4E1B-B444-A9B5A1F54F5B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Tests", "Ryujinx.Tests\Ryujinx.Tests.csproj", "{74B9FA90-71BC-49D3-B774-BEC2EED22023}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.OpenGL", "Ryujinx.Graphics.OpenGL\Ryujinx.Graphics.OpenGL.csproj", "{07FF746B-9138-4F11-8C3E-564FCEEADD36}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Spv.Generator", "Spv.Generator\Spv.Generator.csproj", "{1C6167F7-A786-4D8C-B656-EE312598A594}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Audio.Backends.OpenAL", "Ryujinx.Audio.Backends.OpenAL\Ryujinx.Audio.Backends.OpenAL.csproj", "{172ABA70-22DA-4D4C-9C5C-39292A87946A}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Ui.Common", "Ryujinx.Ui.Common\Ryujinx.Ui.Common.csproj", "{F1B0258E-7941-40C9-BAF1-F98D3C2D51C7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.GAL", "Ryujinx.Graphics.GAL\Ryujinx.Graphics.GAL.csproj", "{AE158864-CAF7-4D66-8E47-5A81680BB927}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Input", "Ryujinx.Input\Ryujinx.Input.csproj", "{C901DBDF-D72F-4191-8653-4A0F13A999BB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx", "Ryujinx\Ryujinx.csproj", "{FB317532-E79E-4514-BDE4-3CB59961A46B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Nvdec.FFmpeg", "Ryujinx.Graphics.Nvdec.FFmpeg\Ryujinx.Graphics.Nvdec.FFmpeg.csproj", "{A51D22FB-34FB-43C7-B4E2-D44882A09458}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Tests.Memory", "Ryujinx.Tests.Memory\Ryujinx.Tests.Memory.csproj", "{8D6EC127-FE6C-432B-AA33-0208ED153C71}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Horizon", "Ryujinx.Horizon\Ryujinx.Horizon.csproj", "{8FCEAD03-FB47-4E5F-95A8-039C333FC87D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Audio", "Ryujinx.Audio\Ryujinx.Audio.csproj", "{F6ACC37D-4BEF-4779-9A8E-899F13E19DA3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.SDL2.Common", "Ryujinx.SDL2.Common\Ryujinx.SDL2.Common.csproj", "{5AB7D4FB-D1DA-45CD-B0AD-B838CD5D6351}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Ui.LocaleGenerator", "Ryujinx.Ui.LocaleGenerator\Ryujinx.Ui.LocaleGenerator.csproj", "{B63DA225-AC04-4FD5-A126-9392F9E7FC27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Nvdec.Vp9", "Ryujinx.Graphics.Nvdec.Vp9\Ryujinx.Graphics.Nvdec.Vp9.csproj", "{C0A1D2FC-C694-4561-B34B-0341E4B95074}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Audio.Backends.SoundIo", "Ryujinx.Audio.Backends.SoundIo\Ryujinx.Audio.Backends.SoundIo.csproj", "{2B0FDF34-E428-43D7-B26A-3365F4EA9268}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Nvdec", "Ryujinx.Graphics.Nvdec\Ryujinx.Graphics.Nvdec.csproj", "{7A738B9E-CE8E-49C7-A3F4-1551AEA1F4A3}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Gpu", "Ryujinx.Graphics.Gpu\Ryujinx.Graphics.Gpu.csproj", "{11846CF3-1574-47CB-828E-3850BFD63C50}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Ava", "Ryujinx.Ava\Ryujinx.Ava.csproj", "{8349BAAF-08A2-4E31-A822-E2488D574EAA}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Cpu", "Ryujinx.Cpu\Ryujinx.Cpu.csproj", "{200F7A51-27BD-4CF1-9902-4F7902257EF6}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.HLE", "Ryujinx.HLE\Ryujinx.HLE.csproj", "{336077C8-8380-4775-9114-4448EEC6176F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Tests.Unicorn", "Ryujinx.Tests.Unicorn\Ryujinx.Tests.Unicorn.csproj", "{20E66278-A85F-4F80-A901-08E3CB9A6BC9}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Graphics.Vic", "Ryujinx.Graphics.Vic\Ryujinx.Graphics.Vic.csproj", "{D820B245-0E50-4DF1-A098-655722E1FF47}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.ShaderTools", "Ryujinx.ShaderTools\Ryujinx.ShaderTools.csproj", "{7B0A43AD-8F26-42DD-A90F-3CD24703EDF4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ryujinx.Memory", "Ryujinx.Memory\Ryujinx.Memory.csproj", "{48D27A42-B417-4480-BB01-57CBB41AB790}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {92028C81-6D42-42B8-ACE9-F6A0C735125D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {92028C81-6D42-42B8-ACE9-F6A0C735125D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92028C81-6D42-42B8-ACE9-F6A0C735125D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92028C81-6D42-42B8-ACE9-F6A0C735125D}.Release|Any CPU.Build.0 = Release|Any CPU + {BCA26137-98AE-4DFC-95E4-2EC3C9EA8520}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCA26137-98AE-4DFC-95E4-2EC3C9EA8520}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCA26137-98AE-4DFC-95E4-2EC3C9EA8520}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCA26137-98AE-4DFC-95E4-2EC3C9EA8520}.Release|Any CPU.Build.0 = Release|Any CPU + {7C43CDDE-E3FA-48BB-AEEF-696D5B96CE57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C43CDDE-E3FA-48BB-AEEF-696D5B96CE57}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C43CDDE-E3FA-48BB-AEEF-696D5B96CE57}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C43CDDE-E3FA-48BB-AEEF-696D5B96CE57}.Release|Any CPU.Build.0 = Release|Any CPU + {4509928D-F3F8-42E6-ACF0-DBAA533F85FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4509928D-F3F8-42E6-ACF0-DBAA533F85FC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4509928D-F3F8-42E6-ACF0-DBAA533F85FC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4509928D-F3F8-42E6-ACF0-DBAA533F85FC}.Release|Any CPU.Build.0 = Release|Any CPU + {DDC0E4F8-5CF5-4F49-B497-02E60DA623A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDC0E4F8-5CF5-4F49-B497-02E60DA623A0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDC0E4F8-5CF5-4F49-B497-02E60DA623A0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDC0E4F8-5CF5-4F49-B497-02E60DA623A0}.Release|Any CPU.Build.0 = Release|Any CPU + {30ECA87A-E699-40A0-A1C0-8E4E3CA746AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {30ECA87A-E699-40A0-A1C0-8E4E3CA746AF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {30ECA87A-E699-40A0-A1C0-8E4E3CA746AF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {30ECA87A-E699-40A0-A1C0-8E4E3CA746AF}.Release|Any CPU.Build.0 = Release|Any CPU + {3DCC6730-9571-4D08-BC0C-772B39E55020}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DCC6730-9571-4D08-BC0C-772B39E55020}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DCC6730-9571-4D08-BC0C-772B39E55020}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DCC6730-9571-4D08-BC0C-772B39E55020}.Release|Any CPU.Build.0 = Release|Any CPU + {A23C389C-941B-4021-965F-C5EE6B572A4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A23C389C-941B-4021-965F-C5EE6B572A4F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A23C389C-941B-4021-965F-C5EE6B572A4F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A23C389C-941B-4021-965F-C5EE6B572A4F}.Release|Any CPU.Build.0 = Release|Any CPU + {0AE5EBE7-4121-49EE-99C2-6442255FDBE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AE5EBE7-4121-49EE-99C2-6442255FDBE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AE5EBE7-4121-49EE-99C2-6442255FDBE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AE5EBE7-4121-49EE-99C2-6442255FDBE0}.Release|Any CPU.Build.0 = Release|Any CPU + {A426D174-5943-4876-9BD5-0B29D8E9E67D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A426D174-5943-4876-9BD5-0B29D8E9E67D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A426D174-5943-4876-9BD5-0B29D8E9E67D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A426D174-5943-4876-9BD5-0B29D8E9E67D}.Release|Any CPU.Build.0 = Release|Any CPU + {76ED2C02-B77C-4EAA-BEF9-FEC4B4E29FD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {76ED2C02-B77C-4EAA-BEF9-FEC4B4E29FD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {76ED2C02-B77C-4EAA-BEF9-FEC4B4E29FD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {76ED2C02-B77C-4EAA-BEF9-FEC4B4E29FD1}.Release|Any CPU.Build.0 = Release|Any CPU + {189172BD-B480-47F8-AC61-B66E3297E5D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {189172BD-B480-47F8-AC61-B66E3297E5D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {189172BD-B480-47F8-AC61-B66E3297E5D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {189172BD-B480-47F8-AC61-B66E3297E5D4}.Release|Any CPU.Build.0 = Release|Any CPU + {F2FDF393-89A1-4412-B565-09DF4279B4E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2FDF393-89A1-4412-B565-09DF4279B4E3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2FDF393-89A1-4412-B565-09DF4279B4E3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2FDF393-89A1-4412-B565-09DF4279B4E3}.Release|Any CPU.Build.0 = Release|Any CPU + {F7FB045C-B4BE-470B-A6D3-1E7E844E9904}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F7FB045C-B4BE-470B-A6D3-1E7E844E9904}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F7FB045C-B4BE-470B-A6D3-1E7E844E9904}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F7FB045C-B4BE-470B-A6D3-1E7E844E9904}.Release|Any CPU.Build.0 = Release|Any CPU + {E0335FAF-720B-4E1B-B444-A9B5A1F54F5B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E0335FAF-720B-4E1B-B444-A9B5A1F54F5B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E0335FAF-720B-4E1B-B444-A9B5A1F54F5B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E0335FAF-720B-4E1B-B444-A9B5A1F54F5B}.Release|Any CPU.Build.0 = Release|Any CPU + {74B9FA90-71BC-49D3-B774-BEC2EED22023}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74B9FA90-71BC-49D3-B774-BEC2EED22023}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74B9FA90-71BC-49D3-B774-BEC2EED22023}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74B9FA90-71BC-49D3-B774-BEC2EED22023}.Release|Any CPU.Build.0 = Release|Any CPU + {07FF746B-9138-4F11-8C3E-564FCEEADD36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {07FF746B-9138-4F11-8C3E-564FCEEADD36}.Debug|Any CPU.Build.0 = Debug|Any CPU + {07FF746B-9138-4F11-8C3E-564FCEEADD36}.Release|Any CPU.ActiveCfg = Release|Any CPU + {07FF746B-9138-4F11-8C3E-564FCEEADD36}.Release|Any CPU.Build.0 = Release|Any CPU + {1C6167F7-A786-4D8C-B656-EE312598A594}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1C6167F7-A786-4D8C-B656-EE312598A594}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1C6167F7-A786-4D8C-B656-EE312598A594}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1C6167F7-A786-4D8C-B656-EE312598A594}.Release|Any CPU.Build.0 = Release|Any CPU + {172ABA70-22DA-4D4C-9C5C-39292A87946A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {172ABA70-22DA-4D4C-9C5C-39292A87946A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {172ABA70-22DA-4D4C-9C5C-39292A87946A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {172ABA70-22DA-4D4C-9C5C-39292A87946A}.Release|Any CPU.Build.0 = Release|Any CPU + {F1B0258E-7941-40C9-BAF1-F98D3C2D51C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1B0258E-7941-40C9-BAF1-F98D3C2D51C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1B0258E-7941-40C9-BAF1-F98D3C2D51C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1B0258E-7941-40C9-BAF1-F98D3C2D51C7}.Release|Any CPU.Build.0 = Release|Any CPU + {AE158864-CAF7-4D66-8E47-5A81680BB927}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AE158864-CAF7-4D66-8E47-5A81680BB927}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AE158864-CAF7-4D66-8E47-5A81680BB927}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AE158864-CAF7-4D66-8E47-5A81680BB927}.Release|Any CPU.Build.0 = Release|Any CPU + {C901DBDF-D72F-4191-8653-4A0F13A999BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C901DBDF-D72F-4191-8653-4A0F13A999BB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C901DBDF-D72F-4191-8653-4A0F13A999BB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C901DBDF-D72F-4191-8653-4A0F13A999BB}.Release|Any CPU.Build.0 = Release|Any CPU + {FB317532-E79E-4514-BDE4-3CB59961A46B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB317532-E79E-4514-BDE4-3CB59961A46B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB317532-E79E-4514-BDE4-3CB59961A46B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB317532-E79E-4514-BDE4-3CB59961A46B}.Release|Any CPU.Build.0 = Release|Any CPU + {A51D22FB-34FB-43C7-B4E2-D44882A09458}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A51D22FB-34FB-43C7-B4E2-D44882A09458}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A51D22FB-34FB-43C7-B4E2-D44882A09458}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A51D22FB-34FB-43C7-B4E2-D44882A09458}.Release|Any CPU.Build.0 = Release|Any CPU + {8D6EC127-FE6C-432B-AA33-0208ED153C71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8D6EC127-FE6C-432B-AA33-0208ED153C71}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8D6EC127-FE6C-432B-AA33-0208ED153C71}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8D6EC127-FE6C-432B-AA33-0208ED153C71}.Release|Any CPU.Build.0 = Release|Any CPU + {8FCEAD03-FB47-4E5F-95A8-039C333FC87D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8FCEAD03-FB47-4E5F-95A8-039C333FC87D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8FCEAD03-FB47-4E5F-95A8-039C333FC87D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8FCEAD03-FB47-4E5F-95A8-039C333FC87D}.Release|Any CPU.Build.0 = Release|Any CPU + {F6ACC37D-4BEF-4779-9A8E-899F13E19DA3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F6ACC37D-4BEF-4779-9A8E-899F13E19DA3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F6ACC37D-4BEF-4779-9A8E-899F13E19DA3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F6ACC37D-4BEF-4779-9A8E-899F13E19DA3}.Release|Any CPU.Build.0 = Release|Any CPU + {5AB7D4FB-D1DA-45CD-B0AD-B838CD5D6351}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5AB7D4FB-D1DA-45CD-B0AD-B838CD5D6351}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5AB7D4FB-D1DA-45CD-B0AD-B838CD5D6351}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5AB7D4FB-D1DA-45CD-B0AD-B838CD5D6351}.Release|Any CPU.Build.0 = Release|Any CPU + {B63DA225-AC04-4FD5-A126-9392F9E7FC27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B63DA225-AC04-4FD5-A126-9392F9E7FC27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B63DA225-AC04-4FD5-A126-9392F9E7FC27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B63DA225-AC04-4FD5-A126-9392F9E7FC27}.Release|Any CPU.Build.0 = Release|Any CPU + {C0A1D2FC-C694-4561-B34B-0341E4B95074}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0A1D2FC-C694-4561-B34B-0341E4B95074}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0A1D2FC-C694-4561-B34B-0341E4B95074}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0A1D2FC-C694-4561-B34B-0341E4B95074}.Release|Any CPU.Build.0 = Release|Any CPU + {2B0FDF34-E428-43D7-B26A-3365F4EA9268}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B0FDF34-E428-43D7-B26A-3365F4EA9268}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B0FDF34-E428-43D7-B26A-3365F4EA9268}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B0FDF34-E428-43D7-B26A-3365F4EA9268}.Release|Any CPU.Build.0 = Release|Any CPU + {7A738B9E-CE8E-49C7-A3F4-1551AEA1F4A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7A738B9E-CE8E-49C7-A3F4-1551AEA1F4A3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7A738B9E-CE8E-49C7-A3F4-1551AEA1F4A3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7A738B9E-CE8E-49C7-A3F4-1551AEA1F4A3}.Release|Any CPU.Build.0 = Release|Any CPU + {11846CF3-1574-47CB-828E-3850BFD63C50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {11846CF3-1574-47CB-828E-3850BFD63C50}.Debug|Any CPU.Build.0 = Debug|Any CPU + {11846CF3-1574-47CB-828E-3850BFD63C50}.Release|Any CPU.ActiveCfg = Release|Any CPU + {11846CF3-1574-47CB-828E-3850BFD63C50}.Release|Any CPU.Build.0 = Release|Any CPU + {8349BAAF-08A2-4E31-A822-E2488D574EAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8349BAAF-08A2-4E31-A822-E2488D574EAA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8349BAAF-08A2-4E31-A822-E2488D574EAA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8349BAAF-08A2-4E31-A822-E2488D574EAA}.Release|Any CPU.Build.0 = Release|Any CPU + {200F7A51-27BD-4CF1-9902-4F7902257EF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {200F7A51-27BD-4CF1-9902-4F7902257EF6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {200F7A51-27BD-4CF1-9902-4F7902257EF6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {200F7A51-27BD-4CF1-9902-4F7902257EF6}.Release|Any CPU.Build.0 = Release|Any CPU + {336077C8-8380-4775-9114-4448EEC6176F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {336077C8-8380-4775-9114-4448EEC6176F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {336077C8-8380-4775-9114-4448EEC6176F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {336077C8-8380-4775-9114-4448EEC6176F}.Release|Any CPU.Build.0 = Release|Any CPU + {20E66278-A85F-4F80-A901-08E3CB9A6BC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {20E66278-A85F-4F80-A901-08E3CB9A6BC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {20E66278-A85F-4F80-A901-08E3CB9A6BC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {20E66278-A85F-4F80-A901-08E3CB9A6BC9}.Release|Any CPU.Build.0 = Release|Any CPU + {D820B245-0E50-4DF1-A098-655722E1FF47}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D820B245-0E50-4DF1-A098-655722E1FF47}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D820B245-0E50-4DF1-A098-655722E1FF47}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D820B245-0E50-4DF1-A098-655722E1FF47}.Release|Any CPU.Build.0 = Release|Any CPU + {7B0A43AD-8F26-42DD-A90F-3CD24703EDF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B0A43AD-8F26-42DD-A90F-3CD24703EDF4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B0A43AD-8F26-42DD-A90F-3CD24703EDF4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B0A43AD-8F26-42DD-A90F-3CD24703EDF4}.Release|Any CPU.Build.0 = Release|Any CPU + {48D27A42-B417-4480-BB01-57CBB41AB790}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {48D27A42-B417-4480-BB01-57CBB41AB790}.Debug|Any CPU.Build.0 = Debug|Any CPU + {48D27A42-B417-4480-BB01-57CBB41AB790}.Release|Any CPU.ActiveCfg = Release|Any CPU + {48D27A42-B417-4480-BB01-57CBB41AB790}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AFECFCAF-8719-4DF6-AD02-3B1E6FC10ED7} + EndGlobalSection +EndGlobal