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

/* Begin PBXBuildFile section */
		3047CD471C5B279500E23E1B /* cgo_exports.h in Headers */ = {isa = PBXBuildFile; fileRef = 3047CD461C5B279500E23E1B /* cgo_exports.h */; settings = {ATTRIBUTES = (Public, ); }; };
		3047CD6E1C629F1600E23E1B /* v23_amd64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3047CD6D1C629F1600E23E1B /* v23_amd64.a */; };
		30FBF6C81C582D13003522B2 /* v23_arm64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30FBF6C01C582D13003522B2 /* v23_arm64.a */; };
		30FBF6CA1C582ED7003522B2 /* go_types.h in Headers */ = {isa = PBXBuildFile; fileRef = 30FBF6C91C582ED7003522B2 /* go_types.h */; settings = {ATTRIBUTES = (Public, ); }; };
		9394170A1BF547AB00F3F996 /* v23.h in Headers */ = {isa = PBXBuildFile; fileRef = 939417091BF547AB00F3F996 /* v23.h */; settings = {ATTRIBUTES = (Public, ); }; };
		939417111BF547AB00F3F996 /* v23.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 939417061BF547AB00F3F996 /* v23.framework */; };
		939417161BF547AB00F3F996 /* v23Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939417151BF547AB00F3F996 /* v23Tests.swift */; };
		93B626511C0D5D3F00C5C1D0 /* PromiseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626501C0D5D3F00C5C1D0 /* PromiseTests.swift */; };
		93B6266C1C0E598800C5C1D0 /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6265B1C0E598800C5C1D0 /* Errors.swift */; };
		93B6266D1C0E598800C5C1D0 /* Refs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6265C1C0E598800C5C1D0 /* Refs.swift */; };
		93B6266E1C0E598800C5C1D0 /* Types.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6265D1C0E598800C5C1D0 /* Types.swift */; };
		93B6266F1C0E598800C5C1D0 /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6265F1C0E598800C5C1D0 /* Context.swift */; };
		93B626701C0E598800C5C1D0 /* RPC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626611C0E598800C5C1D0 /* RPC.swift */; };
		93B626711C0E598800C5C1D0 /* Runtime.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626631C0E598800C5C1D0 /* Runtime.swift */; };
		93B626721C0E598800C5C1D0 /* Security.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626641C0E598800C5C1D0 /* Security.swift */; };
		93B626731C0E598800C5C1D0 /* Dates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626661C0E598800C5C1D0 /* Dates.swift */; };
		93B626741C0E598800C5C1D0 /* Locking.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626671C0E598800C5C1D0 /* Locking.swift */; };
		93B626751C0E598800C5C1D0 /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626681C0E598800C5C1D0 /* Logging.swift */; };
		93B626761C0E598800C5C1D0 /* Promise.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B626691C0E598800C5C1D0 /* Promise.swift */; };
		93B626771C0E598800C5C1D0 /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6266A1C0E598800C5C1D0 /* Strings.swift */; };
		93B626781C0E598800C5C1D0 /* Threads.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93B6266B1C0E598800C5C1D0 /* Threads.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		939417121BF547AB00F3F996 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 939416FD1BF547AB00F3F996 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 939417051BF547AB00F3F996;
			remoteInfo = v23;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		9306FB481BFAA66300DE7190 /* Copy Files */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 6;
			files = (
			);
			name = "Copy Files";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		3047CD461C5B279500E23E1B /* cgo_exports.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cgo_exports.h; sourceTree = "<group>"; };
		3047CD6D1C629F1600E23E1B /* v23_amd64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = v23_amd64.a; sourceTree = "<group>"; };
		30FBF6C01C582D13003522B2 /* v23_arm64.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = v23_arm64.a; sourceTree = "<group>"; };
		30FBF6C91C582ED7003522B2 /* go_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = go_types.h; sourceTree = "<group>"; };
		939417061BF547AB00F3F996 /* v23.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = v23.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		939417091BF547AB00F3F996 /* v23.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = v23.h; sourceTree = "<group>"; };
		9394170B1BF547AB00F3F996 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		939417101BF547AB00F3F996 /* v23Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = v23Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		939417151BF547AB00F3F996 /* v23Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = v23Tests.swift; sourceTree = "<group>"; };
		939417171BF547AB00F3F996 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		93B626501C0D5D3F00C5C1D0 /* PromiseTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PromiseTests.swift; sourceTree = "<group>"; };
		93B6265B1C0E598800C5C1D0 /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = "<group>"; };
		93B6265C1C0E598800C5C1D0 /* Refs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Refs.swift; sourceTree = "<group>"; };
		93B6265D1C0E598800C5C1D0 /* Types.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Types.swift; sourceTree = "<group>"; };
		93B6265F1C0E598800C5C1D0 /* Context.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Context.swift; sourceTree = "<group>"; };
		93B626611C0E598800C5C1D0 /* RPC.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RPC.swift; sourceTree = "<group>"; };
		93B626631C0E598800C5C1D0 /* Runtime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Runtime.swift; sourceTree = "<group>"; };
		93B626641C0E598800C5C1D0 /* Security.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Security.swift; sourceTree = "<group>"; };
		93B626661C0E598800C5C1D0 /* Dates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dates.swift; sourceTree = "<group>"; };
		93B626671C0E598800C5C1D0 /* Locking.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Locking.swift; sourceTree = "<group>"; };
		93B626681C0E598800C5C1D0 /* Logging.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logging.swift; sourceTree = "<group>"; };
		93B626691C0E598800C5C1D0 /* Promise.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Promise.swift; sourceTree = "<group>"; };
		93B6266A1C0E598800C5C1D0 /* Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Strings.swift; sourceTree = "<group>"; };
		93B6266B1C0E598800C5C1D0 /* Threads.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Threads.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		939417021BF547AB00F3F996 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				3047CD6E1C629F1600E23E1B /* v23_amd64.a in Frameworks */,
				30FBF6C81C582D13003522B2 /* v23_arm64.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9394170D1BF547AB00F3F996 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				939417111BF547AB00F3F996 /* v23.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		30FBF6B41C582D13003522B2 /* x */ = {
			isa = PBXGroup;
			children = (
				3047CD6D1C629F1600E23E1B /* v23_amd64.a */,
				30FBF6C01C582D13003522B2 /* v23_arm64.a */,
				30FBF6C91C582ED7003522B2 /* go_types.h */,
				3047CD461C5B279500E23E1B /* cgo_exports.h */,
			);
			path = x;
			sourceTree = "<group>";
		};
		939416FC1BF547AB00F3F996 = {
			isa = PBXGroup;
			children = (
				939417081BF547AB00F3F996 /* v23 */,
				939417141BF547AB00F3F996 /* v23Tests */,
				939417071BF547AB00F3F996 /* Products */,
			);
			sourceTree = "<group>";
		};
		939417071BF547AB00F3F996 /* Products */ = {
			isa = PBXGroup;
			children = (
				939417061BF547AB00F3F996 /* v23.framework */,
				939417101BF547AB00F3F996 /* v23Tests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		939417081BF547AB00F3F996 /* v23 */ = {
			isa = PBXGroup;
			children = (
				939417091BF547AB00F3F996 /* v23.h */,
				9394170B1BF547AB00F3F996 /* Info.plist */,
				93B6265A1C0E598800C5C1D0 /* bridge */,
				93B6265E1C0E598800C5C1D0 /* context */,
				93B626601C0E598800C5C1D0 /* rpc */,
				93B626621C0E598800C5C1D0 /* rt */,
				93B626651C0E598800C5C1D0 /* util */,
				30FBF6B41C582D13003522B2 /* x */,
			);
			path = v23;
			sourceTree = "<group>";
		};
		939417141BF547AB00F3F996 /* v23Tests */ = {
			isa = PBXGroup;
			children = (
				939417171BF547AB00F3F996 /* Info.plist */,
				93B626501C0D5D3F00C5C1D0 /* PromiseTests.swift */,
				939417151BF547AB00F3F996 /* v23Tests.swift */,
			);
			path = v23Tests;
			sourceTree = "<group>";
		};
		93B6265A1C0E598800C5C1D0 /* bridge */ = {
			isa = PBXGroup;
			children = (
				93B6265B1C0E598800C5C1D0 /* Errors.swift */,
				93B6265C1C0E598800C5C1D0 /* Refs.swift */,
				93B6265D1C0E598800C5C1D0 /* Types.swift */,
			);
			path = bridge;
			sourceTree = "<group>";
		};
		93B6265E1C0E598800C5C1D0 /* context */ = {
			isa = PBXGroup;
			children = (
				93B6265F1C0E598800C5C1D0 /* Context.swift */,
			);
			path = context;
			sourceTree = "<group>";
		};
		93B626601C0E598800C5C1D0 /* rpc */ = {
			isa = PBXGroup;
			children = (
				93B626611C0E598800C5C1D0 /* RPC.swift */,
			);
			path = rpc;
			sourceTree = "<group>";
		};
		93B626621C0E598800C5C1D0 /* rt */ = {
			isa = PBXGroup;
			children = (
				93B626631C0E598800C5C1D0 /* Runtime.swift */,
				93B626641C0E598800C5C1D0 /* Security.swift */,
			);
			path = rt;
			sourceTree = "<group>";
		};
		93B626651C0E598800C5C1D0 /* util */ = {
			isa = PBXGroup;
			children = (
				93B626661C0E598800C5C1D0 /* Dates.swift */,
				93B626671C0E598800C5C1D0 /* Locking.swift */,
				93B626681C0E598800C5C1D0 /* Logging.swift */,
				93B626691C0E598800C5C1D0 /* Promise.swift */,
				93B6266A1C0E598800C5C1D0 /* Strings.swift */,
				93B6266B1C0E598800C5C1D0 /* Threads.swift */,
			);
			path = util;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		939417031BF547AB00F3F996 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				30FBF6CA1C582ED7003522B2 /* go_types.h in Headers */,
				3047CD471C5B279500E23E1B /* cgo_exports.h in Headers */,
				9394170A1BF547AB00F3F996 /* v23.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		939417051BF547AB00F3F996 /* v23 */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9394171A1BF547AB00F3F996 /* Build configuration list for PBXNativeTarget "v23" */;
			buildPhases = (
				939417011BF547AB00F3F996 /* Sources */,
				939417021BF547AB00F3F996 /* Frameworks */,
				939417031BF547AB00F3F996 /* Headers */,
				939417041BF547AB00F3F996 /* Resources */,
				9306FB481BFAA66300DE7190 /* Copy Files */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = v23;
			productName = v23;
			productReference = 939417061BF547AB00F3F996 /* v23.framework */;
			productType = "com.apple.product-type.framework";
		};
		9394170F1BF547AB00F3F996 /* v23Tests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 9394171D1BF547AB00F3F996 /* Build configuration list for PBXNativeTarget "v23Tests" */;
			buildPhases = (
				9394170C1BF547AB00F3F996 /* Sources */,
				9394170D1BF547AB00F3F996 /* Frameworks */,
				9394170E1BF547AB00F3F996 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				939417131BF547AB00F3F996 /* PBXTargetDependency */,
			);
			name = v23Tests;
			productName = v23Tests;
			productReference = 939417101BF547AB00F3F996 /* v23Tests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		939416FD1BF547AB00F3F996 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0710;
				LastUpgradeCheck = 0710;
				ORGANIZATIONNAME = "Google Inc.";
				TargetAttributes = {
					939417051BF547AB00F3F996 = {
						CreatedOnToolsVersion = 7.1;
					};
					9394170F1BF547AB00F3F996 = {
						CreatedOnToolsVersion = 7.1;
					};
				};
			};
			buildConfigurationList = 939417001BF547AB00F3F996 /* Build configuration list for PBXProject "v23" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = 939416FC1BF547AB00F3F996;
			productRefGroup = 939417071BF547AB00F3F996 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				939417051BF547AB00F3F996 /* v23 */,
				9394170F1BF547AB00F3F996 /* v23Tests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		939417041BF547AB00F3F996 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9394170E1BF547AB00F3F996 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		939417011BF547AB00F3F996 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				93B6266E1C0E598800C5C1D0 /* Types.swift in Sources */,
				93B626751C0E598800C5C1D0 /* Logging.swift in Sources */,
				93B6266F1C0E598800C5C1D0 /* Context.swift in Sources */,
				93B626781C0E598800C5C1D0 /* Threads.swift in Sources */,
				93B6266C1C0E598800C5C1D0 /* Errors.swift in Sources */,
				93B6266D1C0E598800C5C1D0 /* Refs.swift in Sources */,
				93B626711C0E598800C5C1D0 /* Runtime.swift in Sources */,
				93B626741C0E598800C5C1D0 /* Locking.swift in Sources */,
				93B626701C0E598800C5C1D0 /* RPC.swift in Sources */,
				93B626761C0E598800C5C1D0 /* Promise.swift in Sources */,
				93B626721C0E598800C5C1D0 /* Security.swift in Sources */,
				93B626771C0E598800C5C1D0 /* Strings.swift in Sources */,
				93B626731C0E598800C5C1D0 /* Dates.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		9394170C1BF547AB00F3F996 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				939417161BF547AB00F3F996 /* v23Tests.swift in Sources */,
				93B626511C0D5D3F00C5C1D0 /* PromiseTests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		939417131BF547AB00F3F996 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 939417051BF547AB00F3F996 /* v23 */;
			targetProxy = 939417121BF547AB00F3F996 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		939417181BF547AB00F3F996 /* 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;
				CURRENT_PROJECT_VERSION = 1;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = 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_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;
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				TARGETED_DEVICE_FAMILY = "1,2";
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		939417191BF547AB00F3F996 /* 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;
				CURRENT_PROJECT_VERSION = 1;
				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;
				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				VALIDATE_PRODUCT = YES;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		9394171B1BF547AB00F3F996 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = arm64;
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				ENABLE_BITCODE = NO;
				INFOPLIST_FILE = v23/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/v23",
					"$(PROJECT_DIR)/v23/x",
				);
				PRODUCT_BUNDLE_IDENTIFIER = v.io.v23;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				VALID_ARCHS = arm64;
			};
			name = Debug;
		};
		9394171C1BF547AB00F3F996 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = arm64;
				CLANG_ENABLE_MODULES = YES;
				DEFINES_MODULE = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				ENABLE_BITCODE = NO;
				INFOPLIST_FILE = v23/Info.plist;
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)/v23",
					"$(PROJECT_DIR)/v23/x",
				);
				PRODUCT_BUNDLE_IDENTIFIER = v.io.v23;
				PRODUCT_NAME = "$(TARGET_NAME)";
				SKIP_INSTALL = YES;
				VALID_ARCHS = arm64;
			};
			name = Release;
		};
		9394171E1BF547AB00F3F996 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = v23Tests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = v.io.v23Tests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		9394171F1BF547AB00F3F996 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				INFOPLIST_FILE = v23Tests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = v.io.v23Tests;
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		939417001BF547AB00F3F996 /* Build configuration list for PBXProject "v23" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				939417181BF547AB00F3F996 /* Debug */,
				939417191BF547AB00F3F996 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		9394171A1BF547AB00F3F996 /* Build configuration list for PBXNativeTarget "v23" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9394171B1BF547AB00F3F996 /* Debug */,
				9394171C1BF547AB00F3F996 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		9394171D1BF547AB00F3F996 /* Build configuration list for PBXNativeTarget "v23Tests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				9394171E1BF547AB00F3F996 /* Debug */,
				9394171F1BF547AB00F3F996 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 939416FD1BF547AB00F3F996 /* Project object */;
}
