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

/* Begin PBXBuildFile section */
		A1F593A60B8F042A00073279 /* sub_string_finder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F593A50B8F042A00073279 /* sub_string_finder.cpp */; };
		A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F594120B8F1E0C00073279 /* sub_string_finder_pretty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */; };
		A1F594130B8F1E1700073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F594160B8F1E8000073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F594240B8F1F5F00073279 /* libtbb.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F594250B8F1F6800073279 /* libtbb.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = A1F593B30B8F06F900073279 /* libtbb.dylib */; };
		A1F594270B8F1F8100073279 /* sub_string_finder_extended.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */; };
/* End PBXBuildFile section */

/* Begin PBXCopyFilesBuildPhase section */
		8DD76F690486A84900D96B5E /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 12;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
				A1F593BB0B8F072500073279 /* libtbb.dylib in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594140B8F1E2D00073279 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
				A1F594160B8F1E8000073279 /* libtbb.dylib in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F5941D0B8F1F2D00073279 /* CopyFiles */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 16;
			files = (
				A1F594250B8F1F6800073279 /* libtbb.dylib in CopyFiles */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		8DD76F6C0486A84900D96B5E /* sub_string_finder */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder; sourceTree = BUILT_PRODUCTS_DIR; };
		A1F593A50B8F042A00073279 /* sub_string_finder.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder.cpp; path = ../sub_string_finder.cpp; sourceTree = SOURCE_ROOT; };
		A1F593B30B8F06F900073279 /* libtbb.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libtbb.dylib; path = /Library/Frameworks/TBB.framework/Libraries/libtbb.dylib; sourceTree = "<absolute>"; };
		A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder_pretty; sourceTree = BUILT_PRODUCTS_DIR; };
		A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder_pretty.cpp; path = ../sub_string_finder_pretty.cpp; sourceTree = SOURCE_ROOT; };
		A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = sub_string_finder_extended; sourceTree = BUILT_PRODUCTS_DIR; };
		A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = sub_string_finder_extended.cpp; path = ../sub_string_finder_extended.cpp; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		8DD76F660486A84900D96B5E /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F593B70B8F06F900073279 /* libtbb.dylib in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594080B8F1D8E00073279 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F594130B8F1E1700073279 /* libtbb.dylib in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594190B8F1F0900073279 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F594240B8F1F5F00073279 /* libtbb.dylib in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		08FB7794FE84155DC02AAC07 /* sub_string_finder */ = {
			isa = PBXGroup;
			children = (
				08FB7795FE84155DC02AAC07 /* Source */,
				A1F593B20B8F06F900073279 /* External Frameworks and Libraries */,
				1AB674ADFE9D54B511CA2CBB /* Products */,
			);
			name = sub_string_finder;
			sourceTree = "<group>";
		};
		08FB7795FE84155DC02AAC07 /* Source */ = {
			isa = PBXGroup;
			children = (
				A1F594260B8F1F8100073279 /* sub_string_finder_extended.cpp */,
				A1F594110B8F1E0C00073279 /* sub_string_finder_pretty.cpp */,
				A1F593A50B8F042A00073279 /* sub_string_finder.cpp */,
			);
			name = Source;
			sourceTree = "<group>";
		};
		1AB674ADFE9D54B511CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				8DD76F6C0486A84900D96B5E /* sub_string_finder */,
				A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */,
				A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		A1F593B20B8F06F900073279 /* External Frameworks and Libraries */ = {
			isa = PBXGroup;
			children = (
				A1F593B30B8F06F900073279 /* libtbb.dylib */,
			);
			name = "External Frameworks and Libraries";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		8DD76F620486A84900D96B5E /* sub_string_finder */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "sub_string_finder" */;
			buildPhases = (
				8DD76F640486A84900D96B5E /* Sources */,
				8DD76F660486A84900D96B5E /* Frameworks */,
				8DD76F690486A84900D96B5E /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = sub_string_finder;
			productInstallPath = "$(HOME)/bin";
			productName = sub_string_finder;
			productReference = 8DD76F6C0486A84900D96B5E /* sub_string_finder */;
			productType = "com.apple.product-type.tool";
		};
		A1F594090B8F1D8E00073279 /* sub_string_finder_pretty */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A1F5940C0B8F1DB600073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_pretty" */;
			buildPhases = (
				A1F594070B8F1D8E00073279 /* Sources */,
				A1F594080B8F1D8E00073279 /* Frameworks */,
				A1F594140B8F1E2D00073279 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = sub_string_finder_pretty;
			productName = sub_string_finder_pretty;
			productReference = A1F5940A0B8F1D8E00073279 /* sub_string_finder_pretty */;
			productType = "com.apple.product-type.tool";
		};
		A1F5941A0B8F1F0900073279 /* sub_string_finder_extended */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = A1F5941F0B8F1F4E00073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_extended" */;
			buildPhases = (
				A1F594180B8F1F0900073279 /* Sources */,
				A1F594190B8F1F0900073279 /* Frameworks */,
				A1F5941D0B8F1F2D00073279 /* CopyFiles */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = sub_string_finder_extended;
			productName = sub_string_finder_extended;
			productReference = A1F5941B0B8F1F0900073279 /* sub_string_finder_extended */;
			productType = "com.apple.product-type.tool";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		08FB7793FE84155DC02AAC07 /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sub_string_finder" */;
			compatibilityVersion = "Xcode 2.4";
			hasScannedForEncodings = 1;
			mainGroup = 08FB7794FE84155DC02AAC07 /* sub_string_finder */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				A1F5941A0B8F1F0900073279 /* sub_string_finder_extended */,
				A1F594090B8F1D8E00073279 /* sub_string_finder_pretty */,
				8DD76F620486A84900D96B5E /* sub_string_finder */,
			);
		};
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
		8DD76F640486A84900D96B5E /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F593A60B8F042A00073279 /* sub_string_finder.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594070B8F1D8E00073279 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F594120B8F1E0C00073279 /* sub_string_finder_pretty.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		A1F594180B8F1F0900073279 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				A1F594270B8F1F8100073279 /* sub_string_finder_extended.cpp in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
		1DEB923208733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = sub_string_finder;
				ZERO_LINK = NO;
			};
			name = Debug;
		};
		1DEB923308733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = sub_string_finder;
				ZERO_LINK = NO;
			};
			name = Release;
		};
		1DEB923608733DC60010E9CD /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Debug;
		};
		1DEB923708733DC60010E9CD /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Release;
		};
		A1F593C60B8F0E6E00073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = sub_string_finder;
				ZERO_LINK = NO;
			};
			name = Debug64;
		};
		A1F593C70B8F0E6E00073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PRODUCT_NAME = sub_string_finder;
				ZERO_LINK = NO;
			};
			name = Release64;
		};
		A1F593C80B8F0E6E00073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-m64",
				);
				OTHER_LDFLAGS = "-m64";
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Debug64;
		};
		A1F593C90B8F0E6E00073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				ARCHS = i386;
				GCC_ENABLE_CPP_RTTI = YES;
				GCC_MODEL_TUNING = "";
				GCC_VERSION = 4.0;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				OTHER_CPLUSPLUSFLAGS = (
					"$(OTHER_CFLAGS)",
					"-m64",
				);
				OTHER_LDFLAGS = "-m64";
				PREBINDING = NO;
				PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = NO;
				SYMROOT = "/tmp/tbb-$(USER)";
			};
			name = Release64;
		};
		A1F5940D0B8F1DB600073279 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_pretty;
				ZERO_LINK = NO;
			};
			name = Debug;
		};
		A1F5940E0B8F1DB600073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_pretty;
				ZERO_LINK = NO;
			};
			name = Debug64;
		};
		A1F5940F0B8F1DB600073279 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = YES;
				GCC_ENABLE_FIX_AND_CONTINUE = NO;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_pretty;
				ZERO_LINK = NO;
			};
			name = Release;
		};
		A1F594100B8F1DB600073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_pretty;
				ZERO_LINK = NO;
			};
			name = Release64;
		};
		A1F594200B8F1F4E00073279 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_extended;
				ZERO_LINK = NO;
			};
			name = Debug;
		};
		A1F594210B8F1F4E00073279 /* Debug64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				COPY_PHASE_STRIP = NO;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_extended;
				ZERO_LINK = NO;
			};
			name = Debug64;
		};
		A1F594220B8F1F4E00073279 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = YES;
				GCC_ENABLE_FIX_AND_CONTINUE = NO;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_extended;
				ZERO_LINK = NO;
			};
			name = Release;
		};
		A1F594230B8F1F4E00073279 /* Release64 */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1)";
				ARCHS_STANDARD_64_BIT_PRE_XCODE_3_1 = x86_64;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_VERSION = 4.0;
				INSTALL_PATH = "$(HOME)/bin";
				LIBRARY_SEARCH_PATHS = (
					"$(inherited)",
					"$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
				);
				LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(LOCAL_LIBRARY_DIR)/Frameworks/TBB.framework/Libraries\"";
				PREBINDING = NO;
				PRODUCT_NAME = sub_string_finder_extended;
				ZERO_LINK = NO;
			};
			name = Release64;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "sub_string_finder" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923208733DC60010E9CD /* Debug */,
				A1F593C60B8F0E6E00073279 /* Debug64 */,
				1DEB923308733DC60010E9CD /* Release */,
				A1F593C70B8F0E6E00073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "sub_string_finder" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				1DEB923608733DC60010E9CD /* Debug */,
				A1F593C80B8F0E6E00073279 /* Debug64 */,
				1DEB923708733DC60010E9CD /* Release */,
				A1F593C90B8F0E6E00073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A1F5940C0B8F1DB600073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_pretty" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A1F5940D0B8F1DB600073279 /* Debug */,
				A1F5940E0B8F1DB600073279 /* Debug64 */,
				A1F5940F0B8F1DB600073279 /* Release */,
				A1F594100B8F1DB600073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		A1F5941F0B8F1F4E00073279 /* Build configuration list for PBXNativeTarget "sub_string_finder_extended" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				A1F594200B8F1F4E00073279 /* Debug */,
				A1F594210B8F1F4E00073279 /* Debug64 */,
				A1F594220B8F1F4E00073279 /* Release */,
				A1F594230B8F1F4E00073279 /* Release64 */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
}
