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

/* Begin PBXAggregateTarget section */
                89EBD58C0C95F43D000F04A0 /* B&I */ = {
                        isa = PBXAggregateTarget;
                        buildConfigurationList = 89EBD5930C95F44E000F04A0 /* Build configuration list for PBXAggregateTarget "B&I" */;
                        buildPhases = (
                        );
                        dependencies = (
                                C592D6590E12F27400D076FF /* PBXTargetDependency */,
                                C592D65B0E12F27600D076FF /* PBXTargetDependency */,
                                C592D65D0E12F27E00D076FF /* PBXTargetDependency */,
                                89D7CB9C0CDC64F800472EA2 /* PBXTargetDependency */,
                                C592D65F0E12F28500D076FF /* PBXTargetDependency */,
                                C592D6610E12F28E00D076FF /* PBXTargetDependency */,
                                C592D6630E12F29200D076FF /* PBXTargetDependency */,
                                89D7CC920CDE7A8200472EA2 /* PBXTargetDependency */,
                        );
                        name = "B&I";
                        productName = "B&I";
                };
/* End PBXAggregateTarget section */

/* Begin PBXBuildFile section */
                89D7C9F70CDB900E00472EA2 /* CIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9EC0CDB900E00472EA2 /* CIF.m */; };
                89D7C9F80CDB900E00472EA2 /* Coder.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9ED0CDB900E00472EA2 /* Coder.m */; };
                89D7C9F90CDB900E00472EA2 /* Function.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9EE0CDB900E00472EA2 /* Function.m */; };
                89D7C9FA0CDB900E00472EA2 /* ID.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9EF0CDB900E00472EA2 /* ID.m */; };
                89D7C9FB0CDB900E00472EA2 /* JObjCRuntime.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F00CDB900E00472EA2 /* JObjCRuntime.m */; };
                89D7C9FC0CDB900E00472EA2 /* MacOSXFramework.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F10CDB900E00472EA2 /* MacOSXFramework.m */; };
                89D7C9FD0CDB900E00472EA2 /* NativeBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 89D7C9F20CDB900E00472EA2 /* NativeBuffer.h */; };
                89D7C9FE0CDB900E00472EA2 /* NativeBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F30CDB900E00472EA2 /* NativeBuffer.m */; };
                89D7C9FF0CDB900E00472EA2 /* NativeObjectLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F40CDB900E00472EA2 /* NativeObjectLifecycleManager.m */; };
                89D7CA000CDB900E00472EA2 /* NSClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F50CDB900E00472EA2 /* NSClass.m */; };
                89D7CA010CDB900E00472EA2 /* SEL.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F60CDB900E00472EA2 /* SEL.m */; };
                89D7CB770CDC4A6500472EA2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 890FBACC0C6F782C00902C32 /* Foundation.framework */; };
                89D7CB780CDC4A6500472EA2 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 890FBACA0C6F781000902C32 /* JavaVM.framework */; };
                89D7CB790CDC4A6500472EA2 /* JavaNativeFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 896D90BB0CC2877C005625F5 /* JavaNativeFoundation.framework */; };
                89D7CB7A0CDC4A6500472EA2 /* libffi.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 89E437680C97A7F200C756EE /* libffi.dylib */; };
                89D7CCA40CDF9A2600472EA2 /* NativeBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 89D7C9F20CDB900E00472EA2 /* NativeBuffer.h */; };
                89D7CCA60CDF9A2600472EA2 /* CIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9EC0CDB900E00472EA2 /* CIF.m */; };
                89D7CCA70CDF9A2600472EA2 /* Coder.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9ED0CDB900E00472EA2 /* Coder.m */; };
                89D7CCA80CDF9A2600472EA2 /* Function.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9EE0CDB900E00472EA2 /* Function.m */; };
                89D7CCA90CDF9A2600472EA2 /* ID.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9EF0CDB900E00472EA2 /* ID.m */; };
                89D7CCAA0CDF9A2600472EA2 /* JObjCRuntime.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F00CDB900E00472EA2 /* JObjCRuntime.m */; };
                89D7CCAB0CDF9A2600472EA2 /* MacOSXFramework.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F10CDB900E00472EA2 /* MacOSXFramework.m */; };
                89D7CCAC0CDF9A2600472EA2 /* NativeBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F30CDB900E00472EA2 /* NativeBuffer.m */; };
                89D7CCAD0CDF9A2600472EA2 /* NativeObjectLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F40CDB900E00472EA2 /* NativeObjectLifecycleManager.m */; };
                89D7CCAE0CDF9A2600472EA2 /* NSClass.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F50CDB900E00472EA2 /* NSClass.m */; };
                89D7CCAF0CDF9A2600472EA2 /* SEL.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7C9F60CDB900E00472EA2 /* SEL.m */; };
                89D7CCB10CDF9A2600472EA2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 890FBACC0C6F782C00902C32 /* Foundation.framework */; };
                89D7CCB20CDF9A2600472EA2 /* JavaVM.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 890FBACA0C6F781000902C32 /* JavaVM.framework */; };
                89D7CCB30CDF9A2600472EA2 /* JavaNativeFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 896D90BB0CC2877C005625F5 /* JavaNativeFoundation.framework */; };
                89D7CCB40CDF9A2600472EA2 /* libffi.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 89E437680C97A7F200C756EE /* libffi.dylib */; };
                89D7CCBB0CDF9AA200472EA2 /* NativeString.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7CCBA0CDF9AA200472EA2 /* NativeString.m */; };
                89D7CCBD0CDF9AB100472EA2 /* NativeNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7CCBC0CDF9AB100472EA2 /* NativeNumber.m */; };
                89D7CCBF0CDF9AC600472EA2 /* NativeThread.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D7CCBE0CDF9AC600472EA2 /* NativeThread.m */; };
                C5742F6D0E316EFA00093838 /* Subclassing.m in Sources */ = {isa = PBXBuildFile; fileRef = C5742F6B0E316EFA00093838 /* Subclassing.m */; };
                C5742F700E316F8600093838 /* Subclassing.m in Sources */ = {isa = PBXBuildFile; fileRef = C5742F6B0E316EFA00093838 /* Subclassing.m */; };
                C5D196C90DF9E43C006F9FB9 /* FFIType.m in Sources */ = {isa = PBXBuildFile; fileRef = C5D196C80DF9E43C006F9FB9 /* FFIType.m */; };
                C5D197D90DFB77C6006F9FB9 /* FFIType.m in Sources */ = {isa = PBXBuildFile; fileRef = C5D196C80DF9E43C006F9FB9 /* FFIType.m */; };
                C5E4547B0E36729F0046D3E8 /* Invoke.m in Sources */ = {isa = PBXBuildFile; fileRef = C5E454790E36729F0046D3E8 /* Invoke.m */; };
                C5E4547D0E367DAB0046D3E8 /* Invoke.m in Sources */ = {isa = PBXBuildFile; fileRef = C5E454790E36729F0046D3E8 /* Invoke.m */; };
                C5F3B23D0E39948300B771AE /* FunCallBench.m in Sources */ = {isa = PBXBuildFile; fileRef = C5F3B1370E398F8E00B771AE /* FunCallBench.m */; };
                C5F3B2620E3AB0F300B771AE /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F3B2610E3AB0F300B771AE /* AppKit.framework */; };
                C5F3B2640E3AB0F300B771AE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C5F3B2630E3AB0F300B771AE /* Cocoa.framework */; };
                C5F3B2650E3AB0F300B771AE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 890FBACC0C6F782C00902C32 /* Foundation.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
                2CC7556013A1322100B09D1B /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = EB9FD8610AEECCF5008E157E;
                        remoteInfo = "build-core-java";
                };
                2CC7556213A1322800B09D1B /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = C5F3B1530E39927900B771AE;
                        remoteInfo = "build-test-java";
                };
                2CC7556413A1323700B09D1B /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CA160CDBA94D00472EA2;
                        remoteInfo = "build-generator-java";
                };
                2CC7556613A1324300B09D1B /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CC600CDE75EC00472EA2;
                        remoteInfo = "build-additions-java";
                };
                2CC7556813A1325700B09D1B /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CB870CDC4ED000472EA2;
                        remoteInfo = "run-generator";
                };
                2CC7556A13A132AF00B09D1B /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 4CEBA78E08679EF10015D03E;
                        remoteInfo = "build-core-native";
                };
                2CC7556C13A132B200B09D1B /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = EB9FD8610AEECCF5008E157E;
                        remoteInfo = "build-core-java";
                };
                89D7CB9B0CDC64F800472EA2 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CB870CDC4ED000472EA2;
                        remoteInfo = "run-generator";
                };
                89D7CC910CDE7A8200472EA2 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CC720CDE767500472EA2;
                        remoteInfo = "assemble-product-java";
                };
                C592D6580E12F27400D076FF /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = EB9FD8610AEECCF5008E157E;
                        remoteInfo = "build-core-java";
                };
                C592D65A0E12F27600D076FF /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 4CEBA78E08679EF10015D03E;
                        remoteInfo = "build-core-native";
                };
                C592D65C0E12F27E00D076FF /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CA160CDBA94D00472EA2;
                        remoteInfo = "build-generator-java";
                };
                C592D65E0E12F28500D076FF /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CC4C0CDE4C0400472EA2;
                        remoteInfo = "build-generated-java";
                };
                C592D6600E12F28E00D076FF /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CC600CDE75EC00472EA2;
                        remoteInfo = "build-additions-java";
                };
                C592D6620E12F29200D076FF /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 89D7CCA20CDF9A2600472EA2;
                        remoteInfo = "build-additions-native";
                };
                C5D197DA0DFB77E4006F9FB9 /* PBXContainerItemProxy */ = {
                        isa = PBXContainerItemProxy;
                        containerPortal = 00E6828EFEC88D1A11DB9C8B /* Project object */;
                        proxyType = 1;
                        remoteGlobalIDString = 4CEBA78E08679EF10015D03E;
                        remoteInfo = "build-core-native";
                };
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
                0AB364E40B2F671600788B6C /* src */ = {isa = PBXFileReference; lastKnownFileType = folder; path = src; sourceTree = "<group>"; };
                890FBACA0C6F781000902C32 /* JavaVM.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaVM.framework; path = /System/Library/Frameworks/JavaVM.framework; sourceTree = "<absolute>"; };
                890FBACC0C6F782C00902C32 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
                896D90BB0CC2877C005625F5 /* JavaNativeFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaNativeFoundation.framework; path = /System/Library/Frameworks/JavaVM.framework/Versions/A/Frameworks/JavaNativeFoundation.framework; sourceTree = "<absolute>"; };
                896D91230CC2ED34005625F5 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
                89736E5F0CE819E5008C4205 /* JObjC.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; path = JObjC.jar; sourceTree = BUILT_PRODUCTS_DIR; };
                89D7C9EC0CDB900E00472EA2 /* CIF.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CIF.m; sourceTree = "<group>"; };
                89D7C9ED0CDB900E00472EA2 /* Coder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Coder.m; sourceTree = "<group>"; };
                89D7C9EE0CDB900E00472EA2 /* Function.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Function.m; sourceTree = "<group>"; };
                89D7C9EF0CDB900E00472EA2 /* ID.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ID.m; sourceTree = "<group>"; };
                89D7C9F00CDB900E00472EA2 /* JObjCRuntime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JObjCRuntime.m; sourceTree = "<group>"; };
                89D7C9F10CDB900E00472EA2 /* MacOSXFramework.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MacOSXFramework.m; sourceTree = "<group>"; };
                89D7C9F20CDB900E00472EA2 /* NativeBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NativeBuffer.h; sourceTree = "<group>"; };
                89D7C9F30CDB900E00472EA2 /* NativeBuffer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NativeBuffer.m; sourceTree = "<group>"; };
                89D7C9F40CDB900E00472EA2 /* NativeObjectLifecycleManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NativeObjectLifecycleManager.m; sourceTree = "<group>"; };
                89D7C9F50CDB900E00472EA2 /* NSClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSClass.m; sourceTree = "<group>"; };
                89D7C9F60CDB900E00472EA2 /* SEL.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SEL.m; sourceTree = "<group>"; };
                89D7CCB80CDF9A2600472EA2 /* libJObjC.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = libJObjC.dylib; sourceTree = BUILT_PRODUCTS_DIR; };
                89D7CCBA0CDF9AA200472EA2 /* NativeString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NativeString.m; sourceTree = "<group>"; };
                89D7CCBC0CDF9AB100472EA2 /* NativeNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NativeNumber.m; sourceTree = "<group>"; };
                89D7CCBE0CDF9AC600472EA2 /* NativeThread.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NativeThread.m; sourceTree = "<group>"; };
                89E437680C97A7F200C756EE /* libffi.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libffi.dylib; path = /usr/lib/libffi.dylib; sourceTree = "<absolute>"; };
                C5742F6B0E316EFA00093838 /* Subclassing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Subclassing.m; sourceTree = "<group>"; };
                C5D196C80DF9E43C006F9FB9 /* FFIType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FFIType.m; sourceTree = "<group>"; };
                C5E454790E36729F0046D3E8 /* Invoke.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Invoke.m; sourceTree = "<group>"; };
                C5F3B1370E398F8E00B771AE /* FunCallBench.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FunCallBench.m; sourceTree = "<group>"; };
                C5F3B1450E39910500B771AE /* libJObjC-tests.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "libJObjC-tests.dylib"; sourceTree = BUILT_PRODUCTS_DIR; };
                C5F3B2610E3AB0F300B771AE /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
                C5F3B2630E3AB0F300B771AE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
                EB9FD8720AEECD83008E157E /* build.xml */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.xml; path = build.xml; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
                4CEBA78D08679EF10015D03E /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                89D7CB770CDC4A6500472EA2 /* Foundation.framework in Frameworks */,
                                89D7CB780CDC4A6500472EA2 /* JavaVM.framework in Frameworks */,
                                89D7CB790CDC4A6500472EA2 /* JavaNativeFoundation.framework in Frameworks */,
                                89D7CB7A0CDC4A6500472EA2 /* libffi.dylib in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                89D7CCB00CDF9A2600472EA2 /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                89D7CCB10CDF9A2600472EA2 /* Foundation.framework in Frameworks */,
                                89D7CCB20CDF9A2600472EA2 /* JavaVM.framework in Frameworks */,
                                89D7CCB30CDF9A2600472EA2 /* JavaNativeFoundation.framework in Frameworks */,
                                89D7CCB40CDF9A2600472EA2 /* libffi.dylib in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                C5F3B1430E39910500B771AE /* Frameworks */ = {
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                C5F3B2620E3AB0F300B771AE /* AppKit.framework in Frameworks */,
                                C5F3B2640E3AB0F300B771AE /* Cocoa.framework in Frameworks */,
                                C5F3B2650E3AB0F300B771AE /* Foundation.framework in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
                00E6828FFEC88D1A11DB9C8B = {
                        isa = PBXGroup;
                        children = (
                                896D91230CC2ED34005625F5 /* README.txt */,
                                EB9FD8720AEECD83008E157E /* build.xml */,
                                0AB364E40B2F671600788B6C /* src */,
                                89D7C9EB0CDB900E00472EA2 /* native-core */,
                                89D7CA020CDB902200472EA2 /* native-additions */,
                                C5A9597F0E398F050057C96D /* native-tests */,
                                89D7CA030CDB903000472EA2 /* products */,
                                890FBAC90C6F77B700902C32 /* frameworks */,
                                C5F3B1450E39910500B771AE /* libJObjC-tests.dylib */,
                                C5F3B2610E3AB0F300B771AE /* AppKit.framework */,
                                C5F3B2630E3AB0F300B771AE /* Cocoa.framework */,
                        );
                        sourceTree = "<group>";
                };
                890FBAC90C6F77B700902C32 /* frameworks */ = {
                        isa = PBXGroup;
                        children = (
                                890FBACC0C6F782C00902C32 /* Foundation.framework */,
                                890FBACA0C6F781000902C32 /* JavaVM.framework */,
                                896D90BB0CC2877C005625F5 /* JavaNativeFoundation.framework */,
                                89E437680C97A7F200C756EE /* libffi.dylib */,
                        );
                        name = frameworks;
                        sourceTree = "<group>";
                };
                89D7C9EB0CDB900E00472EA2 /* native-core */ = {
                        isa = PBXGroup;
                        children = (
                                89D7C9EC0CDB900E00472EA2 /* CIF.m */,
                                89D7C9ED0CDB900E00472EA2 /* Coder.m */,
                                C5D196C80DF9E43C006F9FB9 /* FFIType.m */,
                                89D7C9EE0CDB900E00472EA2 /* Function.m */,
                                89D7C9EF0CDB900E00472EA2 /* ID.m */,
                                C5E454790E36729F0046D3E8 /* Invoke.m */,
                                89D7C9F00CDB900E00472EA2 /* JObjCRuntime.m */,
                                89D7C9F10CDB900E00472EA2 /* MacOSXFramework.m */,
                                89D7C9F20CDB900E00472EA2 /* NativeBuffer.h */,
                                89D7C9F30CDB900E00472EA2 /* NativeBuffer.m */,
                                89D7C9F40CDB900E00472EA2 /* NativeObjectLifecycleManager.m */,
                                89D7C9F50CDB900E00472EA2 /* NSClass.m */,
                                89D7C9F60CDB900E00472EA2 /* SEL.m */,
                                C5742F6B0E316EFA00093838 /* Subclassing.m */,
                        );
                        name = "native-core";
                        path = src/core/native;
                        sourceTree = "<group>";
                };
                89D7CA020CDB902200472EA2 /* native-additions */ = {
                        isa = PBXGroup;
                        children = (
                                89D7CCBA0CDF9AA200472EA2 /* NativeString.m */,
                                89D7CCBC0CDF9AB100472EA2 /* NativeNumber.m */,
                                89D7CCBE0CDF9AC600472EA2 /* NativeThread.m */,
                        );
                        name = "native-additions";
                        path = "src/runtime-additions/native";
                        sourceTree = "<group>";
                };
                89D7CA030CDB903000472EA2 /* products */ = {
                        isa = PBXGroup;
                        children = (
                                89736E5F0CE819E5008C4205 /* JObjC.jar */,
                                89D7CCB80CDF9A2600472EA2 /* libJObjC.dylib */,
                        );
                        name = products;
                        path = "src/runtime-additions/native";
                        sourceTree = "<group>";
                };
                C5A9597F0E398F050057C96D /* native-tests */ = {
                        isa = PBXGroup;
                        children = (
                                C5F3B1370E398F8E00B771AE /* FunCallBench.m */,
                        );
                        name = "native-tests";
                        path = src/tests/native;
                        sourceTree = "<group>";
                };
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
                4CEBA78B08679EF10015D03E /* Headers */ = {
                        isa = PBXHeadersBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                89D7C9FD0CDB900E00472EA2 /* NativeBuffer.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                89D7CCA30CDF9A2600472EA2 /* Headers */ = {
                        isa = PBXHeadersBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                89D7CCA40CDF9A2600472EA2 /* NativeBuffer.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                C5F3B1410E39910500B771AE /* Headers */ = {
                        isa = PBXHeadersBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
/* End PBXHeadersBuildPhase section */

/* Begin PBXLegacyTarget section */
                89D7CA160CDBA94D00472EA2 /* build-generator-java */ = {
                        isa = PBXLegacyTarget;
                        buildArgumentsString = "-verbose -emacs $ACTION";
                        buildConfigurationList = 89D7CA1C0CDBA9B000472EA2 /* Build configuration list for PBXLegacyTarget "build-generator-java" */;
                        buildPhases = (
                        );
                        buildToolPath = /usr/bin/ant;
                        dependencies = (
                                2CC7556D13A132B200B09D1B /* PBXTargetDependency */,
                                2CC7556B13A132AF00B09D1B /* PBXTargetDependency */,
                        );
                        name = "build-generator-java";
                        passBuildSettingsInEnvironment = 1;
                        productName = "generator-build-java";
                };
                89D7CB870CDC4ED000472EA2 /* run-generator */ = {
                        isa = PBXLegacyTarget;
                        buildArgumentsString = "-verbose -emacs $ACTION";
                        buildConfigurationList = 89D7CB8E0CDC4ED900472EA2 /* Build configuration list for PBXLegacyTarget "run-generator" */;
                        buildPhases = (
                        );
                        buildToolPath = /usr/bin/ant;
                        dependencies = (
                                2CC7556513A1323700B09D1B /* PBXTargetDependency */,
                        );
                        name = "run-generator";
                        passBuildSettingsInEnvironment = 1;
                        productName = "run-generator";
                };
                89D7CC4C0CDE4C0400472EA2 /* build-generated-java */ = {
                        isa = PBXLegacyTarget;
                        buildArgumentsString = "-verbose -emacs $ACTION";
                        buildConfigurationList = 89D7CC510CDE4C5200472EA2 /* Build configuration list for PBXLegacyTarget "build-generated-java" */;
                        buildPhases = (
                        );
                        buildToolPath = /usr/bin/ant;
                        dependencies = (
                                2CC7556913A1325700B09D1B /* PBXTargetDependency */,
                        );
                        name = "build-generated-java";
                        passBuildSettingsInEnvironment = 1;
                        productName = "build-generated-java";
                };
                89D7CC600CDE75EC00472EA2 /* build-additions-java */ = {
                        isa = PBXLegacyTarget;
                        buildArgumentsString = "-verbose -emacs $ACTION";
                        buildConfigurationList = 89D7CC630CDE762000472EA2 /* Build configuration list for PBXLegacyTarget "build-additions-java" */;
                        buildPhases = (
                        );
                        buildToolPath = /usr/bin/ant;
                        dependencies = (
                        );
                        name = "build-additions-java";
                        passBuildSettingsInEnvironment = 1;
                        productName = "build-additions-java";
                };
                89D7CC720CDE767500472EA2 /* assemble-product-java */ = {
                        isa = PBXLegacyTarget;
                        buildArgumentsString = "-verbose -emacs $ACTION";
                        buildConfigurationList = 89D7CC7A0CDE76F500472EA2 /* Build configuration list for PBXLegacyTarget "assemble-product-java" */;
                        buildPhases = (
                        );
                        buildToolPath = /usr/bin/ant;
                        dependencies = (
                        );
                        name = "assemble-product-java";
                        passBuildSettingsInEnvironment = 1;
                        productName = "package-product";
                };
                C5F3B1530E39927900B771AE /* build-test-java */ = {
                        isa = PBXLegacyTarget;
                        buildArgumentsString = "-verbose -emacs $ACTION";
                        buildConfigurationList = C5F3B15B0E3992AC00B771AE /* Build configuration list for PBXLegacyTarget "build-test-java" */;
                        buildPhases = (
                        );
                        buildToolPath = /usr/bin/ant;
                        dependencies = (
                        );
                        name = "build-test-java";
                        passBuildSettingsInEnvironment = 1;
                        productName = "build-test";
                };
                EB9FD8610AEECCF5008E157E /* build-core-java */ = {
                        isa = PBXLegacyTarget;
                        buildArgumentsString = "-verbose -emacs $ACTION";
                        buildConfigurationList = EB9FD8690AEECD13008E157E /* Build configuration list for PBXLegacyTarget "build-core-java" */;
                        buildPhases = (
                        );
                        buildToolPath = /usr/bin/ant;
                        buildWorkingDirectory = "";
                        dependencies = (
                        );
                        name = "build-core-java";
                        passBuildSettingsInEnvironment = 1;
                        productName = AntJNIWrapper;
                };
/* End PBXLegacyTarget section */

/* Begin PBXNativeTarget section */
                4CEBA78E08679EF10015D03E /* build-core-native */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = 4CEBA79108679F100015D03E /* Build configuration list for PBXNativeTarget "build-core-native" */;
                        buildPhases = (
                                4CEBA78B08679EF10015D03E /* Headers */,
                                4CEBA78C08679EF10015D03E /* Sources */,
                                4CEBA78D08679EF10015D03E /* Frameworks */,
                        );
                        buildRules = (
                        );
                        dependencies = (
                                2CC7556113A1322100B09D1B /* PBXTargetDependency */,
                        );
                        name = "build-core-native";
                        productName = DylibN;
                        productType = "com.apple.product-type.library.dynamic";
                };
                89D7CCA20CDF9A2600472EA2 /* build-additions-native */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = 89D7CCB50CDF9A2600472EA2 /* Build configuration list for PBXNativeTarget "build-additions-native" */;
                        buildPhases = (
                                89D7CCA30CDF9A2600472EA2 /* Headers */,
                                89D7CCA50CDF9A2600472EA2 /* Sources */,
                                89D7CCB00CDF9A2600472EA2 /* Frameworks */,
                        );
                        buildRules = (
                        );
                        dependencies = (
                                2CC7556713A1324300B09D1B /* PBXTargetDependency */,
                                C5D197DB0DFB77E4006F9FB9 /* PBXTargetDependency */,
                        );
                        name = "build-additions-native";
                        productName = DylibN;
                        productReference = 89D7CCB80CDF9A2600472EA2 /* libJObjC.dylib */;
                        productType = "com.apple.product-type.library.dynamic";
                };
                C5F3B1440E39910500B771AE /* build-test-native */ = {
                        isa = PBXNativeTarget;
                        buildConfigurationList = C5F3B1480E39917500B771AE /* Build configuration list for PBXNativeTarget "build-test-native" */;
                        buildPhases = (
                                C5F3B1410E39910500B771AE /* Headers */,
                                C5F3B1420E39910500B771AE /* Sources */,
                                C5F3B1430E39910500B771AE /* Frameworks */,
                        );
                        buildRules = (
                        );
                        dependencies = (
                                2CC7556313A1322800B09D1B /* PBXTargetDependency */,
                        );
                        name = "build-test-native";
                        productName = "build-tests-native";
                        productReference = C5F3B1450E39910500B771AE /* libJObjC-tests.dylib */;
                        productType = "com.apple.product-type.library.dynamic";
                };
/* End PBXNativeTarget section */

/* Begin PBXProject section */
                00E6828EFEC88D1A11DB9C8B /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
                                LastUpgradeCheck = 0410;
                        };
                        buildConfigurationList = 4CEBA75C08679E4D0015D03E /* Build configuration list for PBXProject "JObjC" */;
                        compatibilityVersion = "Xcode 3.0";
                        developmentRegion = English;
                        hasScannedForEncodings = 1;
                        knownRegions = (
                                English,
                                Japanese,
                                French,
                                German,
                        );
                        mainGroup = 00E6828FFEC88D1A11DB9C8B;
                        productRefGroup = 00E6828FFEC88D1A11DB9C8B;
                        projectDirPath = "";
                        projectRoot = "";
                        targets = (
                                89EBD58C0C95F43D000F04A0 /* B&I */,
                                EB9FD8610AEECCF5008E157E /* build-core-java */,
                                4CEBA78E08679EF10015D03E /* build-core-native */,
                                89D7CA160CDBA94D00472EA2 /* build-generator-java */,
                                89D7CB870CDC4ED000472EA2 /* run-generator */,
                                89D7CC4C0CDE4C0400472EA2 /* build-generated-java */,
                                89D7CC600CDE75EC00472EA2 /* build-additions-java */,
                                89D7CCA20CDF9A2600472EA2 /* build-additions-native */,
                                89D7CC720CDE767500472EA2 /* assemble-product-java */,
                                C5F3B1530E39927900B771AE /* build-test-java */,
                                C5F3B1440E39910500B771AE /* build-test-native */,
                        );
                };
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
                4CEBA78C08679EF10015D03E /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                C5E4547B0E36729F0046D3E8 /* Invoke.m in Sources */,
                                C5742F6D0E316EFA00093838 /* Subclassing.m in Sources */,
                                89D7C9F70CDB900E00472EA2 /* CIF.m in Sources */,
                                89D7C9F80CDB900E00472EA2 /* Coder.m in Sources */,
                                89D7C9F90CDB900E00472EA2 /* Function.m in Sources */,
                                89D7C9FA0CDB900E00472EA2 /* ID.m in Sources */,
                                89D7C9FB0CDB900E00472EA2 /* JObjCRuntime.m in Sources */,
                                89D7C9FC0CDB900E00472EA2 /* MacOSXFramework.m in Sources */,
                                89D7C9FE0CDB900E00472EA2 /* NativeBuffer.m in Sources */,
                                89D7C9FF0CDB900E00472EA2 /* NativeObjectLifecycleManager.m in Sources */,
                                89D7CA000CDB900E00472EA2 /* NSClass.m in Sources */,
                                89D7CA010CDB900E00472EA2 /* SEL.m in Sources */,
                                C5D196C90DF9E43C006F9FB9 /* FFIType.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                89D7CCA50CDF9A2600472EA2 /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                C5E4547D0E367DAB0046D3E8 /* Invoke.m in Sources */,
                                C5742F700E316F8600093838 /* Subclassing.m in Sources */,
                                89D7CCA60CDF9A2600472EA2 /* CIF.m in Sources */,
                                89D7CCA70CDF9A2600472EA2 /* Coder.m in Sources */,
                                89D7CCA80CDF9A2600472EA2 /* Function.m in Sources */,
                                89D7CCA90CDF9A2600472EA2 /* ID.m in Sources */,
                                89D7CCAA0CDF9A2600472EA2 /* JObjCRuntime.m in Sources */,
                                89D7CCAB0CDF9A2600472EA2 /* MacOSXFramework.m in Sources */,
                                89D7CCAC0CDF9A2600472EA2 /* NativeBuffer.m in Sources */,
                                89D7CCAD0CDF9A2600472EA2 /* NativeObjectLifecycleManager.m in Sources */,
                                89D7CCAE0CDF9A2600472EA2 /* NSClass.m in Sources */,
                                89D7CCAF0CDF9A2600472EA2 /* SEL.m in Sources */,
                                89D7CCBB0CDF9AA200472EA2 /* NativeString.m in Sources */,
                                89D7CCBD0CDF9AB100472EA2 /* NativeNumber.m in Sources */,
                                89D7CCBF0CDF9AC600472EA2 /* NativeThread.m in Sources */,
                                C5D197D90DFB77C6006F9FB9 /* FFIType.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                C5F3B1420E39910500B771AE /* Sources */ = {
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                                C5F3B23D0E39948300B771AE /* FunCallBench.m in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
                2CC7556113A1322100B09D1B /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = EB9FD8610AEECCF5008E157E /* build-core-java */;
                        targetProxy = 2CC7556013A1322100B09D1B /* PBXContainerItemProxy */;
                };
                2CC7556313A1322800B09D1B /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = C5F3B1530E39927900B771AE /* build-test-java */;
                        targetProxy = 2CC7556213A1322800B09D1B /* PBXContainerItemProxy */;
                };
                2CC7556513A1323700B09D1B /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CA160CDBA94D00472EA2 /* build-generator-java */;
                        targetProxy = 2CC7556413A1323700B09D1B /* PBXContainerItemProxy */;
                };
                2CC7556713A1324300B09D1B /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CC600CDE75EC00472EA2 /* build-additions-java */;
                        targetProxy = 2CC7556613A1324300B09D1B /* PBXContainerItemProxy */;
                };
                2CC7556913A1325700B09D1B /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CB870CDC4ED000472EA2 /* run-generator */;
                        targetProxy = 2CC7556813A1325700B09D1B /* PBXContainerItemProxy */;
                };
                2CC7556B13A132AF00B09D1B /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 4CEBA78E08679EF10015D03E /* build-core-native */;
                        targetProxy = 2CC7556A13A132AF00B09D1B /* PBXContainerItemProxy */;
                };
                2CC7556D13A132B200B09D1B /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = EB9FD8610AEECCF5008E157E /* build-core-java */;
                        targetProxy = 2CC7556C13A132B200B09D1B /* PBXContainerItemProxy */;
                };
                89D7CB9C0CDC64F800472EA2 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CB870CDC4ED000472EA2 /* run-generator */;
                        targetProxy = 89D7CB9B0CDC64F800472EA2 /* PBXContainerItemProxy */;
                };
                89D7CC920CDE7A8200472EA2 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CC720CDE767500472EA2 /* assemble-product-java */;
                        targetProxy = 89D7CC910CDE7A8200472EA2 /* PBXContainerItemProxy */;
                };
                C592D6590E12F27400D076FF /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = EB9FD8610AEECCF5008E157E /* build-core-java */;
                        targetProxy = C592D6580E12F27400D076FF /* PBXContainerItemProxy */;
                };
                C592D65B0E12F27600D076FF /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 4CEBA78E08679EF10015D03E /* build-core-native */;
                        targetProxy = C592D65A0E12F27600D076FF /* PBXContainerItemProxy */;
                };
                C592D65D0E12F27E00D076FF /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CA160CDBA94D00472EA2 /* build-generator-java */;
                        targetProxy = C592D65C0E12F27E00D076FF /* PBXContainerItemProxy */;
                };
                C592D65F0E12F28500D076FF /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CC4C0CDE4C0400472EA2 /* build-generated-java */;
                        targetProxy = C592D65E0E12F28500D076FF /* PBXContainerItemProxy */;
                };
                C592D6610E12F28E00D076FF /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CC600CDE75EC00472EA2 /* build-additions-java */;
                        targetProxy = C592D6600E12F28E00D076FF /* PBXContainerItemProxy */;
                };
                C592D6630E12F29200D076FF /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 89D7CCA20CDF9A2600472EA2 /* build-additions-native */;
                        targetProxy = C592D6620E12F29200D076FF /* PBXContainerItemProxy */;
                };
                C5D197DB0DFB77E4006F9FB9 /* PBXTargetDependency */ = {
                        isa = PBXTargetDependency;
                        target = 4CEBA78E08679EF10015D03E /* build-core-native */;
                        targetProxy = C5D197DA0DFB77E4006F9FB9 /* PBXContainerItemProxy */;
                };
