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

/* Begin PBXBuildFile section */
		379604B51D0F655B004CA8CC /* InviteViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 379604B41D0F655B004CA8CC /* InviteViewController.swift */; };
		37B018C91CFF7A9D004B0A15 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */; };
		37B018CA1CFF7A9D004B0A15 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */; };
		37B018CB1CFF7A9D004B0A15 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */; };
		37B018CC1CFF7A9D004B0A15 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 37B018BF1CFF7A9D004B0A15 /* Main.storyboard */; };
		37B018CD1CFF7A9D004B0A15 /* CircularImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */; };
		37B018CF1CFF7A9D004B0A15 /* MemberView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C31CFF7A9D004B0A15 /* MemberView.swift */; };
		37B018D01CFF7A9D004B0A15 /* Person.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C41CFF7A9D004B0A15 /* Person.swift */; };
		37B018D11CFF7A9D004B0A15 /* Task.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C51CFF7A9D004B0A15 /* Task.swift */; };
		37B018D21CFF7A9D004B0A15 /* TasksViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */; };
		37B018D31CFF7A9D004B0A15 /* TodoList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C71CFF7A9D004B0A15 /* TodoList.swift */; };
		37B018D41CFF7A9D004B0A15 /* TodosViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */; };
		931F8BBD1D19254300B97CF3 /* GoogleSignIn.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 931F8BB61D19254300B97CF3 /* GoogleSignIn.bundle */; };
		931F8BCF1D19257600B97CF3 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BCE1D19257600B97CF3 /* libz.tbd */; };
		931F8BD11D19258300B97CF3 /* AddressBook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BD01D19258300B97CF3 /* AddressBook.framework */; };
		931F8BD31D19258800B97CF3 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BD21D19258800B97CF3 /* StoreKit.framework */; };
		931F8BD51D19258F00B97CF3 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BD41D19258F00B97CF3 /* SystemConfiguration.framework */; };
		931F8BD71D19290B00B97CF3 /* LoginViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 931F8BD61D19290B00B97CF3 /* LoginViewController.swift */; };
		93213FEF1D1C8BB100297838 /* Syncbase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93213FEE1D1C8BB100297838 /* Syncbase.swift */; };
		932AD4E91D1A74A8000EA038 /* GoogleAppUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB31D19254300B97CF3 /* GoogleAppUtilities.framework */; };
		932AD4EA1D1A74A8000EA038 /* GoogleAuthUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB41D19254300B97CF3 /* GoogleAuthUtilities.framework */; };
		932AD4EB1D1A74A8000EA038 /* GoogleNetworkingUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB51D19254300B97CF3 /* GoogleNetworkingUtilities.framework */; };
		932AD4EC1D1A74A8000EA038 /* GoogleSymbolUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB81D19254300B97CF3 /* GoogleSymbolUtilities.framework */; };
		932AD4ED1D1A74A8000EA038 /* GoogleUtilities.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB91D19254300B97CF3 /* GoogleUtilities.framework */; };
		932AD4EE1D1A74C5000EA038 /* GoogleSignIn.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 931F8BB71D19254300B97CF3 /* GoogleSignIn.framework */; };
		932AD4F21D1B1050000EA038 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 932AD4F11D1B1050000EA038 /* GoogleService-Info.plist */; };
		932AD4FE1D1B202B000EA038 /* Syncbase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 938DEA941D10DA4A003C9734 /* Syncbase.framework */; };
		932AD4FF1D1B202B000EA038 /* Syncbase.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 938DEA941D10DA4A003C9734 /* Syncbase.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
		932AD5041D1B20C5000EA038 /* SafariServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 932AD5031D1B20C5000EA038 /* SafariServices.framework */; };
		932AD50E1D1BCFD3000EA038 /* Marshal.swift in Sources */ = {isa = PBXBuildFile; fileRef = 932AD50D1D1BCFD3000EA038 /* Marshal.swift */; };
		93824A7F1D2491A200F4851B /* SyncbaseCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93824A7C1D24919600F4851B /* SyncbaseCore.framework */; };
		93824A801D2491A200F4851B /* SyncbaseCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 93824A7C1D24919600F4851B /* SyncbaseCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
		93C462B01D2F108F00394BAB /* Dispatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93C462AF1D2F108F00394BAB /* Dispatch.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
		932AD5001D1B202B000EA038 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = 9374F6731D010711004ECE59;
			remoteInfo = Syncbase;
		};
		93824A7B1D24919600F4851B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 30AD2DFF1CDD506700A28A0C;
			remoteInfo = SyncbaseCore;
		};
		93824A7D1D24919600F4851B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 30AD2E091CDD506700A28A0C;
			remoteInfo = SyncbaseCoreTests;
		};
		93824A811D2491A200F4851B /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
			proxyType = 1;
			remoteGlobalIDString = 30AD2DFE1CDD506700A28A0C;
			remoteInfo = SyncbaseCore;
		};
		938DEA931D10DA4A003C9734 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 9374F6741D010711004ECE59;
			remoteInfo = Syncbase;
		};
		938DEA951D10DA4A003C9734 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
			proxyType = 2;
			remoteGlobalIDString = 9374F67E1D010711004ECE59;
			remoteInfo = SyncbaseTests;
		};
/* End PBXContainerItemProxy section */

