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

/* Begin PBXBuildFile section */
		1A624E590DCBC7F6006898C8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A624E580DCBC7F6006898C8 /* main.m */; };
		1A6250420DCBC81B006898C8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A6250410DCBC81B006898C8 /* Cocoa.framework */; };
		1A80001B0FDB2C85000F3646 /* MovieControllerLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1A80001A0FDB2C85000F3646 /* MovieControllerLayer.m */; };
		1A80011A0FDB2CB2000F3646 /* Pause.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001140FDB2CB2000F3646 /* Pause.tiff */; };
		1A80011B0FDB2CB2000F3646 /* Play.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001150FDB2CB2000F3646 /* Play.tiff */; };
		1A80011C0FDB2CB2000F3646 /* SliderTrackCenter.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001160FDB2CB2000F3646 /* SliderTrackCenter.tiff */; };
		1A80011D0FDB2CB2000F3646 /* SliderTrackLeft.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001170FDB2CB2000F3646 /* SliderTrackLeft.tiff */; };
		1A80011E0FDB2CB2000F3646 /* SliderTrackRight.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001180FDB2CB2000F3646 /* SliderTrackRight.tiff */; };
		1A80011F0FDB2CB2000F3646 /* Thumb.tiff in Resources */ = {isa = PBXBuildFile; fileRef = 1A8001190FDB2CB2000F3646 /* Thumb.tiff */; };
		1A8001470FDB2E65000F3646 /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A8001460FDB2E65000F3646 /* QTKit.framework */; };
		1A8C87AA0EF2FBB3003F6E81 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */; };
		8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 8D5B49A704867FD3000E48DA /* InfoPlist.strings */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
		089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
		1A624E580DCBC7F6006898C8 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
		1A6250410DCBC81B006898C8 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
		1A8000190FDB2C85000F3646 /* MovieControllerLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MovieControllerLayer.h; sourceTree = "<group>"; };
		1A80001A0FDB2C85000F3646 /* MovieControllerLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MovieControllerLayer.m; sourceTree = "<group>"; };
		1A8001140FDB2CB2000F3646 /* Pause.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Pause.tiff; sourceTree = "<group>"; };
		1A8001150FDB2CB2000F3646 /* Play.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Play.tiff; sourceTree = "<group>"; };
		1A8001160FDB2CB2000F3646 /* SliderTrackCenter.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = SliderTrackCenter.tiff; sourceTree = "<group>"; };
		1A8001170FDB2CB2000F3646 /* SliderTrackLeft.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = SliderTrackLeft.tiff; sourceTree = "<group>"; };
		1A8001180FDB2CB2000F3646 /* SliderTrackRight.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = SliderTrackRight.tiff; sourceTree = "<group>"; };
		1A8001190FDB2CB2000F3646 /* Thumb.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; path = Thumb.tiff; sourceTree = "<group>"; };
		1A8001460FDB2E65000F3646 /* QTKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = /System/Library/Frameworks/QTKit.framework; sourceTree = "<absolute>"; };
		1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
		8D576316048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin.plugin */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NetscapeCoreAnimationMoviePlugin.plugin; sourceTree = BUILT_PRODUCTS_DIR; };
		8D576317048677EA00EA77CD /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		8D576313048677EA00EA77CD /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1A6250420DCBC81B006898C8 /* Cocoa.framework in Frameworks */,
				1A8001470FDB2E65000F3646 /* QTKit.framework in Frameworks */,
				1A8C87AA0EF2FBB3003F6E81 /* QuartzCore.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		089C166AFE841209C02AAC07 /* NetscapeCoreAnimationMoviePlugin */ = {
			isa = PBXGroup;
			children = (
				08FB77AFFE84173DC02AAC07 /* Source */,
				089C167CFE841241C02AAC07 /* Resources */,
				089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
				19C28FB6FE9D52B211CA2CBB /* Products */,
				1A8001460FDB2E65000F3646 /* QTKit.framework */,
			);
			name = NetscapeCoreAnimationMoviePlugin;
			sourceTree = "<group>";
		};
		089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
			isa = PBXGroup;
			children = (
				1A6250410DCBC81B006898C8 /* Cocoa.framework */,
				1A8C87A90EF2FBB3003F6E81 /* QuartzCore.framework */,
			);
			name = "External Frameworks and Libraries";
			sourceTree = "<group>";
		};
		089C167CFE841241C02AAC07 /* Resources */ = {
			isa = PBXGroup;
			children = (
				8D576317048677EA00EA77CD /* Info.plist */,
				8D5B49A704867FD3000E48DA /* InfoPlist.strings */,
				1A8001140FDB2CB2000F3646 /* Pause.tiff */,
				1A8001150FDB2CB2000F3646 /* Play.tiff */,
				1A8001160FDB2CB2000F3646 /* SliderTrackCenter.tiff */,
				1A8001170FDB2CB2000F3646 /* SliderTrackLeft.tiff */,
				1A8001180FDB2CB2000F3646 /* SliderTrackRight.tiff */,
				1A8001190FDB2CB2000F3646 /* Thumb.tiff */,
			);
			name = Resources;
			sourceTree = "<group>";
		};
		08FB77AFFE84173DC02AAC07 /* Source */ = {
			isa = PBXGroup;
			children = (
				1A624E580DCBC7F6006898C8 /* main.m */,
				1A8000190FDB2C85000F3646 /* MovieControllerLayer.h */,
				1A80001A0FDB2C85000F3646 /* MovieControllerLayer.m */,
			);
			name = Source;
			sourceTree = "<group>";
		};
		19C28FB6FE9D52B211CA2CBB /* Products */ = {
			isa = PBXGroup;
			children = (
				8D576316048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin.plugin */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		8D57630D048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCoreAnimationMoviePlugin" */;
			buildPhases = (
				8D576311048677EA00EA77CD /* Sources */,
				8D57630F048677EA00EA77CD /* Resources */,
				8D576313048677EA00EA77CD /* Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = NetscapeCoreAnimationMoviePlugin;
			productInstallPath = "$(HOME)/Library/Bundles";
			productName = NetscapeCoreAnimationMoviePlugin;
			productReference = 8D576316048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin.plugin */;
			productType = "com.apple.product-type.bundle";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		089C1669FE841209C02AAC07 /* Project object */ = {
			isa = PBXProject;
			buildConfigurationList = 149C298708902C53008A9EFC /* Build configuration list for PBXProject "NetscapeCoreAnimationMoviePlugin" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 1;
			knownRegions = (
				English,
				Japanese,
				French,
				German,
			);
			mainGroup = 089C166AFE841209C02AAC07 /* NetscapeCoreAnimationMoviePlugin */;
			projectDirPath = "";
			projectRoot = "";
			targets = (
				8D57630D048677EA00EA77CD /* NetscapeCoreAnimationMoviePlugin */,
			);
		};
/* End PBXProject section */

/* Begin PBXResourcesBuildPhase section */
		8D57630F048677EA00EA77CD /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				8D5B49A804867FD3000E48DA /* InfoPlist.strings in Resources */,
				1A80011A0FDB2CB2000F3646 /* Pause.tiff in Resources */,
				1A80011B0FDB2CB2000F3646 /* Play.tiff in Resources */,
				1A80011C0FDB2CB2000F3646 /* SliderTrackCenter.tiff in Resources */,
				1A80011D0FDB2CB2000F3646 /* SliderTrackLeft.tiff in Resources */,
				1A80011E0FDB2CB2000F3646 /* SliderTrackRight.tiff in Resources */,
				1A80011F0FDB2CB2000F3646 /* Thumb.tiff in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		8D576311048677EA00EA77CD /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				1A624E590DCBC7F6006898C8 /* main.m in Sources */,
				1A80001B0FDB2C85000F3646 /* MovieControllerLayer.m in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
		8D5B49A704867FD3000E48DA /* InfoPlist.strings */ = {
			isa = PBXVariantGroup;
			children = (
				089C167EFE841241C02AAC07 /* English */,
			);
			name = InfoPlist.strings;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		149C298408902C53008A9EFC /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				COPY_PHASE_STRIP = NO;
				GCC_DEBUGGING_SYMBOLS = full;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_ENABLE_FIX_AND_CONTINUE = YES;
				GCC_MODEL_TUNING = G5;
				GCC_OPTIMIZATION_LEVEL = 0;
				INFOPLIST_FILE = Info.plist;
				INSTALL_PATH = "$(HOME)/Library/Bundles";
				PRODUCT_NAME = NetscapeCoreAnimationMoviePlugin;
				WRAPPER_EXTENSION = plugin;
				ZERO_LINK = YES;
			};
			name = Debug;
		};
		149C298508902C53008A9EFC /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = (
					ppc,
					i386,
				);
				GCC_DEBUGGING_SYMBOLS = full;
				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
				GCC_MODEL_TUNING = G5;
				GCC_OPTIMIZATION_LEVEL = 0;
				INFOPLIST_FILE = Info.plist;
				INSTALL_PATH = "$(HOME)/Library/Bundles";
				PRODUCT_NAME = NetscapeCoreAnimationMoviePlugin;
				WRAPPER_EXTENSION = plugin;
			};
			name = Release;
		};
		149C298808902C53008A9EFC /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64";
				GCC_C_LANGUAGE_STANDARD = c99;
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
				SDKROOT = macosx10.6;
			};
			name = Debug;
		};
		149C298908902C53008A9EFC /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ARCHS = i386;
				ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "ppc i386 ppc64 x86_64";
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				PREBINDING = NO;
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		149C298308902C53008A9EFC /* Build configuration list for PBXNativeTarget "NetscapeCoreAnimationMoviePlugin" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				149C298408902C53008A9EFC /* Debug */,
				149C298508902C53008A9EFC /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		149C298708902C53008A9EFC /* Build configuration list for PBXProject "NetscapeCoreAnimationMoviePlugin" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				149C298808902C53008A9EFC /* Debug */,
				149C298908902C53008A9EFC /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}
