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

/* Begin PBXBuildFile section */
		DCC29DE114730AA9005E8FD4 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCC29DE014730AA9005E8FD4 /* Cocoa.framework */; };
		DCC29DEB14730AA9005E8FD4 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DCC29DE914730AA9005E8FD4 /* InfoPlist.strings */; };
		DCC29DED14730AA9005E8FD4 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29DEC14730AA9005E8FD4 /* main.m */; };
		DCC29DF114730AA9005E8FD4 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = DCC29DEF14730AA9005E8FD4 /* Credits.rtf */; };
		DCC29DF414730AA9005E8FD4 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29DF314730AA9005E8FD4 /* AppDelegate.m */; };
		DCC29DF714730AA9005E8FD4 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = DCC29DF514730AA9005E8FD4 /* MainMenu.xib */; };
		DCC29E0E14730AC0005E8FD4 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29DFF14730AC0005E8FD4 /* DDAbstractDatabaseLogger.m */; };
		DCC29E0F14730AC0005E8FD4 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E0114730AC0005E8FD4 /* DDASLLogger.m */; };
		DCC29E1014730AC0005E8FD4 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E0314730AC0005E8FD4 /* DDFileLogger.m */; };
		DCC29E1114730AC0005E8FD4 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E0514730AC0005E8FD4 /* DDLog.m */; };
		DCC29E1214730AC0005E8FD4 /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E0714730AC0005E8FD4 /* DDTTYLogger.m */; };
		DCC29E1314730AC0005E8FD4 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E0A14730AC0005E8FD4 /* DDContextFilterLogFormatter.m */; };
		DCC29E1414730AC0005E8FD4 /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E0C14730AC0005E8FD4 /* DDDispatchQueueLogFormatter.m */; };
		DCC29E1514730AC0005E8FD4 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = DCC29E0D14730AC0005E8FD4 /* README.txt */; };
		DCC29E1F14730B05005E8FD4 /* BaseNSLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E1814730B05005E8FD4 /* BaseNSLogging.m */; };
		DCC29E2014730B05005E8FD4 /* DynamicLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E1A14730B05005E8FD4 /* DynamicLogging.m */; };
		DCC29E2114730B05005E8FD4 /* PerformanceTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E1C14730B05005E8FD4 /* PerformanceTesting.m */; };
		DCC29E2214730B05005E8FD4 /* StaticLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = DCC29E1E14730B05005E8FD4 /* StaticLogging.m */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		DCC29DDC14730AA9005E8FD4 /* BenchmarkMac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = BenchmarkMac.app; sourceTree = BUILT_PRODUCTS_DIR; };
		DCC29DE014730AA9005E8FD4 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
		DCC29DE314730AA9005E8FD4 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
		DCC29DE414730AA9005E8FD4 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DCC29DE514730AA9005E8FD4 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DCC29DE814730AA9005E8FD4 /* BenchmarkMac-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "BenchmarkMac-Info.plist"; sourceTree = "<group>"; };
		DCC29DEA14730AA9005E8FD4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DCC29DEC14730AA9005E8FD4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		DCC29DEE14730AA9005E8FD4 /* BenchmarkMac-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "BenchmarkMac-Prefix.pch"; sourceTree = "<group>"; };
		DCC29DF014730AA9005E8FD4 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
		DCC29DF214730AA9005E8FD4 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		DCC29DF314730AA9005E8FD4 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		DCC29DF614730AA9005E8FD4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
		DCC29DFE14730AC0005E8FD4 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = ../../Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = "<group>"; };
		DCC29DFF14730AC0005E8FD4 /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = ../../Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = "<group>"; };
		DCC29E0014730AC0005E8FD4 /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = ../../Lumberjack/DDASLLogger.h; sourceTree = "<group>"; };
		DCC29E0114730AC0005E8FD4 /* DDASLLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = ../../Lumberjack/DDASLLogger.m; sourceTree = "<group>"; };
		DCC29E0214730AC0005E8FD4 /* DDFileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = ../../Lumberjack/DDFileLogger.h; sourceTree = "<group>"; };
		DCC29E0314730AC0005E8FD4 /* DDFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = ../../Lumberjack/DDFileLogger.m; sourceTree = "<group>"; };
		DCC29E0414730AC0005E8FD4 /* DDLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = ../../Lumberjack/DDLog.h; sourceTree = "<group>"; };
		DCC29E0514730AC0005E8FD4 /* DDLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = ../../Lumberjack/DDLog.m; sourceTree = "<group>"; };
		DCC29E0614730AC0005E8FD4 /* DDTTYLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = ../../Lumberjack/DDTTYLogger.h; sourceTree = "<group>"; };
		DCC29E0714730AC0005E8FD4 /* DDTTYLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = ../../Lumberjack/DDTTYLogger.m; sourceTree = "<group>"; };
		DCC29E0914730AC0005E8FD4 /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDContextFilterLogFormatter.h; sourceTree = "<group>"; };
		DCC29E0A14730AC0005E8FD4 /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDContextFilterLogFormatter.m; sourceTree = "<group>"; };
		DCC29E0B14730AC0005E8FD4 /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDDispatchQueueLogFormatter.h; sourceTree = "<group>"; };
		DCC29E0C14730AC0005E8FD4 /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDDispatchQueueLogFormatter.m; sourceTree = "<group>"; };
		DCC29E0D14730AC0005E8FD4 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
		DCC29E1714730B05005E8FD4 /* BaseNSLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BaseNSLogging.h; path = ../../Benchmarking/BaseNSLogging.h; sourceTree = "<group>"; };
		DCC29E1814730B05005E8FD4 /* BaseNSLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BaseNSLogging.m; path = ../../Benchmarking/BaseNSLogging.m; sourceTree = "<group>"; };
		DCC29E1914730B05005E8FD4 /* DynamicLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DynamicLogging.h; path = ../../Benchmarking/DynamicLogging.h; sourceTree = "<group>"; };
		DCC29E1A14730B05005E8FD4 /* DynamicLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DynamicLogging.m; path = ../../Benchmarking/DynamicLogging.m; sourceTree = "<group>"; };
		DCC29E1B14730B05005E8FD4 /* PerformanceTesting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PerformanceTesting.h; path = ../../Benchmarking/PerformanceTesting.h; sourceTree = "<group>"; };
		DCC29E1C14730B05005E8FD4 /* PerformanceTesting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PerformanceTesting.m; path = ../../Benchmarking/PerformanceTesting.m; sourceTree = "<group>"; };
		DCC29E1D14730B05005E8FD4 /* StaticLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StaticLogging.h; path = ../../Benchmarking/StaticLogging.h; sourceTree = "<group>"; };
		DCC29E1E14730B05005E8FD4 /* StaticLogging.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StaticLogging.m; path = ../../Benchmarking/StaticLogging.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DCC29DD914730AA9005E8FD4 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCC29DE114730AA9005E8FD4 /* Cocoa.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		DCC29DD114730AA9005E8FD4 = {
			isa = PBXGroup;
			children = (
				DCC29DFD14730AB3005E8FD4 /* Logging */,
				DCC29E1614730AC6005E8FD4 /* Benchmarking */,
				DCC29DE614730AA9005E8FD4 /* BenchmarkMac */,
				DCC29DDF14730AA9005E8FD4 /* Frameworks */,
				DCC29DDD14730AA9005E8FD4 /* Products */,
			);
			sourceTree = "<group>";
		};
		DCC29DDD14730AA9005E8FD4 /* Products */ = {
			isa = PBXGroup;
			children = (
				DCC29DDC14730AA9005E8FD4 /* BenchmarkMac.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DCC29DDF14730AA9005E8FD4 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCC29DE014730AA9005E8FD4 /* Cocoa.framework */,
				DCC29DE214730AA9005E8FD4 /* Other Frameworks */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DCC29DE214730AA9005E8FD4 /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCC29DE314730AA9005E8FD4 /* AppKit.framework */,
				DCC29DE414730AA9005E8FD4 /* CoreData.framework */,
				DCC29DE514730AA9005E8FD4 /* Foundation.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		DCC29DE614730AA9005E8FD4 /* BenchmarkMac */ = {
			isa = PBXGroup;
			children = (
				DCC29DF214730AA9005E8FD4 /* AppDelegate.h */,
				DCC29DF314730AA9005E8FD4 /* AppDelegate.m */,
				DCC29DF514730AA9005E8FD4 /* MainMenu.xib */,
				DCC29DE714730AA9005E8FD4 /* Supporting Files */,
			);
			path = BenchmarkMac;
			sourceTree = "<group>";
		};
		DCC29DE714730AA9005E8FD4 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DCC29DE814730AA9005E8FD4 /* BenchmarkMac-Info.plist */,
				DCC29DE914730AA9005E8FD4 /* InfoPlist.strings */,
				DCC29DEC14730AA9005E8FD4 /* main.m */,
				DCC29DEE14730AA9005E8FD4 /* BenchmarkMac-Prefix.pch */,
				DCC29DEF14730AA9005E8FD4 /* Credits.rtf */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		DCC29DFD14730AB3005E8FD4 /* Logging */ = {
			isa = PBXGroup;
			children = (
				DCC29DFE14730AC0005E8FD4 /* DDAbstractDatabaseLogger.h */,
				DCC29DFF14730AC0005E8FD4 /* DDAbstractDatabaseLogger.m */,
				DCC29E0014730AC0005E8FD4 /* DDASLLogger.h */,
				DCC29E0114730AC0005E8FD4 /* DDASLLogger.m */,
				DCC29E0214730AC0005E8FD4 /* DDFileLogger.h */,
				DCC29E0314730AC0005E8FD4 /* DDFileLogger.m */,
				DCC29E0414730AC0005E8FD4 /* DDLog.h */,
				DCC29E0514730AC0005E8FD4 /* DDLog.m */,
				DCC29E0614730AC0005E8FD4 /* DDTTYLogger.h */,
				DCC29E0714730AC0005E8FD4 /* DDTTYLogger.m */,
				DCC29E0814730AC0005E8FD4 /* Extensions */,
			);
			name = Logging;
			sourceTree = "<group>";
		};
		DCC29E0814730AC0005E8FD4 /* Extensions */ = {
			isa = PBXGroup;
			children = (
				DCC29E0914730AC0005E8FD4 /* DDContextFilterLogFormatter.h */,
				DCC29E0A14730AC0005E8FD4 /* DDContextFilterLogFormatter.m */,
				DCC29E0B14730AC0005E8FD4 /* DDDispatchQueueLogFormatter.h */,
				DCC29E0C14730AC0005E8FD4 /* DDDispatchQueueLogFormatter.m */,
				DCC29E0D14730AC0005E8FD4 /* README.txt */,
			);
			name = Extensions;
			path = ../../Lumberjack/Extensions;
			sourceTree = "<group>";
		};
		DCC29E1614730AC6005E8FD4 /* Benchmarking */ = {
			isa = PBXGroup;
			children = (
				DCC29E1714730B05005E8FD4 /* BaseNSLogging.h */,
				DCC29E1814730B05005E8FD4 /* BaseNSLogging.m */,
				DCC29E1914730B05005E8FD4 /* DynamicLogging.h */,
				DCC29E1A14730B05005E8FD4 /* DynamicLogging.m */,
				DCC29E1B14730B05005E8FD4 /* PerformanceTesting.h */,
				DCC29E1C14730B05005E8FD4 /* PerformanceTesting.m */,
				DCC29E1D14730B05005E8FD4 /* StaticLogging.h */,
				DCC29E1E14730B05005E8FD4 /* StaticLogging.m */,
			);
			name = Benchmarking;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		DCC29DDB14730AA9005E8FD4 /* BenchmarkMac */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DCC29DFA14730AA9005E8FD4 /* Build configuration list for PBXNativeTarget "BenchmarkMac" */;
			buildPhases = (
				DCC29DD814730AA9005E8FD4 /* Sources */,
				DCC29DD914730AA9005E8FD4 /* Frameworks */,
				DCC29DDA14730AA9005E8FD4 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = BenchmarkMac;
			productName = BenchmarkMac;
			productReference = DCC29DDC14730AA9005E8FD4 /* BenchmarkMac.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DCC29DD314730AA9005E8FD4 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0460;
			};
			buildConfigurationList = DCC29DD614730AA9005E8FD4 /* Build configuration list for PBXProject "BenchmarkMac" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DCC29DD114730AA9005E8FD4;
			productRefGroup = DCC29DDD14730AA9005E8FD4 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DCC29DDB14730AA9005E8FD4 /* BenchmarkMac */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DCC29DDA14730AA9005E8FD4 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCC29DEB14730AA9005E8FD4 /* InfoPlist.strings in Resources */,
				DCC29DF114730AA9005E8FD4 /* Credits.rtf in Resources */,
				DCC29DF714730AA9005E8FD4 /* MainMenu.xib in Resources */,
				DCC29E1514730AC0005E8FD4 /* README.txt in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DCC29DD814730AA9005E8FD4 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCC29DED14730AA9005E8FD4 /* main.m in Sources */,
				DCC29DF414730AA9005E8FD4 /* AppDelegate.m in Sources */,
				DCC29E0E14730AC0005E8FD4 /* DDAbstractDatabaseLogger.m in Sources */,
				DCC29E0F14730AC0005E8FD4 /* DDASLLogger.m in Sources */,
				DCC29E1014730AC0005E8FD4 /* DDFileLogger.m in Sources */,
				DCC29E1114730AC0005E8FD4 /* DDLog.m in Sources */,
				DCC29E1214730AC0005E8FD4 /* DDTTYLogger.m in Sources */,
				DCC29E1314730AC0005E8FD4 /* DDContextFilterLogFormatter.m in Sources */,
				DCC29E1414730AC0005E8FD4 /* DDDispatchQueueLogFormatter.m in Sources */,
				DCC29E1F14730B05005E8FD4 /* BaseNSLogging.m in Sources */,
				DCC29E2014730B05005E8FD4 /* DynamicLogging.m in Sources */,
				DCC29E2114730B05005E8FD4 /* PerformanceTesting.m in Sources */,
				DCC29E2214730B05005E8FD4 /* StaticLogging.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		DCC29DE914730AA9005E8FD4 /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DCC29DEA14730AA9005E8FD4 /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		DCC29DEF14730AA9005E8FD4 /* Credits.rtf */ = {
			isa = PBXVariantGroup;
			children = (
				DCC29DF014730AA9005E8FD4 /* en */,
			);
			name = Credits.rtf;
			sourceTree = "<group>";
		};
		DCC29DF514730AA9005E8FD4 /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				DCC29DF614730AA9005E8FD4 /* en */,
			);
			name = MainMenu.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		DCC29DF814730AA9005E8FD4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.9;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		DCC29DF914730AA9005E8FD4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.9;
				SDKROOT = macosx;
			};
			name = Release;
		};
		DCC29DFB14730AA9005E8FD4 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "BenchmarkMac/BenchmarkMac-Prefix.pch";
				INFOPLIST_FILE = "BenchmarkMac/BenchmarkMac-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		DCC29DFC14730AA9005E8FD4 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "BenchmarkMac/BenchmarkMac-Prefix.pch";
				INFOPLIST_FILE = "BenchmarkMac/BenchmarkMac-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DCC29DD614730AA9005E8FD4 /* Build configuration list for PBXProject "BenchmarkMac" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCC29DF814730AA9005E8FD4 /* Debug */,
				DCC29DF914730AA9005E8FD4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DCC29DFA14730AA9005E8FD4 /* Build configuration list for PBXNativeTarget "BenchmarkMac" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCC29DFB14730AA9005E8FD4 /* Debug */,
				DCC29DFC14730AA9005E8FD4 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = DCC29DD314730AA9005E8FD4 /* Project object */;
}
