// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 46;
	objects = {

/* Begin PBXBuildFile section */
		197E1E871B8943FE00E3FE6A /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 197E1E861B8943FE00E3FE6A /* imgui_draw.cpp */; };
		197E1E891B89443600E3FE6A /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 197E1E881B89443600E3FE6A /* imgui_demo.cpp */; };
		1A1A0F231CB39FB50090F036 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A1A0F221CB39FB50090F036 /* AppDelegate.m */; };
		1A1A0F281CB39FB50090F036 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1A1A0F271CB39FB50090F036 /* Assets.xcassets */; };
		1A1A0F301CB3A0DA0090F036 /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 197E1E861B8943FE00E3FE6A /* imgui_draw.cpp */; };
		1A1A0F311CB3A0DA0090F036 /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC5861B2E64AB00C130BA /* imgui.cpp */; };
		1A1A0F321CB3A0DE0090F036 /* uSynergy.c in Sources */ = {isa = PBXBuildFile; fileRef = 6D1E39151B35EEF10017B40F /* uSynergy.c */; };
		1A1A0F331CB3A0E10090F036 /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 197E1E881B89443600E3FE6A /* imgui_demo.cpp */; };
		1A1A0F341CB3A0EC0090F036 /* debug_hud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC5891B2E6A5500C130BA /* debug_hud.cpp */; };
		1A1A0F481CB3A2E50090F036 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A1A0F391CB3A1B20090F036 /* main.cpp */; };
		1A1A0F4A1CB3A5070090F036 /* imgui_impl_glfw_gl2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1A1A0F371CB3A1B20090F036 /* imgui_impl_glfw_gl2.cpp */; };
		1A1A0F4E1CB3C54D0090F036 /* libglfw.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A1A0F4D1CB3C54D0090F036 /* libglfw.dylib */; };
		6D1E39171B35EEF10017B40F /* uSynergy.c in Sources */ = {isa = PBXBuildFile; fileRef = 6D1E39151B35EEF10017B40F /* uSynergy.c */; };
		6D2FC55A1B2E632000C130BA /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC5591B2E632000C130BA /* main.m */; };
		6D2FC55D1B2E632000C130BA /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC55C1B2E632000C130BA /* AppDelegate.m */; };
		6D2FC55F1B2E632000C130BA /* Shader.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 6D2FC55E1B2E632000C130BA /* Shader.fsh */; };
		6D2FC5611B2E632000C130BA /* Shader.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 6D2FC5601B2E632000C130BA /* Shader.vsh */; };
		6D2FC5641B2E632000C130BA /* GameViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC5631B2E632000C130BA /* GameViewController.m */; };
		6D2FC5671B2E632000C130BA /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 6D2FC5651B2E632000C130BA /* Main.storyboard */; };
		6D2FC5691B2E632000C130BA /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6D2FC5681B2E632000C130BA /* Images.xcassets */; };
		6D2FC56C1B2E632000C130BA /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6D2FC56A1B2E632000C130BA /* LaunchScreen.xib */; };
		6D2FC5831B2E63A100C130BA /* imgui_impl_ios.mm in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC5811B2E63A100C130BA /* imgui_impl_ios.mm */; };
		6D2FC5881B2E64AB00C130BA /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC5861B2E64AB00C130BA /* imgui.cpp */; };
		6D2FC58B1B2E6A5500C130BA /* debug_hud.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6D2FC5891B2E6A5500C130BA /* debug_hud.cpp */; };
		6D2FC5911B30773F00C130BA /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D2FC5901B30773F00C130BA /* CFNetwork.framework */; };
		6D2FC5931B30774900C130BA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6D2FC5921B30774900C130BA /* SystemConfiguration.framework */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		197E1E861B8943FE00E3FE6A /* imgui_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_draw.cpp; path = ../../imgui_draw.cpp; sourceTree = "<group>"; };
		197E1E881B89443600E3FE6A /* imgui_demo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_demo.cpp; path = ../../../imgui_demo.cpp; sourceTree = "<group>"; };
		1A1A0F1F1CB39FB50090F036 /* imguiex-osx.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "imguiex-osx.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		1A1A0F211CB39FB50090F036 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		1A1A0F221CB39FB50090F036 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		1A1A0F271CB39FB50090F036 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		1A1A0F2C1CB39FB50090F036 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		1A1A0F371CB3A1B20090F036 /* imgui_impl_glfw_gl2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = imgui_impl_glfw_gl2.cpp; sourceTree = "<group>"; };
		1A1A0F381CB3A1B20090F036 /* imgui_impl_glfw_gl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imgui_impl_glfw_gl2.h; sourceTree = "<group>"; };
		1A1A0F391CB3A1B20090F036 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
		1A1A0F4D1CB3C54D0090F036 /* libglfw.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libglfw.dylib; path = /usr/local/lib/libglfw.dylib; sourceTree = "<absolute>"; };
		6D1E39151B35EEF10017B40F /* uSynergy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = uSynergy.c; sourceTree = "<group>"; };
		6D1E39161B35EEF10017B40F /* uSynergy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = uSynergy.h; sourceTree = "<group>"; };
		6D2FC5541B2E632000C130BA /* imguiex-ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "imguiex-ios.app"; sourceTree = BUILT_PRODUCTS_DIR; };
		6D2FC5581B2E632000C130BA /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		6D2FC5591B2E632000C130BA /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		6D2FC55B1B2E632000C130BA /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		6D2FC55C1B2E632000C130BA /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		6D2FC55E1B2E632000C130BA /* Shader.fsh */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; name = Shader.fsh; path = Shaders/Shader.fsh; sourceTree = "<group>"; };
		6D2FC5601B2E632000C130BA /* Shader.vsh */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.glsl; name = Shader.vsh; path = Shaders/Shader.vsh; sourceTree = "<group>"; };
		6D2FC5621B2E632000C130BA /* GameViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GameViewController.h; sourceTree = "<group>"; };
		6D2FC5631B2E632000C130BA /* GameViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = GameViewController.m; sourceTree = "<group>"; };
		6D2FC5661B2E632000C130BA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		6D2FC5681B2E632000C130BA /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
		6D2FC56B1B2E632000C130BA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
		6D2FC5811B2E63A100C130BA /* imgui_impl_ios.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = imgui_impl_ios.mm; sourceTree = "<group>"; };
		6D2FC5821B2E63A100C130BA /* imgui_impl_ios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = imgui_impl_ios.h; sourceTree = "<group>"; };
		6D2FC5851B2E64AB00C130BA /* imconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imconfig.h; path = ../../imconfig.h; sourceTree = "<group>"; };
		6D2FC5861B2E64AB00C130BA /* imgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui.cpp; path = ../../imgui.cpp; sourceTree = "<group>"; };
		6D2FC5871B2E64AB00C130BA /* imgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui.h; path = ../../imgui.h; sourceTree = "<group>"; };
		6D2FC5891B2E6A5500C130BA /* debug_hud.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = debug_hud.cpp; sourceTree = "<group>"; };
		6D2FC58A1B2E6A5500C130BA /* debug_hud.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = debug_hud.h; sourceTree = "<group>"; };
		6D2FC5901B30773F00C130BA /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
		6D2FC5921B30774900C130BA /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		1A1A0F1C1CB39FB50090F036 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1A1A0F4E1CB3C54D0090F036 /* libglfw.dylib in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		6D2FC5511B2E632000C130BA /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				6D2FC5931B30774900C130BA /* SystemConfiguration.framework in Frameworks */,
				6D2FC5911B30773F00C130BA /* CFNetwork.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		1A1A0F201CB39FB50090F036 /* imguiex-osx */ = {
			isa = PBXGroup;
			children = (
				1A1A0F4D1CB3C54D0090F036 /* libglfw.dylib */,
				1A1A0F351CB3A1B20090F036 /* opengl2_example */,
				1A1A0F211CB39FB50090F036 /* AppDelegate.h */,
				1A1A0F221CB39FB50090F036 /* AppDelegate.m */,
				1A1A0F271CB39FB50090F036 /* Assets.xcassets */,
				1A1A0F2C1CB39FB50090F036 /* Info.plist */,
				1A1A0F241CB39FB50090F036 /* Supporting Files */,
			);
			path = "imguiex-osx";
			sourceTree = "<group>";
		};
		1A1A0F241CB39FB50090F036 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		1A1A0F351CB3A1B20090F036 /* opengl2_example */ = {
			isa = PBXGroup;
			children = (
				1A1A0F371CB3A1B20090F036 /* imgui_impl_glfw_gl2.cpp */,
				1A1A0F381CB3A1B20090F036 /* imgui_impl_glfw_gl2.h */,
				1A1A0F391CB3A1B20090F036 /* main.cpp */,
			);
			name = opengl2_example;
			path = ../../opengl2_example;
			sourceTree = "<group>";
		};
		6D1E39141B35EEF10017B40F /* usynergy */ = {
			isa = PBXGroup;
			children = (
				6D1E39151B35EEF10017B40F /* uSynergy.c */,
				6D1E39161B35EEF10017B40F /* uSynergy.h */,
			);
			name = usynergy;
			path = ../libs/usynergy;
			sourceTree = "<group>";
		};
		6D2FC54B1B2E632000C130BA = {
			isa = PBXGroup;
			children = (
				6D1E39141B35EEF10017B40F /* usynergy */,
				6D2FC5841B2E648D00C130BA /* imgui */,
				6D2FC5561B2E632000C130BA /* imguiex-ios */,
				1A1A0F201CB39FB50090F036 /* imguiex-osx */,
				6D2FC5551B2E632000C130BA /* Products */,
			);
			sourceTree = "<group>";
		};
		6D2FC5551B2E632000C130BA /* Products */ = {
			isa = PBXGroup;
			children = (
				6D2FC5541B2E632000C130BA /* imguiex-ios.app */,
				1A1A0F1F1CB39FB50090F036 /* imguiex-osx.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		6D2FC5561B2E632000C130BA /* imguiex-ios */ = {
			isa = PBXGroup;
			children = (
				6D2FC5811B2E63A100C130BA /* imgui_impl_ios.mm */,
				6D2FC5821B2E63A100C130BA /* imgui_impl_ios.h */,
				197E1E881B89443600E3FE6A /* imgui_demo.cpp */,
				6D2FC5891B2E6A5500C130BA /* debug_hud.cpp */,
				6D2FC58A1B2E6A5500C130BA /* debug_hud.h */,
				6D2FC55B1B2E632000C130BA /* AppDelegate.h */,
				6D2FC55C1B2E632000C130BA /* AppDelegate.m */,
				6D2FC55E1B2E632000C130BA /* Shader.fsh */,
				6D2FC5601B2E632000C130BA /* Shader.vsh */,
				6D2FC5621B2E632000C130BA /* GameViewController.h */,
				6D2FC5631B2E632000C130BA /* GameViewController.m */,
				6D2FC5651B2E632000C130BA /* Main.storyboard */,
				6D2FC5681B2E632000C130BA /* Images.xcassets */,
				6D2FC56A1B2E632000C130BA /* LaunchScreen.xib */,
				6D2FC5571B2E632000C130BA /* Supporting Files */,
			);
			path = "imguiex-ios";
			sourceTree = "<group>";
		};
		6D2FC5571B2E632000C130BA /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				6D2FC5921B30774900C130BA /* SystemConfiguration.framework */,
				6D2FC5901B30773F00C130BA /* CFNetwork.framework */,
				6D2FC5581B2E632000C130BA /* Info.plist */,
				6D2FC5591B2E632000C130BA /* main.m */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		6D2FC5841B2E648D00C130BA /* imgui */ = {
			isa = PBXGroup;
			children = (
				6D2FC5851B2E64AB00C130BA /* imconfig.h */,
				197E1E861B8943FE00E3FE6A /* imgui_draw.cpp */,
				6D2FC5861B2E64AB00C130BA /* imgui.cpp */,
				6D2FC5871B2E64AB00C130BA /* imgui.h */,
			);
			name = imgui;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		1A1A0F1E1CB39FB50090F036 /* imguiex-osx */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1A1A0F2F1CB39FB50090F036 /* Build configuration list for PBXNativeTarget "imguiex-osx" */;
			buildPhases = (
				1A1A0F1B1CB39FB50090F036 /* Sources */,
				1A1A0F1C1CB39FB50090F036 /* Frameworks */,
				1A1A0F1D1CB39FB50090F036 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "imguiex-osx";
			productName = "imguiex-osx";
			productReference = 1A1A0F1F1CB39FB50090F036 /* imguiex-osx.app */;
			productType = "com.apple.product-type.application";
		};
		6D2FC5531B2E632000C130BA /* imguiex-ios */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 6D2FC57B1B2E632000C130BA /* Build configuration list for PBXNativeTarget "imguiex-ios" */;
			buildPhases = (
				6D2FC5501B2E632000C130BA /* Sources */,
				6D2FC5511B2E632000C130BA /* Frameworks */,
				6D2FC5521B2E632000C130BA /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = "imguiex-ios";
			productName = imguiex;
			productReference = 6D2FC5541B2E632000C130BA /* imguiex-ios.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		6D2FC54C1B2E632000C130BA /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0630;
				ORGANIZATIONNAME = "Joel Davis";
				TargetAttributes = {
					1A1A0F1E1CB39FB50090F036 = {
						CreatedOnToolsVersion = 7.3;
					};
					6D2FC5531B2E632000C130BA = {
						CreatedOnToolsVersion = 6.3.2;
					};
				};
			};
			buildConfigurationList = 6D2FC54F1B2E632000C130BA /* Build configuration list for PBXProject "imguiex" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 6D2FC54B1B2E632000C130BA;
			productRefGroup = 6D2FC5551B2E632000C130BA /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				6D2FC5531B2E632000C130BA /* imguiex-ios */,
				1A1A0F1E1CB39FB50090F036 /* imguiex-osx */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		1A1A0F1D1CB39FB50090F036 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1A1A0F281CB39FB50090F036 /* Assets.xcassets in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		6D2FC5521B2E632000C130BA /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				6D2FC56C1B2E632000C130BA /* LaunchScreen.xib in Resources */,
				6D2FC5671B2E632000C130BA /* Main.storyboard in Resources */,
				6D2FC5691B2E632000C130BA /* Images.xcassets in Resources */,
				6D2FC5611B2E632000C130BA /* Shader.vsh in Resources */,
				6D2FC55F1B2E632000C130BA /* Shader.fsh in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		1A1A0F1B1CB39FB50090F036 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1A1A0F301CB3A0DA0090F036 /* imgui_draw.cpp in Sources */,
				1A1A0F311CB3A0DA0090F036 /* imgui.cpp in Sources */,
				1A1A0F331CB3A0E10090F036 /* imgui_demo.cpp in Sources */,
				1A1A0F341CB3A0EC0090F036 /* debug_hud.cpp in Sources */,
				1A1A0F481CB3A2E50090F036 /* main.cpp in Sources */,
				1A1A0F321CB3A0DE0090F036 /* uSynergy.c in Sources */,
				1A1A0F231CB39FB50090F036 /* AppDelegate.m in Sources */,
				1A1A0F4A1CB3A5070090F036 /* imgui_impl_glfw_gl2.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		6D2FC5501B2E632000C130BA /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				6D2FC55D1B2E632000C130BA /* AppDelegate.m in Sources */,
				6D2FC5831B2E63A100C130BA /* imgui_impl_ios.mm in Sources */,
				6D1E39171B35EEF10017B40F /* uSynergy.c in Sources */,
				6D2FC5641B2E632000C130BA /* GameViewController.m in Sources */,
				6D2FC55A1B2E632000C130BA /* main.m in Sources */,
				6D2FC5881B2E64AB00C130BA /* imgui.cpp in Sources */,
				6D2FC58B1B2E6A5500C130BA /* debug_hud.cpp in Sources */,
				197E1E871B8943FE00E3FE6A /* imgui_draw.cpp in Sources */,
				197E1E891B89443600E3FE6A /* imgui_demo.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		6D2FC5651B2E632000C130BA /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				6D2FC5661B2E632000C130BA /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		6D2FC56A1B2E632000C130BA /* LaunchScreen.xib */ = {
			isa = PBXVariantGroup;
			children = (
				6D2FC56B1B2E632000C130BA /* Base */,
			);
			name = LaunchScreen.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		1A1A0F2D1CB39FB50090F036 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ANALYZER_NONNULL = YES;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_TESTABILITY = YES;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"$(SRCROOT)/../../",
					/usr/local/include,
				);
				INFOPLIST_FILE = "imguiex-osx/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				LIBRARY_SEARCH_PATHS = /usr/local/lib;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.imguiex.imguiex-osx";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				USER_HEADER_SEARCH_PATHS = "";
			};
			name = Debug;
		};
		1A1A0F2E1CB39FB50090F036 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				CLANG_ANALYZER_NONNULL = YES;
				CODE_SIGN_IDENTITY = "-";
				COMBINE_HIDPI_IMAGES = YES;
				HEADER_SEARCH_PATHS = (
					"$(inherited)",
					"$(SRCROOT)/../../",
					/usr/local/include,
				);
				INFOPLIST_FILE = "imguiex-osx/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
				LIBRARY_SEARCH_PATHS = /usr/local/lib;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.imguiex.imguiex-osx";
				PRODUCT_NAME = "$(TARGET_NAME)";
				SDKROOT = macosx;
				USER_HEADER_SEARCH_PATHS = "";
			};
			name = Release;
		};
		6D2FC5791B2E632000C130BA /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				HEADER_SEARCH_PATHS = "$(SRCROOT)/../../";
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				USER_HEADER_SEARCH_PATHS = "";
			};
			name = Debug;
		};
		6D2FC57A1B2E632000C130BA /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				HEADER_SEARCH_PATHS = "$(SRCROOT)/../../";
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				USER_HEADER_SEARCH_PATHS = "";
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		6D2FC57C1B2E632000C130BA /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				INFOPLIST_FILE = "imguiex-ios/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		6D2FC57D1B2E632000C130BA /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				INFOPLIST_FILE = "imguiex-ios/Info.plist";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1A1A0F2F1CB39FB50090F036 /* Build configuration list for PBXNativeTarget "imguiex-osx" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1A1A0F2D1CB39FB50090F036 /* Debug */,
				1A1A0F2E1CB39FB50090F036 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		6D2FC54F1B2E632000C130BA /* Build configuration list for PBXProject "imguiex" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				6D2FC5791B2E632000C130BA /* Debug */,
				6D2FC57A1B2E632000C130BA /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		6D2FC57B1B2E632000C130BA /* Build configuration list for PBXNativeTarget "imguiex-ios" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				6D2FC57C1B2E632000C130BA /* Debug */,
				6D2FC57D1B2E632000C130BA /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 6D2FC54C1B2E632000C130BA /* Project object */;
}
