diff --git a/.gitmodules b/.gitmodules index c7965d7e..8b03e0d0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,6 +10,3 @@ [submodule "External/RHStatusItemView"] path = External/RHStatusItemView url = git://github.com/lhunath/RHStatusItemView.git -[submodule "External/LoveLyndir"] - path = External/LoveLyndir - url = git://github.com/Lyndir/love-lyndir.client.git diff --git a/.travis.yml b/.travis.yml index 9d6e9b2c..aacdecb0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: objective-c xcode_workspace: MasterPassword.xcworkspace -xcode_scheme: "'MasterPassword iOS (Development)'" +xcode_scheme: "MasterPassword iOS (Development)" xcode_sdk: iphonesimulator git: submodules: false diff --git a/External/LoveLyndir b/External/LoveLyndir deleted file mode 160000 index 74ec57e4..00000000 --- a/External/LoveLyndir +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 74ec57e46143ce33d01afd9cea89abe7ed97628d diff --git a/External/Pearl b/External/Pearl index 59dc05c9..bcc29c2b 160000 --- a/External/Pearl +++ b/External/Pearl @@ -1 +1 @@ -Subproject commit 59dc05c9cca43504bad026dc4633dbba34b4cc43 +Subproject commit bcc29c2b07a9d95701dc5e607113d69e75bf3ce2 diff --git a/MasterPassword/ObjC/MPAlgorithm.m b/MasterPassword/ObjC/MPAlgorithm.m index 8d557278..190c85e5 100644 --- a/MasterPassword/ObjC/MPAlgorithm.m +++ b/MasterPassword/ObjC/MPAlgorithm.m @@ -24,7 +24,7 @@ id MPAlgorithmForVersion(NSUInteger version) { versionToAlgorithm = [NSMutableDictionary dictionary]; id algorithm = versionToAlgorithm[@(version)]; - if (!algorithm) if ((algorithm = [NSClassFromString( PearlString( @"MPAlgorithmV%lu", (unsigned long)version ) ) new])) + if (!algorithm) if ((algorithm = [NSClassFromString( strf( @"MPAlgorithmV%lu", (unsigned long)version ) ) new])) versionToAlgorithm[@(version)] = algorithm; return algorithm; diff --git a/MasterPassword/ObjC/Mac/MPElementsTableView.h b/MasterPassword/ObjC/Mac/MPElementsTableView.h new file mode 100644 index 00000000..aaa864f0 --- /dev/null +++ b/MasterPassword/ObjC/Mac/MPElementsTableView.h @@ -0,0 +1,27 @@ +/** + * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com) + * + * See the enclosed file LICENSE for license information (LGPLv3). If you did + * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt + * + * @author Maarten Billemont + * @license http://www.gnu.org/licenses/lgpl-3.0.txt + */ + +// +// MPElementsTableView.h +// MPElementsTableView +// +// Created by lhunath on 2014-06-30. +// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved. +// + +#import + +@class MPPasswordWindowController; + +@interface MPElementsTableView : NSTableView + +@property(nonatomic, weak) MPPasswordWindowController *controller; + +@end diff --git a/MasterPassword/ObjC/Mac/MPElementsTableView.m b/MasterPassword/ObjC/Mac/MPElementsTableView.m new file mode 100644 index 00000000..9809435a --- /dev/null +++ b/MasterPassword/ObjC/Mac/MPElementsTableView.m @@ -0,0 +1,34 @@ +/** +* Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com) +* +* See the enclosed file LICENSE for license information (LGPLv3). If you did +* not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt +* +* @author Maarten Billemont +* @license http://www.gnu.org/licenses/lgpl-3.0.txt +*/ + +// +// MPElementsTableView.h +// MPElementsTableView +// +// Created by lhunath on 2014-06-30. +// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved. +// + +#import "MPElementsTableView.h" +#import "MPPasswordWindowController.h" + +@implementation MPElementsTableView + +- (void)doCommandBySelector:(SEL)aSelector { + + [self.controller handleCommand:aSelector]; +} + +- (void)keyDown:(NSEvent *)theEvent { + + [self interpretKeyEvents:@[ theEvent ]]; +} + +@end diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.h b/MasterPassword/ObjC/Mac/MPPasswordWindowController.h index 49159a7a..dcc1ff66 100644 --- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.h +++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.h @@ -18,6 +18,7 @@ #import #import "MPElementModel.h" +#import "MPElementsTableView.h" @class MPMacAppDelegate; @@ -34,10 +35,12 @@ @property(nonatomic, weak) IBOutlet NSTextField *securePasswordField; @property(nonatomic, weak) IBOutlet NSTextField *revealPasswordField; @property(nonatomic, weak) IBOutlet NSSearchField *siteField; -@property(nonatomic, weak) IBOutlet NSTableView *siteTable; +@property(nonatomic, weak) IBOutlet MPElementsTableView *siteTable; @property(nonatomic, weak) IBOutlet NSProgressIndicator *progressView; @property(nonatomic, strong) IBOutlet NSBox *passwordTypesBox; @property(nonatomic, weak) IBOutlet NSMatrix *passwordTypesMatrix; +- (BOOL)handleCommand:(SEL)commandSelector; + @end diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m index 66abc447..4330f2a7 100644 --- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m +++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m @@ -91,6 +91,8 @@ self.siteGradient.autoresizingMask = kCALayerWidthSizable | kCALayerHeightSizable; self.siteGradient.frame = self.siteTable.bounds; self.siteTable.superview.superview.layer.mask = self.siteGradient; + + self.siteTable.controller = self; } - (void)flagsChanged:(NSEvent *)theEvent { @@ -116,6 +118,7 @@ - (void)doCommandBySelector:(SEL)commandSelector { + dbg( @"doCommandBySelector: %@", NSStringFromSelector( commandSelector ) ); [self handleCommand:commandSelector]; } @@ -123,24 +126,17 @@ - (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector { + dbg( @"@control:%@ textView:%@ doCommandBySelector:%@", control, fieldEditor, NSStringFromSelector( commandSelector ) ); if (control == self.siteField) { - if (commandSelector == @selector( insertNewline: )) { - [self useSite]; - return YES; - } - if (commandSelector == @selector( moveUp: )) { - [self.elementsController selectPrevious:self]; - return YES; - } - if (commandSelector == @selector( moveDown: )) { - [self.elementsController selectNext:self]; - return YES; - } if ([NSStringFromSelector( commandSelector ) rangeOfString:@"delete"].location == 0) { _skipTextChange = YES; return NO; } } + if (control == self.securePasswordField || control == self.revealPasswordField) { + if (commandSelector == @selector( insertNewline: )) + return NO; + } return [self handleCommand:commandSelector]; } @@ -166,7 +162,7 @@ [self.progressView stopAnimation:self]; if (!success) [[NSAlert alertWithError:[NSError errorWithDomain:MPErrorDomain code:0 userInfo:@{ - NSLocalizedDescriptionKey : PearlString( @"Incorrect master password for user %@", userName ) + NSLocalizedDescriptionKey : strf( @"Incorrect master password for user %@", userName ) }]] beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector( alertDidEnd:returnCode:contextInfo: ) contextInfo:MPAlertIncorrectMP]; } ); @@ -182,6 +178,7 @@ - (BOOL)textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector { + dbg( @"textView:%@doCommandBySelector:%@", textView, NSStringFromSelector( commandSelector ) ); return [self handleCommand:commandSelector]; } @@ -192,6 +189,8 @@ return (NSInteger)[self.elements count]; } +#pragma mark - NSTableViewDelegate + #pragma mark - NSAlert - (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo { @@ -428,6 +427,18 @@ - (BOOL)handleCommand:(SEL)commandSelector { + if (commandSelector == @selector( moveUp: )) { + [self.elementsController selectPrevious:self]; + return YES; + } + if (commandSelector == @selector( moveDown: )) { + [self.elementsController selectNext:self]; + return YES; + } + if (commandSelector == @selector( insertNewline: )) { + [self useSite]; + return YES; + } if (commandSelector == @selector( cancel: ) || commandSelector == @selector( cancelOperation: )) { [self fadeOut]; return YES; @@ -448,7 +459,7 @@ NSUserNotification *notification = [NSUserNotification new]; notification.title = @"Password Copied"; if (selectedElement.loginName.length) - notification.subtitle = PearlString( @"%@ at %@", selectedElement.loginName, selectedElement.siteName ); + notification.subtitle = strf( @"%@ at %@", selectedElement.loginName, selectedElement.siteName ); else notification.subtitle = selectedElement.siteName; [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification]; @@ -567,7 +578,7 @@ [alert addButtonWithTitle:@"Create"]; [alert addButtonWithTitle:@"Cancel"]; [alert setMessageText:@"Create site?"]; - [alert setInformativeText:PearlString( @"Do you want to create a new site named:\n\n%@", siteName )]; + [alert setInformativeText:strf( @"Do you want to create a new site named:\n\n%@", siteName )]; [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector( alertDidEnd:returnCode:contextInfo: ) contextInfo:MPAlertCreateSite]; } ); diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib b/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib index c96c28c6..feefccfc 100644 --- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib +++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib @@ -139,13 +139,13 @@ - + - + @@ -158,7 +158,7 @@ - + @@ -175,7 +175,7 @@ - + @@ -186,7 +186,6 @@ - diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj index 867f0a2f..3463eca3 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ 93D390C676DF52DA7E459F19 /* MPPasswordWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39D9D0061FF1159998F06 /* MPPasswordWindow.m */; }; 93D392EC39DA43C46C692C12 /* NSDictionary+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */; }; + 93D394C4254EEB45FB335AFB /* MPElementsTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39423D7BF4FD31FE6D27C /* MPElementsTableView.m */; }; 93D395F08A087F8A24689347 /* NSArray+Indexing.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39067C0AFDC581794E2B8 /* NSArray+Indexing.m */; }; 93D3970BCF85F7902E611168 /* PearlProfiler.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39DB3A8ADED08C39A6228 /* PearlProfiler.m */; }; 93D39784E725A34D1EE3FB3B /* MPInitialWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39D3CB30874147D9A9E1B /* MPInitialWindowController.m */; }; @@ -310,11 +311,13 @@ 93D392C3918763B3B72CF366 /* MPPasswordWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordWindowController.h; sourceTree = ""; }; 93D39368EF3CBFEF2AFCA15A /* MPInitialWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPInitialWindowController.h; sourceTree = ""; }; 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Indexing.h"; sourceTree = ""; }; + 93D39423D7BF4FD31FE6D27C /* MPElementsTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPElementsTableView.m; sourceTree = ""; }; 93D394EEFF5BF555A55AF361 /* PearlProfiler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PearlProfiler.h; path = ../../../External/Pearl/Pearl/PearlProfiler.h; sourceTree = ""; }; 93D396D04E57792A54D437AC /* NSArray+Indexing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Indexing.h"; sourceTree = ""; }; 93D3977484534E99F9BA579D /* MPPasswordWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordWindow.h; sourceTree = ""; }; 93D39A57A7823DE98A0FF83C /* MPPasswordWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordWindowController.m; sourceTree = ""; }; 93D39AA1EE2E1E7B81372240 /* NSDictionary+Indexing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Indexing.m"; sourceTree = ""; }; + 93D39AC6360DDC16AEAA4119 /* MPElementsTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPElementsTableView.h; sourceTree = ""; }; 93D39D3CB30874147D9A9E1B /* MPInitialWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPInitialWindowController.m; sourceTree = ""; }; 93D39D9D0061FF1159998F06 /* MPPasswordWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordWindow.m; sourceTree = ""; }; 93D39DB3A8ADED08C39A6228 /* PearlProfiler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PearlProfiler.m; path = ../../../External/Pearl/Pearl/PearlProfiler.m; sourceTree = ""; }; @@ -1215,6 +1218,8 @@ 93D3977484534E99F9BA579D /* MPPasswordWindow.h */, 93D39D3CB30874147D9A9E1B /* MPInitialWindowController.m */, 93D39368EF3CBFEF2AFCA15A /* MPInitialWindowController.h */, + 93D39423D7BF4FD31FE6D27C /* MPElementsTableView.m */, + 93D39AC6360DDC16AEAA4119 /* MPElementsTableView.h */, ); path = Mac; sourceTree = ""; @@ -2472,6 +2477,7 @@ 93D39F833DEC1C89B2F795AC /* MPPasswordWindowController.m in Sources */, 93D390C676DF52DA7E459F19 /* MPPasswordWindow.m in Sources */, 93D39784E725A34D1EE3FB3B /* MPInitialWindowController.m in Sources */, + 93D394C4254EEB45FB335AFB /* MPElementsTableView.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/MasterPassword/ObjC/iOS/MPLogsViewController.m b/MasterPassword/ObjC/iOS/MPLogsViewController.m index 66829353..8011a2b7 100644 --- a/MasterPassword/ObjC/iOS/MPLogsViewController.m +++ b/MasterPassword/ObjC/iOS/MPLogsViewController.m @@ -124,7 +124,7 @@ NSError *error = nil; NSPersistentStore *store = nil; NSUInteger firstDash = [storeUUID rangeOfString:@"-" options:0].location; - NSString *storeDescription = PearlString( @"%@ v%@", + NSString *storeDescription = strf( @"%@ v%@", firstDash == NSNotFound? storeUUID: [storeUUID substringToIndex:firstDash], cloudStoreOptions[USMCloudVersionKey] ); if ([cloudStoreOptions[USMCloudCurrentKey] boolValue]) @@ -148,7 +148,7 @@ continue; } - storeDescription = PearlString( @"%@: %luU, %luS", storeDescription, (unsigned long)userCount, (unsigned long)siteCount ); + storeDescription = strf( @"%@: %luU, %luS", storeDescription, (unsigned long)userCount, (unsigned long)siteCount ); } @catch (NSException *exception) { wrn(@"Couldn't describe store %@: %@", storeDescription, exception); @@ -166,7 +166,7 @@ PearlArrayTVC *vc = [[PearlArrayTVC alloc] initWithStyle:UITableViewStylePlain]; NSUInteger firstDash = [currentStoreUUID rangeOfString:@"-" options:0].location; - vc.title = PearlString( @"Active: %@", firstDash == NSNotFound? currentStoreUUID: [currentStoreUUID substringToIndex:firstDash] ); + vc.title = strf( @"Active: %@", firstDash == NSNotFound? currentStoreUUID: [currentStoreUUID substringToIndex:firstDash] ); [stores enumerateKeysAndObjectsUsingBlock:^(id storeDescription, id cloudStoreOptions, BOOL *stop) { [vc addRowWithName:storeDescription style:PearlArrayTVCRowStyleLink toggled:[cloudStoreOptions[USMCloudCurrentKey] boolValue] toSection:@"Cloud Stores" activationBlock:^BOOL(BOOL wasToggled) { diff --git a/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m b/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m index 45d5fb82..b03f17fb 100644 --- a/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m +++ b/MasterPassword/ObjC/iOS/MPiOSAppDelegate.m @@ -207,8 +207,8 @@ dispatch_group_t userPasswordGroup = dispatch_group_create(); dispatch_group_enter( userPasswordGroup ); dispatch_async( dispatch_get_main_queue(), ^{ - [PearlAlert showAlertWithTitle:PearlString( @"Master Password for\n%@", userName ) - message:PearlString( @"Imports %lu sites, overwriting %lu.", + [PearlAlert showAlertWithTitle:strf( @"Master Password for\n%@", userName ) + message:strf( @"Imports %lu sites, overwriting %lu.", (unsigned long)importCount, (unsigned long)deleteCount ) viewStyle:UIAlertViewStyleSecureTextInput initAlert:nil tappedButtonBlock:^(UIAlertView *alert_, NSInteger buttonIndex_) { @@ -317,9 +317,9 @@ logLevel = PearlLogLevelDebug; [[[PearlEMail alloc] initForEMailTo:@"Master Password Development " - subject:PearlString( @"Feedback for Master Password [%@]", + subject:strf( @"Feedback for Master Password [%@]", [[PearlKeyChain deviceIdentifier] stringByDeletingMatchesOf:@"-.*"] ) - body:PearlString( @"\n\n\n" + body:strf( @"\n\n\n" @"--\n" @"%@" @"Master Password %@, build %@", @@ -332,7 +332,7 @@ initWithContent:[[[PearlLogger get] formatMessagesWithLevel:logLevel] dataUsingEncoding:NSUTF8StringEncoding] mimeType:@"text/plain" - fileName:PearlString( @"%@-%@.log", + fileName:strf( @"%@-%@.log", [[NSDateFormatter rfc3339DateFormatter] stringFromDate:[NSDate date]], [PearlKeyChain deviceIdentifier] )] : nil), nil] @@ -388,7 +388,7 @@ NSString *message; if (revealPasswords) - message = PearlString( @"Export of Master Password sites with passwords included.\n\n" + message = strf( @"Export of Master Password sites with passwords included.\n\n" @"REMINDER: Make sure nobody else sees this file! Passwords are visible!\n\n\n" @"--\n" @"%@\n" @@ -397,7 +397,7 @@ [PearlInfoPlist get].CFBundleShortVersionString, [PearlInfoPlist get].CFBundleVersion ); else - message = PearlString( @"Backup of Master Password sites.\n\n\n" + message = strf( @"Backup of Master Password sites.\n\n\n" @"--\n" @"%@\n" @"Master Password %@, build %@", @@ -412,7 +412,7 @@ [PearlEMail sendEMailTo:nil fromVC:viewController subject:@"Master Password Export" body:message attachments:[[PearlEMailAttachment alloc] initWithContent:[exportedSites dataUsingEncoding:NSUTF8StringEncoding] mimeType:@"text/plain" fileName: - PearlString( @"%@ (%@).mpsites", [self activeUserForMainThread].name, + strf( @"%@ (%@).mpsites", [self activeUserForMainThread].name, [exportDateFormatter stringFromDate:[NSDate date]] )], nil]; } diff --git a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj index 3da271c3..7b9ac689 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj @@ -11,7 +11,6 @@ 93D391ECBD9BD2C64115B5DD /* PearlSizedTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39156E806BB78E04F78B9 /* PearlSizedTextView.m */; }; 93D391ED37C9F687FA51EAA1 /* MPEmergencySegue.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3937712BF1B67623E5764 /* MPEmergencySegue.m */; }; 93D3922A53E41A54832E90D9 /* PearlOverlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D390FADEB325D8D54A957D /* PearlOverlay.m */; }; - 93D39233C3EDD9A947ABA52D /* LLButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39BF6BCBDFFE844E7D34C /* LLButtonView.m */; }; 93D39262A8A97DB748213309 /* PearlEMail.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D393BB973253D4BAAC84AA /* PearlEMail.m */; }; 93D392A8777DC30C11361647 /* UITextView+PearlAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D39AA10CD00D05937671B1 /* UITextView+PearlAttributes.h */; }; 93D392EC39DA43C46C692C12 /* NSDictionary+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */; }; @@ -46,7 +45,6 @@ 93D39B8F90F58A5D158DDBA3 /* MPPasswordsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3924EE15017F8A12CB436 /* MPPasswordsViewController.m */; }; 93D39BA1EA3CAAC8A220B4A6 /* MPAppSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3916C1D8F1427DFBDEBCA /* MPAppSettingsViewController.m */; }; 93D39C34FE35830EF5BE1D2A /* NSArray+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D396D04E57792A54D437AC /* NSArray+Indexing.h */; }; - 93D39C8AD8EAB747856B3A8C /* LLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3923B42DA2DA18F287092 /* LLModel.m */; }; 93D39CB5E2EC1078E898F46A /* MPPasswordLargeCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D3937863061C3916AF7AD2 /* MPPasswordLargeCell.m */; }; 93D39D596A2E376D6F6F5DA1 /* MPCombinedViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D393310223DDB35218467A /* MPCombinedViewController.m */; }; 93D39D8F78978196D6ABDEDE /* MPNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39CC01630D0421205C4C4 /* MPNavigationController.m */; }; @@ -135,7 +133,6 @@ DA67461018DE7F0C00DFE240 /* Exo2.0-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = DA67460C18DE7F0C00DFE240 /* Exo2.0-Bold.otf */; }; DA69540617D975D900BF294E /* icon_gears.png in Resources */ = {isa = PBXBuildFile; fileRef = DABD37841711E29500CF925C /* icon_gears.png */; }; DA69540717D975D900BF294E /* icon_gears@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DABD37851711E29500CF925C /* icon_gears@2x.png */; }; - DA70EC801811B13C00F65DB2 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA70EC7F1811B13C00F65DB2 /* StoreKit.framework */; }; DA73049D194E022700E72520 /* ui_spinner.png in Resources */ = {isa = PBXBuildFile; fileRef = DABD36511711E29400CF925C /* ui_spinner.png */; }; DA73049E194E022700E72520 /* ui_spinner@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DABD36521711E29400CF925C /* ui_spinner@2x.png */; }; DA73049F194E022B00E72520 /* ui_textfield.png in Resources */ = {isa = PBXBuildFile; fileRef = DABD365B1711E29400CF925C /* ui_textfield.png */; }; @@ -147,8 +144,6 @@ DA854C8418D4CFBF00106317 /* avatar-add.png in Resources */ = {isa = PBXBuildFile; fileRef = DA854C8218D4CFBF00106317 /* avatar-add.png */; }; DA945C8717E3F3FD0053236B /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA945C8617E3F3FD0053236B /* Images.xcassets */; }; DA95D5F214DF0B2C008D1B94 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA95D5F014DF0B1E008D1B94 /* MessageUI.framework */; }; - DA9B51551895D79E009D2A0B /* gittip.png in Resources */ = {isa = PBXBuildFile; fileRef = DA9B51541895D79E009D2A0B /* gittip.png */; }; - DA9B51581895D853009D2A0B /* LLGitTip.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9B51561895D853009D2A0B /* LLGitTip.m */; }; DAA141201922FF020032B392 /* PearlTween.m in Sources */ = {isa = PBXBuildFile; fileRef = DAA1411C1922FF020032B392 /* PearlTween.m */; }; DAA141211922FF020032B392 /* PearlTween.h in Headers */ = {isa = PBXBuildFile; fileRef = DAA1411D1922FF020032B392 /* PearlTween.h */; }; DAA141221922FF020032B392 /* map-macro.h in Headers */ = {isa = PBXBuildFile; fileRef = DAA1411F1922FF020032B392 /* map-macro.h */; }; @@ -269,24 +264,6 @@ DACA29BE1705E2DE002C6C22 /* UIColor+Expanded.m in Sources */ = {isa = PBXBuildFile; fileRef = DACA29BA1705E2DE002C6C22 /* UIColor+Expanded.m */; }; DACA29BF1705E2DE002C6C22 /* UIColor+HSV.m in Sources */ = {isa = PBXBuildFile; fileRef = DACA29BB1705E2DE002C6C22 /* UIColor+HSV.m */; }; DAD312C21552A22700A3F9ED /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD312C01552A20800A3F9ED /* libsqlite3.dylib */; }; - DADEF4121810D2940052CA3E /* love-lyndir.button.green.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4061810D2940052CA3E /* love-lyndir.button.green.png */; }; - DADEF4131810D2940052CA3E /* love-lyndir.button.green@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4071810D2940052CA3E /* love-lyndir.button.green@2x.png */; }; - DADEF4141810D2940052CA3E /* love-lyndir.button.grey.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4081810D2940052CA3E /* love-lyndir.button.grey.png */; }; - DADEF4151810D2940052CA3E /* love-lyndir.button.grey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4091810D2940052CA3E /* love-lyndir.button.grey@2x.png */; }; - DADEF4161810D2940052CA3E /* love-lyndir.button.red.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF40A1810D2940052CA3E /* love-lyndir.button.red.png */; }; - DADEF4171810D2940052CA3E /* love-lyndir.button.red@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF40B1810D2940052CA3E /* love-lyndir.button.red@2x.png */; }; - DADEF4181810D2940052CA3E /* love-lyndir.heart.green.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF40C1810D2940052CA3E /* love-lyndir.heart.green.png */; }; - DADEF4191810D2940052CA3E /* love-lyndir.heart.green@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF40D1810D2940052CA3E /* love-lyndir.heart.green@2x.png */; }; - DADEF41A1810D2940052CA3E /* love-lyndir.heart.grey.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF40E1810D2940052CA3E /* love-lyndir.heart.grey.png */; }; - DADEF41B1810D2940052CA3E /* love-lyndir.heart.grey@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF40F1810D2940052CA3E /* love-lyndir.heart.grey@2x.png */; }; - DADEF41C1810D2940052CA3E /* love-lyndir.heart.red.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4101810D2940052CA3E /* love-lyndir.heart.red.png */; }; - DADEF41D1810D2940052CA3E /* love-lyndir.heart.red@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4111810D2940052CA3E /* love-lyndir.heart.red@2x.png */; }; - DADEF4231810D5530052CA3E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; }; - DADEF4471810D5850052CA3E /* LLToggleViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39C8E26B06F01566785B7 /* LLToggleViewController.m */; }; - DADEF44B1810E7F30052CA3E /* love-lyndir.picker.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4491810E7F30052CA3E /* love-lyndir.picker.png */; }; - DADEF44C1810E7F30052CA3E /* love-lyndir.picker@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DADEF44A1810E7F30052CA3E /* love-lyndir.picker@2x.png */; }; - DADEF44D1810F9BF0052CA3E /* libLoveLyndir.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DADEF4221810D5530052CA3E /* libLoveLyndir.a */; }; - DADEF44E1810FA3B0052CA3E /* LoveLyndir.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DADEF4481810D5A70052CA3E /* LoveLyndir.storyboard */; }; DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DAE1EF2417E942DE00BC0086 /* Localizable.strings */; }; DAEB933318AA537D000490CC /* crypto_aesctr.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB92E118AA537D000490CC /* crypto_aesctr.h */; }; DAEB933418AA537D000490CC /* crypto_scrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB92E218AA537D000490CC /* crypto_scrypt.h */; }; @@ -475,23 +452,10 @@ DAFFC63F17EDDA7C007BB020 /* libscryptenc-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAFFC63E17EDDA7C007BB020 /* libscryptenc-ios.a */; }; /* End PBXBuildFile section */ -/* Begin PBXCopyFilesBuildPhase section */ - DADEF4201810D5530052CA3E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ 93D390519405B76CC6A57C4F /* MPCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPCell.h; sourceTree = ""; }; 93D39067C0AFDC581794E2B8 /* NSArray+Indexing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Indexing.m"; sourceTree = ""; }; 93D39097C0AAE62C1C321BFC /* MPPasswordTypesCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordTypesCell.m; sourceTree = ""; }; - 93D390A66F69AB1CDB0BFF93 /* LLModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLModel.h; sourceTree = ""; }; 93D390FADEB325D8D54A957D /* PearlOverlay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlOverlay.m; sourceTree = ""; }; 93D390FB3110DCCE68E600DC /* UIScrollView+PearlAdjustInsets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIScrollView+PearlAdjustInsets.m"; sourceTree = ""; }; 93D390FD93EFCFECB5193DEF /* MPPasswordsCoachmarkViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordsCoachmarkViewController.h; sourceTree = ""; }; @@ -500,7 +464,6 @@ 93D39156E806BB78E04F78B9 /* PearlSizedTextView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlSizedTextView.m; sourceTree = ""; }; 93D3916C1D8F1427DFBDEBCA /* MPAppSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAppSettingsViewController.m; sourceTree = ""; }; 93D391943675426839501BB8 /* MPLogsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPLogsViewController.h; sourceTree = ""; }; - 93D3923B42DA2DA18F287092 /* LLModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLModel.m; sourceTree = ""; }; 93D3924EE15017F8A12CB436 /* MPPasswordsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordsViewController.m; sourceTree = ""; }; 93D392876BE5C011DE73B43F /* MPPopdownSegue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPopdownSegue.h; sourceTree = ""; }; 93D393310223DDB35218467A /* MPCombinedViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPCombinedViewController.m; sourceTree = ""; }; @@ -522,7 +485,6 @@ 93D3977321EB249981821AB0 /* UITextView+PearlAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextView+PearlAttributes.m"; sourceTree = ""; }; 93D3979190DACEBD1F6AE9F4 /* MPLogsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPLogsViewController.m; sourceTree = ""; }; 93D397E3650384498E7E53C4 /* MPPasswordsCoachmarkViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPasswordsCoachmarkViewController.m; sourceTree = ""; }; - 93D3983278751A530262F64E /* LLConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLConfig.h; sourceTree = ""; }; 93D398567FD02DB2647B8CF3 /* PearlNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlNavigationController.h; sourceTree = ""; }; 93D398C95847261903D781D3 /* NSError+PearlFullDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSError+PearlFullDescription.h"; sourceTree = ""; }; 93D3990E0CD1B5CF9FBB2C07 /* MPWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPWebViewController.m; sourceTree = ""; }; @@ -534,7 +496,6 @@ 93D399F244BB522A317811BB /* MPFixable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPFixable.h; sourceTree = ""; }; 93D39A1DDFA09AE2E14D26DC /* UIResponder+PearlFirstResponder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIResponder+PearlFirstResponder.m"; sourceTree = ""; }; 93D39A28369954D147E239BA /* MPSetupViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPSetupViewController.m; sourceTree = ""; }; - 93D39A3CC4D8330831FC8CB4 /* LLToggleViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLToggleViewController.h; sourceTree = ""; }; 93D39A41340CF778E00D0E6D /* MPEmergencySegue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEmergencySegue.h; sourceTree = ""; }; 93D39A4759186F6D2D34AA6B /* PearlSizedTextView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlSizedTextView.h; sourceTree = ""; }; 93D39A813CA9D7E192261ED2 /* MPFixable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPFixable.m; sourceTree = ""; }; @@ -544,12 +505,9 @@ 93D39B050DD5F55E9794EFD4 /* MPPopdownSegue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPPopdownSegue.m; sourceTree = ""; }; 93D39B1D8177A86C5B9EDDE3 /* PearlUICollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PearlUICollectionView.h; sourceTree = ""; }; 93D39B381350802A194BF332 /* MPAvatarCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAvatarCell.m; sourceTree = ""; }; - 93D39BA6C5CB452973918B7D /* LLButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLButtonView.h; sourceTree = ""; }; 93D39BAA71DE51B4D8A1286C /* MPCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPCell.m; sourceTree = ""; }; - 93D39BF6BCBDFFE844E7D34C /* LLButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLButtonView.m; sourceTree = ""; }; 93D39C44361BE57AF0B3071F /* MPPasswordsSegue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordsSegue.h; sourceTree = ""; }; 93D39C86E984EC65DA5ACB1D /* MPAppSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAppSettingsViewController.h; sourceTree = ""; }; - 93D39C8E26B06F01566785B7 /* LLToggleViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLToggleViewController.m; sourceTree = ""; }; 93D39CC01630D0421205C4C4 /* MPNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPNavigationController.m; sourceTree = ""; }; 93D39CDD434AFD6E1B0DA359 /* MPEmergencyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPEmergencyViewController.h; sourceTree = ""; }; 93D39CE1138FDA4D3D1B847A /* MPPasswordLargeGeneratedCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPPasswordLargeGeneratedCell.h; sourceTree = ""; }; @@ -636,9 +594,6 @@ DA854C8218D4CFBF00106317 /* avatar-add.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "avatar-add.png"; sourceTree = ""; }; DA945C8617E3F3FD0053236B /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; DA95D5F014DF0B1E008D1B94 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = System/Library/Frameworks/MessageUI.framework; sourceTree = SDKROOT; }; - DA9B51541895D79E009D2A0B /* gittip.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gittip.png; sourceTree = ""; }; - DA9B51561895D853009D2A0B /* LLGitTip.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LLGitTip.m; sourceTree = ""; }; - DA9B51571895D853009D2A0B /* LLGitTip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LLGitTip.h; sourceTree = ""; }; DAA141191922FED80032B392 /* Crashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Crashlytics.framework; sourceTree = ""; }; DAA1411B1922FED80032B392 /* Crashlytics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Crashlytics.framework; sourceTree = ""; }; DAA1411C1922FF020032B392 /* PearlTween.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlTween.m; sourceTree = ""; }; @@ -1342,22 +1297,6 @@ DACA29BB1705E2DE002C6C22 /* UIColor+HSV.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+HSV.m"; sourceTree = ""; }; DAD312C01552A20800A3F9ED /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; DADBB55918DB0CFC00D099FE /* keyboard-dark@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "keyboard-dark@2x.png"; sourceTree = ""; }; - DADEF4061810D2940052CA3E /* love-lyndir.button.green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.button.green.png"; sourceTree = ""; }; - DADEF4071810D2940052CA3E /* love-lyndir.button.green@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.button.green@2x.png"; sourceTree = ""; }; - DADEF4081810D2940052CA3E /* love-lyndir.button.grey.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.button.grey.png"; sourceTree = ""; }; - DADEF4091810D2940052CA3E /* love-lyndir.button.grey@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.button.grey@2x.png"; sourceTree = ""; }; - DADEF40A1810D2940052CA3E /* love-lyndir.button.red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.button.red.png"; sourceTree = ""; }; - DADEF40B1810D2940052CA3E /* love-lyndir.button.red@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.button.red@2x.png"; sourceTree = ""; }; - DADEF40C1810D2940052CA3E /* love-lyndir.heart.green.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.heart.green.png"; sourceTree = ""; }; - DADEF40D1810D2940052CA3E /* love-lyndir.heart.green@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.heart.green@2x.png"; sourceTree = ""; }; - DADEF40E1810D2940052CA3E /* love-lyndir.heart.grey.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.heart.grey.png"; sourceTree = ""; }; - DADEF40F1810D2940052CA3E /* love-lyndir.heart.grey@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.heart.grey@2x.png"; sourceTree = ""; }; - DADEF4101810D2940052CA3E /* love-lyndir.heart.red.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.heart.red.png"; sourceTree = ""; }; - DADEF4111810D2940052CA3E /* love-lyndir.heart.red@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.heart.red@2x.png"; sourceTree = ""; }; - DADEF4221810D5530052CA3E /* libLoveLyndir.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libLoveLyndir.a; sourceTree = BUILT_PRODUCTS_DIR; }; - DADEF4481810D5A70052CA3E /* LoveLyndir.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LoveLyndir.storyboard; sourceTree = ""; }; - DADEF4491810E7F30052CA3E /* love-lyndir.picker.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.picker.png"; sourceTree = ""; }; - DADEF44A1810E7F30052CA3E /* love-lyndir.picker@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "love-lyndir.picker@2x.png"; sourceTree = ""; }; DAE1EF2317E942DE00BC0086 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; DAEB92E118AA537D000490CC /* crypto_aesctr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto_aesctr.h; sourceTree = ""; }; DAEB92E218AA537D000490CC /* crypto_scrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto_scrypt.h; sourceTree = ""; }; @@ -1576,7 +1515,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DADEF44D1810F9BF0052CA3E /* libLoveLyndir.a in Frameworks */, DAFC5691172C582A00CB5CC5 /* libInAppSettingsKit.a in Frameworks */, DA6701E016406BB400B61001 /* AdSupport.framework in Frameworks */, DA6701DE16406B7300B61001 /* Social.framework in Frameworks */, @@ -1626,15 +1564,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DADEF41F1810D5530052CA3E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DA70EC801811B13C00F65DB2 /* StoreKit.framework in Frameworks */, - DADEF4231810D5530052CA3E /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; DAFC5652172C573B00CB5CC5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1699,7 +1628,6 @@ DAC6326C148680650075AEA5 /* libjrswizzle.a */, DA4425CB1557BED40052177D /* libUbiquityStoreManager.a */, DAFC5655172C573B00CB5CC5 /* libInAppSettingsKit.a */, - DADEF4221810D5530052CA3E /* libLoveLyndir.a */, ); name = Products; sourceTree = ""; @@ -2594,7 +2522,6 @@ children = ( DAA141181922FED80032B392 /* iOS */, DAA1411A1922FED80032B392 /* Mac */, - DADEF3E91810D1980052CA3E /* LoveLyndir */, DAFC5662172C57EC00CB5CC5 /* InAppSettingsKit */, DAC77CAF148291A600BCF976 /* Pearl */, DACA22B61705DE7D002C6C22 /* UbiquityStoreManager */, @@ -2666,54 +2593,6 @@ path = "External/uicolor-utilities"; sourceTree = ""; }; - DADEF3E91810D1980052CA3E /* LoveLyndir */ = { - isa = PBXGroup; - children = ( - DADEF4041810D2940052CA3E /* ObjC */, - DADEF4051810D2940052CA3E /* Resources */, - ); - path = LoveLyndir; - sourceTree = ""; - }; - DADEF4041810D2940052CA3E /* ObjC */ = { - isa = PBXGroup; - children = ( - DA9B51561895D853009D2A0B /* LLGitTip.m */, - DA9B51571895D853009D2A0B /* LLGitTip.h */, - 93D39C8E26B06F01566785B7 /* LLToggleViewController.m */, - 93D39A3CC4D8330831FC8CB4 /* LLToggleViewController.h */, - DADEF4481810D5A70052CA3E /* LoveLyndir.storyboard */, - 93D3923B42DA2DA18F287092 /* LLModel.m */, - 93D390A66F69AB1CDB0BFF93 /* LLModel.h */, - 93D3983278751A530262F64E /* LLConfig.h */, - 93D39BF6BCBDFFE844E7D34C /* LLButtonView.m */, - 93D39BA6C5CB452973918B7D /* LLButtonView.h */, - ); - path = ObjC; - sourceTree = ""; - }; - DADEF4051810D2940052CA3E /* Resources */ = { - isa = PBXGroup; - children = ( - DA9B51541895D79E009D2A0B /* gittip.png */, - DADEF4491810E7F30052CA3E /* love-lyndir.picker.png */, - DADEF44A1810E7F30052CA3E /* love-lyndir.picker@2x.png */, - DADEF4061810D2940052CA3E /* love-lyndir.button.green.png */, - DADEF4071810D2940052CA3E /* love-lyndir.button.green@2x.png */, - DADEF4081810D2940052CA3E /* love-lyndir.button.grey.png */, - DADEF4091810D2940052CA3E /* love-lyndir.button.grey@2x.png */, - DADEF40A1810D2940052CA3E /* love-lyndir.button.red.png */, - DADEF40B1810D2940052CA3E /* love-lyndir.button.red@2x.png */, - DADEF40C1810D2940052CA3E /* love-lyndir.heart.green.png */, - DADEF40D1810D2940052CA3E /* love-lyndir.heart.green@2x.png */, - DADEF40E1810D2940052CA3E /* love-lyndir.heart.grey.png */, - DADEF40F1810D2940052CA3E /* love-lyndir.heart.grey@2x.png */, - DADEF4101810D2940052CA3E /* love-lyndir.heart.red.png */, - DADEF4111810D2940052CA3E /* love-lyndir.heart.red@2x.png */, - ); - path = Resources; - sourceTree = ""; - }; DAEB92E018AA537D000490CC /* scrypt */ = { isa = PBXGroup; children = ( @@ -3315,23 +3194,6 @@ productReference = DAC77CAD148291A600BCF976 /* libPearl.a */; productType = "com.apple.product-type.library.static"; }; - DADEF4211810D5530052CA3E /* LoveLyndir */ = { - isa = PBXNativeTarget; - buildConfigurationList = DADEF4441810D5540052CA3E /* Build configuration list for PBXNativeTarget "LoveLyndir" */; - buildPhases = ( - DADEF41E1810D5530052CA3E /* Sources */, - DADEF41F1810D5530052CA3E /* Frameworks */, - DADEF4201810D5530052CA3E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = LoveLyndir; - productName = LoveLyndir; - productReference = DADEF4221810D5530052CA3E /* libLoveLyndir.a */; - productType = "com.apple.product-type.library.static"; - }; DAFC5654172C573B00CB5CC5 /* InAppSettingsKit */ = { isa = PBXNativeTarget; buildConfigurationList = DAFC565E172C573B00CB5CC5 /* Build configuration list for PBXNativeTarget "InAppSettingsKit" */; @@ -3474,7 +3336,6 @@ DAC6326B148680650075AEA5 /* jrswizzle */, DA4425CA1557BED40052177D /* UbiquityStoreManager */, DAFC5654172C573B00CB5CC5 /* InAppSettingsKit */, - DADEF4211810D5530052CA3E /* LoveLyndir */, ); }; /* End PBXProject section */ @@ -3486,7 +3347,6 @@ files = ( DAFE4A5A1503982E003ABA7C /* Pearl.strings in Resources */, DACA296F1705DF81002C6C22 /* Crashlytics.plist in Resources */, - DADEF4171810D2940052CA3E /* love-lyndir.button.red@2x.png in Resources */, DACA29731705E1A8002C6C22 /* ciphers.plist in Resources */, DA250A0F1956484D00AC23F1 /* image-1@2x.png in Resources */, DACA29741705E1A8002C6C22 /* dictionary.lst in Resources */, @@ -3504,7 +3364,6 @@ DA7304E5194E025900E72520 /* tip_basic_black.png in Resources */, DABD393A1711E29700CF925C /* avatar-10.png in Resources */, DABD393B1711E29700CF925C /* avatar-10@2x.png in Resources */, - DADEF41C1810D2940052CA3E /* love-lyndir.heart.red.png in Resources */, DABD393C1711E29700CF925C /* avatar-11.png in Resources */, DA250A0A1956484D00AC23F1 /* image-4.png in Resources */, DABD393D1711E29700CF925C /* avatar-11@2x.png in Resources */, @@ -3516,7 +3375,6 @@ DABD39401711E29700CF925C /* avatar-13.png in Resources */, DABD39411711E29700CF925C /* avatar-13@2x.png in Resources */, DABD39421711E29700CF925C /* avatar-14.png in Resources */, - DADEF41A1810D2940052CA3E /* love-lyndir.heart.grey.png in Resources */, DABD39431711E29700CF925C /* avatar-14@2x.png in Resources */, DABD39441711E29700CF925C /* avatar-15.png in Resources */, DABD39451711E29700CF925C /* avatar-15@2x.png in Resources */, @@ -3554,7 +3412,6 @@ DABD39591711E29700CF925C /* avatar-8.png in Resources */, DA250A0D1956484D00AC23F1 /* image-2@2x.png in Resources */, DA250A051956484D00AC23F1 /* image-6@2x.png in Resources */, - DADEF41D1810D2940052CA3E /* love-lyndir.heart.red@2x.png in Resources */, DABD395A1711E29700CF925C /* avatar-8@2x.png in Resources */, DABD395B1711E29700CF925C /* avatar-9.png in Resources */, DABD395C1711E29700CF925C /* avatar-9@2x.png in Resources */, @@ -3564,9 +3421,7 @@ DA945C8717E3F3FD0053236B /* Images.xcassets in Resources */, DA250A101956484D00AC23F1 /* image-1.png in Resources */, DABD39871711E29700CF925C /* SourceCodePro-Black.otf in Resources */, - DADEF4161810D2940052CA3E /* love-lyndir.button.red.png in Resources */, DA2509FE1956484D00AC23F1 /* image-10.png in Resources */, - DADEF44E1810FA3B0052CA3E /* LoveLyndir.storyboard in Resources */, DABD39881711E29700CF925C /* SourceCodePro-ExtraLight.otf in Resources */, DABD39A01711E29700CF925C /* icon_action.png in Resources */, DABD39A11711E29700CF925C /* icon_action@2x.png in Resources */, @@ -3576,33 +3431,26 @@ DA250A0C1956484D00AC23F1 /* image-3.png in Resources */, DABD3A261711E29700CF925C /* icon_edit.png in Resources */, DABD3A271711E29700CF925C /* icon_edit@2x.png in Resources */, - DADEF41B1810D2940052CA3E /* love-lyndir.heart.grey@2x.png in Resources */, DABD3A3A1711E29700CF925C /* icon_find.png in Resources */, DABD3A3B1711E29700CF925C /* icon_find@2x.png in Resources */, DABD3AA01711E29800CF925C /* icon_pause.png in Resources */, DABD3AA11711E29800CF925C /* icon_pause@2x.png in Resources */, DABD3AAA1711E29800CF925C /* icon_person.png in Resources */, - DADEF4191810D2940052CA3E /* love-lyndir.heart.green@2x.png in Resources */, - DADEF4131810D2940052CA3E /* love-lyndir.button.green@2x.png in Resources */, DABD3AAB1711E29800CF925C /* icon_person@2x.png in Resources */, DABD3ABC1711E29800CF925C /* icon_play.png in Resources */, - DADEF4141810D2940052CA3E /* love-lyndir.button.grey.png in Resources */, DABD3ABD1711E29800CF925C /* icon_play@2x.png in Resources */, DABD3ABE1711E29800CF925C /* icon_plus.png in Resources */, DA250A081956484D00AC23F1 /* image-5.png in Resources */, DABD3ABF1711E29800CF925C /* icon_plus@2x.png in Resources */, - DADEF4181810D2940052CA3E /* love-lyndir.heart.green.png in Resources */, DA69540717D975D900BF294E /* icon_gears@2x.png in Resources */, DABD3B1C1711E29800CF925C /* icon_up.png in Resources */, DABD3B1D1711E29800CF925C /* icon_up@2x.png in Resources */, DA250A121956484D00AC23F1 /* image-0.png in Resources */, - DA9B51551895D79E009D2A0B /* gittip.png in Resources */, DA4522441902355C008F650A /* icon_book.png in Resources */, DABD3B8A1711E29800CF925C /* help.html in Resources */, DA2509FF1956484D00AC23F1 /* image-9@2x.png in Resources */, DABD3B8D1711E29800CF925C /* keypad.png in Resources */, DABD3B8E1711E29800CF925C /* logo-bare.png in Resources */, - DADEF44B1810E7F30052CA3E /* love-lyndir.picker.png in Resources */, DA7304E6194E025900E72520 /* tip_basic_black@2x.png in Resources */, DABD3B8F1711E29800CF925C /* menu-icon.png in Resources */, DABD3B901711E29800CF925C /* menu-icon@2x.png in Resources */, @@ -3614,7 +3462,6 @@ DA452249190628A1008F650A /* icon_wrench.png in Resources */, DA45224819062899008F650A /* icon_settings@2x.png in Resources */, DA250A001956484D00AC23F1 /* image-9.png in Resources */, - DADEF4121810D2940052CA3E /* love-lyndir.button.green.png in Resources */, DA854C8418D4CFBF00106317 /* avatar-add.png in Resources */, DABD3C241711E2DC00CF925C /* MasterPassword.entitlements in Resources */, DABD3C251711E2DC00CF925C /* Settings.bundle in Resources */, @@ -3625,7 +3472,6 @@ DABD3FCB1712446200CF925C /* cloud@2x.png in Resources */, DABD3FCE1714F45C00CF925C /* identity.png in Resources */, DABD3FCF1714F45C00CF925C /* identity@2x.png in Resources */, - DADEF4151810D2940052CA3E /* love-lyndir.button.grey@2x.png in Resources */, DA45224B190628B2008F650A /* icon_gear.png in Resources */, DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */, DA38D6A318CCB5BF009AEB3E /* Storyboard.storyboard in Resources */, @@ -3635,7 +3481,6 @@ DA5A09EA171BB0F7005284AB /* unlocked.png in Resources */, DA250A0E1956484D00AC23F1 /* image-2.png in Resources */, DA5A09EB171BB0F7005284AB /* unlocked@2x.png in Resources */, - DADEF44C1810E7F30052CA3E /* love-lyndir.picker@2x.png in Resources */, DA250A011956484D00AC23F1 /* image-8@2x.png in Resources */, DA250A111956484D00AC23F1 /* image-0@2x.png in Resources */, ); @@ -3822,17 +3667,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - DADEF41E1810D5530052CA3E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DADEF4471810D5850052CA3E /* LLToggleViewController.m in Sources */, - 93D39C8AD8EAB747856B3A8C /* LLModel.m in Sources */, - DA9B51581895D853009D2A0B /* LLGitTip.m in Sources */, - 93D39233C3EDD9A947ABA52D /* LLButtonView.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; DAFC5651172C573B00CB5CC5 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4347,27 +4181,6 @@ }; name = "AdHoc-iOS"; }; - DADEF43E1810D5540052CA3E /* Debug-iOS */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = YES; - }; - name = "Debug-iOS"; - }; - DADEF43F1810D5540052CA3E /* AdHoc-iOS */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = YES; - }; - name = "AdHoc-iOS"; - }; - DADEF4401810D5540052CA3E /* AppStore-iOS */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_OBJC_ARC = YES; - }; - name = "AppStore-iOS"; - }; DAFC565F172C573B00CB5CC5 /* Debug-iOS */ = { isa = XCBuildConfiguration; buildSettings = { @@ -4452,16 +4265,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = "AdHoc-iOS"; }; - DADEF4441810D5540052CA3E /* Build configuration list for PBXNativeTarget "LoveLyndir" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DADEF43E1810D5540052CA3E /* Debug-iOS */, - DADEF43F1810D5540052CA3E /* AdHoc-iOS */, - DADEF4401810D5540052CA3E /* AppStore-iOS */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = "AdHoc-iOS"; - }; DAFC565E172C573B00CB5CC5 /* Build configuration list for PBXNativeTarget "InAppSettingsKit" */ = { isa = XCConfigurationList; buildConfigurations = (