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

/* Begin PBXBuildFile section */
		09FFE9651ACB2395002A6A32 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 09FFE9641ACB2395002A6A32 /* main.m */; };
		09FFE9681ACB2395002A6A32 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 09FFE9671ACB2395002A6A32 /* AppDelegate.m */; };
		09FFE96B1ACB2396002A6A32 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 09FFE96A1ACB2396002A6A32 /* ViewController.m */; };
		09FFE96E1ACB2396002A6A32 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 09FFE96C1ACB2396002A6A32 /* Main.storyboard */; };
		09FFE9701ACB2396002A6A32 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 09FFE96F1ACB2396002A6A32 /* Images.xcassets */; };
		09FFE9731ACB2396002A6A32 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 09FFE9711ACB2396002A6A32 /* LaunchScreen.xib */; };
		09FFE97F1ACB2396002A6A32 /* CourierTestAppTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 09FFE97E1ACB2396002A6A32 /* CourierTestAppTests.m */; };
		9C591CC5D71BD9A448553B40 /* libPods.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DA7B28904FB1698F426DBD6 /* libPods.a */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		09FFE9791ACB2396002A6A32 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 09FFE9571ACB2395002A6A32 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 09FFE95E1ACB2395002A6A32;
			remoteInfo = CourierTestApp;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		09FFE95F1ACB2395002A6A32 /* CourierTestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CourierTestApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
		09FFE9631ACB2395002A6A32 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		09FFE9641ACB2395002A6A32 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		09FFE9661ACB2395002A6A32 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		09FFE9671ACB2395002A6A32 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		09FFE9691ACB2396002A6A32 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
		09FFE96A1ACB2396002A6A32 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
		09FFE96D1ACB2396002A6A32 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		09FFE96F1ACB2396002A6A32 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
		09FFE9721ACB2396002A6A32 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
		09FFE9781ACB2396002A6A32 /* CourierTestAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CourierTestAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		09FFE97D1ACB2396002A6A32 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		09FFE97E1ACB2396002A6A32 /* CourierTestAppTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CourierTestAppTests.m; sourceTree = "<group>"; };
		312CFCA0271C95DA4B15CF14 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = "<group>"; };
		3DA7B28904FB1698F426DBD6 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; };
		BD9309BA9B26825399B6427C /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		09FFE95C1ACB2395002A6A32 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				9C591CC5D71BD9A448553B40 /* libPods.a in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		09FFE9751ACB2396002A6A32 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		028C0C610717DB87144BB0E5 /* Pods */ = {
			isa = PBXGroup;
			children = (
				BD9309BA9B26825399B6427C /* Pods.debug.xcconfig */,
				312CFCA0271C95DA4B15CF14 /* Pods.release.xcconfig */,
			);
			name = Pods;
			sourceTree = "<group>";
		};
		02DB9B2E5188BE500AEEEE46 /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				3DA7B28904FB1698F426DBD6 /* libPods.a */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		09FFE9561ACB2395002A6A32 = {
			isa = PBXGroup;
			children = (
				09FFE9611ACB2395002A6A32 /* CourierTestApp */,
				09FFE97B1ACB2396002A6A32 /* CourierTestAppTests */,
				09FFE9601ACB2395002A6A32 /* Products */,
				028C0C610717DB87144BB0E5 /* Pods */,
				02DB9B2E5188BE500AEEEE46 /* Frameworks */,
			);
			sourceTree = "<group>";
		};
		09FFE9601ACB2395002A6A32 /* Products */ = {
			isa = PBXGroup;
			children = (
				09FFE95F1ACB2395002A6A32 /* CourierTestApp.app */,
				09FFE9781ACB2396002A6A32 /* CourierTestAppTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		09FFE9611ACB2395002A6A32 /* CourierTestApp */ = {
			isa = PBXGroup;
			children = (
				09FFE9661ACB2395002A6A32 /* AppDelegate.h */,
				09FFE9671ACB2395002A6A32 /* AppDelegate.m */,
				09FFE9691ACB2396002A6A32 /* ViewController.h */,
				09FFE96A1ACB2396002A6A32 /* ViewController.m */,
				09FFE96C1ACB2396002A6A32 /* Main.storyboard */,
				09FFE96F1ACB2396002A6A32 /* Images.xcassets */,
				09FFE9711ACB2396002A6A32 /* LaunchScreen.xib */,
				09FFE9621ACB2395002A6A32 /* Supporting Files */,
			);
			path = CourierTestApp;
			sourceTree = "<group>";
		};
		09FFE9621ACB2395002A6A32 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				09FFE9631ACB2395002A6A32 /* Info.plist */,
				09FFE9641ACB2395002A6A32 /* main.m */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
		09FFE97B1ACB2396002A6A32 /* CourierTestAppTests */ = {
			isa = PBXGroup;
			children = (
				09FFE97E1ACB2396002A6A32 /* CourierTestAppTests.m */,
				09FFE97C1ACB2396002A6A32 /* Supporting Files */,
			);
			path = CourierTestAppTests;
			sourceTree = "<group>";
		};
		09FFE97C1ACB2396002A6A32 /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				09FFE97D1ACB2396002A6A32 /* Info.plist */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		09FFE95E1ACB2395002A6A32 /* CourierTestApp */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 09FFE9821ACB2396002A6A32 /* Build configuration list for PBXNativeTarget "CourierTestApp" */;
			buildPhases = (
				86481C906538BEFFFEC24753 /* Check Pods Manifest.lock */,
				09FFE95B1ACB2395002A6A32 /* Sources */,
				09FFE95C1ACB2395002A6A32 /* Frameworks */,
				09FFE95D1ACB2395002A6A32 /* Resources */,
				4BB7C20D3F8FD9B6AA12B90B /* Copy Pods Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = CourierTestApp;
			productName = CourierTestApp;
			productReference = 09FFE95F1ACB2395002A6A32 /* CourierTestApp.app */;
			productType = "com.apple.product-type.application";
		};
		09FFE9771ACB2396002A6A32 /* CourierTestAppTests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 09FFE9851ACB2396002A6A32 /* Build configuration list for PBXNativeTarget "CourierTestAppTests" */;
			buildPhases = (
				09FFE9741ACB2396002A6A32 /* Sources */,
				09FFE9751ACB2396002A6A32 /* Frameworks */,
				09FFE9761ACB2396002A6A32 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				09FFE97A1ACB2396002A6A32 /* PBXTargetDependency */,
			);
			name = CourierTestAppTests;
			productName = CourierTestAppTests;
			productReference = 09FFE9781ACB2396002A6A32 /* CourierTestAppTests.xctest */;
			productType = "com.apple.product-type.bundle.unit-test";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		09FFE9571ACB2395002A6A32 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0610;
				ORGANIZATIONNAME = "Andrew B. Smith";
				TargetAttributes = {
					09FFE95E1ACB2395002A6A32 = {
						CreatedOnToolsVersion = 6.1;
					};
					09FFE9771ACB2396002A6A32 = {
						CreatedOnToolsVersion = 6.1;
						TestTargetID = 09FFE95E1ACB2395002A6A32;
					};
				};
			};
			buildConfigurationList = 09FFE95A1ACB2395002A6A32 /* Build configuration list for PBXProject "CourierTestApp" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 09FFE9561ACB2395002A6A32;
			productRefGroup = 09FFE9601ACB2395002A6A32 /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				09FFE95E1ACB2395002A6A32 /* CourierTestApp */,
				09FFE9771ACB2396002A6A32 /* CourierTestAppTests */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		09FFE95D1ACB2395002A6A32 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				09FFE96E1ACB2396002A6A32 /* Main.storyboard in Resources */,
				09FFE9731ACB2396002A6A32 /* LaunchScreen.xib in Resources */,
				09FFE9701ACB2396002A6A32 /* Images.xcassets in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		09FFE9761ACB2396002A6A32 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXShellScriptBuildPhase section */
		4BB7C20D3F8FD9B6AA12B90B /* Copy Pods Resources */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Copy Pods Resources";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n";
			showEnvVarsInLog = 0;
		};
		86481C906538BEFFFEC24753 /* Check Pods Manifest.lock */ = {
			isa = PBXShellScriptBuildPhase;
			buildActionMask = 2147483647;
			files = (
			);
			inputPaths = (
			);
			name = "Check Pods Manifest.lock";
			outputPaths = (
			);
			runOnlyForDeploymentPostprocessing = 0;
			shellPath = /bin/sh;
			shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n    cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n    exit 1\nfi\n";
			showEnvVarsInLog = 0;
		};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		09FFE95B1ACB2395002A6A32 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				09FFE96B1ACB2396002A6A32 /* ViewController.m in Sources */,
				09FFE9681ACB2395002A6A32 /* AppDelegate.m in Sources */,
				09FFE9651ACB2395002A6A32 /* main.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		09FFE9741ACB2396002A6A32 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				09FFE97F1ACB2396002A6A32 /* CourierTestAppTests.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		09FFE97A1ACB2396002A6A32 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 09FFE95E1ACB2395002A6A32 /* CourierTestApp */;
			targetProxy = 09FFE9791ACB2396002A6A32 /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		09FFE96C1ACB2396002A6A32 /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				09FFE96D1ACB2396002A6A32 /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
		09FFE9711ACB2396002A6A32 /* LaunchScreen.xib */ = {
			isa = PBXVariantGroup;
			children = (
				09FFE9721ACB2396002A6A32 /* Base */,
			);
			name = LaunchScreen.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		09FFE9801ACB2396002A6A32 /* 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;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				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;
				IPHONEOS_DEPLOYMENT_TARGET = 8.1;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = iphoneos;
			};
			name = Debug;
		};
		09FFE9811ACB2396002A6A32 /* 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 = YES;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				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.1;
				MTL_ENABLE_DEBUG_INFO = NO;
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		09FFE9831ACB2396002A6A32 /* Debug */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = BD9309BA9B26825399B6427C /* Pods.debug.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				INFOPLIST_FILE = CourierTestApp/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Debug;
		};
		09FFE9841ACB2396002A6A32 /* Release */ = {
			isa = XCBuildConfiguration;
			baseConfigurationReference = 312CFCA0271C95DA4B15CF14 /* Pods.release.xcconfig */;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				INFOPLIST_FILE = CourierTestApp/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
			};
			name = Release;
		};
		09FFE9861ACB2396002A6A32 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
				);
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				INFOPLIST_FILE = CourierTestAppTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CourierTestApp.app/CourierTestApp";
			};
			name = Debug;
		};
		09FFE9871ACB2396002A6A32 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				FRAMEWORK_SEARCH_PATHS = (
					"$(SDKROOT)/Developer/Library/Frameworks",
					"$(inherited)",
				);
				INFOPLIST_FILE = CourierTestAppTests/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
				PRODUCT_NAME = "$(TARGET_NAME)";
				TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CourierTestApp.app/CourierTestApp";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		09FFE95A1ACB2395002A6A32 /* Build configuration list for PBXProject "CourierTestApp" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				09FFE9801ACB2396002A6A32 /* Debug */,
				09FFE9811ACB2396002A6A32 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		09FFE9821ACB2396002A6A32 /* Build configuration list for PBXNativeTarget "CourierTestApp" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				09FFE9831ACB2396002A6A32 /* Debug */,
				09FFE9841ACB2396002A6A32 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		09FFE9851ACB2396002A6A32 /* Build configuration list for PBXNativeTarget "CourierTestAppTests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				09FFE9861ACB2396002A6A32 /* Debug */,
				09FFE9871ACB2396002A6A32 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 09FFE9571ACB2395002A6A32 /* Project object */;
}