/* Begin PBXCopyFilesBuildPhase section */
		932AD5021D1B202B000EA038 /* Embed Frameworks */ = {
			isa = PBXCopyFilesBuildPhase;
			buildActionMask = 2147483647;
			dstPath = "";
			dstSubfolderSpec = 10;
			files = (
				932AD4FF1D1B202B000EA038 /* Syncbase.framework in Embed Frameworks */,
				93824A801D2491A200F4851B /* SyncbaseCore.framework in Embed Frameworks */,
			);
			name = "Embed Frameworks";
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
		378398671CF3ADB000C35566 /* SyncbaseTodos.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SyncbaseTodos.app; sourceTree = BUILT_PRODUCTS_DIR; };
		379604B41D0F655B004CA8CC /* InviteViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InviteViewController.swift; sourceTree = "<group>"; };
		37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
		37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		37B018BE1CFF7A9D004B0A15 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
		37B018C01CFF7A9D004B0A15 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
		37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircularImageView.swift; sourceTree = "<group>"; };
		37B018C21CFF7A9D004B0A15 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
		37B018C31CFF7A9D004B0A15 /* MemberView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MemberView.swift; sourceTree = "<group>"; };
		37B018C41CFF7A9D004B0A15 /* Person.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Person.swift; sourceTree = "<group>"; };
		37B018C51CFF7A9D004B0A15 /* Task.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Task.swift; sourceTree = "<group>"; };
		37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TasksViewController.swift; sourceTree = "<group>"; };
		37B018C71CFF7A9D004B0A15 /* TodoList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodoList.swift; sourceTree = "<group>"; };
		37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodosViewController.swift; sourceTree = "<group>"; };
		931F8BB31D19254300B97CF3 /* GoogleAppUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleAppUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleAppUtilities.framework; sourceTree = "<group>"; };
		931F8BB41D19254300B97CF3 /* GoogleAuthUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleAuthUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleAuthUtilities.framework; sourceTree = "<group>"; };
		931F8BB51D19254300B97CF3 /* GoogleNetworkingUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleNetworkingUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleNetworkingUtilities.framework; sourceTree = "<group>"; };
		931F8BB61D19254300B97CF3 /* GoogleSignIn.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = GoogleSignIn.bundle; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleSignIn.bundle; sourceTree = "<group>"; };
		931F8BB71D19254300B97CF3 /* GoogleSignIn.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleSignIn.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleSignIn.framework; sourceTree = "<group>"; };
		931F8BB81D19254300B97CF3 /* GoogleSymbolUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleSymbolUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleSymbolUtilities.framework; sourceTree = "<group>"; };
		931F8BB91D19254300B97CF3 /* GoogleUtilities.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GoogleUtilities.framework; path = ../../../third_party/swift/google_signin_sdk_4_0_0/GoogleUtilities.framework; sourceTree = "<group>"; };
		931F8BCE1D19257600B97CF3 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
		931F8BD01D19258300B97CF3 /* AddressBook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AddressBook.framework; path = System/Library/Frameworks/AddressBook.framework; sourceTree = SDKROOT; };
		931F8BD21D19258800B97CF3 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
		931F8BD41D19258F00B97CF3 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
		931F8BD61D19290B00B97CF3 /* LoginViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoginViewController.swift; sourceTree = "<group>"; };
		93213FEE1D1C8BB100297838 /* Syncbase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Syncbase.swift; sourceTree = "<group>"; };
		932AD4F11D1B1050000EA038 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "SyncbaseTodos/GoogleService-Info.plist"; sourceTree = "<group>"; };
		932AD5031D1B20C5000EA038 /* SafariServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SafariServices.framework; path = System/Library/Frameworks/SafariServices.framework; sourceTree = SDKROOT; };
		932AD50D1D1BCFD3000EA038 /* Marshal.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Marshal.swift; sourceTree = "<group>"; };
		93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SyncbaseCore.xcodeproj; path = ../SyncbaseCore/SyncbaseCore.xcodeproj; sourceTree = "<group>"; };
		938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Syncbase.xcodeproj; path = ../Syncbase/Syncbase.xcodeproj; sourceTree = "<group>"; };
		93C462AF1D2F108F00394BAB /* Dispatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Dispatch.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
		378398641CF3ADB000C35566 /* Frameworks */ = {
			isa = PBXFrameworksBuildPhase;
			buildActionMask = 2147483647;
			files = (
				932AD5041D1B20C5000EA038 /* SafariServices.framework in Frameworks */,
				932AD4E91D1A74A8000EA038 /* GoogleAppUtilities.framework in Frameworks */,
				932AD4FE1D1B202B000EA038 /* Syncbase.framework in Frameworks */,
				932AD4EA1D1A74A8000EA038 /* GoogleAuthUtilities.framework in Frameworks */,
				932AD4EB1D1A74A8000EA038 /* GoogleNetworkingUtilities.framework in Frameworks */,
				932AD4EE1D1A74C5000EA038 /* GoogleSignIn.framework in Frameworks */,
				932AD4EC1D1A74A8000EA038 /* GoogleSymbolUtilities.framework in Frameworks */,
				932AD4ED1D1A74A8000EA038 /* GoogleUtilities.framework in Frameworks */,
				931F8BD51D19258F00B97CF3 /* SystemConfiguration.framework in Frameworks */,
				931F8BD31D19258800B97CF3 /* StoreKit.framework in Frameworks */,
				931F8BD11D19258300B97CF3 /* AddressBook.framework in Frameworks */,
				931F8BCF1D19257600B97CF3 /* libz.tbd in Frameworks */,
				93824A7F1D2491A200F4851B /* SyncbaseCore.framework in Frameworks */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
		3783985E1CF3ADB000C35566 = {
			isa = PBXGroup;
			children = (
				37B018BA1CFF7A9D004B0A15 /* SyncbaseTodos */,
				93824A831D2491AC00F4851B /* Frameworks */,
				378398681CF3ADB000C35566 /* Products */,
			);
			sourceTree = "<group>";
		};
		378398681CF3ADB000C35566 /* Products */ = {
			isa = PBXGroup;
			children = (
				378398671CF3ADB000C35566 /* SyncbaseTodos.app */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		37B018BA1CFF7A9D004B0A15 /* SyncbaseTodos */ = {
			isa = PBXGroup;
			children = (
				37B018D71CFF7B5A004B0A15 /* Views */,
				37B018D51CFF7B48004B0A15 /* Model */,
				37B018D61CFF7B52004B0A15 /* Util */,
				37B018BB1CFF7A9D004B0A15 /* AppDelegate.swift */,
				37B018BC1CFF7A9D004B0A15 /* Assets.xcassets */,
				37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */,
				37B018BF1CFF7A9D004B0A15 /* Main.storyboard */,
				37B018C21CFF7A9D004B0A15 /* Info.plist */,
			);
			path = SyncbaseTodos;
			sourceTree = "<group>";
		};
		37B018D51CFF7B48004B0A15 /* Model */ = {
			isa = PBXGroup;
			children = (
				37B018C41CFF7A9D004B0A15 /* Person.swift */,
				37B018C51CFF7A9D004B0A15 /* Task.swift */,
				37B018C71CFF7A9D004B0A15 /* TodoList.swift */,
				932AD50D1D1BCFD3000EA038 /* Marshal.swift */,
				93213FEE1D1C8BB100297838 /* Syncbase.swift */,
			);
			name = Model;
			sourceTree = "<group>";
		};
		37B018D61CFF7B52004B0A15 /* Util */ = {
			isa = PBXGroup;
			children = (
				37B018C11CFF7A9D004B0A15 /* CircularImageView.swift */,
				93C462AF1D2F108F00394BAB /* Dispatch.swift */,
				37B018C31CFF7A9D004B0A15 /* MemberView.swift */,
			);
			name = Util;
			sourceTree = "<group>";
		};
		37B018D71CFF7B5A004B0A15 /* Views */ = {
			isa = PBXGroup;
			children = (
				379604B41D0F655B004CA8CC /* InviteViewController.swift */,
				931F8BD61D19290B00B97CF3 /* LoginViewController.swift */,
				37B018C61CFF7A9D004B0A15 /* TasksViewController.swift */,
				37B018C81CFF7A9D004B0A15 /* TodosViewController.swift */,
			);
			name = Views;
			sourceTree = "<group>";
		};
		931F8BC11D19254700B97CF3 /* Google Sign-In */ = {
			isa = PBXGroup;
			children = (
				931F8BB61D19254300B97CF3 /* GoogleSignIn.bundle */,
				931F8BD01D19258300B97CF3 /* AddressBook.framework */,
				931F8BB31D19254300B97CF3 /* GoogleAppUtilities.framework */,
				931F8BB41D19254300B97CF3 /* GoogleAuthUtilities.framework */,
				931F8BB51D19254300B97CF3 /* GoogleNetworkingUtilities.framework */,
				931F8BB71D19254300B97CF3 /* GoogleSignIn.framework */,
				931F8BB81D19254300B97CF3 /* GoogleSymbolUtilities.framework */,
				931F8BB91D19254300B97CF3 /* GoogleUtilities.framework */,
				932AD5031D1B20C5000EA038 /* SafariServices.framework */,
				931F8BD21D19258800B97CF3 /* StoreKit.framework */,
				931F8BD41D19258F00B97CF3 /* SystemConfiguration.framework */,
				932AD4F11D1B1050000EA038 /* GoogleService-Info.plist */,
				931F8BCE1D19257600B97CF3 /* libz.tbd */,
			);
			name = "Google Sign-In";
			sourceTree = "<group>";
		};
		93824A761D24919600F4851B /* Products */ = {
			isa = PBXGroup;
			children = (
				93824A7C1D24919600F4851B /* SyncbaseCore.framework */,
				93824A7E1D24919600F4851B /* SyncbaseCoreTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		93824A831D2491AC00F4851B /* Frameworks */ = {
			isa = PBXGroup;
			children = (
				931F8BC11D19254700B97CF3 /* Google Sign-In */,
				938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */,
				93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */,
			);
			name = Frameworks;
			sourceTree = "<group>";
		};
		938DEA8E1D10DA4A003C9734 /* Products */ = {
			isa = PBXGroup;
			children = (
				938DEA941D10DA4A003C9734 /* Syncbase.framework */,
				938DEA961D10DA4A003C9734 /* SyncbaseTests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		378398661CF3ADB000C35566 /* SyncbaseTodos */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = 3783987B1CF3ADB000C35566 /* Build configuration list for PBXNativeTarget "SyncbaseTodos" */;
			buildPhases = (
				378398631CF3ADB000C35566 /* Sources */,
				378398641CF3ADB000C35566 /* Frameworks */,
				378398651CF3ADB000C35566 /* Resources */,
				932AD5021D1B202B000EA038 /* Embed Frameworks */,
			);
			buildRules = (
			);
			dependencies = (
				932AD5011D1B202B000EA038 /* PBXTargetDependency */,
				93824A821D2491A200F4851B /* PBXTargetDependency */,
			);
			name = SyncbaseTodos;
			productName = VanadiumTodos;
			productReference = 378398671CF3ADB000C35566 /* SyncbaseTodos.app */;
			productType = "com.apple.product-type.application";
		};
/* End PBXNativeTarget section */

/* Begin PBXProject section */
		3783985F1CF3ADB000C35566 /* Project object */ = {
			isa = PBXProject;
			attributes = {
				LastSwiftUpdateCheck = 0730;
				LastUpgradeCheck = 0730;
				ORGANIZATIONNAME = Google;
				TargetAttributes = {
					378398661CF3ADB000C35566 = {
						CreatedOnToolsVersion = 7.3.1;
					};
				};
			};
			buildConfigurationList = 378398621CF3ADB000C35566 /* Build configuration list for PBXProject "SyncbaseTodos" */;
			compatibilityVersion = "Xcode 3.2";
			developmentRegion = English;
			hasScannedForEncodings = 0;
			knownRegions = (
				en,
				Base,
			);
			mainGroup = 3783985E1CF3ADB000C35566;
			productRefGroup = 378398681CF3ADB000C35566 /* Products */;
			projectDirPath = "";
			projectReferences = (
				{
					ProductGroup = 938DEA8E1D10DA4A003C9734 /* Products */;
					ProjectRef = 938DEA8D1D10DA4A003C9734 /* Syncbase.xcodeproj */;
				},
				{
					ProductGroup = 93824A761D24919600F4851B /* Products */;
					ProjectRef = 93824A751D24919600F4851B /* SyncbaseCore.xcodeproj */;
				},
			);
			projectRoot = "";
			targets = (
				378398661CF3ADB000C35566 /* SyncbaseTodos */,
			);
		};
/* End PBXProject section */

/* Begin PBXReferenceProxy section */
		93824A7C1D24919600F4851B /* SyncbaseCore.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = SyncbaseCore.framework;
			remoteRef = 93824A7B1D24919600F4851B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		93824A7E1D24919600F4851B /* SyncbaseCoreTests.xctest */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.cfbundle;
			path = SyncbaseCoreTests.xctest;
			remoteRef = 93824A7D1D24919600F4851B /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		938DEA941D10DA4A003C9734 /* Syncbase.framework */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.framework;
			path = Syncbase.framework;
			remoteRef = 938DEA931D10DA4A003C9734 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
		938DEA961D10DA4A003C9734 /* SyncbaseTests.xctest */ = {
			isa = PBXReferenceProxy;
			fileType = wrapper.cfbundle;
			path = SyncbaseTests.xctest;
			remoteRef = 938DEA951D10DA4A003C9734 /* PBXContainerItemProxy */;
			sourceTree = BUILT_PRODUCTS_DIR;
		};
/* End PBXReferenceProxy section */

/* Begin PBXResourcesBuildPhase section */
		378398651CF3ADB000C35566 /* Resources */ = {
			isa = PBXResourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				931F8BBD1D19254300B97CF3 /* GoogleSignIn.bundle in Resources */,
				37B018CC1CFF7A9D004B0A15 /* Main.storyboard in Resources */,
				932AD4F21D1B1050000EA038 /* GoogleService-Info.plist in Resources */,
				37B018CA1CFF7A9D004B0A15 /* Assets.xcassets in Resources */,
				37B018CB1CFF7A9D004B0A15 /* LaunchScreen.storyboard in Resources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXResourcesBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
		378398631CF3ADB000C35566 /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				379604B51D0F655B004CA8CC /* InviteViewController.swift in Sources */,
				37B018CF1CFF7A9D004B0A15 /* MemberView.swift in Sources */,
				37B018D31CFF7A9D004B0A15 /* TodoList.swift in Sources */,
				37B018C91CFF7A9D004B0A15 /* AppDelegate.swift in Sources */,
				37B018D11CFF7A9D004B0A15 /* Task.swift in Sources */,
				37B018D41CFF7A9D004B0A15 /* TodosViewController.swift in Sources */,
				37B018D01CFF7A9D004B0A15 /* Person.swift in Sources */,
				37B018CD1CFF7A9D004B0A15 /* CircularImageView.swift in Sources */,
				932AD50E1D1BCFD3000EA038 /* Marshal.swift in Sources */,
				93213FEF1D1C8BB100297838 /* Syncbase.swift in Sources */,
				931F8BD71D19290B00B97CF3 /* LoginViewController.swift in Sources */,
				37B018D21CFF7A9D004B0A15 /* TasksViewController.swift in Sources */,
				93C462B01D2F108F00394BAB /* Dispatch.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
/* End PBXSourcesBuildPhase section */

/* Begin PBXTargetDependency section */
		932AD5011D1B202B000EA038 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = Syncbase;
			targetProxy = 932AD5001D1B202B000EA038 /* PBXContainerItemProxy */;
		};
		93824A821D2491A200F4851B /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			name = SyncbaseCore;
			targetProxy = 93824A811D2491A200F4851B /* PBXContainerItemProxy */;
		};
/* End PBXTargetDependency section */

/* Begin PBXVariantGroup section */
		37B018BD1CFF7A9D004B0A15 /* LaunchScreen.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				37B018BE1CFF7A9D004B0A15 /* Base */,
			);
			name = LaunchScreen.storyboard;
			sourceTree = "<group>";
		};
		37B018BF1CFF7A9D004B0A15 /* Main.storyboard */ = {
			isa = PBXVariantGroup;
			children = (
				37B018C01CFF7A9D004B0A15 /* Base */,
			);
			name = Main.storyboard;
			sourceTree = "<group>";
		};
/* End PBXVariantGroup section */

/* Begin XCBuildConfiguration section */
		378398791CF3ADB000C35566 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = dwarf;
				ENABLE_BITCODE = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				ENABLE_TESTABILITY = YES;
				FRAMEWORK_SEARCH_PATHS = $SRCROOT/../../../third_party/swift/google_signin_sdk_4_0_0;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_DYNAMIC_NO_PIC = NO;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_OPTIMIZATION_LEVEL = 0;
				GCC_PREPROCESSOR_DEFINITIONS = (
					"DEBUG=1",
					"$(inherited)",
				);
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				MTL_ENABLE_DEBUG_INFO = YES;
				ONLY_ACTIVE_ARCH = YES;
				OTHER_LDFLAGS = "-ObjC";
				SDKROOT = iphoneos;
				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
			};
			name = Debug;
		};
		3783987A1CF3ADB000C35566 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ALWAYS_SEARCH_USER_PATHS = NO;
				CLANG_ANALYZER_NONNULL = YES;
				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
				CLANG_CXX_LIBRARY = "libc++";
				CLANG_ENABLE_MODULES = YES;
				CLANG_ENABLE_OBJC_ARC = YES;
				CLANG_WARN_BOOL_CONVERSION = YES;
				CLANG_WARN_CONSTANT_CONVERSION = YES;
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
				CLANG_WARN_EMPTY_BODY = YES;
				CLANG_WARN_ENUM_CONVERSION = YES;
				CLANG_WARN_INT_CONVERSION = YES;
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
				CLANG_WARN_UNREACHABLE_CODE = YES;
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
				COPY_PHASE_STRIP = NO;
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
				ENABLE_BITCODE = NO;
				ENABLE_NS_ASSERTIONS = NO;
				ENABLE_STRICT_OBJC_MSGSEND = YES;
				FRAMEWORK_SEARCH_PATHS = $SRCROOT/../../../third_party/swift/google_signin_sdk_4_0_0;
				GCC_C_LANGUAGE_STANDARD = gnu99;
				GCC_NO_COMMON_BLOCKS = YES;
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
				GCC_WARN_UNDECLARED_SELECTOR = YES;
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
				GCC_WARN_UNUSED_FUNCTION = YES;
				GCC_WARN_UNUSED_VARIABLE = YES;
				IPHONEOS_DEPLOYMENT_TARGET = 9.0;
				MTL_ENABLE_DEBUG_INFO = NO;
				OTHER_LDFLAGS = "-ObjC";
				SDKROOT = iphoneos;
				VALIDATE_PRODUCT = YES;
			};
			name = Release;
		};
		3783987C1CF3ADB000C35566 /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)",
				);
				INFOPLIST_FILE = SyncbaseTodos/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.zinman.SyncbaseTodos;
				PRODUCT_NAME = SyncbaseTodos;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Debug;
		};
		3783987D1CF3ADB000C35566 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
				EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
				FRAMEWORK_SEARCH_PATHS = (
					"$(inherited)",
					"$(PROJECT_DIR)",
				);
				INFOPLIST_FILE = SyncbaseTodos/Info.plist;
				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
				PRODUCT_BUNDLE_IDENTIFIER = io.v.zinman.SyncbaseTodos;
				PRODUCT_NAME = SyncbaseTodos;
				TARGETED_DEVICE_FAMILY = "1,2";
			};
			name = Release;
		};
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
		378398621CF3ADB000C35566 /* Build configuration list for PBXProject "SyncbaseTodos" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				378398791CF3ADB000C35566 /* Debug */,
				3783987A1CF3ADB000C35566 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
		3783987B1CF3ADB000C35566 /* Build configuration list for PBXNativeTarget "SyncbaseTodos" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				3783987C1CF3ADB000C35566 /* Debug */,
				3783987D1CF3ADB000C35566 /* Release */,
			);
			defaultConfigurationIsVisible = 0;
			defaultConfigurationName = Release;
		};
/* End XCConfigurationList section */
	};
	rootObject = 3783985F1CF3ADB000C35566 /* Project object */;
}
