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

/* Begin PBXBuildFile section */
		DA3130A41844B4CF002E953B /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = DA3130A21844B4CF002E953B /* DDMultiFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DA3130A51844B4CF002E953B /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DA3130A31844B4CF002E953B /* DDMultiFormatter.m */; };
		DCB3185514EB418E001CFBEE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCB3185414EB418E001CFBEE /* Cocoa.framework */; };
		DCB3185F14EB418E001CFBEE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DCB3185D14EB418E001CFBEE /* InfoPlist.strings */; };
		DCB318B614ED6BAB001CFBEE /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB318A614ED6BAB001CFBEE /* DDAbstractDatabaseLogger.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318B714ED6BAB001CFBEE /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318A714ED6BAB001CFBEE /* DDAbstractDatabaseLogger.m */; };
		DCB318B814ED6BAB001CFBEE /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB318A814ED6BAB001CFBEE /* DDASLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318B914ED6BAB001CFBEE /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318A914ED6BAB001CFBEE /* DDASLLogger.m */; };
		DCB318BA14ED6BAB001CFBEE /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB318AA14ED6BAB001CFBEE /* DDFileLogger.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318BB14ED6BAB001CFBEE /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318AB14ED6BAB001CFBEE /* DDFileLogger.m */; };
		DCB318BC14ED6BAB001CFBEE /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB318AC14ED6BAB001CFBEE /* DDLog.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318BD14ED6BAB001CFBEE /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318AD14ED6BAB001CFBEE /* DDLog.m */; };
		DCB318BE14ED6BAB001CFBEE /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB318AE14ED6BAB001CFBEE /* DDTTYLogger.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318BF14ED6BAB001CFBEE /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318AF14ED6BAB001CFBEE /* DDTTYLogger.m */; };
		DCB318C014ED6BAB001CFBEE /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB318B114ED6BAB001CFBEE /* DDContextFilterLogFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318C114ED6BAB001CFBEE /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318B214ED6BAB001CFBEE /* DDContextFilterLogFormatter.m */; };
		DCB318C214ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB318B314ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318C314ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318B414ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.m */; };
		DCB318C514ED6BFD001CFBEE /* Lumberjack.h in Headers */ = {isa = PBXBuildFile; fileRef = DCB3186114EB418E001CFBEE /* Lumberjack.h */; settings = {ATTRIBUTES = (Public, ); }; };
		DCB318CC14ED6C3B001CFBEE /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCB3185414EB418E001CFBEE /* Cocoa.framework */; };
		DCB318D214ED6C3B001CFBEE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DCB318D014ED6C3B001CFBEE /* InfoPlist.strings */; };
		DCB318D414ED6C3B001CFBEE /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318D314ED6C3B001CFBEE /* main.m */; };
		DCB318D814ED6C3B001CFBEE /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = DCB318D614ED6C3B001CFBEE /* Credits.rtf */; };
		DCB318DB14ED6C3B001CFBEE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DCB318DA14ED6C3B001CFBEE /* AppDelegate.m */; };
		DCB318DE14ED6C3B001CFBEE /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = DCB318DC14ED6C3B001CFBEE /* MainMenu.xib */; };
		DCB318E414ED6C61001CFBEE /* Lumberjack.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCB3185114EB418E001CFBEE /* Lumberjack.framework */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		DCB318E214ED6C43001CFBEE /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = DCB3184714EB418D001CFBEE /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = DCB3185014EB418E001CFBEE;
			remoteInfo = Lumberjack;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
		DA3130A21844B4CF002E953B /* DDMultiFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDMultiFormatter.h; sourceTree = "<group>"; };
		DA3130A31844B4CF002E953B /* DDMultiFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDMultiFormatter.m; sourceTree = "<group>"; };
		DCB3185114EB418E001CFBEE /* Lumberjack.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Lumberjack.framework; sourceTree = BUILT_PRODUCTS_DIR; };
		DCB3185414EB418E001CFBEE /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
		DCB3185714EB418E001CFBEE /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
		DCB3185814EB418E001CFBEE /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
		DCB3185914EB418E001CFBEE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
		DCB3185C14EB418E001CFBEE /* Lumberjack-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Lumberjack-Info.plist"; sourceTree = "<group>"; };
		DCB3185E14EB418E001CFBEE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DCB3186014EB418E001CFBEE /* Lumberjack-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Lumberjack-Prefix.pch"; sourceTree = "<group>"; };
		DCB3186114EB418E001CFBEE /* Lumberjack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Lumberjack.h; sourceTree = "<group>"; };
		DCB318A614ED6BAB001CFBEE /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = ../../../../Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = "<group>"; };
		DCB318A714ED6BAB001CFBEE /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = ../../../../Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = "<group>"; };
		DCB318A814ED6BAB001CFBEE /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = ../../../../Lumberjack/DDASLLogger.h; sourceTree = "<group>"; };
		DCB318A914ED6BAB001CFBEE /* DDASLLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = ../../../../Lumberjack/DDASLLogger.m; sourceTree = "<group>"; };
		DCB318AA14ED6BAB001CFBEE /* DDFileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = ../../../../Lumberjack/DDFileLogger.h; sourceTree = "<group>"; };
		DCB318AB14ED6BAB001CFBEE /* DDFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = ../../../../Lumberjack/DDFileLogger.m; sourceTree = "<group>"; };
		DCB318AC14ED6BAB001CFBEE /* DDLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = ../../../../Lumberjack/DDLog.h; sourceTree = "<group>"; };
		DCB318AD14ED6BAB001CFBEE /* DDLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = ../../../../Lumberjack/DDLog.m; sourceTree = "<group>"; };
		DCB318AE14ED6BAB001CFBEE /* DDTTYLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = ../../../../Lumberjack/DDTTYLogger.h; sourceTree = "<group>"; };
		DCB318AF14ED6BAB001CFBEE /* DDTTYLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = ../../../../Lumberjack/DDTTYLogger.m; sourceTree = "<group>"; };
		DCB318B114ED6BAB001CFBEE /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDContextFilterLogFormatter.h; sourceTree = "<group>"; };
		DCB318B214ED6BAB001CFBEE /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDContextFilterLogFormatter.m; sourceTree = "<group>"; };
		DCB318B314ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDDispatchQueueLogFormatter.h; sourceTree = "<group>"; };
		DCB318B414ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDDispatchQueueLogFormatter.m; sourceTree = "<group>"; };
		DCB318CA14ED6C3B001CFBEE /* FmwkTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FmwkTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
		DCB318CF14ED6C3B001CFBEE /* FmwkTest-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "FmwkTest-Info.plist"; sourceTree = "<group>"; };
		DCB318D114ED6C3B001CFBEE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		DCB318D314ED6C3B001CFBEE /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		DCB318D514ED6C3B001CFBEE /* FmwkTest-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FmwkTest-Prefix.pch"; sourceTree = "<group>"; };
		DCB318D714ED6C3B001CFBEE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = "<group>"; };
		DCB318D914ED6C3B001CFBEE /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
		DCB318DA14ED6C3B001CFBEE /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
		DCB318DD14ED6C3B001CFBEE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		DCB3184D14EB418E001CFBEE /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCB3185514EB418E001CFBEE /* Cocoa.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DCB318C714ED6C3B001CFBEE /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCB318CC14ED6C3B001CFBEE /* Cocoa.framework in Frameworks */,
				DCB318E414ED6C61001CFBEE /* Lumberjack.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		DCB3184514EB418D001CFBEE = {
			isa = PBXGroup;
			children = (
				DCB3185A14EB418E001CFBEE /* Lumberjack */,
				DCB3185B14EB418E001CFBEE /* Supporting Files */,
				DCB318CD14ED6C3B001CFBEE /* FmwkTest */,
				DCB3185314EB418E001CFBEE /* Frameworks */,
				DCB3185214EB418E001CFBEE /* Products */,
			);
			sourceTree = "<group>";
		};
		DCB3185214EB418E001CFBEE /* Products */ = {
			isa = PBXGroup;
			children = (
				DCB3185114EB418E001CFBEE /* Lumberjack.framework */,
				DCB318CA14ED6C3B001CFBEE /* FmwkTest.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		DCB3185314EB418E001CFBEE /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCB3185414EB418E001CFBEE /* Cocoa.framework */,
				DCB3185614EB418E001CFBEE /* Other Frameworks */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		DCB3185614EB418E001CFBEE /* Other Frameworks */ = {
			isa = PBXGroup;
			children = (
				DCB3185714EB418E001CFBEE /* AppKit.framework */,
				DCB3185814EB418E001CFBEE /* CoreData.framework */,
				DCB3185914EB418E001CFBEE /* Foundation.framework */,
			);
			name = "Other Frameworks";
			sourceTree = "<group>";
		};
		DCB3185A14EB418E001CFBEE /* Lumberjack */ = {
			isa = PBXGroup;
			children = (
				DCB3186114EB418E001CFBEE /* Lumberjack.h */,
				DCB318AC14ED6BAB001CFBEE /* DDLog.h */,
				DCB318AD14ED6BAB001CFBEE /* DDLog.m */,
				DCB318A814ED6BAB001CFBEE /* DDASLLogger.h */,
				DCB318A914ED6BAB001CFBEE /* DDASLLogger.m */,
				DCB318AE14ED6BAB001CFBEE /* DDTTYLogger.h */,
				DCB318AF14ED6BAB001CFBEE /* DDTTYLogger.m */,
				DCB318AA14ED6BAB001CFBEE /* DDFileLogger.h */,
				DCB318AB14ED6BAB001CFBEE /* DDFileLogger.m */,
				DCB318A614ED6BAB001CFBEE /* DDAbstractDatabaseLogger.h */,
				DCB318A714ED6BAB001CFBEE /* DDAbstractDatabaseLogger.m */,
				DCB318B014ED6BAB001CFBEE /* Extensions */,
			);
			path = Lumberjack;
			sourceTree = "<group>";
		};
		DCB3185B14EB418E001CFBEE /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DCB3185C14EB418E001CFBEE /* Lumberjack-Info.plist */,
				DCB3185D14EB418E001CFBEE /* InfoPlist.strings */,
				DCB3186014EB418E001CFBEE /* Lumberjack-Prefix.pch */,
			);
			name = "Supporting Files";
			path = Lumberjack;
			sourceTree = "<group>";
		};
		DCB318B014ED6BAB001CFBEE /* Extensions */ = {
			isa = PBXGroup;
			children = (
				DCB318B114ED6BAB001CFBEE /* DDContextFilterLogFormatter.h */,
				DCB318B214ED6BAB001CFBEE /* DDContextFilterLogFormatter.m */,
				DCB318B314ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.h */,
				DCB318B414ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.m */,
				DA3130A21844B4CF002E953B /* DDMultiFormatter.h */,
				DA3130A31844B4CF002E953B /* DDMultiFormatter.m */,
			);
			name = Extensions;
			path = ../../../../Lumberjack/Extensions;
			sourceTree = "<group>";
		};
		DCB318CD14ED6C3B001CFBEE /* FmwkTest */ = {
			isa = PBXGroup;
			children = (
				DCB318D914ED6C3B001CFBEE /* AppDelegate.h */,
				DCB318DA14ED6C3B001CFBEE /* AppDelegate.m */,
				DCB318DC14ED6C3B001CFBEE /* MainMenu.xib */,
				DCB318CE14ED6C3B001CFBEE /* Supporting Files */,
			);
			path = FmwkTest;
			sourceTree = "<group>";
		};
		DCB318CE14ED6C3B001CFBEE /* Supporting Files */ = {
			isa = PBXGroup;
			children = (
				DCB318CF14ED6C3B001CFBEE /* FmwkTest-Info.plist */,
				DCB318D014ED6C3B001CFBEE /* InfoPlist.strings */,
				DCB318D314ED6C3B001CFBEE /* main.m */,
				DCB318D514ED6C3B001CFBEE /* FmwkTest-Prefix.pch */,
				DCB318D614ED6C3B001CFBEE /* Credits.rtf */,
			);
			name = "Supporting Files";
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
		DCB3184E14EB418E001CFBEE /* Headers */ = {
			isa = PBXHeadersBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCB318BC14ED6BAB001CFBEE /* DDLog.h in Headers */,
				DCB318B614ED6BAB001CFBEE /* DDAbstractDatabaseLogger.h in Headers */,
				DCB318B814ED6BAB001CFBEE /* DDASLLogger.h in Headers */,
				DCB318BA14ED6BAB001CFBEE /* DDFileLogger.h in Headers */,
				DCB318BE14ED6BAB001CFBEE /* DDTTYLogger.h in Headers */,
				DA3130A41844B4CF002E953B /* DDMultiFormatter.h in Headers */,
				DCB318C014ED6BAB001CFBEE /* DDContextFilterLogFormatter.h in Headers */,
				DCB318C214ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.h in Headers */,
				DCB318C514ED6BFD001CFBEE /* Lumberjack.h in Headers */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXHeadersBuildPhase section */

/* Begin PBXNativeTarget section */
		DCB3185014EB418E001CFBEE /* Lumberjack */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DCB3186614EB418E001CFBEE /* Build configuration list for PBXNativeTarget "Lumberjack" */;
			buildPhases = (
				DCB3184C14EB418E001CFBEE /* Sources */,
				DCB3184D14EB418E001CFBEE /* Frameworks */,
				DCB3184E14EB418E001CFBEE /* Headers */,
				DCB3184F14EB418E001CFBEE /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = Lumberjack;
			productName = Lumberjack;
			productReference = DCB3185114EB418E001CFBEE /* Lumberjack.framework */;
			productType = "com.apple.product-type.framework";
		};
		DCB318C914ED6C3B001CFBEE /* FmwkTest */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = DCB318DF14ED6C3B001CFBEE /* Build configuration list for PBXNativeTarget "FmwkTest" */;
			buildPhases = (
				DCB318C614ED6C3B001CFBEE /* Sources */,
				DCB318C714ED6C3B001CFBEE /* Frameworks */,
				DCB318C814ED6C3B001CFBEE /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
				DCB318E314ED6C43001CFBEE /* PBXTargetDependency */,
			);
			name = FmwkTest;
			productName = FmwkTest;
			productReference = DCB318CA14ED6C3B001CFBEE /* FmwkTest.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		DCB3184714EB418D001CFBEE /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastUpgradeCheck = 0500;
			};
			buildConfigurationList = DCB3184A14EB418D001CFBEE /* Build configuration list for PBXProject "Lumberjack" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
			);
			mainGroup = DCB3184514EB418D001CFBEE;
			productRefGroup = DCB3185214EB418E001CFBEE /* Products */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				DCB3185014EB418E001CFBEE /* Lumberjack */,
				DCB318C914ED6C3B001CFBEE /* FmwkTest */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		DCB3184F14EB418E001CFBEE /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCB3185F14EB418E001CFBEE /* InfoPlist.strings in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DCB318C814ED6C3B001CFBEE /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCB318D214ED6C3B001CFBEE /* InfoPlist.strings in Resources */,
				DCB318D814ED6C3B001CFBEE /* Credits.rtf in Resources */,
				DCB318DE14ED6C3B001CFBEE /* MainMenu.xib in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		DCB3184C14EB418E001CFBEE /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCB318B714ED6BAB001CFBEE /* DDAbstractDatabaseLogger.m in Sources */,
				DCB318B914ED6BAB001CFBEE /* DDASLLogger.m in Sources */,
				DCB318BB14ED6BAB001CFBEE /* DDFileLogger.m in Sources */,
				DCB318BD14ED6BAB001CFBEE /* DDLog.m in Sources */,
				DA3130A51844B4CF002E953B /* DDMultiFormatter.m in Sources */,
				DCB318BF14ED6BAB001CFBEE /* DDTTYLogger.m in Sources */,
				DCB318C114ED6BAB001CFBEE /* DDContextFilterLogFormatter.m in Sources */,
				DCB318C314ED6BAB001CFBEE /* DDDispatchQueueLogFormatter.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		DCB318C614ED6C3B001CFBEE /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				DCB318D414ED6C3B001CFBEE /* main.m in Sources */,
				DCB318DB14ED6C3B001CFBEE /* AppDelegate.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		DCB318E314ED6C43001CFBEE /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = DCB3185014EB418E001CFBEE /* Lumberjack */;
			targetProxy = DCB318E214ED6C43001CFBEE /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		DCB3185D14EB418E001CFBEE /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DCB3185E14EB418E001CFBEE /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		DCB318D014ED6C3B001CFBEE /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				DCB318D114ED6C3B001CFBEE /* en */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
		DCB318D614ED6C3B001CFBEE /* Credits.rtf */ = {
			isa = PBXVariantGroup;
			children = (
				DCB318D714ED6C3B001CFBEE /* en */,
			);
			name = Credits.rtf;
			sourceTree = "<group>";
		};
		DCB318DC14ED6C3B001CFBEE /* MainMenu.xib */ = {
			isa = PBXVariantGroup;
			children = (
				DCB318DD14ED6C3B001CFBEE /* en */,
			);
			name = MainMenu.xib;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		DCB3186414EB418E001CFBEE /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = NO;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				ONLY_ACTIVE_ARCH = YES;
				SDKROOT = macosx;
			};
			name = Debug;
		};
		DCB3186514EB418E001CFBEE /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				COPY_PHASE_STRIP = YES;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				MACOSX_DEPLOYMENT_TARGET = 10.7;
				SDKROOT = macosx;
			};
			name = Release;
		};
		DCB3186714EB418E001CFBEE /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				FRAMEWORK_VERSION = A;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Lumberjack/Lumberjack-Prefix.pch";
				INFOPLIST_FILE = "Lumberjack/Lumberjack-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = framework;
			};
			name = Debug;
		};
		DCB3186814EB418E001CFBEE /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				DYLIB_COMPATIBILITY_VERSION = 1;
				DYLIB_CURRENT_VERSION = 1;
				FRAMEWORK_VERSION = A;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "Lumberjack/Lumberjack-Prefix.pch";
				INFOPLIST_FILE = "Lumberjack/Lumberjack-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = framework;
			};
			name = Release;
		};
		DCB318E014ED6C3B001CFBEE /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "FmwkTest/FmwkTest-Prefix.pch";
				INFOPLIST_FILE = "FmwkTest/FmwkTest-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Debug;
		};
		DCB318E114ED6C3B001CFBEE /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COMBINE_HIDPI_IMAGES = YES;
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
				GCC_PREFIX_HEADER = "FmwkTest/FmwkTest-Prefix.pch";
				INFOPLIST_FILE = "FmwkTest/FmwkTest-Info.plist";
				PRODUCT_NAME = "$(TARGET_NAME)";
				WRAPPER_EXTENSION = app;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		DCB3184A14EB418D001CFBEE /* Build configuration list for PBXProject "Lumberjack" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCB3186414EB418E001CFBEE /* Debug */,
				DCB3186514EB418E001CFBEE /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DCB3186614EB418E001CFBEE /* Build configuration list for PBXNativeTarget "Lumberjack" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCB3186714EB418E001CFBEE /* Debug */,
				DCB3186814EB418E001CFBEE /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		DCB318DF14ED6C3B001CFBEE /* Build configuration list for PBXNativeTarget "FmwkTest" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				DCB318E014ED6C3B001CFBEE /* Debug */,
				DCB318E114ED6C3B001CFBEE /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = DCB3184714EB418D001CFBEE /* Project object */;
}
