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

/* Begin PBXBuildFile section */
		AE2FE0FB1CFE86DB003EF0D7 /* XCAbstractTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */; };
		AE2FE0FE1CFE86DB003EF0D7 /* XCTAssert.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */; };
		AE2FE0FF1CFE86DB003EF0D7 /* XCTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */; };
		AE2FE1011CFE86DB003EF0D7 /* XCTestCase+Performance.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */; };
		AE2FE1021CFE86DB003EF0D7 /* XCTestCaseRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */; };
		AE2FE1031CFE86DB003EF0D7 /* XCTestErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */; };
		AE2FE1051CFE86DB003EF0D7 /* XCTestMain.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */; };
		AE2FE1061CFE86DB003EF0D7 /* XCTestObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */; };
		AE2FE1071CFE86DB003EF0D7 /* XCTestObservationCenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */; };
		AE2FE1081CFE86DB003EF0D7 /* XCTestRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */; };
		AE2FE1091CFE86DB003EF0D7 /* XCTestSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */; };
		AE2FE10A1CFE86DB003EF0D7 /* XCTestSuiteRun.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */; };
		AE2FE1151CFE86E6003EF0D7 /* ArgumentParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */; };
		AE2FE1161CFE86E6003EF0D7 /* ObjectWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */; };
		AE2FE1171CFE86E6003EF0D7 /* PerformanceMeter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */; };
		AE2FE1181CFE86E6003EF0D7 /* PrintObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */; };
		AE2FE1191CFE86E6003EF0D7 /* TestFiltering.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */; };
		AE2FE11A1CFE86E6003EF0D7 /* WallClockTimeMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */; };
		AE2FE11B1CFE86E6003EF0D7 /* XCPredicateExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1121CFE86E6003EF0D7 /* XCPredicateExpectation.swift */; };
		AE2FE11C1CFE86E6003EF0D7 /* XCTestCaseSuite.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */; };
		AE2FE11D1CFE86E6003EF0D7 /* XCTestInternalObservation.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */; };
		AE63767E1D01ED17002C0EA8 /* TestListing.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE63767D1D01ED17002C0EA8 /* TestListing.swift */; };
		DA9D44191D920A3500108768 /* XCNotificationExpectationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44141D920A3500108768 /* XCNotificationExpectationHandler.swift */; };
		DA9D441A1D920A3500108768 /* XCPredicateExpectationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44151D920A3500108768 /* XCPredicateExpectationHandler.swift */; };
		DA9D441B1D920A3500108768 /* XCTestCase+Asynchronous.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */; };
		DA9D441C1D920A3500108768 /* XCTestExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44171D920A3500108768 /* XCTestExpectation.swift */; };
		DA9D441D1D920A3500108768 /* XCWaitCompletionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44181D920A3500108768 /* XCWaitCompletionHandler.swift */; };
		DA9D441F1D920A5900108768 /* XCTestCase+PredicateExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D441E1D920A5900108768 /* XCTestCase+PredicateExpectation.swift */; };
		DA9D44211D920A6400108768 /* XCTestCase+NotificationExpectation.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA9D44201D920A6400108768 /* XCTestCase+NotificationExpectation.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		DAA333B91C267AF3000CC115 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 5B5D86D21BBC74AD00234F36 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 5B5D86DA1BBC74AD00234F36;
			remoteInfo = SwiftXCTest;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftXCTest.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCAbstractTest.swift; sourceTree = "<group>"; };
		AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTAssert.swift; sourceTree = "<group>"; };
		AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCase.swift; sourceTree = "<group>"; };
		AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Performance.swift"; sourceTree = "<group>"; };
		AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseRun.swift; sourceTree = "<group>"; };
		AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestErrors.swift; sourceTree = "<group>"; };
		AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestMain.swift; sourceTree = "<group>"; };
		AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestObservation.swift; sourceTree = "<group>"; };
		AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestObservationCenter.swift; sourceTree = "<group>"; };
		AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestRun.swift; sourceTree = "<group>"; };
		AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestSuite.swift; sourceTree = "<group>"; };
		AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestSuiteRun.swift; sourceTree = "<group>"; };
		AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ArgumentParser.swift; sourceTree = "<group>"; };
		AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObjectWrapper.swift; sourceTree = "<group>"; };
		AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PerformanceMeter.swift; sourceTree = "<group>"; };
		AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PrintObserver.swift; sourceTree = "<group>"; };
		AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestFiltering.swift; sourceTree = "<group>"; };
		AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WallClockTimeMetric.swift; sourceTree = "<group>"; };
		AE2FE1121CFE86E6003EF0D7 /* XCPredicateExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCPredicateExpectation.swift; sourceTree = "<group>"; };
		AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestCaseSuite.swift; sourceTree = "<group>"; };
		AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestInternalObservation.swift; sourceTree = "<group>"; };
		AE63767D1D01ED17002C0EA8 /* TestListing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestListing.swift; sourceTree = "<group>"; };
		AE7DD6061C8DC6C0006FC722 /* Functional */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Functional; sourceTree = "<group>"; };
		B1384A411C1B3E8700EDF031 /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = "<group>"; };
		B1384A421C1B3E8700EDF031 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
		B1384A431C1B3E8700EDF031 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
		DA7805F91C6704A2003C6636 /* SwiftFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftFoundation.framework; path = "../swift-corelibs-foundation/build/Debug/SwiftFoundation.framework"; sourceTree = "<group>"; };
		DA9D44141D920A3500108768 /* XCNotificationExpectationHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCNotificationExpectationHandler.swift; sourceTree = "<group>"; };
		DA9D44151D920A3500108768 /* XCPredicateExpectationHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCPredicateExpectationHandler.swift; sourceTree = "<group>"; };
		DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+Asynchronous.swift"; sourceTree = "<group>"; };
		DA9D44171D920A3500108768 /* XCTestExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCTestExpectation.swift; sourceTree = "<group>"; };
		DA9D44181D920A3500108768 /* XCWaitCompletionHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XCWaitCompletionHandler.swift; sourceTree = "<group>"; };
		DA9D441E1D920A5900108768 /* XCTestCase+PredicateExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+PredicateExpectation.swift"; sourceTree = "<group>"; };
		DA9D44201D920A6400108768 /* XCTestCase+NotificationExpectation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XCTestCase+NotificationExpectation.swift"; sourceTree = "<group>"; };
		EA3E74BB1BF2B6D500635A73 /* build_script.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = build_script.py; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		5B5D86D71BBC74AD00234F36 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		5B5D86D11BBC74AD00234F36 = {
			isa = PBXGroup;
			children = (
				C265F6661C3AEB6A00520CF9 /* Sources */,
				DA78F7E71C4039410082E15B /* Tests */,
				5B5D86DC1BBC74AD00234F36 /* Products */,
				DA7805FB1C6704CC003C6636 /* Linked Libraries */,
				EA3E74BC1BF2B6D700635A73 /* Linux Build */,
				B1384A401C1B3E6A00EDF031 /* Documentation */,
			);
			indentWidth = 4;
			sourceTree = "<group>";
			tabWidth = 4;
		};
		5B5D86DC1BBC74AD00234F36 /* Products */ = {
			isa = PBXGroup;
			children = (
				5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		AE2FE0E81CFE86A5003EF0D7 /* Private */ = {
			isa = PBXGroup;
			children = (
				AE2FE10C1CFE86E6003EF0D7 /* ArgumentParser.swift */,
				AE2FE10D1CFE86E6003EF0D7 /* ObjectWrapper.swift */,
				AE2FE10E1CFE86E6003EF0D7 /* PerformanceMeter.swift */,
				AE2FE10F1CFE86E6003EF0D7 /* PrintObserver.swift */,
				AE2FE1101CFE86E6003EF0D7 /* TestFiltering.swift */,
				AE63767D1D01ED17002C0EA8 /* TestListing.swift */,
				AE2FE1111CFE86E6003EF0D7 /* WallClockTimeMetric.swift */,
				AE2FE1121CFE86E6003EF0D7 /* XCPredicateExpectation.swift */,
				AE2FE1131CFE86E6003EF0D7 /* XCTestCaseSuite.swift */,
				AE2FE1141CFE86E6003EF0D7 /* XCTestInternalObservation.swift */,
			);
			path = Private;
			sourceTree = "<group>";
		};
		AE2FE0E91CFE86AE003EF0D7 /* Public */ = {
			isa = PBXGroup;
			children = (
				DA9D44131D920A3500108768 /* Asynchronous */,
				AE2FE0EA1CFE86DB003EF0D7 /* XCAbstractTest.swift */,
				AE2FE0ED1CFE86DB003EF0D7 /* XCTAssert.swift */,
				AE2FE0EE1CFE86DB003EF0D7 /* XCTestCase.swift */,
				AE2FE0F01CFE86DB003EF0D7 /* XCTestCase+Performance.swift */,
				AE2FE0F11CFE86DB003EF0D7 /* XCTestCaseRun.swift */,
				AE2FE0F21CFE86DB003EF0D7 /* XCTestErrors.swift */,
				AE2FE0F41CFE86DB003EF0D7 /* XCTestMain.swift */,
				AE2FE0F51CFE86DB003EF0D7 /* XCTestObservation.swift */,
				AE2FE0F61CFE86DB003EF0D7 /* XCTestObservationCenter.swift */,
				AE2FE0F71CFE86DB003EF0D7 /* XCTestRun.swift */,
				AE2FE0F81CFE86DB003EF0D7 /* XCTestSuite.swift */,
				AE2FE0F91CFE86DB003EF0D7 /* XCTestSuiteRun.swift */,
			);
			path = Public;
			sourceTree = "<group>";
		};
		B1384A401C1B3E6A00EDF031 /* Documentation */ = {
			isa = PBXGroup;
			children = (
				B1384A411C1B3E8700EDF031 /* CONTRIBUTING.md */,
				B1384A421C1B3E8700EDF031 /* LICENSE */,
				B1384A431C1B3E8700EDF031 /* README.md */,
			);
			name = Documentation;
			sourceTree = "<group>";
		};
		C265F6661C3AEB6A00520CF9 /* Sources */ = {
			isa = PBXGroup;
			children = (
				C265F6671C3AEB6A00520CF9 /* XCTest */,
			);
			path = Sources;
			sourceTree = "<group>";
		};
		C265F6671C3AEB6A00520CF9 /* XCTest */ = {
			isa = PBXGroup;
			children = (
				AE2FE0E91CFE86AE003EF0D7 /* Public */,
				AE2FE0E81CFE86A5003EF0D7 /* Private */,
			);
			path = XCTest;
			sourceTree = "<group>";
		};
		DA7805FB1C6704CC003C6636 /* Linked Libraries */ = {
			isa = PBXGroup;
			children = (
				DA7805F91C6704A2003C6636 /* SwiftFoundation.framework */,
			);
			name = "Linked Libraries";
			sourceTree = "<group>";
		};
		DA78F7E71C4039410082E15B /* Tests */ = {
			isa = PBXGroup;
			children = (
				AE7DD6061C8DC6C0006FC722 /* Functional */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		DA9D44131D920A3500108768 /* Asynchronous */ = {
			isa = PBXGroup;
			children = (
				DA9D44161D920A3500108768 /* XCTestCase+Asynchronous.swift */,
				DA9D44171D920A3500108768 /* XCTestExpectation.swift */,
				DA9D44181D920A3500108768 /* XCWaitCompletionHandler.swift */,
				DA9D44151D920A3500108768 /* XCPredicateExpectationHandler.swift */,
				DA9D441E1D920A5900108768 /* XCTestCase+PredicateExpectation.swift */,
				DA9D44141D920A3500108768 /* XCNotificationExpectationHandler.swift */,
				DA9D44201D920A6400108768 /* XCTestCase+NotificationExpectation.swift */,
			);
			path = Asynchronous;
			sourceTree = "<group>";
		};
		EA3E74BC1BF2B6D700635A73 /* Linux Build */ = {
			isa = PBXGroup;
			children = (
				EA3E74BB1BF2B6D500635A73 /* build_script.py */,
			);
			name = "Linux Build";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		5B5D86D81BBC74AD00234F36 /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXLegacyTarget section */
		DAA333B51C267AD6000CC115 /* SwiftXCTestFunctionalTests */ = {
			isa = PBXLegacyTarget;
			buildArgumentsString = "-sv --no-progress-bar Tests/Functional";
			buildConfigurationList = DAA333B81C267AD6000CC115 /* Build configuration list for PBXLegacyTarget "SwiftXCTestFunctionalTests" */;
			buildPhases = (
			);
			buildToolPath = "$(SRCROOT)/../llvm/utils/lit/lit.py";
			buildWorkingDirectory = "";
			dependencies = (
				DAA333BA1C267AF3000CC115 /* PBXTargetDependency */,
			);
			name = SwiftXCTestFunctionalTests;
			passBuildSettingsInEnvironment = 1;
			productName = SwiftXCTestFunctionalTests;
		};
/* End PBXLegacyTarget section */

/* Begin PBXNativeTarget section */
		5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 5B5D86E31BBC74AD00234F36 /* Build configuration list for PBXNativeTarget "SwiftXCTest" */;
			buildPhases = (
				5B5D86D61BBC74AD00234F36 /* Sources */,
				5B5D86D71BBC74AD00234F36 /* Frameworks */,
				5B5D86D81BBC74AD00234F36 /* Headers */,
				5B5D86D91BBC74AD00234F36 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = SwiftXCTest;
			productName = TestFramework;
			productReference = 5B5D86DB1BBC74AD00234F36 /* SwiftXCTest.framework */;
			productType = "com.apple.product-type.framework";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		5B5D86D21BBC74AD00234F36 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftMigration = 0730;
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0900;
				ORGANIZATIONNAME = Apple;
				TargetAttributes = {
					5B5D86DA1BBC74AD00234F36 = {
						CreatedOnToolsVersion = 7.1;
						LastSwiftMigration = 0900;
					};
					DAA333B51C267AD6000CC115 = {
						CreatedOnToolsVersion = 7.2;
					};
				};
			};
			buildConfigurationList = 5B5D86D51BBC74AD00234F36 /* Build configuration list for PBXProject "XCTest" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 5B5D86D11BBC74AD00234F36;
			productRefGroup = 5B5D86DC1BBC74AD00234F36 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */,
				DAA333B51C267AD6000CC115 /* SwiftXCTestFunctionalTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		5B5D86D91BBC74AD00234F36 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		5B5D86D61BBC74AD00234F36 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				AE2FE1071CFE86DB003EF0D7 /* XCTestObservationCenter.swift in Sources */,
				DA9D441C1D920A3500108768 /* XCTestExpectation.swift in Sources */,
				AE2FE1011CFE86DB003EF0D7 /* XCTestCase+Performance.swift in Sources */,
				DA9D441B1D920A3500108768 /* XCTestCase+Asynchronous.swift in Sources */,
				AE2FE1181CFE86E6003EF0D7 /* PrintObserver.swift in Sources */,
				AE2FE1021CFE86DB003EF0D7 /* XCTestCaseRun.swift in Sources */,
				DA9D441D1D920A3500108768 /* XCWaitCompletionHandler.swift in Sources */,
				DA9D441A1D920A3500108768 /* XCPredicateExpectationHandler.swift in Sources */,
				AE2FE1171CFE86E6003EF0D7 /* PerformanceMeter.swift in Sources */,
				AE2FE1051CFE86DB003EF0D7 /* XCTestMain.swift in Sources */,
				AE2FE11B1CFE86E6003EF0D7 /* XCPredicateExpectation.swift in Sources */,
				DA9D44191D920A3500108768 /* XCNotificationExpectationHandler.swift in Sources */,
				DA9D44211D920A6400108768 /* XCTestCase+NotificationExpectation.swift in Sources */,
				AE63767E1D01ED17002C0EA8 /* TestListing.swift in Sources */,
				AE2FE1151CFE86E6003EF0D7 /* ArgumentParser.swift in Sources */,
				AE2FE0FF1CFE86DB003EF0D7 /* XCTestCase.swift in Sources */,
				DA9D441F1D920A5900108768 /* XCTestCase+PredicateExpectation.swift in Sources */,
				AE2FE11D1CFE86E6003EF0D7 /* XCTestInternalObservation.swift in Sources */,
				AE2FE1061CFE86DB003EF0D7 /* XCTestObservation.swift in Sources */,
				AE2FE0FB1CFE86DB003EF0D7 /* XCAbstractTest.swift in Sources */,
				AE2FE1081CFE86DB003EF0D7 /* XCTestRun.swift in Sources */,
				AE2FE10A1CFE86DB003EF0D7 /* XCTestSuiteRun.swift in Sources */,
				AE2FE1161CFE86E6003EF0D7 /* ObjectWrapper.swift in Sources */,
				AE2FE11A1CFE86E6003EF0D7 /* WallClockTimeMetric.swift in Sources */,
				AE2FE1191CFE86E6003EF0D7 /* TestFiltering.swift in Sources */,
				AE2FE1031CFE86DB003EF0D7 /* XCTestErrors.swift in Sources */,
				AE2FE1091CFE86DB003EF0D7 /* XCTestSuite.swift in Sources */,
				AE2FE11C1CFE86E6003EF0D7 /* XCTestCaseSuite.swift in Sources */,
				AE2FE0FE1CFE86DB003EF0D7 /* XCTAssert.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		DAA333BA1C267AF3000CC115 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 5B5D86DA1BBC74AD00234F36 /* SwiftXCTest */;
			targetProxy = DAA333B91C267AF3000CC115 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
		5B5D86E11BBC74AD00234F36 /* 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_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = 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_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1.0;
				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;
				INFOPLIST_FILE = Info.plist;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				PRODUCT_BUNDLE_IDENTIFIER = org.swift.XCTest;
				PRODUCT_BUNDLE_PACKAGE_TYPE = BNDL;
				PRODUCT_NAME = SwiftXCTest;
				SDKROOT = macosx;
				SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Debug;
		};
		5B5D86E21BBC74AD00234F36 /* 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_BLOCK_CAPTURE_AUTORELEASING = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_COMMA = 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_INFINITE_RECURSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
				CLANG_WARN_STRICT_PROTOTYPES = YES;
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				CODE_SIGN_IDENTITY = "";
				COPY_PHASE_STRIP = NO;
				CURRENT_PROJECT_VERSION = 1.0;
				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;
				INFOPLIST_FILE = Info.plist;
				MTL_ENABLE_DEBUG_INFO = NO;
				PRODUCT_BUNDLE_IDENTIFIER = org.swift.XCTest;
				PRODUCT_BUNDLE_PACKAGE_TYPE = BNDL;
				PRODUCT_NAME = SwiftXCTest;
				SDKROOT = macosx;
				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				VERSIONING_SYSTEM = "apple-generic";
				VERSION_INFO_PREFIX = "";
			};
			name = Release;
		};
		5B5D86E41BBC74AD00234F36 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEFINES_MODULE = YES;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = "";
				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				OTHER_SWIFT_FLAGS = "-swift-version 4";
				PRODUCT_BUNDLE_PACKAGE_TYPE = FMWK;
				SKIP_INSTALL = YES;
				SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator";
				SWIFT_INDEX_STORE_ENABLE = NO;
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = "1,2,3,4";
				TVOS_DEPLOYMENT_TARGET = 10.0;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			name = Debug;
		};
		5B5D86E51BBC74AD00234F36 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEFINES_MODULE = YES;
				DYLIB_INSTALL_NAME_BASE = "@rpath";
				"FRAMEWORK_SEARCH_PATHS[sdk=macosx*]" = "";
				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks @loader_path/Frameworks";
				MACOSX_DEPLOYMENT_TARGET = 10.11;
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				OTHER_SWIFT_FLAGS = "-swift-version 4";
				PRODUCT_BUNDLE_PACKAGE_TYPE = FMWK;
				SKIP_INSTALL = YES;
				SUPPORTED_PLATFORMS = "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator";
				SWIFT_INDEX_STORE_ENABLE = NO;
				SWIFT_SWIFT3_OBJC_INFERENCE = Off;
				SWIFT_VERSION = 4.0;
				TARGETED_DEVICE_FAMILY = "1,2,3,4";
				TVOS_DEPLOYMENT_TARGET = 10.0;
				WATCHOS_DEPLOYMENT_TARGET = 3.0;
			};
			name = Release;
		};
		DAA333B61C267AD6000CC115 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEBUGGING_SYMBOLS = YES;
				DEBUG_INFORMATION_FORMAT = dwarf;
				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				OTHER_CFLAGS = "";
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_EXEC = "$(TOOLCHAIN_DIR)/usr/bin/swiftc";
			};
			name = Debug;
		};
		DAA333B71C267AD6000CC115 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				OTHER_CFLAGS = "";
				"OTHER_LDFLAGS[sdk=macosx*]" = (
					"-framework",
					SwiftFoundation,
				);
				PRODUCT_NAME = "$(TARGET_NAME)";
				SWIFT_EXEC = "$(TOOLCHAIN_DIR)/usr/bin/swiftc";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		5B5D86D51BBC74AD00234F36 /* Build configuration list for PBXProject "XCTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5B5D86E11BBC74AD00234F36 /* Debug */,
				5B5D86E21BBC74AD00234F36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		5B5D86E31BBC74AD00234F36 /* Build configuration list for PBXNativeTarget "SwiftXCTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				5B5D86E41BBC74AD00234F36 /* Debug */,
				5B5D86E51BBC74AD00234F36 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DAA333B81C267AD6000CC115 /* Build configuration list for PBXLegacyTarget "SwiftXCTestFunctionalTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DAA333B61C267AD6000CC115 /* Debug */,
				DAA333B71C267AD6000CC115 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 5B5D86D21BBC74AD00234F36 /* Project object */;
}