/* End PBXTargetDependency section */

/* Begin XCBuildConfiguration section */
                4CEBA75D08679E4D0015D03E /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ARCHS = (
                                        "$(NATIVE_ARCH_32_BIT)",
                                        "$(NATIVE_ARCH_64_BIT)",
                                );
                                GCC_ENABLE_OBJC_GC = supported;
                                SYMROOT = build;
                        };
                        name = Debug;
                };
                4CEBA75E08679E4D0015D03E /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                GCC_ENABLE_OBJC_GC = supported;
                                INSTALL_PATH = /System/Library/Java/Extensions;
                        };
                        name = Release;
                };
                4CEBA79208679F100015D03E /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ARCHS = (
                                        "$(NATIVE_ARCH_32_BIT)",
                                        "$(NATIVE_ARCH_64_BIT)",
                                );
                                COPY_PHASE_STRIP = NO;
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                EXECUTABLE_EXTENSION = dylib;
                                EXECUTABLE_PREFIX = lib;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                );
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                GCC_MODEL_TUNING = G5;
                                GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
                                GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
                                GCC_TREAT_WARNINGS_AS_ERRORS = YES;
                                GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
                                GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
                                GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
                                GCC_WARN_ABOUT_RETURN_TYPE = YES;
                                GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
                                GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = YES;
                                GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
                                GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
                                GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
                                GCC_WARN_MISSING_PARENTHESES = YES;
                                GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
                                GCC_WARN_PEDANTIC = NO;
                                GCC_WARN_PROTOTYPE_CONVERSION = NO;
                                GCC_WARN_SHADOW = YES;
                                GCC_WARN_SIGN_COMPARE = YES;
                                GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
                                GCC_WARN_UNINITIALIZED_AUTOS = YES;
                                GCC_WARN_UNKNOWN_PRAGMAS = YES;
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                HEADER_SEARCH_PATHS = (
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                        /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers,
                                );
                                HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/core\" \"$(OBJROOT)/src/jni_headers/core\"";
                                LIBRARY_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries\"";
                                LIBRARY_STYLE = DYNAMIC;
                                MACH_O_TYPE = mh_dylib;
                                OTHER_LDFLAGS = "";
                                OTHER_REZFLAGS = "";
                                PRODUCT_NAME = JObjC;
                                SECTORDER_FLAGS = "";
                                VALID_ARCHS = "ppc7400 ppc970 i386 x86_64 ppc";
                                WARNING_CFLAGS = (
                                        "-Wmost",
                                        "-Wno-four-char-constants",
                                        "-Wno-unknown-pragmas",
                                        "-Wformat",
                                        "-Wformat-security",
                                        "-Wcast-align",
                                        "-Wwrite-strings",
                                        "-Wuninitialized",
                                        "-Wshadow",
                                        "-Wshorten-64-to-32",
                                        "-Wsign-compare",
                                        "-Wpointer-arith",
                                        "-Wall",
                                );
                                ZERO_LINK = NO;
                        };
                        name = Debug;
                };
                4CEBA79308679F100015D03E /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ARCHS = (
                                        i386,
                                        ppc,
                                        x86_64,
                                );
                                COPY_PHASE_STRIP = YES;
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                EXECUTABLE_EXTENSION = dylib;
                                EXECUTABLE_PREFIX = lib;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                );
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
                                GCC_MODEL_TUNING = G5;
                                GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
                                GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
                                GCC_TREAT_WARNINGS_AS_ERRORS = YES;
                                GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
                                GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
                                GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
                                GCC_WARN_ABOUT_RETURN_TYPE = YES;
                                GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
                                GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = YES;
                                GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
                                GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
                                GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
                                GCC_WARN_MISSING_PARENTHESES = YES;
                                GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
                                GCC_WARN_PEDANTIC = NO;
                                GCC_WARN_PROTOTYPE_CONVERSION = NO;
                                GCC_WARN_SHADOW = YES;
                                GCC_WARN_SIGN_COMPARE = YES;
                                GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
                                GCC_WARN_UNINITIALIZED_AUTOS = YES;
                                GCC_WARN_UNKNOWN_PRAGMAS = YES;
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                HEADER_SEARCH_PATHS = (
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                        /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers,
                                );
                                HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/core\" \"$(OBJROOT)/src/jni_headers/core\"";
                                LIBRARY_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries\"";
                                LIBRARY_STYLE = DYNAMIC;
                                MACH_O_TYPE = mh_dylib;
                                OTHER_LDFLAGS = "";
                                OTHER_REZFLAGS = "";
                                PRODUCT_NAME = JObjC;
                                SECTORDER_FLAGS = "";
                                VALID_ARCHS = "ppc7400 ppc970 i386 x86_64 ppc";
                                WARNING_CFLAGS = (
                                        "-Wmost",
                                        "-Wno-four-char-constants",
                                        "-Wno-unknown-pragmas",
                                        "-Wformat",
                                        "-Wformat-security",
                                        "-Wcast-align",
                                        "-Wwrite-strings",
                                        "-Wuninitialized",
                                        "-Wshadow",
                                        "-Wshorten-64-to-32",
                                        "-Wsign-compare",
                                        "-Wpointer-arith",
                                        "-Wall",
                                );
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                89D7CA170CDBA94D00472EA2 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                PRODUCT_NAME = "build-generator";
                        };
                        name = Debug;
                };
                89D7CA180CDBA94D00472EA2 /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
                                PRODUCT_NAME = "build-generator";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                89D7CB880CDC4ED000472EA2 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = "\U00010";
                                PRODUCT_NAME = "run-generator";
                        };
                        name = Debug;
                };
                89D7CB890CDC4ED000472EA2 /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
                                PRODUCT_NAME = "run-generator";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                89D7CC4D0CDE4C0400472EA2 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                PRODUCT_NAME = "build-generated";
                        };
                        name = Debug;
                };
                89D7CC4E0CDE4C0400472EA2 /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
                                PRODUCT_NAME = "build-generated";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                89D7CC610CDE75EC00472EA2 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                PRODUCT_NAME = "build-additions";
                        };
                        name = Debug;
                };
                89D7CC620CDE75EC00472EA2 /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
                                PRODUCT_NAME = "build-additions";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                89D7CC730CDE767500472EA2 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                PRODUCT_NAME = "assemble-product";
                        };
                        name = Debug;
                };
                89D7CC740CDE767500472EA2 /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
                                PRODUCT_NAME = "assemble-product";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                89D7CCB60CDF9A2600472EA2 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ARCHS = (
                                        "$(NATIVE_ARCH_32_BIT)",
                                        "$(NATIVE_ARCH_64_BIT)",
                                );
                                COPY_PHASE_STRIP = NO;
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                EXECUTABLE_EXTENSION = dylib;
                                EXECUTABLE_PREFIX = lib;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                );
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                GCC_MODEL_TUNING = G5;
                                GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
                                GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
                                GCC_TREAT_WARNINGS_AS_ERRORS = NO;
                                GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
                                GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
                                GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
                                GCC_WARN_ABOUT_RETURN_TYPE = YES;
                                GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
                                GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = YES;
                                GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
                                GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
                                GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
                                GCC_WARN_MISSING_PARENTHESES = YES;
                                GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
                                GCC_WARN_PEDANTIC = NO;
                                GCC_WARN_PROTOTYPE_CONVERSION = NO;
                                GCC_WARN_SHADOW = YES;
                                GCC_WARN_SIGN_COMPARE = YES;
                                GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
                                GCC_WARN_UNINITIALIZED_AUTOS = YES;
                                GCC_WARN_UNKNOWN_PRAGMAS = YES;
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                HEADER_SEARCH_PATHS = (
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                        /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers,
                                );
                                HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/core\" \"$(OBJROOT)/src/jni_headers/core\"";
                                HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/additions\" \"$(OBJROOT)/src/jni_headers/additions\"";
                                INSTALL_PATH = /usr/local/lib;
                                LIBRARY_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries\"";
                                LIBRARY_STYLE = DYNAMIC;
                                MACH_O_TYPE = mh_dylib;
                                OTHER_LDFLAGS = "";
                                OTHER_REZFLAGS = "";
                                PRODUCT_NAME = JObjC;
                                SECTORDER_FLAGS = "";
                                VALID_ARCHS = "ppc7400 ppc970 i386 x86_64 ppc";
                                WARNING_CFLAGS = (
                                        "-Wmost",
                                        "-Wno-four-char-constants",
                                        "-Wno-unknown-pragmas",
                                        "-Wformat",
                                        "-Wformat-security",
                                        "-Wcast-align",
                                        "-Wwrite-strings",
                                        "-Wuninitialized",
                                        "-Wshadow",
                                        "-Wshorten-64-to-32",
                                        "-Wsign-compare",
                                        "-Wpointer-arith",
                                        "-Wall",
                                );
                                ZERO_LINK = NO;
                        };
                        name = Debug;
                };
                89D7CCB70CDF9A2600472EA2 /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ARCHS = (
                                        x86_64,
                                        ppc,
                                        i386,
                                );
                                COPY_PHASE_STRIP = YES;
                                DYLIB_COMPATIBILITY_VERSION = 1;
                                DYLIB_CURRENT_VERSION = 1;
                                EXECUTABLE_EXTENSION = dylib;
                                EXECUTABLE_PREFIX = lib;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                );
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
                                GCC_MODEL_TUNING = G5;
                                GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
                                GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
                                GCC_TREAT_WARNINGS_AS_ERRORS = NO;
                                GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
                                GCC_WARN_ABOUT_MISSING_NEWLINE = YES;
                                GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
                                GCC_WARN_ABOUT_RETURN_TYPE = YES;
                                GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
                                GCC_WARN_EFFECTIVE_CPLUSPLUS_VIOLATIONS = YES;
                                GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES;
                                GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES;
                                GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES;
                                GCC_WARN_MISSING_PARENTHESES = YES;
                                GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES;
                                GCC_WARN_PEDANTIC = NO;
                                GCC_WARN_PROTOTYPE_CONVERSION = NO;
                                GCC_WARN_SHADOW = YES;
                                GCC_WARN_SIGN_COMPARE = YES;
                                GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES;
                                GCC_WARN_UNINITIALIZED_AUTOS = YES;
                                GCC_WARN_UNKNOWN_PRAGMAS = YES;
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                HEADER_SEARCH_PATHS = (
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                        /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers,
                                );
                                HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/core\"  \"$(OBJROOT)/src/jni_headers/core\"";
                                HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/additions\"  \"$(OBJROOT)/src/jni_headers/additions\"";
                                LIBRARY_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                );
                                LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/1.5.0/Libraries\"";
                                LIBRARY_STYLE = DYNAMIC;
                                MACH_O_TYPE = mh_dylib;
                                OTHER_LDFLAGS = "";
                                OTHER_REZFLAGS = "";
                                PRODUCT_NAME = JObjC;
                                SECTORDER_FLAGS = "";
                                VALID_ARCHS = "ppc7400 ppc970 i386 x86_64 ppc";
                                WARNING_CFLAGS = (
                                        "-Wmost",
                                        "-Wno-four-char-constants",
                                        "-Wno-unknown-pragmas",
                                        "-Wformat",
                                        "-Wformat-security",
                                        "-Wcast-align",
                                        "-Wwrite-strings",
                                        "-Wuninitialized",
                                        "-Wshadow",
                                        "-Wshorten-64-to-32",
                                        "-Wsign-compare",
                                        "-Wpointer-arith",
                                        "-Wall",
                                );
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                89EBD58D0C95F43D000F04A0 /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                PRODUCT_NAME = "B&I";
                        };
                        name = Debug;
                };
                89EBD58E0C95F43D000F04A0 /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
                                PRODUCT_NAME = "B&I";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                C5F3B1460E39910500B771AE /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ALWAYS_SEARCH_USER_PATHS = YES;
                                ARCHS = (
                                        x86_64,
                                        i386,
                                        ppc,
                                );
                                COPY_PHASE_STRIP = NO;
                                DEBUG_INFORMATION_FORMAT = dwarf;
                                EXECUTABLE_EXTENSION = dylib;
                                EXECUTABLE_PREFIX = lib;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                );
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_MODEL_TUNING = G5;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                HEADER_SEARCH_PATHS = (
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                        /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers,
                                        "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/core\"",
                                        "\"$(OBJROOT)/src/jni_headers/core\"",
                                        "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/additions\"",
                                        "\"$(OBJROOT)/src/jni_headers/additions\"",
                                        "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/test\"",
                                        "\"$(OBJROOT)/src/jni_headers/test\"",
                                );
                                INSTALL_PATH = /usr/local/lib;
                                LIBRARY_STYLE = DYNAMIC;
                                MACH_O_TYPE = mh_dylib;
                                PRODUCT_NAME = "JObjC-tests";
                                SKIP_INSTALL = YES;
                        };
                        name = Debug;
                };
                C5F3B1470E39910500B771AE /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                ALWAYS_SEARCH_USER_PATHS = YES;
                                ARCHS = (
                                        x86_64,
                                        i386,
                                        ppc,
                                );
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = dwarf;
                                EXECUTABLE_EXTENSION = dylib;
                                EXECUTABLE_PREFIX = lib;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                );
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SYSTEM_LIBRARY_DIR)/Frameworks/JavaVM.framework/Versions/A/Frameworks\"";
                                GCC_MODEL_TUNING = G5;
                                HEADER_SEARCH_PATHS = (
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
                                        "$(HEADER_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
                                        /System/Library/Frameworks/JavaVM.framework/Versions/A/Headers,
                                        "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/core\"",
                                        "\"$(OBJROOT)/src/jni_headers/core\"",
                                        "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/additions\"",
                                        "\"$(OBJROOT)/src/jni_headers/additions\"",
                                        "\"$(PROJECT_TEMP_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/src/jni_headers/test\"",
                                        "\"$(OBJROOT)/src/jni_headers/test\"",
                                );
                                INSTALL_PATH = /usr/local/lib;
                                LIBRARY_STYLE = DYNAMIC;
                                MACH_O_TYPE = mh_dylib;
                                PRODUCT_NAME = "JObjC-tests";
                                SKIP_INSTALL = YES;
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                C5F3B1540E39927A00B771AE /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                PRODUCT_NAME = "build-test";
                        };
                        name = Debug;
                };
                C5F3B1550E39927A00B771AE /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
                                PRODUCT_NAME = "build-test";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
                EB9FD86A0AEECD13008E157E /* Debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = NO;
                                GCC_DYNAMIC_NO_PIC = NO;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                PRODUCT_NAME = "build-core";
                        };
                        name = Debug;
                };
                EB9FD86B0AEECD13008E157E /* Release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
                                COPY_PHASE_STRIP = YES;
                                GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
                                PRODUCT_NAME = "build-core";
                                ZERO_LINK = NO;
                        };
                        name = Release;
                };
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
                4CEBA75C08679E4D0015D03E /* Build configuration list for PBXProject "JObjC" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                4CEBA75D08679E4D0015D03E /* Debug */,
                                4CEBA75E08679E4D0015D03E /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                4CEBA79108679F100015D03E /* Build configuration list for PBXNativeTarget "build-core-native" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                4CEBA79208679F100015D03E /* Debug */,
                                4CEBA79308679F100015D03E /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                89D7CA1C0CDBA9B000472EA2 /* Build configuration list for PBXLegacyTarget "build-generator-java" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                89D7CA170CDBA94D00472EA2 /* Debug */,
                                89D7CA180CDBA94D00472EA2 /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                89D7CB8E0CDC4ED900472EA2 /* Build configuration list for PBXLegacyTarget "run-generator" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                89D7CB880CDC4ED000472EA2 /* Debug */,
                                89D7CB890CDC4ED000472EA2 /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                89D7CC510CDE4C5200472EA2 /* Build configuration list for PBXLegacyTarget "build-generated-java" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                89D7CC4D0CDE4C0400472EA2 /* Debug */,
                                89D7CC4E0CDE4C0400472EA2 /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                89D7CC630CDE762000472EA2 /* Build configuration list for PBXLegacyTarget "build-additions-java" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                89D7CC610CDE75EC00472EA2 /* Debug */,
                                89D7CC620CDE75EC00472EA2 /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                89D7CC7A0CDE76F500472EA2 /* Build configuration list for PBXLegacyTarget "assemble-product-java" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                89D7CC730CDE767500472EA2 /* Debug */,
                                89D7CC740CDE767500472EA2 /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                89D7CCB50CDF9A2600472EA2 /* Build configuration list for PBXNativeTarget "build-additions-native" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                89D7CCB60CDF9A2600472EA2 /* Debug */,
                                89D7CCB70CDF9A2600472EA2 /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                89EBD5930C95F44E000F04A0 /* Build configuration list for PBXAggregateTarget "B&I" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                89EBD58D0C95F43D000F04A0 /* Debug */,
                                89EBD58E0C95F43D000F04A0 /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                C5F3B1480E39917500B771AE /* Build configuration list for PBXNativeTarget "build-test-native" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                C5F3B1460E39910500B771AE /* Debug */,
                                C5F3B1470E39910500B771AE /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                C5F3B15B0E3992AC00B771AE /* Build configuration list for PBXLegacyTarget "build-test-java" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                C5F3B1540E39927A00B771AE /* Debug */,
                                C5F3B1550E39927A00B771AE /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
                EB9FD8690AEECD13008E157E /* Build configuration list for PBXLegacyTarget "build-core-java" */ = {
                        isa = XCConfigurationList;
                        buildConfigurations = (
                                EB9FD86A0AEECD13008E157E /* Debug */,
                                EB9FD86B0AEECD13008E157E /* Release */,
                        );
                        defaultConfigurationIsVisible = 0;
                        defaultConfigurationName = Release;
                };
/* End XCConfigurationList section */
        };
        rootObject = 00E6828EFEC88D1A11DB9C8B /* Project object */;
}
